PageSourceSearch

https://go-makkah.com/assets/Recherches-DCu535f9.js

js go-makkah.com collected 2026-10-02 13:46:01 UTC 15,468 bytes, 1 lines download raw bytes

1import{u as ne,a as oe,r as c,j as e}from"./index-c-vW2Iaa.js";import{S as ie,b as ce}from"./Seo-mIoe9d14.js";import{r as H}from"./seo-routes-C9oUgeNk.js";import{a as le,C as me,E as de,H as pe,I as y,d as xe}from"./ui-BDpBPGiH.js";import{u as he,p as ue}from"./site-api-QRiNZzOy.js";import{ar as ge,u as be,t as fe,E as ye,g as je,a1 as ve,b as w,m as _,d as j,a as Ne}from"./reservation-api-EKawUo4u.js";import{P as ke}from"./PriceComparisonTable-C6hHs1IM.js";import{m as we}from"./format-CB1aVYTa.js";import{r as Ce}from"./hijri-DgofslNC.js";import{S as Me}from"./SiteHeader-D4o-sUwG.js";import{S as Se}from"./SiteFooter-DE1397hk.js";/* empty css               */import"./CountryGate-Od0n5XtA.js";import"./packages-Ceub4w_u.js";import"./hotels-v2-DLiIFG2z.js";import"./options-api-BoizgrUF.js";import"./visa-api-D7mIJeco.js";import"./conversion-hv1VcdZS.js";import"./LanguageSwitcher-CxTSwL_p.js";import"./globe-BLbyoqiV.js";import"./createLucideIcon-Dl_lvxww.js";import"./chevron-down-DgmeDF4Z.js";function Ie(){try{const s=JSON.parse(localStorage.getItem("omra_pax")||"null");if(s&&typeof s=="object"){const d=Array.isArray(s.children)?s.children:[],m=s.men!=null?s.men:s.adults?Math.ceil(s.adults/2):1,b=s.women!=null?s.women:s.adults?Math.floor(s.adults/2):1;return{men:m,women:b,adults:m+b,children:d,babies:s.babies||0}}}catch{}return{men:1,women:1,adults:2,children:[],babies:0}}const Oe=s=>{const[d,m]=s.split("-").map(Number);return`${we(m)} ${d}`},De={SGL:"common:priceTable.roomSGL",DBL:"common:priceTable.roomDBL",TPL:"common:priceTable.roomTPL",QDR:"common:priceTable.roomQDR"},Le=2,q=["Paris","Lyon","Marseille","Genève","Bruxelles","Barcelone","Toulouse","Casablanca"],W=s=>{const d=q.indexOf(s);return d===-1?q.length:d};function G({active:s,onClick:d,children:m,title:b,className:O=""}){return e.jsx("button",{type:"button",onClick:d,"aria-pressed":s,title:b,className:`shrink-0 rounded-full border px-3.5 py-1.5 text-[12.5px] font-semibold transition-colors ${s?"border-navy bg-navy text-cream-100":"border-ink/12 bg-white text-navy hover:border-navy hover:bg-cream-100"} ${O}`,children:m})}function Pe(){const{t:s}=ne(),{data:d}=ge(),{data:m,isLoading:b}=be(),O=oe(),J=le(),[p,D]=c.useState(null),R=c.useMemo(()=>{const t=new Date;return t.setDate(t.getDate()+Le),fe(t)},[]),C=c.useMemo(()=>Object.entries((m==null?void 0:m.byDate)||{}).filter(([t,a])=>a.length&&t>=R),[m,R]),u=c.useMemo(()=>{const t=new Set;for(const[a]of C)t.add(a.slice(0,7));return Array.from(t).sort()},[C]),K=c.useMemo(()=>{var i;const t=new Map;for(const[o,l]of C)for(const h of l){const f=`${o}|${h.packageId}`;let k=t.get(f);k||(k={key:f,dateISO:o,byCity:new Map},t.set(f,k));const V=ye(h.originCity),B=k.byCity.get(V);(!B||(h.price??1/0)<(B.price??1/0))&&k.byCity.set(V,h)}const a={};for(const o of t.values())(a[i=o.dateISO.slice(0,7)]||(a[i]=[])).push(o);const r=o=>{var l;return((l=o.byCity.values().next().value)==null?void 0:l.days)??0};for(const o of Object.keys(a))a[o].sort((l,h)=>l.dateISO.localeCompare(h.dateISO)||r(l)-r(h));return a},[C]),[L,Y]=c.useState(null),[Q,A]=c.useState(null),[P,U]=c.useState(null),X=c.useMemo(()=>{const t=`${new Date().getFullYear()}-${String(new Date().getMonth()+1).padStart(2,"0")}`;return u.find(a=>a>=t)||u[0]||null},[u]),v=L&&u.includes(L)?L:X,N=v?K[v]||[]:[],g=N.find(t=>t.key===Q)||N[0]||null,M=c.useMemo(()=>g?Array.from(g.byCity.keys()).sort((t,a)=>W(t)-W(a)||t.localeCompare(a)):[],[g]),T=he(),x=(P&&M.includes(P)?P:null)||ue(T==null?void 0:T.countryCode,M)||M[0]||null,n=g&&x&&g.byCity.get(x)||null,E=c.useMemo(()=>{var i;if(N.length<2)return null;let t=null,a=1/0,r=0;for(const o of N){const l=((i=o.byCity.get(x||""))==null?void 0:i.price)??1/0;l<a?(a=l,t=o.key,r=1):l===a&&r++}return Number.isFinite(a)&&r===1?t:null},[N,x]),{data:$,isFetching:Z}=je(n==null?void 0:n.packageId,n==null?void 0:n.flightId),{data:S,isFetching:ee}=ve(n==null?void 0:n.packageId,n==null?void 0:n.flightId,n==null?void 0:n.currency),te=Z||ee,ae=c.useMemo(()=>{var r;const t=$||[];return t.length?((r=t.find(i=>/confort|comfort/i.test(i.label||""))||t[Math.floor(t.length/2)])==null?void 0:r.id)??null:null},[$]),I=v?u.indexOf(v):-1,F=t=>{const a=u[I+t];a&&(Y(a),A(null))},se=t=>{const a=p==null?void 0:p.tier;if(D(null),!a||!n)return;try{localStorage.setItem("omra_pax",JSON.stringify(t))}catch{}Ne();
1const r=new URLSearchParams({step:"rooms",from:n.originCity,pkg:String(n.packageId),flight:String(n.flightId),date:n.dateISO,cat:String(a.id)});O(J(`/omra/reservation?${r.toString()}`))},z=c.useMemo(()=>{if(!n)return null;const t=(l,h)=>{const f=new Date(l);return f.setDate(f.getDate()+h),f},a=w(n.dateISO),r=n.nightsInMedina||0,i=n.nightsInMecca||0,o=t(a,r);return{md:{in:a,out:o,nights:r},mk:{in:o,out:t(o,i),nights:i}}},[n]);if(d!==!0||!b&&!u.length)return null;const re=t=>{const a=x?t.byCity.get(x):void 0,r=a||t.byCity.values().next().value,i=w(t.dateISO),o=r!=null&&r.returnISO?w(r.returnISO):null;return{range:o?`${j(i)} → ${j(o)}`:j(i),days:(r==null?void 0:r.days)||null,price:(a==null?void 0:a.price)??null,cur:(a==null?void 0:a.currency)||"EUR",available:!!a,ramadan:o?Ce(i,o):null}};return e.jsxs("section",{id:"tarifs-mensuels",className:"bg-cream-100 py-20 sm:py-28",children:[e.jsxs(me,{children:[e.jsxs("div",{className:"reveal max-w-3xl",children:[e.jsx(de,{children:s("common:priceCompare.eyebrow")}),e.jsxs(pe,{as:"h2",className:"mt-4 text-[clamp(1.9rem,4.2vw,3.1rem)] leading-[1.05]",children:[s("common:priceCompare.headingPre"),e.jsx("span",{className:"text-navy",children:s("common:priceCompare.headingEmph")})]}),e.jsx("p",{className:"mt-5 text-[17px] leading-relaxed text-ink-soft",children:s("common:priceCompare.intro")})]}),e.jsx("div",{className:"reveal mt-10",children:b||!n?e.jsxs("div",{className:"rounded-2xl border border-ink/8 bg-white p-6",children:[e.jsx("div",{className:"h-5 w-52 animate-pulse rounded bg-ink/8"}),e.jsx("div",{className:"mt-5 space-y-3",children:[0,1,2,3,4].map(t=>e.jsx("div",{className:"h-9 animate-pulse rounded bg-ink/5"},t))})]}):e.jsx(ke,{tiers:$,matrix:S,showHotels:!0,selectedId:ae,onPriceClick:(t,a,r)=>D({tier:t,code:a,price:r}),className:te?"transition-opacity duration-200 opacity-60":"transition-opacity duration-200",emptyFallback:e.jsx("div",{className:"space-y-2.5 py-1","aria-busy":"true",children:[0,1,2,3,4].map(t=>e.jsx("div",{className:"h-9 animate-pulse rounded bg-ink/5"},t))}),header:e.jsxs("div",{className:"mb-5",children:[e.jsxs("p",{className:"flex items-center justify-center gap-2 text-[10.5px] font-bold uppercase tracking-wider text-gold-deep",children:[e.jsx(y,{name:"sparkle",className:"h-4 w-4 text-[var(--accent)]"})," ",s("common:priceTable.compareTitle")]}),e.jsxs("div",{className:"mt-1 flex items-center justify-center gap-4 sm:gap-6",children:[e.jsx("button",{type:"button",onClick:()=>F(-1),disabled:I<=0,"aria-label":s("common:priceCompare.prevMonth"),className:"grid h-11 w-11 shrink-0 place-items-center rounded-full bg-navy text-cream-100 shadow-soft transition-transform hover:-translate-x-0.5 disabled:cursor-not-allowed disabled:bg-ink/12 disabled:text-ink-mute disabled:shadow-none disabled:hover:translate-x-0",children:e.jsx(y,{name:"arrow",className:"h-5 w-5 rotate-180"})}),e.jsx("h3",{className:"min-w-[7.5em] text-center font-display text-[clamp(1.5rem,3vw,2.1rem)] font-bold leading-tight text-navy",children:v?Oe(v):""}),e.jsx("button",{type:"button",onClick:()=>F(1),disabled:I<0||I>=u.length-1,"aria-label":s("common:priceCompare.nextMonth"),className:"grid h-11 w-11 shrink-0 place-items-center rounded-full bg-navy text-cream-100 shadow-soft transition-transform hover:translate-x-0.5 disabled:cursor-not-allowed disabled:bg-ink/12 disabled:text-ink-mute disabled:shadow-none disabled:hover:translate-x-0",children:e.jsx(y,{name:"arrow",className:"h-5 w-5"})})]}),e.jsxs("div",{className:"mt-5 flex flex-wrap gap-2",children:[e.jsx("span",{className:"shrink-0 self-center pr-1 text-[11px] font-bold uppercase tracking-wider text-ink-mute",children:s("common:priceTable.departure")}),N.map(t=>{const a=re(t),r=t.key===(g==null?void 0:g.key);return e.jsxs(G,{active:r,onClick:()=>A(t.key),className:a.available?"":"opacity-55",title:a.available?void 0:s("common:priceCompare.noCityDeparture",{city:x}),children:[t.key===E&&e.jsx(y,{name:"sparkle",className:`mr-1 inline h-3.5 w-3.5 align-[-2px] ${r?"text-gold-light":"text-[var(--accent)]"}`}),a.range,a.days?` · ${a.days} j`:"",typeof a.price=="number"?e.jsxs("span",{className:`ml-1.5 font-bold ${r?"text-gold-light":"text-gold-deep"}`,children:[s("common:priceTable.priceFrom")," ",_(a.price,a.cur)]}):e.jsx("span",{className:`ml-1.5 font-normal ${r?"text-cream-100/70":"text-ink-mute"}`,children:s("common:priceCompare.otherCity")}),a.ramadan&&e.jsxs("span",{className:`ml-1.5 font-bold ${r?"text-emerald-200":"text-emerald-700"}`,title:s("common:priceCompare.ramadanHint"),children:["🌙 ",s(a.ramadan==="debut"?"common:priceCompare.ramadanStart":"common:priceCompare.ramadanEnd")]})]},t.key)})]}),E&&e.jsxs("p",{className:"mt-1.5 flex items-center gap-1.5 text-[11.5px] text-ink-mute",children:[e.jsx(y,{name:"sparkle",className:"h-3.5 w-3.5 text-[var(--accent)]"})," ",s("common:priceCompare.bestDeparture",{city:x})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.jsx("span",{className:"shrink-0 self-center pr-1 text-[11px] font-bold uppercase tracking-wider text-ink-mute",children:s("common:priceCompare.departFrom")}),M.map(t=>e.jsx(G,{active:t===x,onClick:()=>U(t),children:t},t))]})]}),note:e.jsx("div",{className:"mt-3",children:e.jsx("p",{className:"text-[13.5px] font-medium leading-relaxed text-ink-soft",children:s("common:priceCompare.note")})})})})]}),p&&n&&e.jsx(xe,{pax:Ie(),onSave:se,onClose:()=>D(null),context:e.jsxs("div",{className:"space-y-2.5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-[10.5px] font-bold uppercase tracking-wider text-gold-deep",children:s("common:priceTable.departure")}),e.jsxs("p",{className:"text-[14px] font-semibold text-ink",children:[x," · ",j(w(n.dateISO)),n.returnISO?` → ${j(w(n.returnISO))}`:"",n.days?` · ${n.days} j`:""]})]}),e.jsxs("div",{className:"shrink-0 text-right",children:[e.jsx("p",{className:"text-[10.5px] font-bold uppercase tracking-wider text-gold-deep",children:s("common:priceCompare.fromCap")}),e.jsx("p",{className:"font-display text-[1.25rem] leading-none text-navy",children:_(p.price,(S==null?void 0:S.currency)||n.currency)}),e.jsx("p",{className:"text-[10.5px] text-ink-mute",children:s("common:priceCompare.perPerson")})]})]}),e.jsxs("div",{className:"rounded-xl bg-cream-100 px-3 py-2.5",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-[12.5px] font-bold text-navy",children:[e.jsx(y,{name:p.tier.icon,className:"h-3.5 w-3.5 text-[var(--accent)]"}),p.tier.label," · ",s(De[p.code])]}),[["md","mosque"],["mk","kaaba"]].map(([t,a])=>{const r=t==="md"?p.tier.md:p.tier.mk,i=z==null?void 0:z[t];return e.jsxs("div",{className:"mt-1.5 flex items-start gap-1.5",children:[e.jsx(y,{name:a,className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--accent)]"}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"truncate text-[12px] font-semibold text-ink",children:[(r==null?void 0:r.name)||"—"," ",e.jsxs("span",{className:"font-normal text-ink-mute",children:[r==null?void 0:r.stars,"★"]})]}),i&&i.nights>0&&e.jsxs("p",{className:"text-[11.5px] text-ink-mute",children:[j(i.in)," → ",j(i.out)," · ",s("common:priceCompare.nightCount",{count:i.nights})]})]})]},t)})]})]})})]})}const Te=[{href:"/omra",title:"Omra",desc:"Découvrez toutes nos formules Omra avec hôtels proches du Haram",path:"M3.055 11H5a2 2 0 012 2v1a2 2 0 002 2 2 2 0 012 2v2.945M8 3.935V5.5A2.5 2.5 0 0010.5 8h.5a2 2 0 012 2 2 2 0 104 0 2 2 
10 012-2h1.064M15 20.488V18a2 2 0 012-2h3.064M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},{href:"/hajj",title:"Hajj",desc:"Pré-inscrivez-vous pour le Hajj avec accompagnement complet",path:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"},{href:"/voyages",title:"Voyages Monde",desc:"Séjours et circuits tourisme : Istanbul, Égypte, Dubaï…",path:"M21 12a9 9 0 11-18 0 9 9 0 0118 0zM3.6 9h16.8M3.6 15h16.8M12 3a15 15 0 010 18a15 15 0 010-18z"},{href:"/visa",title:"Visa",desc:"Service visa Omra et Hajj avec assistance complète",path:"M10 6H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V8a2 2 0 00-2-2h-5m-4 0V5a2 2 0 114 0v1m-4 0a2 2 0 104 0"},{href:"/recommendations",title:"Nos Agences",desc:"Retrouvez nos agences en France pour un conseil personnalisé",path:"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"},{href:"/contact",title:"Contact",desc:"Contactez-nous pour toute question ou demande de devis",path:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"}],at=()=>e.jsxs("div",{className:"w-full min-h-screen bg-cream text-ink",children:[e.jsx(ie,{title:H("/recherches").title,description:H("/recherches").description,path:"/recherches",ogImage:H("/recherches").ogImage,jsonLd:[ce([["Accueil","/"],["Recherches","/recherches"]])]}),e.jsx(Me,{}),e.jsxs("main",{children:[e.jsxs("section",{className:"relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-[#0e5d8c] to-[#1c7ab8]","aria-hidden":"true"}),e.jsxs("div",{className:"relative mx-auto max-w-6xl px-4 py-14 sm:py-16 text-center",children:[e.jsx("h1",{className:"text-3xl sm:text-4xl font-extrabold text-white tracking-tight",children:"Trouvez votre départ"}),e.jsx("p",{className:"mt-3 max-w-2xl mx-auto text-white/90",children:"Comparez les prix par date de départ et réservez la formule qui vous convient."})]})]}),e.jsx("nav",{"aria-label":"Fil d’Ariane",className:"bg-white/70",children:e.jsxs("ol",{className:"mx-auto max-w-6xl px-4 py-3 flex items-center gap-2 text-sm text-gray-600",children:[e.jsx("li",{children:e.jsx("a",{href:"/",className:"hover:text-[#0e5d8c]",children:"Accueil"})}),e.jsx("li",{"aria-hidden":"true",children:"/"}),e.jsx("li",{className:"text-[#0e5d8c] font-medium",children:"Recherches"})]})}),e.jsx("section",{className:"mx-auto max-w-6xl px-4 py-8",children:e.jsx(c.Suspense,{fallback:e.jsx("div",{className:"py-16 text-center text-gray-400",children:"Chargement du calendrier…"}),children:e.jsx(Pe,{})})}),e.jsxs("section",{className:"mx-auto max-w-6xl px-4 pb-14",children:[e.jsx("h2",{className:"text-xl font-bold text-ink mb-5",children:"Parcourir par catégorie"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:Te.map(s=>e.jsxs("a",{href:s.href,className:"rounded-xl border border-[#e6f1fb] bg-white p-6 hover:shadow-lg transition-shadow group",children:[e.jsx("div",{className:"w-12 h-12 bg-[#e6f1fb] rounded-lg flex items-center justify-center mb-4 group-hover:bg-[#0e5d8c] transition-colors",children:e.jsx("svg",{className:"w-6 h-6 text-[#0e5d8c] group-hover:text-white transition-colors",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:s.path})})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:s.title}),e.jsx("p",{className:"text-gray-600 text-sm",children:s.desc})]},s.href))})]})]}),e.jsx(Se,{})]});export{at as Recherches};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.