@influence-society-web/deshotelsetdesiles 4.2.7 → 4.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/pages/CarnetDeVoyage.js +1 -1
- package/dist/pages/DemanderUnDevis.js +1 -1
- package/dist/pages/Destinations.js +1 -1
- package/dist/pages/Excursion.js +1 -1
- package/dist/pages/Home.js +1 -1
- package/dist/pages/HotelEtVilla.js +1 -1
- package/dist/pages/OfferSlug.js +1 -1
- package/dist/pages/Offers.js +1 -1
- package/dist/pages/OffersDeMinute.js +1 -1
- package/dist/pages/OffersReservez.js +1 -1
- package/dist/pages/Themes.js +1 -1
- package/dist/pages/Villas.js +1 -1
- package/package.json +1 -1
package/dist/pages/OfferSlug.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(()=>{var In=Object.defineProperty;var On=(e,t,r)=>t in e?In(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Se=(e,t,r)=>(On(e,typeof t!="symbol"?t+"":t,r),r);var $="data",H={startingPriceList:`[${$}=starting-price-list]`,price:`[${$}=price]`,discount:`[${$}=discount]`,discountContainer:`[${$}=discount-container]`,currency:`[${$}=currency]`,beHid:`[${$}-be-hid]`,destination:`[${$}=destination]`,offersList:`[${$}=offers-list]`,offerSlugDetail:`[${$}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${$}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${$}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${$}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${$}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${$}=offers-list-container]`,listItem:`[${$}=list-item]`,image:`[${$}=image]`,name:`[${$}=name]`,description:`[${$}=description]`,hotelName:`[${$}=hotel-name]`,hotelLink:`[${$}=hotel-link]`,hotelStartingPriceContainer:`[${$}=hotel-starting-price-container]`,moreDetails:`[${$}=more-details]`,offersPopup:`[${$}=offers-popup]`,offersPopupClose:`[${$}=close-btn]`,hotelReserveLink:`[${$}=hotel-reserve-link]`,hotelVillaReserveLink:`[${$}=hotel-villa-reserve-link]`,hotelURLS:`[${$}=hotel-urls]`,languageDropdown:`[${$}=language-dropdown]`,selectedLanguage:`[${$}=selected-language]`,loadingSpinner:`[${$}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:e=>`[${$}-be-hid=${e}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var We={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},Er={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},pt={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},_n={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},Ke={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},Sr={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},br={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},Mn={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},Ne={gpgos12767:{destination:We,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:We,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:We,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:We,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:We,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:Er,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:Er,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:pt,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:pt,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:pt,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:pt,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:_n,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:Ke,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:Ke,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:Ke,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:Ke,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:Ke,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:Sr,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:Sr,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:br,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:br,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:Mn,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},Lr={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},yr={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"},Ye={"DERNI\xC8RE MINUTE":"735fe5e0858671cf3a5c14cbcc2470fe","R\xC9SERVEZ T\xD4T":"c5abb23caf056891f3902ff42ae2f9e0"};var je="https://deshotelsetdesiles.ccordier.workers.dev/v2/",Tr="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",Et="FR",Dr="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var zt=async()=>new Promise(e=>{geoip2.country(t=>{e(t.country.iso_code)},()=>{e(Et)})});var $t=e=>{let t="?";for(let[r,n]of Object.entries(e))n&&(t+=`${r}=${n}&`);return t};var Xe=class{async getGroupOffersData(t){let r=je+"groupOffers"+$t(t),i=await(await fetch(r)).json();return i.error||!i.data?null:i}async getSingleHotelOffersData(t){let r=je+"offers"+$t(t),i=await(await fetch(r)).json();return i.error||!i.data?null:i}async getCMSOffers(){let t=je+"cmsOffers",n=await(await fetch(t)).json();return n.items?n:null}async getCountries(){let t=je+"cmsCountries",n=await(await fetch(t)).json();return n.items?n:null}};var Cr=()=>{let e=Ir();if(!e){let t=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(t)}window.Weglot.on("languageChanged",()=>{if(e)window.location.reload();else{let t=window.Weglot.getCurrentLang();localStorage.setItem("wglang",t),window.loadFromServer&&window.loadFromServer()}})},Ir=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",Ut=()=>{let e=Pe();return yr[e]},Pe=()=>{if(!Ir())return localStorage.getItem("wglang")||"fr";try{let e=window.Weglot.getCurrentLang();if(e)return e}catch(e){return console.error("Error getting language",e),"fr"}return"fr"},Rn=()=>!window.location.hostname.includes("webflow.io");function Or(e){if(!Rn())return`/offers/${e}`;let t=Pe();return!t||t==="fr"?`/offers/${e}`:`/${t}/offers/${e}`}var Vt=()=>{let e={};return Object.entries(Ne).forEach(([t,r])=>{e[r.cmsId]=t}),e},j=(e,t)=>`${e.toLowerCase().trim()}-${t.toLowerCase().trim()}`,_r=(e,t,r)=>{let n=Pe().toUpperCase(),i=Ne[t].codeIPlanet.toUpperCase(),s=`${Tr}?Lang=${n}¤cy=${e.toUpperCase()}&HotelCode=${i}`,a=Ar("_ga"),o=Dr,c=Ar("_gcl_au");return s+=`&_ga=${a}&_gl=${o}&_gcl_au=${c}`,r&&(s=`${s}&HotelPromo=${r}`),s},Ar=e=>{let t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)"));return t?t[2]:null};var Bt=(e,t,r,n)=>{let{quotation:i,rate:{distribution:s}}=t,{pricePerNight:a,currency:o,plainBookLink:c}=i,{accessCode:u}=s||{},d="";u&&u.length>0&&([d]=u),wn(e,a,o);let g=e.querySelector(H.hotelReserveLink);g&&g.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),window.open(c,"_blank")});let h=e.querySelector(H.hotelVillaReserveLink);if(h&&h.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),window.open(_r(o,r,d),"_blank")}),n){let{fieldData:{"discount-percentage":v}}=n,l=e.querySelector(H.discount);l&&v&&(l.innerHTML=`-${v}%`);let f=e.querySelector(H.discountContainer);f&&!v&&(f.style.display="none")}},wn=(e,t,r)=>{let n=e.querySelector(H.price);n&&(n.innerHTML=Math.floor(t).toString());let i=e.querySelector(H.currency);i&&(i.innerHTML=Lr[r])};var St=class{constructor(t,r){this.listInstance=t;this.itemTemplateElement=r;Se(this,"loadingSpinner");Se(this,"cmsFilterEmptyState");Se(this,"offerLookup",{});Se(this,"apiClient",new Xe);Se(this,"countryCode");Se(this,"availableCountries",{});Se(this,"countryCodeFilter",t=>{let{fieldData:r}=t;return!r["supported-countries"]||r["supported-countries"].length===0?!0:r["supported-countries"].map(i=>this.availableCountries[i]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(H.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),t.clearItems(),Cr(),this.loadingSpinner=document.querySelector(H.loadingSpinner),this.countryCode=Et}async getGroupOffers(t){let{clearItems:r=!0,filter:n}=t||{};r&&this.listInstance.clearItems();let i=await this.apiClient.getCMSOffers();if(!i)return;let s=await this.apiClient.getCountries();if(!s)return;s.items.forEach(l=>{this.availableCountries[l.id]=l.fieldData.title?.trim()}),this.countryCode=await zt();let a=i.items.filter(n).filter(this.countryCodeFilter),o=this.generateHotelIds(a),c=this.generateHotelIds(a).join(","),u=o.length===1;u&&(c=[c,c].join(","));let{offerMetaData:d}=this.generateOfferData(a),g=Ut(),h=await this.apiClient.getGroupOffersData({hids:c,locale:g});if(!h||h.error||!h.data){this.hideSpinnerAndShowFilter();return}u&&(h.data=[h.data[0]]);let v=this.getAllOffers(h,d);this.addHotelToCollection(v),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(t,r=!1){let n=i=>{let{isArchived:s,isDraft:a,fieldData:o}=i;return s||a?!1:r?(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot"):o.category===t};await this.getGroupOffers({filter:n})}async getGroupThemeOffers(t){let r=n=>{let{isArchived:i,isDraft:s,fieldData:a}=n;return i||s||!a.thematiques?!1:a.thematiques.includes(t)};await this.getGroupOffers({filter:r})}async getGroupOtherThemedOffers(t){let r=n=>{let{isArchived:i,isDraft:s,fieldData:a}=n;return i||s||a.slug===t?!1:Array.isArray(a.thematiques)&&a.thematiques.length>0};await this.getGroupOffers({filter:r})}async getGroupSlugOffers(t){let r=n=>{let{isArchived:i,isDraft:s,fieldData:a}=n;return i||s?!1:a.slug===t};await this.getGroupOffers({filter:r})}async getGroupOtherOffers(t,r){let n=i=>{let{isArchived:s,isDraft:a,fieldData:o}=i;return s||a||o.slug===t?!1:r?o.category===r:(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot")};await this.getGroupOffers({filter:n})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(t){let r=[],n=Vt();return t.forEach(i=>{let{fieldData:{"hotel-villa":s}}=i;r.push(n[s])}),Array.from(new Set(r))}getAllOffers(t,r){let n=[];return t.data.forEach(i=>{let{prop:{hid:s},rates:a}=i;a.forEach(o=>{let{name:c,title:u}=o.rate;(r.includes(j(s,c))||r.includes(j(s,u)))&&n.push({...i,rates:[o]})})}),n.sort((i,s)=>{let a=this.offerLookup[j(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[j(i.prop.hid,i.rates[0].rate.name)],o=this.offerLookup[j(s.prop.hid,s.rates[0].rate.title)]||this.offerLookup[j(s.prop.hid,s.rates[0].rate.name)],c=Number(a.fieldData.order)||0,u=Number(o.fieldData.order)||0;return c-u}),n}generateOfferData(t){let r=[];return t.forEach(n=>{let{fieldData:{"hotel-or-property-api-id":i,"offer-api-name":s}}=n,a=j(i,s);r.push(a),this.offerLookup[a]=n}),{offerMetaData:r}}addHotelToCollection(t){for(let{prop:r,rates:n}of t){let i=n.map(s=>this.createItem(r,s,this.itemTemplateElement));this.listInstance.addItems(i)}}createItem(t,r,n){let{rate:i}=r,{hid:s,title:a,property:o}=t,{image:c,title:u,name:d}=i,g=this.offerLookup[j(s||o,u)]||this.offerLookup[j(s||o,d)],h=n.cloneNode(!0),v=Ne[s||o];if(!v)return h;let{destination:l,slug:f}=v;this.bindOffersMetaData(h,{destination:l,image:c,hotelName:a,title:u,slug:f}),Bt(h,r,s,g);let p=this.getOffersCmsSlug(s,o,d);if(p){let E=h.querySelector(H.moreDetails),m=E instanceof HTMLAnchorElement?E:E?.querySelector("a")||E?.closest("a");m&&(m.href=Or(p))}return h.style.display="flex",h}getOffersCmsSlug(t,r,n){return this.offerLookup[j(t||r,n)]?.fieldData.slug}bindOffersMetaData(t,{destination:r,image:n,hotelName:i,title:s,slug:a,description:o}){let c=t.querySelector(H.destination),u=t.querySelector(H.image),d=t.querySelector(H.hotelName),g=t.querySelector(H.name),h=t.querySelector(H.description),v=t.querySelector(H.hotelLink),l=Pe();c&&(c.textContent=r[l]),u&&(u.src=n?.url),d&&(d.innerHTML=i),g&&(g.innerHTML=s),h&&o&&(h.innerHTML=o),v&&a&&v.addEventListener("click",()=>{window.location.href=a})}};function Nn(e,{destination:t,image:r,hotelName:n,title:i,slug:s,description:a}){let o=e.querySelectorAll(H.destination),c=e.querySelectorAll(H.hotelName),u=e.querySelectorAll(H.name),d=e.querySelectorAll(H.description),g=e.querySelectorAll(H.hotelLink),h=Pe();o&&o.forEach(v=>{v.textContent=t[h]}),r?.url&&e.querySelectorAll(H.image).forEach(l=>{l.src=r.url}),c&&c.forEach(v=>{v.innerHTML=n}),u&&u.forEach(v=>{v.innerHTML=i}),d&&a&&d.forEach(v=>{v.innerHTML=a}),g&&s&&g.forEach(v=>{v.addEventListener("click",l=>{l.preventDefault(),window.location.href=s})})}async function Mr(e,t){let r=new Xe,n=await r.getCMSOffers();if(!n)return;let i=await r.getCountries();if(!i)return;let s={};i.items.forEach(A=>{s[A.id]=A.fieldData.title?.trim()});let a=await zt(),o=A=>{let{fieldData:C}=A;return!C["supported-countries"]||C["supported-countries"].length===0?!0:C["supported-countries"].map(y=>s[y]).includes(a)},c=A=>{let{isArchived:C,isDraft:L,fieldData:y}=A;return C||L?!1:y.slug===e},u=n.items.filter(c).filter(o);if(u.length===0)return;let d=Vt(),g=Array.from(new Set(u.map(A=>d[A.fieldData["hotel-villa"]]).filter(A=>A!=null)));if(g.length===0)return;let h=g.join(",");g.length===1&&(h=[h,h].join(","));let v={},l=[];u.forEach(A=>{let{fieldData:{"hotel-or-property-api-id":C,"offer-api-name":L}}=A,y=j(C,L);l.push(y),v[y]=A});let f=Ut(),p=await r.getGroupOffersData({hids:h,locale:f});if(!p?.data||p.error)return;let E=g.length===1?[p.data[0]]:p.data,m=[];E.forEach(A=>{let{prop:{hid:C},rates:L}=A;L.forEach(y=>{let{name:I,title:k}=y.rate;(l.includes(j(C,I))||l.includes(j(C,k)))&&m.push({...A,rates:[y]})})}),m.sort((A,C)=>{let L=v[j(A.prop.hid,A.rates[0].rate.title)]||v[j(A.prop.hid,A.rates[0].rate.name)],y=v[j(C.prop.hid,C.rates[0].rate.title)]||v[j(C.prop.hid,C.rates[0].rate.name)];return(Number(L?.fieldData.order)||0)-(Number(y?.fieldData.order)||0)});let S=m[0];if(!S?.rates?.[0])return;let{prop:N,rates:_}=S,P=N.hid||N.property,b=_[0],M=v[j(P,b.rate.title)]||v[j(P,b.rate.name)];try{let A=Ne[P];A&&Nn(t,{destination:A.destination,image:b.rate.image,hotelName:N.title,title:b.rate.title,slug:A.slug,description:b.rate.html_description}),Bt(t,b,P,M)}catch{}}function Ie(e){let t=e.querySelector(H.listItem);return!t&&(e.matches(H.offerSlugOthersList)||e.matches(H.offerSlugOthersList2)||e.matches(H.offerSlugOthersList3))&&(t=e.querySelector(H.offerSlugOthersListItem)),t?Pn({items:[{element:t}],clearItems(n=!0){n&&(e.innerHTML="")},addItems(n){for(let i of n)e.appendChild(i);return Promise.resolve()}}):null}var Pn=e=>{let[t]=e.items;if(!t)throw new Error("No items found in the list instance");let r=t.element;return new St(e,r)};function Rr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Hn(e,t,r){return t&&Rr(e.prototype,t),r&&Rr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var wr="(prefers-reduced-motion: reduce)",Fe=1,kn=2,ze=3,Ue=4,ot=5,Lt=6,At=7,Fn={CREATED:Fe,MOUNTED:kn,IDLE:ze,MOVING:Ue,SCROLLING:ot,DRAGGING:Lt,DESTROYED:At};function pe(e){e.length=0}function De(e,t,r){return Array.prototype.slice.call(e,t,r)}function V(e){return e.bind.apply(e,[null].concat(De(arguments,1)))}var Wr=setTimeout,jt=function(){};function Nr(e){return requestAnimationFrame(e)}function _t(e,t){return typeof t===e}function Je(e){return!rr(e)&&_t("object",e)}var tr=Array.isArray,Kr=V(_t,"function"),Le=V(_t,"string"),lt=V(_t,"undefined");function rr(e){return e===null}function Yr(e){try{return e instanceof(e.ownerDocument.defaultView||window).HTMLElement}catch{return!1}}function ct(e){return tr(e)?e:[e]}function ae(e,t){ct(e).forEach(t)}function nr(e,t){return e.indexOf(t)>-1}function yt(e,t){return e.push.apply(e,ct(t)),e}function he(e,t,r){e&&ae(t,function(n){n&&e.classList[r?"add":"remove"](n)})}function ue(e,t){he(e,Le(t)?t.split(" "):t,!0)}function ut(e,t){ae(t,e.appendChild.bind(e))}function ir(e,t){ae(e,function(r){var n=(t||r).parentNode;n&&n.insertBefore(r,t)})}function et(e,t){return Yr(e)&&(e.msMatchesSelector||e.matches).call(e,t)}function jr(e,t){var r=e?De(e.children):[];return t?r.filter(function(n){return et(n,t)}):r}function ft(e,t){return t?jr(e,t)[0]:e.firstElementChild}var tt=Object.keys;function _e(e,t,r){return e&&(r?tt(e).reverse():tt(e)).forEach(function(n){n!=="__proto__"&&t(e[n],n)}),e}function rt(e){return De(arguments,1).forEach(function(t){_e(t,function(r,n){e[n]=t[n]})}),e}function be(e){return De(arguments,1).forEach(function(t){_e(t,function(r,n){tr(r)?e[n]=r.slice():Je(r)?e[n]=be({},Je(e[n])?e[n]:{},r):e[n]=r})}),e}function Pr(e,t){ae(t||tt(e),function(r){delete e[r]})}function fe(e,t){ae(e,function(r){ae(t,function(n){r&&r.removeAttribute(n)})})}function x(e,t,r){Je(t)?_e(t,function(n,i){x(e,i,n)}):ae(e,function(n){rr(r)||r===""?fe(n,t):n.setAttribute(t,String(r))})}function xe(e,t,r){var n=document.createElement(e);return t&&(Le(t)?ue(n,t):x(n,t)),r&&ut(r,n),n}function oe(e,t,r){if(lt(r))return getComputedStyle(e)[t];rr(r)||(e.style[t]=""+r)}function nt(e,t){oe(e,"display",t)}function Xr(e){e.setActive&&e.setActive()||e.focus({preventScroll:!0})}function le(e,t){return e.getAttribute(t)}function Hr(e,t){return e&&e.classList.contains(t)}function ie(e){return e.getBoundingClientRect()}function Me(e){ae(e,function(t){t&&t.parentNode&&t.parentNode.removeChild(t)})}function Zr(e){return ft(new DOMParser().parseFromString(e,"text/html").body)}function ve(e,t){e.preventDefault(),t&&(e.stopPropagation(),e.stopImmediatePropagation())}function Qr(e,t){return e&&e.querySelector(t)}function sr(e,t){return t?De(e.querySelectorAll(t)):[]}function ge(e,t){he(e,t,!1)}function Xt(e){return e.timeStamp}function Oe(e){return Le(e)?e:e?e+"px":""}var dt="splide",ar="data-"+dt;function Ze(e,t){if(!e)throw new Error("["+dt+"] "+(t||""))}var ye=Math.min,Ct=Math.max,It=Math.floor,it=Math.ceil,re=Math.abs;function Jr(e,t,r){return re(e-t)<r}function Tt(e,t,r,n){var i=ye(t,r),s=Ct(t,r);return n?i<e&&e<s:i<=e&&e<=s}function He(e,t,r){var n=ye(t,r),i=Ct(t,r);return ye(Ct(n,e),i)}function Zt(e){return+(e>0)-+(e<0)}function Qt(e,t){return ae(t,function(r){e=e.replace("%s",""+r)}),e}function or(e){return e<10?"0"+e:""+e}var kr={};function xn(e){return""+e+or(kr[e]=(kr[e]||0)+1)}function en(){var e=[];function t(a,o,c,u){i(a,o,function(d,g,h){var v="addEventListener"in d,l=v?d.removeEventListener.bind(d,g,c,u):d.removeListener.bind(d,c);v?d.addEventListener(g,c,u):d.addListener(c),e.push([d,g,h,c,l])})}function r(a,o,c){i(a,o,function(u,d,g){e=e.filter(function(h){return h[0]===u&&h[1]===d&&h[2]===g&&(!c||h[3]===c)?(h[4](),!1):!0})})}function n(a,o,c){var u,d=!0;return typeof CustomEvent=="function"?u=new CustomEvent(o,{bubbles:d,detail:c}):(u=document.createEvent("CustomEvent"),u.initCustomEvent(o,d,!1,c)),a.dispatchEvent(u),u}function i(a,o,c){ae(a,function(u){u&&ae(o,function(d){d.split(" ").forEach(function(g){var h=g.split(".");c(u,h[0],h[1])})})})}function s(){e.forEach(function(a){a[4]()}),pe(e)}return{bind:t,unbind:r,dispatch:n,destroy:s}}var we="mounted",Fr="ready",Te="move",vt="moved",tn="click",Gn="active",zn="inactive",$n="visible",Un="hidden",X="refresh",ne="updated",st="resize",lr="resized",Vn="drag",Bn="dragging",qn="dragged",cr="scroll",Ve="scrolled",Wn="overflow",rn="destroy",Kn="arrows:mounted",Yn="arrows:updated",jn="pagination:mounted",Xn="pagination:updated",nn="navigation:mounted",sn="autoplay:play",Zn="autoplay:playing",an="autoplay:pause",on="lazyload:loaded",ln="sk",cn="sh",Ot="ei";function W(e){var t=e?e.event.bus:document.createDocumentFragment(),r=en();function n(s,a){r.bind(t,ct(s).join(" "),function(o){a.apply(a,tr(o.detail)?o.detail:[])})}function i(s){r.dispatch(t,s,De(arguments,1))}return e&&e.event.on(rn,r.destroy),rt(r,{bus:t,on:n,off:V(r.unbind,t),emit:i})}function Mt(e,t,r,n){var i=Date.now,s,a=0,o,c=!0,u=0;function d(){if(!c){if(a=e?ye((i()-s)/e,1):1,r&&r(a),a>=1&&(t(),s=i(),n&&++u>=n))return h();o=Nr(d)}}function g(E){E||l(),s=i()-(E?a*e:0),c=!1,o=Nr(d)}function h(){c=!0}function v(){s=i(),a=0,r&&r(a)}function l(){o&&cancelAnimationFrame(o),a=0,o=0,c=!0}function f(E){e=E}function p(){return c}return{start:g,rewind:v,pause:h,cancel:l,set:f,isPaused:p}}function Qn(e){var t=e;function r(i){t=i}function n(i){return nr(ct(i),t)}return{set:r,is:n}}function Jn(e,t){var r=Mt(t||0,e,null,1);return function(){r.isPaused()&&r.start()}}function ei(e,t,r){var n=e.state,i=r.breakpoints||{},s=r.reducedMotion||{},a=en(),o=[];function c(){var l=r.mediaQuery==="min";tt(i).sort(function(f,p){return l?+f-+p:+p-+f}).forEach(function(f){d(i[f],"("+(l?"min":"max")+"-width:"+f+"px)")}),d(s,wr),g()}function u(l){l&&a.destroy()}function d(l,f){var p=matchMedia(f);a.bind(p,"change",g),o.push([l,p])}function g(){var l=n.is(At),f=r.direction,p=o.reduce(function(E,m){return be(E,m[1].matches?m[0]:{})},{});Pr(r),v(p),r.destroy?e.destroy(r.destroy==="completely"):l?(u(!0),e.mount()):f!==r.direction&&e.refresh()}function h(l){matchMedia(wr).matches&&(l?be(r,s):Pr(r,tt(s)))}function v(l,f,p){be(r,l),f&&be(Object.getPrototypeOf(r),l),(p||!n.is(Fe))&&e.emit(ne,r)}return{setup:c,destroy:u,reduce:h,set:v}}var Rt="Arrow",wt=Rt+"Left",Nt=Rt+"Right",un=Rt+"Up",fn=Rt+"Down";var xr="rtl",Pt="ttb",qt={width:["height"],left:["top","right"],right:["bottom","left"],x:["y"],X:["Y"],Y:["X"],ArrowLeft:[un,Nt],ArrowRight:[fn,wt]};function ti(e,t,r){function n(s,a,o){o=o||r.direction;var c=o===xr&&!a?1:o===Pt?0:-1;return qt[s]&&qt[s][c]||s.replace(/width|left|right/i,function(u,d){var g=qt[u.toLowerCase()][c]||u;return d>0?g.charAt(0).toUpperCase()+g.slice(1):g})}function i(s){return s*(r.direction===xr?1:-1)}return{resolve:n,orient:i}}var me="role",Ge="tabindex",ri="disabled",ce="aria-",ht=ce+"controls",dn=ce+"current",Gr=ce+"selected",se=ce+"label",ur=ce+"labelledby",vn=ce+"hidden",fr=ce+"orientation",at=ce+"roledescription",zr=ce+"live",$r=ce+"busy",Ur=ce+"atomic",dr=[me,Ge,ri,ht,dn,se,ur,vn,fr,at],de=dt+"__",Ae="is-",Wt=dt,Vr=de+"track",ni=de+"list",Ht=de+"slide",hn=Ht+"--clone",ii=Ht+"__container",vr=de+"arrows",kt=de+"arrow",gn=kt+"--prev",mn=kt+"--next",Ft=de+"pagination",pn=Ft+"__page",si=de+"progress",ai=si+"__bar",hr=de+"toggle",Ms=hr+"__play",Rs=hr+"__pause",oi=de+"spinner",li=de+"sr",ci=Ae+"initialized",Re=Ae+"active",En=Ae+"prev",Sn=Ae+"next",Jt=Ae+"visible",er=Ae+"loading",bn=Ae+"focus-in",Ln=Ae+"overflow",ui=[Re,Jt,En,Sn,er,bn,Ln],fi={slide:Ht,clone:hn,arrows:vr,arrow:kt,prev:gn,next:mn,pagination:Ft,page:pn,spinner:oi};function di(e,t){if(Kr(e.closest))return e.closest(t);for(var r=e;r&&r.nodeType===1&&!et(r,t);)r=r.parentElement;return r}var vi=5,Br=200,yn="touchstart mousedown",Kt="touchmove mousemove",Yt="touchend touchcancel mouseup click";function hi(e,t,r){var n=W(e),i=n.on,s=n.bind,a=e.root,o=r.i18n,c={},u=[],d=[],g=[],h,v,l;function f(){S(),N(),m()}function p(){i(X,E),i(X,f),i(ne,m),s(document,yn+" keydown",function(b){l=b.type==="keydown"},{capture:!0}),s(a,"focusin",function(){he(a,bn,!!l)})}function E(b){var M=dr.concat("style");pe(u),ge(a,d),ge(h,g),fe([h,v],M),fe(a,b?M:["style",at])}function m(){ge(a,d),ge(h,g),d=P(Wt),g=P(Vr),ue(a,d),ue(h,g),x(a,se,r.label),x(a,ur,r.labelledby)}function S(){h=_("."+Vr),v=ft(h,"."+ni),Ze(h&&v,"A track/list element is missing."),yt(u,jr(v,"."+Ht+":not(."+hn+")")),_e({arrows:vr,pagination:Ft,prev:gn,next:mn,bar:ai,toggle:hr},function(b,M){c[M]=_("."+b)}),rt(c,{root:a,track:h,list:v,slides:u})}function N(){var b=a.id||xn(dt),M=r.role;a.id=b,h.id=h.id||b+"-track",v.id=v.id||b+"-list",!le(a,me)&&a.tagName!=="SECTION"&&M&&x(a,me,M),x(a,at,o.carousel),x(v,me,"presentation")}function _(b){var M=Qr(a,b);return M&&di(M,"."+Wt)===a?M:void 0}function P(b){return[b+"--"+r.type,b+"--"+r.direction,r.drag&&b+"--draggable",r.isNavigation&&b+"--nav",b===Wt&&Re]}return rt(c,{setup:f,mount:p,destroy:E})}var $e="slide",Be="loop",gt="fade";function gi(e,t,r,n){var i=W(e),s=i.on,a=i.emit,o=i.bind,c=e.Components,u=e.root,d=e.options,g=d.isNavigation,h=d.updateOnMove,v=d.i18n,l=d.pagination,f=d.slideFocus,p=c.Direction.resolve,E=le(n,"style"),m=le(n,se),S=r>-1,N=ft(n,"."+ii),_;function P(){S||(n.id=u.id+"-slide"+or(t+1),x(n,me,l?"tabpanel":"group"),x(n,at,v.slide),x(n,se,m||Qt(v.slideLabel,[t+1,e.length]))),b()}function b(){o(n,"click",V(a,tn,F)),o(n,"keydown",V(a,ln,F)),s([vt,cn,Ve],L),s(nn,A),h&&s(Te,C)}function M(){_=!0,i.destroy(),ge(n,ui),fe(n,dr),x(n,"style",E),x(n,se,m||"")}function A(){var w=e.splides.map(function(D){var R=D.splide.Components.Slides.getAt(t);return R?R.slide.id:""}).join(" ");x(n,se,Qt(v.slideX,(S?r:t)+1)),x(n,ht,w),x(n,me,f?"button":""),f&&fe(n,at)}function C(){_||L()}function L(){if(!_){var w=e.index;y(),I(),he(n,En,t===w-1),he(n,Sn,t===w+1)}}function y(){var w=G();w!==Hr(n,Re)&&(he(n,Re,w),x(n,dn,g&&w||""),a(w?Gn:zn,F))}function I(){var w=K(),D=!w&&(!G()||S);if(e.state.is([Ue,ot])||x(n,vn,D||""),x(sr(n,d.focusableNodes||""),Ge,D?-1:""),f&&x(n,Ge,D?-1:0),w!==Hr(n,Jt)&&(he(n,Jt,w),a(w?$n:Un,F)),!w&&document.activeElement===n){var R=c.Slides.getAt(e.index);R&&Xr(R.slide)}}function k(w,D,R){oe(R&&N||n,w,D)}function G(){var w=e.index;return w===t||d.cloneStatus&&w===r}function K(){if(e.is(gt))return G();var w=ie(c.Elements.track),D=ie(n),R=p("left",!0),z=p("right",!0);return It(w[R])<=it(D[R])&&It(D[z])<=it(w[z])}function q(w,D){var R=re(w-t);return!S&&(d.rewind||e.is(Be))&&(R=ye(R,e.length-R)),R<=D}var F={index:t,slideIndex:r,slide:n,container:N,isClone:S,mount:P,destroy:M,update:L,style:k,isWithin:q};return F}function mi(e,t,r){var n=W(e),i=n.on,s=n.emit,a=n.bind,o=t.Elements,c=o.slides,u=o.list,d=[];function g(){h(),i(X,v),i(X,h)}function h(){c.forEach(function(L,y){f(L,y,-1)})}function v(){_(function(L){L.destroy()}),pe(d)}function l(){_(function(L){L.update()})}function f(L,y,I){var k=gi(e,y,I,L);k.mount(),d.push(k),d.sort(function(G,K){return G.index-K.index})}function p(L){return L?P(function(y){return!y.isClone}):d}function E(L){var y=t.Controller,I=y.toIndex(L),k=y.hasFocus()?1:r.perPage;return P(function(G){return Tt(G.index,I,I+k-1)})}function m(L){return P(L)[0]}function S(L,y){ae(L,function(I){if(Le(I)&&(I=Zr(I)),Yr(I)){var k=c[y];k?ir(I,k):ut(u,I),ue(I,r.classes.slide),M(I,V(s,st))}}),s(X)}function N(L){Me(P(L).map(function(y){return y.slide})),s(X)}function _(L,y){p(y).forEach(L)}function P(L){return d.filter(Kr(L)?L:function(y){return Le(L)?et(y.slide,L):nr(ct(L),y.index)})}function b(L,y,I){_(function(k){k.style(L,y,I)})}function M(L,y){var I=sr(L,"img"),k=I.length;k?I.forEach(function(G){a(G,"load error",function(){--k||y()})}):y()}function A(L){return L?c.length:d.length}function C(){return d.length>r.perPage}return{mount:g,destroy:v,update:l,register:f,get:p,getIn:E,getAt:m,add:S,remove:N,forEach:_,filter:P,style:b,getLength:A,isEnough:C}}function pi(e,t,r){var n=W(e),i=n.on,s=n.bind,a=n.emit,o=t.Slides,c=t.Direction.resolve,u=t.Elements,d=u.root,g=u.track,h=u.list,v=o.getAt,l=o.style,f,p,E;function m(){S(),s(window,"resize load",Jn(V(a,st))),i([ne,X],S),i(st,N)}function S(){f=r.direction===Pt,oe(d,"maxWidth",Oe(r.width)),oe(g,c("paddingLeft"),_(!1)),oe(g,c("paddingRight"),_(!0)),N(!0)}function N(F){var w=ie(d);(F||p.width!==w.width||p.height!==w.height)&&(oe(g,"height",P()),l(c("marginRight"),Oe(r.gap)),l("width",M()),l("height",A(),!0),p=w,a(lr),E!==(E=q())&&(he(d,Ln,E),a(Wn,E)))}function _(F){var w=r.padding,D=c(F?"right":"left");return w&&Oe(w[D]||(Je(w)?0:w))||"0px"}function P(){var F="";return f&&(F=b(),Ze(F,"height or heightRatio is missing."),F="calc("+F+" - "+_(!1)+" - "+_(!0)+")"),F}function b(){return Oe(r.height||ie(h).width*r.heightRatio)}function M(){return r.autoWidth?null:Oe(r.fixedWidth)||(f?"":C())}function A(){return Oe(r.fixedHeight)||(f?r.autoHeight?null:C():b())}function C(){var F=Oe(r.gap);return"calc((100%"+(F&&" + "+F)+")/"+(r.perPage||1)+(F&&" - "+F)+")"}function L(){return ie(h)[c("width")]}function y(F,w){var D=v(F||0);return D?ie(D.slide)[c("width")]+(w?0:G()):0}function I(F,w){var D=v(F);if(D){var R=ie(D.slide)[c("right")],z=ie(h)[c("left")];return re(R-z)+(w?0:G())}return 0}function k(F){return I(e.length-1)-I(0)+y(0,F)}function G(){var F=v(0);return F&&parseFloat(oe(F.slide,c("marginRight")))||0}function K(F){return parseFloat(oe(g,c("padding"+(F?"Right":"Left"))))||0}function q(){return e.is(gt)||k(!0)>L()}return{mount:m,resize:N,listSize:L,slideSize:y,sliderSize:k,totalSize:I,getPadding:K,isOverflow:q}}var Ei=2;function Si(e,t,r){var n=W(e),i=n.on,s=t.Elements,a=t.Slides,o=t.Direction.resolve,c=[],u;function d(){i(X,g),i([ne,st],v),(u=p())&&(l(u),t.Layout.resize(!0))}function g(){h(),d()}function h(){Me(c),pe(c),n.destroy()}function v(){var E=p();u!==E&&(u<E||!E)&&n.emit(X)}function l(E){var m=a.get().slice(),S=m.length;if(S){for(;m.length<E;)yt(m,m);yt(m.slice(-E),m.slice(0,E)).forEach(function(N,_){var P=_<E,b=f(N.slide,_);P?ir(b,m[0].slide):ut(s.list,b),yt(c,b),a.register(b,_-E+(P?0:S),N.index)})}}function f(E,m){var S=E.cloneNode(!0);return ue(S,r.classes.clone),S.id=e.root.id+"-clone"+or(m+1),S}function p(){var E=r.clones;if(!e.is(Be))E=0;else if(lt(E)){var m=r[o("fixedWidth")]&&t.Layout.slideSize(0),S=m&&it(ie(s.track)[o("width")]/m);E=S||r[o("autoWidth")]&&e.length||r.perPage*Ei}return E}return{mount:d,destroy:h}}function bi(e,t,r){var n=W(e),i=n.on,s=n.emit,a=e.state.set,o=t.Layout,c=o.slideSize,u=o.getPadding,d=o.totalSize,g=o.listSize,h=o.sliderSize,v=t.Direction,l=v.resolve,f=v.orient,p=t.Elements,E=p.list,m=p.track,S;function N(){S=t.Transition,i([we,lr,ne,X],_)}function _(){t.Controller.isBusy()||(t.Scroll.cancel(),b(e.index),t.Slides.update())}function P(D,R,z,J){D!==R&&F(D>z)&&(L(),M(C(k(),D>z),!0)),a(Ue),s(Te,R,z,D),S.start(R,function(){a(ze),s(vt,R,z,D),J&&J()})}function b(D){M(I(D,!0))}function M(D,R){if(!e.is(gt)){var z=R?D:A(D);oe(E,"transform","translate"+l("X")+"("+z+"px)"),D!==z&&s(cn)}}function A(D){if(e.is(Be)){var R=y(D),z=R>t.Controller.getEnd(),J=R<0;(J||z)&&(D=C(D,z))}return D}function C(D,R){var z=D-q(R),J=h();return D-=f(J*(it(re(z)/J)||1))*(R?1:-1),D}function L(){M(k(),!0),S.cancel()}function y(D){for(var R=t.Slides.get(),z=0,J=1/0,Q=0;Q<R.length;Q++){var Ee=R[Q].index,T=re(I(Ee,!0)-D);if(T<=J)J=T,z=Ee;else break}return z}function I(D,R){var z=f(d(D-1)-K(D));return R?G(z):z}function k(){var D=l("left");return ie(E)[D]-ie(m)[D]+f(u(!1))}function G(D){return r.trimSpace&&e.is($e)&&(D=He(D,0,f(h(!0)-g()))),D}function K(D){var R=r.focus;return R==="center"?(g()-c(D,!0))/2:+R*c(D)||0}function q(D){return I(D?t.Controller.getEnd():0,!!r.trimSpace)}function F(D){var R=f(C(k(),D));return D?R>=0:R<=E[l("scrollWidth")]-ie(m)[l("width")]}function w(D,R){R=lt(R)?k():R;var z=D!==!0&&f(R)<f(q(!1)),J=D!==!1&&f(R)>f(q(!0));return z||J}return{mount:N,move:P,jump:b,translate:M,shift:C,cancel:L,toIndex:y,toPosition:I,getPosition:k,getLimit:q,exceededLimit:w,reposition:_}}function Li(e,t,r){var n=W(e),i=n.on,s=n.emit,a=t.Move,o=a.getPosition,c=a.getLimit,u=a.toPosition,d=t.Slides,g=d.isEnough,h=d.getLength,v=r.omitEnd,l=e.is(Be),f=e.is($e),p=V(k,!1),E=V(k,!0),m=r.start||0,S,N=m,_,P,b;function M(){A(),i([ne,X,Ot],A),i(lr,C)}function A(){_=h(!0),P=r.perMove,b=r.perPage,S=F();var T=He(m,0,v?S:_-1);T!==m&&(m=T,a.reposition())}function C(){S!==F()&&s(Ot)}function L(T,U,te){if(!Ee()){var Y=I(T),ee=q(Y);ee>-1&&(U||ee!==m)&&(z(ee),a.move(Y,ee,N,te))}}function y(T,U,te,Y){t.Scroll.scroll(T,U,te,function(){var ee=q(a.toIndex(o()));z(v?ye(ee,S):ee),Y&&Y()})}function I(T){var U=m;if(Le(T)){var te=T.match(/([+\-<>])(\d+)?/)||[],Y=te[1],ee=te[2];Y==="+"||Y==="-"?U=G(m+ +(""+Y+(+ee||1)),m):Y===">"?U=ee?w(+ee):p(!0):Y==="<"&&(U=E(!0))}else U=l?T:He(T,0,S);return U}function k(T,U){var te=P||(Q()?1:b),Y=G(m+te*(T?-1:1),m,!(P||Q()));return Y===-1&&f&&!Jr(o(),c(!T),1)?T?0:S:U?Y:q(Y)}function G(T,U,te){if(g()||Q()){var Y=K(T);Y!==T&&(U=T,T=Y,te=!1),T<0||T>S?!P&&(Tt(0,T,U,!0)||Tt(S,U,T,!0))?T=w(D(T)):l?T=te?T<0?-(_%b||b):_:T:r.rewind?T=T<0?S:0:T=-1:te&&T!==U&&(T=w(D(U)+(T<U?-1:1)))}else T=-1;return T}function K(T){if(f&&r.trimSpace==="move"&&T!==m)for(var U=o();U===u(T,!0)&&Tt(T,0,e.length-1,!r.rewind);)T<m?--T:++T;return T}function q(T){return l?(T+_)%_||0:T}function F(){for(var T=_-(Q()||l&&P?1:b);v&&T-- >0;)if(u(_-1,!0)!==u(T,!0)){T++;break}return He(T,0,_-1)}function w(T){return He(Q()?T:b*T,0,S)}function D(T){return Q()?ye(T,S):It((T>=S?_-1:T)/b)}function R(T){var U=a.toIndex(T);return f?He(U,0,S):U}function z(T){T!==m&&(N=m,m=T)}function J(T){return T?N:m}function Q(){return!lt(r.focus)||r.isNavigation}function Ee(){return e.state.is([Ue,ot])&&!!r.waitForTransition}return{mount:M,go:L,scroll:y,getNext:p,getPrev:E,getAdjacent:k,getEnd:F,setIndex:z,getIndex:J,toIndex:w,toPage:D,toDest:R,hasFocus:Q,isBusy:Ee}}var yi="http://www.w3.org/2000/svg",Ti="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z",bt=40;function Di(e,t,r){var n=W(e),i=n.on,s=n.bind,a=n.emit,o=r.classes,c=r.i18n,u=t.Elements,d=t.Controller,g=u.arrows,h=u.track,v=g,l=u.prev,f=u.next,p,E,m={};function S(){_(),i(ne,N)}function N(){P(),S()}function _(){var y=r.arrows;y&&!(l&&f)&&A(),l&&f&&(rt(m,{prev:l,next:f}),nt(v,y?"":"none"),ue(v,E=vr+"--"+r.direction),y&&(b(),L(),x([l,f],ht,h.id),a(Kn,l,f)))}function P(){n.destroy(),ge(v,E),p?(Me(g?[l,f]:v),l=f=null):fe([l,f],dr)}function b(){i([we,vt,X,Ve,Ot],L),s(f,"click",V(M,">")),s(l,"click",V(M,"<"))}function M(y){d.go(y,!0)}function A(){v=g||xe("div",o.arrows),l=C(!0),f=C(!1),p=!0,ut(v,[l,f]),!g&&ir(v,h)}function C(y){var I='<button class="'+o.arrow+" "+(y?o.prev:o.next)+'" type="button"><svg xmlns="'+yi+'" viewBox="0 0 '+bt+" "+bt+'" width="'+bt+'" height="'+bt+'" focusable="false"><path d="'+(r.arrowPath||Ti)+'" />';return Zr(I)}function L(){if(l&&f){var y=e.index,I=d.getPrev(),k=d.getNext(),G=I>-1&&y<I?c.last:c.prev,K=k>-1&&y>k?c.first:c.next;l.disabled=I<0,f.disabled=k<0,x(l,se,G),x(f,se,K),a(Yn,l,f,I,k)}}return{arrows:m,mount:S,destroy:P,update:L}}var Ai=ar+"-interval";function Ci(e,t,r){var n=W(e),i=n.on,s=n.bind,a=n.emit,o=Mt(r.interval,e.go.bind(e,">"),b),c=o.isPaused,u=t.Elements,d=t.Elements,g=d.root,h=d.toggle,v=r.autoplay,l,f,p=v==="pause";function E(){v&&(m(),h&&x(h,ht,u.track.id),p||S(),P())}function m(){r.pauseOnHover&&s(g,"mouseenter mouseleave",function(A){l=A.type==="mouseenter",_()}),r.pauseOnFocus&&s(g,"focusin focusout",function(A){f=A.type==="focusin",_()}),h&&s(h,"click",function(){p?S():N(!0)}),i([Te,cr,X],o.rewind),i(Te,M)}function S(){c()&&t.Slides.isEnough()&&(o.start(!r.resetProgress),f=l=p=!1,P(),a(sn))}function N(A){A===void 0&&(A=!0),p=!!A,P(),c()||(o.pause(),a(an))}function _(){p||(l||f?N(!1):S())}function P(){h&&(he(h,Re,!p),x(h,se,r.i18n[p?"play":"pause"]))}function b(A){var C=u.bar;C&&oe(C,"width",A*100+"%"),a(Zn,A)}function M(A){var C=t.Slides.getAt(A);o.set(C&&+le(C.slide,Ai)||r.interval)}return{mount:E,destroy:o.cancel,play:S,pause:N,isPaused:c}}function Ii(e,t,r){var n=W(e),i=n.on;function s(){r.cover&&(i(on,V(o,!0)),i([we,ne,X],V(a,!0)))}function a(c){t.Slides.forEach(function(u){var d=ft(u.container||u.slide,"img");d&&d.src&&o(c,d,u)})}function o(c,u,d){d.style("background",c?'center/cover no-repeat url("'+u.src+'")':"",!0),nt(u,c?"none":"")}return{mount:s,destroy:V(a,!1)}}var Oi=10,_i=600,Mi=.6,Ri=1.5,wi=800;function Ni(e,t,r){var n=W(e),i=n.on,s=n.emit,a=e.state.set,o=t.Move,c=o.getPosition,u=o.getLimit,d=o.exceededLimit,g=o.translate,h=e.is($e),v,l,f=1;function p(){i(Te,N),i([ne,X],_)}function E(b,M,A,C,L){var y=c();if(N(),A&&(!h||!d())){var I=t.Layout.sliderSize(),k=Zt(b)*I*It(re(b)/I)||0;b=o.toPosition(t.Controller.toDest(b%I))+k}var G=Jr(y,b,1);f=1,M=G?0:M||Ct(re(b-y)/Ri,wi),l=C,v=Mt(M,m,V(S,y,b,L),1),a(ot),s(cr),v.start()}function m(){a(ze),l&&l(),s(Ve)}function S(b,M,A,C){var L=c(),y=b+(M-b)*P(C),I=(y-L)*f;g(L+I),h&&!A&&d()&&(f*=Mi,re(I)<Oi&&E(u(d(!0)),_i,!1,l,!0))}function N(){v&&v.cancel()}function _(){v&&!v.isPaused()&&(N(),m())}function P(b){var M=r.easingFunc;return M?M(b):1-Math.pow(1-b,4)}return{mount:p,destroy:N,scroll:E,cancel:_}}var ke={passive:!1,capture:!0};function Pi(e,t,r){var n=W(e),i=n.on,s=n.emit,a=n.bind,o=n.unbind,c=e.state,u=t.Move,d=t.Scroll,g=t.Controller,h=t.Elements.track,v=t.Media.reduce,l=t.Direction,f=l.resolve,p=l.orient,E=u.getPosition,m=u.exceededLimit,S,N,_,P,b,M=!1,A,C,L;function y(){a(h,Kt,jt,ke),a(h,Yt,jt,ke),a(h,yn,k,ke),a(h,"click",q,{capture:!0}),a(h,"dragstart",ve),i([we,ne],I)}function I(){var O=r.drag;pr(!O),P=O==="free"}function k(O){if(A=!1,!C){var B=ee(O);Y(O.target)&&(B||!O.button)&&(g.isBusy()?ve(O,!0):(L=B?h:window,b=c.is([Ue,ot]),_=null,a(L,Kt,G,ke),a(L,Yt,K,ke),u.cancel(),d.cancel(),F(O)))}}function G(O){if(c.is(Lt)||(c.set(Lt),s(Vn)),O.cancelable)if(b){u.translate(S+te(Q(O)));var B=Ee(O)>Br,Ce=M!==(M=m());(B||Ce)&&F(O),A=!0,s(Bn),ve(O)}else R(O)&&(b=D(O),ve(O))}function K(O){c.is(Lt)&&(c.set(ze),s(qn)),b&&(w(O),ve(O)),o(L,Kt,G),o(L,Yt,K),b=!1}function q(O){!C&&A&&ve(O,!0)}function F(O){_=N,N=O,S=E()}function w(O){var B=z(O),Ce=J(B),qe=r.rewind&&r.rewindByDrag;v(!1),P?g.scroll(Ce,0,r.snap):e.is(gt)?g.go(p(Zt(B))<0?qe?"<":"-":qe?">":"+"):e.is($e)&&M&&qe?g.go(m(!0)?">":"<"):g.go(g.toDest(Ce),!0),v(!0)}function D(O){var B=r.dragMinThreshold,Ce=Je(B),qe=Ce&&B.mouse||0,Cn=(Ce?B.touch:+B)||10;return re(Q(O))>(ee(O)?Cn:qe)}function R(O){return re(Q(O))>re(Q(O,!0))}function z(O){if(e.is(Be)||!M){var B=Ee(O);if(B&&B<Br)return Q(O)/B}return 0}function J(O){return E()+Zt(O)*ye(re(O)*(r.flickPower||600),P?1/0:t.Layout.listSize()*(r.flickMaxPages||1))}function Q(O,B){return U(O,B)-U(T(O),B)}function Ee(O){return Xt(O)-Xt(T(O))}function T(O){return N===O&&_||N}function U(O,B){return(ee(O)?O.changedTouches[0]:O)["page"+f(B?"Y":"X")]}function te(O){return O/(M&&e.is($e)?vi:1)}function Y(O){var B=r.noDrag;return!et(O,"."+pn+", ."+kt)&&(!B||!et(O,B))}function ee(O){return typeof TouchEvent<"u"&&O instanceof TouchEvent}function An(){return b}function pr(O){C=O}return{mount:y,disable:pr,isDragging:An}}var Hi={Spacebar:" ",Right:Nt,Left:wt,Up:un,Down:fn};function gr(e){return e=Le(e)?e:e.key,Hi[e]||e}var qr="keydown";function ki(e,t,r){var n=W(e),i=n.on,s=n.bind,a=n.unbind,o=e.root,c=t.Direction.resolve,u,d;function g(){h(),i(ne,v),i(ne,h),i(Te,f)}function h(){var E=r.keyboard;E&&(u=E==="global"?window:o,s(u,qr,p))}function v(){a(u,qr)}function l(E){d=E}function f(){var E=d;d=!0,Wr(function(){d=E})}function p(E){if(!d){var m=gr(E);m===c(wt)?e.go("<"):m===c(Nt)&&e.go(">")}}return{mount:g,destroy:v,disable:l}}var Qe=ar+"-lazy",Dt=Qe+"-srcset",Fi="["+Qe+"], ["+Dt+"]";function xi(e,t,r){var n=W(e),i=n.on,s=n.off,a=n.bind,o=n.emit,c=r.lazyLoad==="sequential",u=[vt,Ve],d=[];function g(){r.lazyLoad&&(h(),i(X,h))}function h(){pe(d),v(),c?E():(s(u),i(u,l),l())}function v(){t.Slides.forEach(function(m){sr(m.slide,Fi).forEach(function(S){var N=le(S,Qe),_=le(S,Dt);if(N!==S.src||_!==S.srcset){var P=r.classes.spinner,b=S.parentElement,M=ft(b,"."+P)||xe("span",P,b);d.push([S,m,M]),S.src||nt(S,"none")}})})}function l(){d=d.filter(function(m){var S=r.perPage*((r.preloadPages||1)+1)-1;return m[1].isWithin(e.index,S)?f(m):!0}),d.length||s(u)}function f(m){var S=m[0];ue(m[1].slide,er),a(S,"load error",V(p,m)),x(S,"src",le(S,Qe)),x(S,"srcset",le(S,Dt)),fe(S,Qe),fe(S,Dt)}function p(m,S){var N=m[0],_=m[1];ge(_.slide,er),S.type!=="error"&&(Me(m[2]),nt(N,""),o(on,N,_),o(st)),c&&E()}function E(){d.length&&f(d.shift())}return{mount:g,destroy:V(pe,d),check:l}}function Gi(e,t,r){var n=W(e),i=n.on,s=n.emit,a=n.bind,o=t.Slides,c=t.Elements,u=t.Controller,d=u.hasFocus,g=u.getIndex,h=u.go,v=t.Direction.resolve,l=c.pagination,f=[],p,E;function m(){S(),i([ne,X,Ot],m);var C=r.pagination;l&&nt(l,C?"":"none"),C&&(i([Te,cr,Ve],A),N(),A(),s(jn,{list:p,items:f},M(e.index)))}function S(){p&&(Me(l?De(p.children):p),ge(p,E),pe(f),p=null),n.destroy()}function N(){var C=e.length,L=r.classes,y=r.i18n,I=r.perPage,k=d()?u.getEnd()+1:it(C/I);p=l||xe("ul",L.pagination,c.track.parentElement),ue(p,E=Ft+"--"+b()),x(p,me,"tablist"),x(p,se,y.select),x(p,fr,b()===Pt?"vertical":"");for(var G=0;G<k;G++){var K=xe("li",null,p),q=xe("button",{class:L.page,type:"button"},K),F=o.getIn(G).map(function(D){return D.slide.id}),w=!d()&&I>1?y.pageX:y.slideX;a(q,"click",V(_,G)),r.paginationKeyboard&&a(q,"keydown",V(P,G)),x(K,me,"presentation"),x(q,me,"tab"),x(q,ht,F.join(" ")),x(q,se,Qt(w,G+1)),x(q,Ge,-1),f.push({li:K,button:q,page:G})}}function _(C){h(">"+C,!0)}function P(C,L){var y=f.length,I=gr(L),k=b(),G=-1;I===v(Nt,!1,k)?G=++C%y:I===v(wt,!1,k)?G=(--C+y)%y:I==="Home"?G=0:I==="End"&&(G=y-1);var K=f[G];K&&(Xr(K.button),h(">"+G),ve(L,!0))}function b(){return r.paginationDirection||r.direction}function M(C){return f[u.toPage(C)]}function A(){var C=M(g(!0)),L=M(g());if(C){var y=C.button;ge(y,Re),fe(y,Gr),x(y,Ge,-1)}if(L){var I=L.button;ue(I,Re),x(I,Gr,!0),x(I,Ge,"")}s(Xn,{list:p,items:f},C,L)}return{items:f,mount:m,destroy:S,getAt:M,update:A}}var zi=[" ","Enter"];function $i(e,t,r){var n=r.isNavigation,i=r.slideFocus,s=[];function a(){e.splides.forEach(function(l){l.isParent||(u(e,l.splide),u(l.splide,e))}),n&&d()}function o(){s.forEach(function(l){l.destroy()}),pe(s)}function c(){o(),a()}function u(l,f){var p=W(l);p.on(Te,function(E,m,S){f.go(f.is(Be)?S:E)}),s.push(p)}function d(){var l=W(e),f=l.on;f(tn,h),f(ln,v),f([we,ne],g),s.push(l),l.emit(nn,e.splides)}function g(){x(t.Elements.list,fr,r.direction===Pt?"vertical":"")}function h(l){e.go(l.index)}function v(l,f){nr(zi,gr(f))&&(h(l),ve(f))}return{setup:V(t.Media.set,{slideFocus:lt(i)?n:i},!0),mount:a,destroy:o,remount:c}}function Ui(e,t,r){var n=W(e),i=n.bind,s=0;function a(){r.wheel&&i(t.Elements.track,"wheel",o,ke)}function o(u){if(u.cancelable){var d=u.deltaY,g=d<0,h=Xt(u),v=r.wheelMinThreshold||0,l=r.wheelSleep||0;re(d)>v&&h-s>l&&(e.go(g?"<":">"),s=h),c(g)&&ve(u)}}function c(u){return!r.releaseWheel||e.state.is(Ue)||t.Controller.getAdjacent(u)!==-1}return{mount:a}}var Vi=90;function Bi(e,t,r){var n=W(e),i=n.on,s=t.Elements.track,a=r.live&&!r.isNavigation,o=xe("span",li),c=Mt(Vi,V(d,!1));function u(){a&&(h(!t.Autoplay.isPaused()),x(s,Ur,!0),o.textContent="\u2026",i(sn,V(h,!0)),i(an,V(h,!1)),i([vt,Ve],V(d,!0)))}function d(v){x(s,$r,v),v?(ut(s,o),c.start()):(Me(o),c.cancel())}function g(){fe(s,[zr,Ur,$r]),Me(o)}function h(v){a&&x(s,zr,v?"off":"polite")}return{mount:u,disable:h,destroy:g}}var qi=Object.freeze({__proto__:null,Media:ei,Direction:ti,Elements:hi,Slides:mi,Layout:pi,Clones:Si,Move:bi,Controller:Li,Arrows:Di,Autoplay:Ci,Cover:Ii,Scroll:Ni,Drag:Pi,Keyboard:ki,LazyLoad:xi,Pagination:Gi,Sync:$i,Wheel:Ui,Live:Bi}),Wi={prev:"Previous slide",next:"Next slide",first:"Go to first slide",last:"Go to last slide",slideX:"Go to slide %s",pageX:"Go to page %s",play:"Start autoplay",pause:"Pause autoplay",carousel:"carousel",slide:"slide",select:"Select a slide to show",slideLabel:"%s of %s"},Ki={type:"slide",role:"region",speed:400,perPage:1,cloneStatus:!0,arrows:!0,pagination:!0,paginationKeyboard:!0,interval:5e3,pauseOnHover:!0,pauseOnFocus:!0,resetProgress:!0,easing:"cubic-bezier(0.25, 1, 0.5, 1)",drag:!0,direction:"ltr",trimSpace:!0,focusableNodes:"a, button, textarea, input, select, iframe",live:!0,classes:fi,i18n:Wi,reducedMotion:{speed:0,rewindSpeed:0,autoplay:"pause"}};function Yi(e,t,r){var n=t.Slides;function i(){W(e).on([we,X],s)}function s(){n.forEach(function(o){o.style("transform","translateX(-"+100*o.index+"%)")})}function a(o,c){n.style("transition","opacity "+r.speed+"ms "+r.easing),Wr(c)}return{mount:i,start:a,cancel:jt}}function ji(e,t,r){var n=t.Move,i=t.Controller,s=t.Scroll,a=t.Elements.list,o=V(oe,a,"transition"),c;function u(){W(e).bind(a,"transitionend",function(v){v.target===a&&c&&(g(),c())})}function d(v,l){var f=n.toPosition(v,!0),p=n.getPosition(),E=h(v);re(f-p)>=1&&E>=1?r.useScroll?s.scroll(f,E,!1,l):(o("transform "+E+"ms "+r.easing),n.translate(f,!0),c=l):(n.jump(v),l())}function g(){o(""),s.cancel()}function h(v){var l=r.rewindSpeed;if(e.is($e)&&l){var f=i.getIndex(!0),p=i.getEnd();if(f===0&&v>=p||f>=p&&v===0)return l}return r.speed}return{mount:u,start:d,cancel:g}}var Xi=function(){function e(r,n){this.event=W(),this.Components={},this.state=Qn(Fe),this.splides=[],this._o={},this._E={};var i=Le(r)?Qr(document,r):r;Ze(i,i+" is invalid."),this.root=i,n=be({label:le(i,se)||"",labelledby:le(i,ur)||""},Ki,e.defaults,n||{});try{be(n,JSON.parse(le(i,ar)))}catch{Ze(!1,"Invalid JSON")}this._o=Object.create(be({},n))}var t=e.prototype;return t.mount=function(n,i){var s=this,a=this.state,o=this.Components;Ze(a.is([Fe,At]),"Already mounted!"),a.set(Fe),this._C=o,this._T=i||this._T||(this.is(gt)?Yi:ji),this._E=n||this._E;var c=rt({},qi,this._E,{Transition:this._T});return _e(c,function(u,d){var g=u(s,o,s._o);o[d]=g,g.setup&&g.setup()}),_e(o,function(u){u.mount&&u.mount()}),this.emit(we),ue(this.root,ci),a.set(ze),this.emit(Fr),this},t.sync=function(n){return this.splides.push({splide:n}),n.splides.push({splide:this,isParent:!0}),this.state.is(ze)&&(this._C.Sync.remount(),n.Components.Sync.remount()),this},t.go=function(n){return this._C.Controller.go(n),this},t.on=function(n,i){return this.event.on(n,i),this},t.off=function(n){return this.event.off(n),this},t.emit=function(n){var i;return(i=this.event).emit.apply(i,[n].concat(De(arguments,1))),this},t.add=function(n,i){return this._C.Slides.add(n,i),this},t.remove=function(n){return this._C.Slides.remove(n),this},t.is=function(n){return this._o.type===n},t.refresh=function(){return this.emit(X),this},t.destroy=function(n){n===void 0&&(n=!0);var i=this.event,s=this.state;return s.is(Fe)?W(this).on(Fr,this.destroy.bind(this,n)):(_e(this._C,function(a){a.destroy&&a.destroy(n)},!0),i.emit(rn),i.destroy(),n&&pe(this.splides),s.set(At)),this},Hn(e,[{key:"options",get:function(){return this._o},set:function(n){this._C.Media.set(n,!0,!0)}},{key:"length",get:function(){return this._C.Slides.getLength(!0)}},{key:"index",get:function(){return this._C.Controller.getIndex()}}]),e}(),mt=Xi;mt.defaults={};mt.STATES=Fn;var Tn='[custom="images-slider"]',Zi='[custom="offers-slider"]';function Qi(){Array.isArray(window.offersSplides)&&(window.offersSplides.forEach(t=>{try{t.destroy()}catch{}}),window.offersSplides=[]);let e=document.querySelector(Tn);if(e&&e.splide)try{e.splide.destroy()}catch{}}function Ji(){let e=document.querySelector(Tn);e&&new mt(e,{type:"loop",pagination:!0,speed:600,easing:"ease",gap:"0rem",perPage:1,arrows:!1,destroy:!0,breakpoints:{766:{destroy:!1}}}).mount()}function es(e){let t=e.querySelector(".splide__list");return t&&t.children.length>0?!0:e.querySelectorAll(".splide__slide").length>0}function ts(){let e=document.querySelectorAll(Zi);window.offersSplides=[],e.forEach(t=>{if(!es(t))return;let r=new mt(t,{autoWidth:!0,type:"loop",gap:"1.25rem",speed:600,easing:"ease",pagination:!1,breakpoints:{766:{gap:"0.625rem"}}}),n=t.querySelector(".splide__progress-bar");r.on("mounted move",()=>{let i=r.Components.Controller.getEnd()+1,s=i>0?Math.min((r.index+1)/i,1):0;n&&(n.style.width=`${100*s}%`)}),r.on("mounted",()=>{let i=r.root.querySelector(".splide__progress"),{length:s}=r;i&&s>0&&i.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation();let{width:o,left:c}=i.getBoundingClientRect();if(o<=0)return;let u=a.clientX-c,d=Math.min(s-1,Math.max(0,Math.floor(u/o*s)));r.go(d)})}),r.mount(),window.offersSplides||(window.offersSplides=[]),window.offersSplides.push(r)})}function mr(){try{Qi(),Ji(),ts()}catch{}}window.fsAttributes=window.fsAttributes||[];function rs(){let e=window.location.pathname.replace(/\/$/,""),t=e.match(/^\/[a-z]{2}\/offers\/(.+)$/i);if(t)return t[1]?.trim()||null;let r=e.match(/^\/offers\/(.+)$/);return r&&r[1]?.trim()||null}function Z(e,t){e&&(e.style.display=t?"":"none")}function ns(e,t,r){let n=[];for(let i of[e,t,r]){if(!i)continue;let s=i.closest(H.offerOthersTabPane);n.push({listEl:i,pane:s,rendered:!1})}return n}function is(e){let t=e.querySelector(H.offerOthersTabsMenu);if(!t)return null;let r=[...e.querySelectorAll(H.offerOthersTabPane)],i=[...t.querySelectorAll(H.offerOthersTabLink)].findIndex(s=>s.classList.contains("w--current")||s.getAttribute("aria-selected")==="true");return i>=0&&r[i]?r[i]:r[0]??null}function Gt(e,t,r){let n=is(e);if(!n)return;let i=!1;for(let s of t)s.pane===n&&(s.rendered?(Z(r,!1),Z(s.listEl,!0),i=!0):(Z(r,!0),Z(s.listEl,!1)));for(let s of t)!s.pane&&s.rendered&&Z(s.listEl,!0);i&&Dn()}function ss(e,t,r){let n=e.querySelector(H.offerOthersTabsMenu);if(!n)return;let i=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>Gt(e,t,r))})};n.addEventListener("click",s=>{let a=s.target.closest(H.offerOthersTabLink);!a||!n.contains(a)||i()}),n.querySelectorAll(H.offerOthersTabLink).forEach(s=>{new MutationObserver(()=>i()).observe(s,{attributes:!0,attributeFilter:["class","aria-selected"]})}),Gt(e,t,r)}var xt=null;function Dn(){xt&&clearTimeout(xt),xt=setTimeout(()=>{xt=null,requestAnimationFrame(()=>mr())},80)}async function as(){let e=rs();if(!e)return;let t=document.querySelector(H.loadingSpinner),r=document.querySelector(H.offerSlugDetail),n=document.querySelector(H.offersMoreWrapper),i=!1;Z(t,!0),Z(r,!1),Z(n,!1);try{let s=document.querySelector(H.offerSlugDetail);s&&await Mr(e,s),Z(r,!0);let a=document.querySelector(H.offerSlugOthersList),o=document.querySelector(H.offerSlugOthersList2),c=document.querySelector(H.offerSlugOthersList3),u=ns(a,o,c),d=!!n?.querySelector(H.offerOthersTabsMenu)&&u.length>0&&u.every(l=>l.pane!==null);d&&Z(t,!1);let g=new Map;for(let l of u)g.set(l.listEl,l);let h=l=>{if(!l)return;let f=g.get(l);f&&(f.rendered=!0),d&&n&&Gt(n,u,t)},v=async(l,f)=>{if(l)try{await f()}finally{h(l)}};if(d&&n){i=!0;for(let f of u)Z(f.listEl,!1);Z(n,!0),ss(n,u,t);let l=[];if(a){let f=Ie(a);l.push(v(a,()=>f?f.getGroupOtherOffers(e,Ye["R\xC9SERVEZ T\xD4T"]):Promise.resolve()))}if(o){let f=Ie(o);l.push(v(o,()=>f?f.getGroupOtherOffers(e,Ye["DERNI\xC8RE MINUTE"]):Promise.resolve()))}if(c){let f=Ie(c);l.push(v(c,()=>f?f.getGroupOtherThemedOffers(e):Promise.resolve()))}Promise.all(l).catch(()=>{}).finally(()=>{n&&Gt(n,u,t),Dn()})}else{let l=[];if(a){let f=Ie(a);f&&l.push(f.getGroupOtherOffers(e,Ye["R\xC9SERVEZ T\xD4T"]))}if(o){let f=Ie(o);f&&l.push(f.getGroupOtherOffers(e,Ye["DERNI\xC8RE MINUTE"]))}if(c){let f=Ie(c);f&&l.push(f.getGroupOtherThemedOffers(e))}l.length>0&&await Promise.all(l),Z(n,!0),requestAnimationFrame(()=>{mr()})}}catch{Z(t,!1),Z(r,!0),Z(n,!0)}finally{i||Z(t,!1)}}window.loadFromServer=()=>{let e=()=>{as()};document.readyState==="complete"?setTimeout(e,0):window.addEventListener("load",()=>setTimeout(e,0))};window.addEventListener("load",()=>{window.loadFromServer()});})();
|
|
1
|
+
"use strict";(()=>{var _n=Object.defineProperty;var Mn=(e,t,r)=>t in e?_n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Se=(e,t,r)=>(Mn(e,typeof t!="symbol"?t+"":t,r),r);var $="data",H={startingPriceList:`[${$}=starting-price-list]`,price:`[${$}=price]`,discount:`[${$}=discount]`,discountContainer:`[${$}=discount-container]`,currency:`[${$}=currency]`,beHid:`[${$}-be-hid]`,destination:`[${$}=destination]`,offersList:`[${$}=offers-list]`,offerSlugDetail:`[${$}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${$}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${$}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${$}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${$}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${$}=offers-list-container]`,listItem:`[${$}=list-item]`,image:`[${$}=image]`,name:`[${$}=name]`,description:`[${$}=description]`,hotelName:`[${$}=hotel-name]`,hotelLink:`[${$}=hotel-link]`,hotelStartingPriceContainer:`[${$}=hotel-starting-price-container]`,moreDetails:`[${$}=more-details]`,offersPopup:`[${$}=offers-popup]`,offersPopupClose:`[${$}=close-btn]`,hotelReserveLink:`[${$}=hotel-reserve-link]`,hotelVillaReserveLink:`[${$}=hotel-villa-reserve-link]`,hotelURLS:`[${$}=hotel-urls]`,languageDropdown:`[${$}=language-dropdown]`,selectedLanguage:`[${$}=selected-language]`,loadingSpinner:`[${$}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:e=>`[${$}-be-hid=${e}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var We={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},Sr={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},pt={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},wn={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},Ke={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},br={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},Lr={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},Rn={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},Ne={gpgos12767:{destination:We,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:We,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:We,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:We,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:We,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:Sr,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:Sr,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:pt,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:pt,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:pt,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:pt,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:wn,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:Ke,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:Ke,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:Ke,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:Ke,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:Ke,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:br,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:br,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:Lr,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:Lr,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:Rn,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},yr={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},Tr={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"},Ye={"DERNI\xC8RE MINUTE":"735fe5e0858671cf3a5c14cbcc2470fe","R\xC9SERVEZ T\xD4T":"c5abb23caf056891f3902ff42ae2f9e0"};var je="https://deshotelsetdesiles.ccordier.workers.dev/v2/",Dr="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",Et="FR",Ar="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var zt=async()=>new Promise(e=>{geoip2.country(t=>{e(t.country.iso_code)},()=>{e(Et)})});var $t=e=>{let t="?";for(let[r,n]of Object.entries(e))n&&(t+=`${r}=${n}&`);return t};var Xe=class{async getGroupOffersData(t){let r=je+"groupOffers"+$t(t),i=await(await fetch(r)).json();return i.error||!i.data?null:i}async getSingleHotelOffersData(t){let r=je+"offers"+$t(t),i=await(await fetch(r)).json();return i.error||!i.data?null:i}async getCMSOffers(){let t=je+"cmsOffers",n=await(await fetch(t)).json();return n.items?n:null}async getCountries(){let t=je+"cmsCountries",n=await(await fetch(t)).json();return n.items?n:null}};var Cr=()=>{let e=Ir();if(!e){let t=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(t)}window.Weglot.on("languageChanged",()=>{if(e)window.location.reload();else{let t=window.Weglot.getCurrentLang();localStorage.setItem("wglang",t),window.loadFromServer&&window.loadFromServer()}})},Ir=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",Ut=()=>{let e=Ce();return Tr[e]},Ce=()=>{if(!Ir())return localStorage.getItem("wglang")||"fr";try{let e=window.Weglot.getCurrentLang();if(e)return e}catch(e){return console.error("Error getting language",e),"fr"}return"fr"},_r=()=>!window.location.hostname.includes("webflow.io");function Vt(e){if(!_r())return`/offers/${e}`;let t=Ce();return!t||t==="fr"?`/offers/${e}`:`/${t}/offers/${e}`}function Pn(e){if(!e||typeof e!="object")return null;let t=e;return t.to_words?.[0]?.w||t.words?.[0]?.w||null}async function Mr(e){let t=Vt(e);if(!_r())return t;let r=Ce();if(!r||r==="fr")return t;try{let n=`offers/${e}`,i=await window.Weglot.translate({words:[{t:1,w:n}],languageTo:r}),a=Pn(i);if(!a)return t;let s=a.replace(/^\/+/,"");return s?s.startsWith(`${r}/`)?`/${s}`:`/${r}/${s}`:t}catch{return t}}var Bt=()=>{let e={};return Object.entries(Ne).forEach(([t,r])=>{e[r.cmsId]=t}),e},j=(e,t)=>`${e.toLowerCase().trim()}-${t.toLowerCase().trim()}`,wr=(e,t,r)=>{let n=Ce().toUpperCase(),i=Ne[t].codeIPlanet.toUpperCase(),a=`${Dr}?Lang=${n}¤cy=${e.toUpperCase()}&HotelCode=${i}`,s=Or("_ga"),o=Ar,c=Or("_gcl_au");return a+=`&_ga=${s}&_gl=${o}&_gcl_au=${c}`,r&&(a=`${a}&HotelPromo=${r}`),a},Or=e=>{let t=document.cookie.match(new RegExp("(^| )"+e+"=([^;]+)"));return t?t[2]:null};var qt=(e,t,r,n)=>{let{quotation:i,rate:{distribution:a}}=t,{pricePerNight:s,currency:o,plainBookLink:c}=i,{accessCode:u}=a||{},d="";u&&u.length>0&&([d]=u),Nn(e,s,o);let g=e.querySelector(H.hotelReserveLink);g&&g.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),window.open(c,"_blank")});let h=e.querySelector(H.hotelVillaReserveLink);if(h&&h.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),window.open(wr(o,r,d),"_blank")}),n){let{fieldData:{"discount-percentage":v}}=n,l=e.querySelector(H.discount);l&&v&&(l.innerHTML=`-${v}%`);let f=e.querySelector(H.discountContainer);f&&!v&&(f.style.display="none")}},Nn=(e,t,r)=>{let n=e.querySelector(H.price);n&&(n.innerHTML=Math.floor(t).toString());let i=e.querySelector(H.currency);i&&(i.innerHTML=yr[r])};var St=class{constructor(t,r){this.listInstance=t;this.itemTemplateElement=r;Se(this,"loadingSpinner");Se(this,"cmsFilterEmptyState");Se(this,"offerLookup",{});Se(this,"apiClient",new Xe);Se(this,"countryCode");Se(this,"availableCountries",{});Se(this,"countryCodeFilter",t=>{let{fieldData:r}=t;return!r["supported-countries"]||r["supported-countries"].length===0?!0:r["supported-countries"].map(i=>this.availableCountries[i]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(H.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),t.clearItems(),Cr(),this.loadingSpinner=document.querySelector(H.loadingSpinner),this.countryCode=Et}async getGroupOffers(t){let{clearItems:r=!0,filter:n}=t||{};r&&this.listInstance.clearItems();let i=await this.apiClient.getCMSOffers();if(!i)return;let a=await this.apiClient.getCountries();if(!a)return;a.items.forEach(l=>{this.availableCountries[l.id]=l.fieldData.title?.trim()}),this.countryCode=await zt();let s=i.items.filter(n).filter(this.countryCodeFilter),o=this.generateHotelIds(s),c=this.generateHotelIds(s).join(","),u=o.length===1;u&&(c=[c,c].join(","));let{offerMetaData:d}=this.generateOfferData(s),g=Ut(),h=await this.apiClient.getGroupOffersData({hids:c,locale:g});if(!h||h.error||!h.data){this.hideSpinnerAndShowFilter();return}u&&(h.data=[h.data[0]]);let v=this.getAllOffers(h,d);this.addHotelToCollection(v),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(t,r=!1){let n=i=>{let{isArchived:a,isDraft:s,fieldData:o}=i;return a||s?!1:r?(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot"):o.category===t};await this.getGroupOffers({filter:n})}async getGroupThemeOffers(t){let r=n=>{let{isArchived:i,isDraft:a,fieldData:s}=n;return i||a||!s.thematiques?!1:s.thematiques.includes(t)};await this.getGroupOffers({filter:r})}async getGroupOtherThemedOffers(t){let r=n=>{let{isArchived:i,isDraft:a,fieldData:s}=n;return i||a||s.slug===t?!1:Array.isArray(s.thematiques)&&s.thematiques.length>0};await this.getGroupOffers({filter:r})}async getGroupSlugOffers(t){let r=n=>{let{isArchived:i,isDraft:a,fieldData:s}=n;return i||a?!1:s.slug===t};await this.getGroupOffers({filter:r})}async getGroupOtherOffers(t,r){let n=i=>{let{isArchived:a,isDraft:s,fieldData:o}=i;return a||s||o.slug===t?!1:r?o.category===r:(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot")};await this.getGroupOffers({filter:n})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(t){let r=[],n=Bt();return t.forEach(i=>{let{fieldData:{"hotel-villa":a}}=i;r.push(n[a])}),Array.from(new Set(r))}getAllOffers(t,r){let n=[];return t.data.forEach(i=>{let{prop:{hid:a},rates:s}=i;s.forEach(o=>{let{name:c,title:u}=o.rate;(r.includes(j(a,c))||r.includes(j(a,u)))&&n.push({...i,rates:[o]})})}),n.sort((i,a)=>{let s=this.offerLookup[j(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[j(i.prop.hid,i.rates[0].rate.name)],o=this.offerLookup[j(a.prop.hid,a.rates[0].rate.title)]||this.offerLookup[j(a.prop.hid,a.rates[0].rate.name)],c=Number(s.fieldData.order)||0,u=Number(o.fieldData.order)||0;return c-u}),n}generateOfferData(t){let r=[];return t.forEach(n=>{let{fieldData:{"hotel-or-property-api-id":i,"offer-api-name":a}}=n,s=j(i,a);r.push(s),this.offerLookup[s]=n}),{offerMetaData:r}}addHotelToCollection(t){for(let{prop:r,rates:n}of t){let i=n.map(a=>this.createItem(r,a,this.itemTemplateElement));this.listInstance.addItems(i)}}createItem(t,r,n){let{rate:i}=r,{hid:a,title:s,property:o}=t,{image:c,title:u,name:d}=i,g=this.offerLookup[j(a||o,u)]||this.offerLookup[j(a||o,d)],h=n.cloneNode(!0),v=Ne[a||o];if(!v)return h;let{destination:l,slug:f}=v;this.bindOffersMetaData(h,{destination:l,image:c,hotelName:s,title:u,slug:f}),qt(h,r,a,g);let E=this.getOffersCmsSlug(a,o,d);if(E){let S=h.querySelector(H.moreDetails),m=S instanceof HTMLAnchorElement?S:S?.querySelector("a")||S?.closest("a");m&&(m.href=Vt(E),Mr(E).then(p=>{m.href=p}))}return h.style.display="flex",h}getOffersCmsSlug(t,r,n){return this.offerLookup[j(t||r,n)]?.fieldData.slug}bindOffersMetaData(t,{destination:r,image:n,hotelName:i,title:a,slug:s,description:o}){let c=t.querySelector(H.destination),u=t.querySelector(H.image),d=t.querySelector(H.hotelName),g=t.querySelector(H.name),h=t.querySelector(H.description),v=t.querySelector(H.hotelLink),l=Ce();c&&(c.textContent=r[l]),u&&(u.src=n?.url),d&&(d.innerHTML=i),g&&(g.innerHTML=a),h&&o&&(h.innerHTML=o),v&&s&&v.addEventListener("click",()=>{window.location.href=s})}};function Hn(e,{destination:t,image:r,hotelName:n,title:i,slug:a,description:s}){let o=e.querySelectorAll(H.destination),c=e.querySelectorAll(H.hotelName),u=e.querySelectorAll(H.name),d=e.querySelectorAll(H.description),g=e.querySelectorAll(H.hotelLink),h=Ce();o&&o.forEach(v=>{v.textContent=t[h]}),r?.url&&e.querySelectorAll(H.image).forEach(l=>{l.src=r.url}),c&&c.forEach(v=>{v.innerHTML=n}),u&&u.forEach(v=>{v.innerHTML=i}),d&&s&&d.forEach(v=>{v.innerHTML=s}),g&&a&&g.forEach(v=>{v.addEventListener("click",l=>{l.preventDefault(),window.location.href=a})})}async function Rr(e,t){let r=new Xe,n=await r.getCMSOffers();if(!n)return;let i=await r.getCountries();if(!i)return;let a={};i.items.forEach(A=>{a[A.id]=A.fieldData.title?.trim()});let s=await zt(),o=A=>{let{fieldData:O}=A;return!O["supported-countries"]||O["supported-countries"].length===0?!0:O["supported-countries"].map(y=>a[y]).includes(s)},c=A=>{let{isArchived:O,isDraft:L,fieldData:y}=A;return O||L?!1:y.slug===e},u=n.items.filter(c).filter(o);if(u.length===0)return;let d=Bt(),g=Array.from(new Set(u.map(A=>d[A.fieldData["hotel-villa"]]).filter(A=>A!=null)));if(g.length===0)return;let h=g.join(",");g.length===1&&(h=[h,h].join(","));let v={},l=[];u.forEach(A=>{let{fieldData:{"hotel-or-property-api-id":O,"offer-api-name":L}}=A,y=j(O,L);l.push(y),v[y]=A});let f=Ut(),E=await r.getGroupOffersData({hids:h,locale:f});if(!E?.data||E.error)return;let S=g.length===1?[E.data[0]]:E.data,m=[];S.forEach(A=>{let{prop:{hid:O},rates:L}=A;L.forEach(y=>{let{name:C,title:k}=y.rate;(l.includes(j(O,C))||l.includes(j(O,k)))&&m.push({...A,rates:[y]})})}),m.sort((A,O)=>{let L=v[j(A.prop.hid,A.rates[0].rate.title)]||v[j(A.prop.hid,A.rates[0].rate.name)],y=v[j(O.prop.hid,O.rates[0].rate.title)]||v[j(O.prop.hid,O.rates[0].rate.name)];return(Number(L?.fieldData.order)||0)-(Number(y?.fieldData.order)||0)});let p=m[0];if(!p?.rates?.[0])return;let{prop:P,rates:_}=p,N=P.hid||P.property,b=_[0],M=v[j(N,b.rate.title)]||v[j(N,b.rate.name)];try{let A=Ne[N];A&&Hn(t,{destination:A.destination,image:b.rate.image,hotelName:P.title,title:b.rate.title,slug:A.slug,description:b.rate.html_description}),qt(t,b,N,M)}catch{}}function Ie(e){let t=e.querySelector(H.listItem);return!t&&(e.matches(H.offerSlugOthersList)||e.matches(H.offerSlugOthersList2)||e.matches(H.offerSlugOthersList3))&&(t=e.querySelector(H.offerSlugOthersListItem)),t?kn({items:[{element:t}],clearItems(n=!0){n&&(e.innerHTML="")},addItems(n){for(let i of n)e.appendChild(i);return Promise.resolve()}}):null}var kn=e=>{let[t]=e.items;if(!t)throw new Error("No items found in the list instance");let r=t.element;return new St(e,r)};function Pr(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function Fn(e,t,r){return t&&Pr(e.prototype,t),r&&Pr(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var Nr="(prefers-reduced-motion: reduce)",Fe=1,xn=2,ze=3,Ue=4,ot=5,Lt=6,At=7,Gn={CREATED:Fe,MOUNTED:xn,IDLE:ze,MOVING:Ue,SCROLLING:ot,DRAGGING:Lt,DESTROYED:At};function pe(e){e.length=0}function De(e,t,r){return Array.prototype.slice.call(e,t,r)}function V(e){return e.bind.apply(e,[null].concat(De(arguments,1)))}var Yr=setTimeout,Xt=function(){};function Hr(e){return requestAnimationFrame(e)}function _t(e,t){return typeof t===e}function Je(e){return!nr(e)&&_t("object",e)}var rr=Array.isArray,jr=V(_t,"function"),Le=V(_t,"string"),lt=V(_t,"undefined");function nr(e){return e===null}function Xr(e){try{return e instanceof(e.ownerDocument.defaultView||window).HTMLElement}catch{return!1}}function ct(e){return rr(e)?e:[e]}function ae(e,t){ct(e).forEach(t)}function ir(e,t){return e.indexOf(t)>-1}function yt(e,t){return e.push.apply(e,ct(t)),e}function he(e,t,r){e&&ae(t,function(n){n&&e.classList[r?"add":"remove"](n)})}function ue(e,t){he(e,Le(t)?t.split(" "):t,!0)}function ut(e,t){ae(t,e.appendChild.bind(e))}function sr(e,t){ae(e,function(r){var n=(t||r).parentNode;n&&n.insertBefore(r,t)})}function et(e,t){return Xr(e)&&(e.msMatchesSelector||e.matches).call(e,t)}function Zr(e,t){var r=e?De(e.children):[];return t?r.filter(function(n){return et(n,t)}):r}function ft(e,t){return t?Zr(e,t)[0]:e.firstElementChild}var tt=Object.keys;function Me(e,t,r){return e&&(r?tt(e).reverse():tt(e)).forEach(function(n){n!=="__proto__"&&t(e[n],n)}),e}function rt(e){return De(arguments,1).forEach(function(t){Me(t,function(r,n){e[n]=t[n]})}),e}function be(e){return De(arguments,1).forEach(function(t){Me(t,function(r,n){rr(r)?e[n]=r.slice():Je(r)?e[n]=be({},Je(e[n])?e[n]:{},r):e[n]=r})}),e}function kr(e,t){ae(t||tt(e),function(r){delete e[r]})}function fe(e,t){ae(e,function(r){ae(t,function(n){r&&r.removeAttribute(n)})})}function x(e,t,r){Je(t)?Me(t,function(n,i){x(e,i,n)}):ae(e,function(n){nr(r)||r===""?fe(n,t):n.setAttribute(t,String(r))})}function xe(e,t,r){var n=document.createElement(e);return t&&(Le(t)?ue(n,t):x(n,t)),r&&ut(r,n),n}function oe(e,t,r){if(lt(r))return getComputedStyle(e)[t];nr(r)||(e.style[t]=""+r)}function nt(e,t){oe(e,"display",t)}function Qr(e){e.setActive&&e.setActive()||e.focus({preventScroll:!0})}function le(e,t){return e.getAttribute(t)}function Fr(e,t){return e&&e.classList.contains(t)}function ie(e){return e.getBoundingClientRect()}function we(e){ae(e,function(t){t&&t.parentNode&&t.parentNode.removeChild(t)})}function Jr(e){return ft(new DOMParser().parseFromString(e,"text/html").body)}function ve(e,t){e.preventDefault(),t&&(e.stopPropagation(),e.stopImmediatePropagation())}function en(e,t){return e&&e.querySelector(t)}function ar(e,t){return t?De(e.querySelectorAll(t)):[]}function ge(e,t){he(e,t,!1)}function Zt(e){return e.timeStamp}function _e(e){return Le(e)?e:e?e+"px":""}var dt="splide",or="data-"+dt;function Ze(e,t){if(!e)throw new Error("["+dt+"] "+(t||""))}var ye=Math.min,Ot=Math.max,Ct=Math.floor,it=Math.ceil,re=Math.abs;function tn(e,t,r){return re(e-t)<r}function Tt(e,t,r,n){var i=ye(t,r),a=Ot(t,r);return n?i<e&&e<a:i<=e&&e<=a}function He(e,t,r){var n=ye(t,r),i=Ot(t,r);return ye(Ot(n,e),i)}function Qt(e){return+(e>0)-+(e<0)}function Jt(e,t){return ae(t,function(r){e=e.replace("%s",""+r)}),e}function lr(e){return e<10?"0"+e:""+e}var xr={};function zn(e){return""+e+lr(xr[e]=(xr[e]||0)+1)}function rn(){var e=[];function t(s,o,c,u){i(s,o,function(d,g,h){var v="addEventListener"in d,l=v?d.removeEventListener.bind(d,g,c,u):d.removeListener.bind(d,c);v?d.addEventListener(g,c,u):d.addListener(c),e.push([d,g,h,c,l])})}function r(s,o,c){i(s,o,function(u,d,g){e=e.filter(function(h){return h[0]===u&&h[1]===d&&h[2]===g&&(!c||h[3]===c)?(h[4](),!1):!0})})}function n(s,o,c){var u,d=!0;return typeof CustomEvent=="function"?u=new CustomEvent(o,{bubbles:d,detail:c}):(u=document.createEvent("CustomEvent"),u.initCustomEvent(o,d,!1,c)),s.dispatchEvent(u),u}function i(s,o,c){ae(s,function(u){u&&ae(o,function(d){d.split(" ").forEach(function(g){var h=g.split(".");c(u,h[0],h[1])})})})}function a(){e.forEach(function(s){s[4]()}),pe(e)}return{bind:t,unbind:r,dispatch:n,destroy:a}}var Pe="mounted",Gr="ready",Te="move",vt="moved",nn="click",$n="active",Un="inactive",Vn="visible",Bn="hidden",X="refresh",ne="updated",st="resize",cr="resized",qn="drag",Wn="dragging",Kn="dragged",ur="scroll",Ve="scrolled",Yn="overflow",sn="destroy",jn="arrows:mounted",Xn="arrows:updated",Zn="pagination:mounted",Qn="pagination:updated",an="navigation:mounted",on="autoplay:play",Jn="autoplay:playing",ln="autoplay:pause",cn="lazyload:loaded",un="sk",fn="sh",It="ei";function W(e){var t=e?e.event.bus:document.createDocumentFragment(),r=rn();function n(a,s){r.bind(t,ct(a).join(" "),function(o){s.apply(s,rr(o.detail)?o.detail:[])})}function i(a){r.dispatch(t,a,De(arguments,1))}return e&&e.event.on(sn,r.destroy),rt(r,{bus:t,on:n,off:V(r.unbind,t),emit:i})}function Mt(e,t,r,n){var i=Date.now,a,s=0,o,c=!0,u=0;function d(){if(!c){if(s=e?ye((i()-a)/e,1):1,r&&r(s),s>=1&&(t(),a=i(),n&&++u>=n))return h();o=Hr(d)}}function g(S){S||l(),a=i()-(S?s*e:0),c=!1,o=Hr(d)}function h(){c=!0}function v(){a=i(),s=0,r&&r(s)}function l(){o&&cancelAnimationFrame(o),s=0,o=0,c=!0}function f(S){e=S}function E(){return c}return{start:g,rewind:v,pause:h,cancel:l,set:f,isPaused:E}}function ei(e){var t=e;function r(i){t=i}function n(i){return ir(ct(i),t)}return{set:r,is:n}}function ti(e,t){var r=Mt(t||0,e,null,1);return function(){r.isPaused()&&r.start()}}function ri(e,t,r){var n=e.state,i=r.breakpoints||{},a=r.reducedMotion||{},s=rn(),o=[];function c(){var l=r.mediaQuery==="min";tt(i).sort(function(f,E){return l?+f-+E:+E-+f}).forEach(function(f){d(i[f],"("+(l?"min":"max")+"-width:"+f+"px)")}),d(a,Nr),g()}function u(l){l&&s.destroy()}function d(l,f){var E=matchMedia(f);s.bind(E,"change",g),o.push([l,E])}function g(){var l=n.is(At),f=r.direction,E=o.reduce(function(S,m){return be(S,m[1].matches?m[0]:{})},{});kr(r),v(E),r.destroy?e.destroy(r.destroy==="completely"):l?(u(!0),e.mount()):f!==r.direction&&e.refresh()}function h(l){matchMedia(Nr).matches&&(l?be(r,a):kr(r,tt(a)))}function v(l,f,E){be(r,l),f&&be(Object.getPrototypeOf(r),l),(E||!n.is(Fe))&&e.emit(ne,r)}return{setup:c,destroy:u,reduce:h,set:v}}var wt="Arrow",Rt=wt+"Left",Pt=wt+"Right",dn=wt+"Up",vn=wt+"Down";var zr="rtl",Nt="ttb",Wt={width:["height"],left:["top","right"],right:["bottom","left"],x:["y"],X:["Y"],Y:["X"],ArrowLeft:[dn,Pt],ArrowRight:[vn,Rt]};function ni(e,t,r){function n(a,s,o){o=o||r.direction;var c=o===zr&&!s?1:o===Nt?0:-1;return Wt[a]&&Wt[a][c]||a.replace(/width|left|right/i,function(u,d){var g=Wt[u.toLowerCase()][c]||u;return d>0?g.charAt(0).toUpperCase()+g.slice(1):g})}function i(a){return a*(r.direction===zr?1:-1)}return{resolve:n,orient:i}}var me="role",Ge="tabindex",ii="disabled",ce="aria-",ht=ce+"controls",hn=ce+"current",$r=ce+"selected",se=ce+"label",fr=ce+"labelledby",gn=ce+"hidden",dr=ce+"orientation",at=ce+"roledescription",Ur=ce+"live",Vr=ce+"busy",Br=ce+"atomic",vr=[me,Ge,ii,ht,hn,se,fr,gn,dr,at],de=dt+"__",Ae="is-",Kt=dt,qr=de+"track",si=de+"list",Ht=de+"slide",mn=Ht+"--clone",ai=Ht+"__container",hr=de+"arrows",kt=de+"arrow",pn=kt+"--prev",En=kt+"--next",Ft=de+"pagination",Sn=Ft+"__page",oi=de+"progress",li=oi+"__bar",gr=de+"toggle",Rs=gr+"__play",Ps=gr+"__pause",ci=de+"spinner",ui=de+"sr",fi=Ae+"initialized",Re=Ae+"active",bn=Ae+"prev",Ln=Ae+"next",er=Ae+"visible",tr=Ae+"loading",yn=Ae+"focus-in",Tn=Ae+"overflow",di=[Re,er,bn,Ln,tr,yn,Tn],vi={slide:Ht,clone:mn,arrows:hr,arrow:kt,prev:pn,next:En,pagination:Ft,page:Sn,spinner:ci};function hi(e,t){if(jr(e.closest))return e.closest(t);for(var r=e;r&&r.nodeType===1&&!et(r,t);)r=r.parentElement;return r}var gi=5,Wr=200,Dn="touchstart mousedown",Yt="touchmove mousemove",jt="touchend touchcancel mouseup click";function mi(e,t,r){var n=W(e),i=n.on,a=n.bind,s=e.root,o=r.i18n,c={},u=[],d=[],g=[],h,v,l;function f(){p(),P(),m()}function E(){i(X,S),i(X,f),i(ne,m),a(document,Dn+" keydown",function(b){l=b.type==="keydown"},{capture:!0}),a(s,"focusin",function(){he(s,yn,!!l)})}function S(b){var M=vr.concat("style");pe(u),ge(s,d),ge(h,g),fe([h,v],M),fe(s,b?M:["style",at])}function m(){ge(s,d),ge(h,g),d=N(Kt),g=N(qr),ue(s,d),ue(h,g),x(s,se,r.label),x(s,fr,r.labelledby)}function p(){h=_("."+qr),v=ft(h,"."+si),Ze(h&&v,"A track/list element is missing."),yt(u,Zr(v,"."+Ht+":not(."+mn+")")),Me({arrows:hr,pagination:Ft,prev:pn,next:En,bar:li,toggle:gr},function(b,M){c[M]=_("."+b)}),rt(c,{root:s,track:h,list:v,slides:u})}function P(){var b=s.id||zn(dt),M=r.role;s.id=b,h.id=h.id||b+"-track",v.id=v.id||b+"-list",!le(s,me)&&s.tagName!=="SECTION"&&M&&x(s,me,M),x(s,at,o.carousel),x(v,me,"presentation")}function _(b){var M=en(s,b);return M&&hi(M,"."+Kt)===s?M:void 0}function N(b){return[b+"--"+r.type,b+"--"+r.direction,r.drag&&b+"--draggable",r.isNavigation&&b+"--nav",b===Kt&&Re]}return rt(c,{setup:f,mount:E,destroy:S})}var $e="slide",Be="loop",gt="fade";function pi(e,t,r,n){var i=W(e),a=i.on,s=i.emit,o=i.bind,c=e.Components,u=e.root,d=e.options,g=d.isNavigation,h=d.updateOnMove,v=d.i18n,l=d.pagination,f=d.slideFocus,E=c.Direction.resolve,S=le(n,"style"),m=le(n,se),p=r>-1,P=ft(n,"."+ai),_;function N(){p||(n.id=u.id+"-slide"+lr(t+1),x(n,me,l?"tabpanel":"group"),x(n,at,v.slide),x(n,se,m||Jt(v.slideLabel,[t+1,e.length]))),b()}function b(){o(n,"click",V(s,nn,F)),o(n,"keydown",V(s,un,F)),a([vt,fn,Ve],L),a(an,A),h&&a(Te,O)}function M(){_=!0,i.destroy(),ge(n,di),fe(n,vr),x(n,"style",S),x(n,se,m||"")}function A(){var R=e.splides.map(function(D){var w=D.splide.Components.Slides.getAt(t);return w?w.slide.id:""}).join(" ");x(n,se,Jt(v.slideX,(p?r:t)+1)),x(n,ht,R),x(n,me,f?"button":""),f&&fe(n,at)}function O(){_||L()}function L(){if(!_){var R=e.index;y(),C(),he(n,bn,t===R-1),he(n,Ln,t===R+1)}}function y(){var R=G();R!==Fr(n,Re)&&(he(n,Re,R),x(n,hn,g&&R||""),s(R?$n:Un,F))}function C(){var R=K(),D=!R&&(!G()||p);if(e.state.is([Ue,ot])||x(n,gn,D||""),x(ar(n,d.focusableNodes||""),Ge,D?-1:""),f&&x(n,Ge,D?-1:0),R!==Fr(n,er)&&(he(n,er,R),s(R?Vn:Bn,F)),!R&&document.activeElement===n){var w=c.Slides.getAt(e.index);w&&Qr(w.slide)}}function k(R,D,w){oe(w&&P||n,R,D)}function G(){var R=e.index;return R===t||d.cloneStatus&&R===r}function K(){if(e.is(gt))return G();var R=ie(c.Elements.track),D=ie(n),w=E("left",!0),z=E("right",!0);return Ct(R[w])<=it(D[w])&&Ct(D[z])<=it(R[z])}function q(R,D){var w=re(R-t);return!p&&(d.rewind||e.is(Be))&&(w=ye(w,e.length-w)),w<=D}var F={index:t,slideIndex:r,slide:n,container:P,isClone:p,mount:N,destroy:M,update:L,style:k,isWithin:q};return F}function Ei(e,t,r){var n=W(e),i=n.on,a=n.emit,s=n.bind,o=t.Elements,c=o.slides,u=o.list,d=[];function g(){h(),i(X,v),i(X,h)}function h(){c.forEach(function(L,y){f(L,y,-1)})}function v(){_(function(L){L.destroy()}),pe(d)}function l(){_(function(L){L.update()})}function f(L,y,C){var k=pi(e,y,C,L);k.mount(),d.push(k),d.sort(function(G,K){return G.index-K.index})}function E(L){return L?N(function(y){return!y.isClone}):d}function S(L){var y=t.Controller,C=y.toIndex(L),k=y.hasFocus()?1:r.perPage;return N(function(G){return Tt(G.index,C,C+k-1)})}function m(L){return N(L)[0]}function p(L,y){ae(L,function(C){if(Le(C)&&(C=Jr(C)),Xr(C)){var k=c[y];k?sr(C,k):ut(u,C),ue(C,r.classes.slide),M(C,V(a,st))}}),a(X)}function P(L){we(N(L).map(function(y){return y.slide})),a(X)}function _(L,y){E(y).forEach(L)}function N(L){return d.filter(jr(L)?L:function(y){return Le(L)?et(y.slide,L):ir(ct(L),y.index)})}function b(L,y,C){_(function(k){k.style(L,y,C)})}function M(L,y){var C=ar(L,"img"),k=C.length;k?C.forEach(function(G){s(G,"load error",function(){--k||y()})}):y()}function A(L){return L?c.length:d.length}function O(){return d.length>r.perPage}return{mount:g,destroy:v,update:l,register:f,get:E,getIn:S,getAt:m,add:p,remove:P,forEach:_,filter:N,style:b,getLength:A,isEnough:O}}function Si(e,t,r){var n=W(e),i=n.on,a=n.bind,s=n.emit,o=t.Slides,c=t.Direction.resolve,u=t.Elements,d=u.root,g=u.track,h=u.list,v=o.getAt,l=o.style,f,E,S;function m(){p(),a(window,"resize load",ti(V(s,st))),i([ne,X],p),i(st,P)}function p(){f=r.direction===Nt,oe(d,"maxWidth",_e(r.width)),oe(g,c("paddingLeft"),_(!1)),oe(g,c("paddingRight"),_(!0)),P(!0)}function P(F){var R=ie(d);(F||E.width!==R.width||E.height!==R.height)&&(oe(g,"height",N()),l(c("marginRight"),_e(r.gap)),l("width",M()),l("height",A(),!0),E=R,s(cr),S!==(S=q())&&(he(d,Tn,S),s(Yn,S)))}function _(F){var R=r.padding,D=c(F?"right":"left");return R&&_e(R[D]||(Je(R)?0:R))||"0px"}function N(){var F="";return f&&(F=b(),Ze(F,"height or heightRatio is missing."),F="calc("+F+" - "+_(!1)+" - "+_(!0)+")"),F}function b(){return _e(r.height||ie(h).width*r.heightRatio)}function M(){return r.autoWidth?null:_e(r.fixedWidth)||(f?"":O())}function A(){return _e(r.fixedHeight)||(f?r.autoHeight?null:O():b())}function O(){var F=_e(r.gap);return"calc((100%"+(F&&" + "+F)+")/"+(r.perPage||1)+(F&&" - "+F)+")"}function L(){return ie(h)[c("width")]}function y(F,R){var D=v(F||0);return D?ie(D.slide)[c("width")]+(R?0:G()):0}function C(F,R){var D=v(F);if(D){var w=ie(D.slide)[c("right")],z=ie(h)[c("left")];return re(w-z)+(R?0:G())}return 0}function k(F){return C(e.length-1)-C(0)+y(0,F)}function G(){var F=v(0);return F&&parseFloat(oe(F.slide,c("marginRight")))||0}function K(F){return parseFloat(oe(g,c("padding"+(F?"Right":"Left"))))||0}function q(){return e.is(gt)||k(!0)>L()}return{mount:m,resize:P,listSize:L,slideSize:y,sliderSize:k,totalSize:C,getPadding:K,isOverflow:q}}var bi=2;function Li(e,t,r){var n=W(e),i=n.on,a=t.Elements,s=t.Slides,o=t.Direction.resolve,c=[],u;function d(){i(X,g),i([ne,st],v),(u=E())&&(l(u),t.Layout.resize(!0))}function g(){h(),d()}function h(){we(c),pe(c),n.destroy()}function v(){var S=E();u!==S&&(u<S||!S)&&n.emit(X)}function l(S){var m=s.get().slice(),p=m.length;if(p){for(;m.length<S;)yt(m,m);yt(m.slice(-S),m.slice(0,S)).forEach(function(P,_){var N=_<S,b=f(P.slide,_);N?sr(b,m[0].slide):ut(a.list,b),yt(c,b),s.register(b,_-S+(N?0:p),P.index)})}}function f(S,m){var p=S.cloneNode(!0);return ue(p,r.classes.clone),p.id=e.root.id+"-clone"+lr(m+1),p}function E(){var S=r.clones;if(!e.is(Be))S=0;else if(lt(S)){var m=r[o("fixedWidth")]&&t.Layout.slideSize(0),p=m&&it(ie(a.track)[o("width")]/m);S=p||r[o("autoWidth")]&&e.length||r.perPage*bi}return S}return{mount:d,destroy:h}}function yi(e,t,r){var n=W(e),i=n.on,a=n.emit,s=e.state.set,o=t.Layout,c=o.slideSize,u=o.getPadding,d=o.totalSize,g=o.listSize,h=o.sliderSize,v=t.Direction,l=v.resolve,f=v.orient,E=t.Elements,S=E.list,m=E.track,p;function P(){p=t.Transition,i([Pe,cr,ne,X],_)}function _(){t.Controller.isBusy()||(t.Scroll.cancel(),b(e.index),t.Slides.update())}function N(D,w,z,J){D!==w&&F(D>z)&&(L(),M(O(k(),D>z),!0)),s(Ue),a(Te,w,z,D),p.start(w,function(){s(ze),a(vt,w,z,D),J&&J()})}function b(D){M(C(D,!0))}function M(D,w){if(!e.is(gt)){var z=w?D:A(D);oe(S,"transform","translate"+l("X")+"("+z+"px)"),D!==z&&a(fn)}}function A(D){if(e.is(Be)){var w=y(D),z=w>t.Controller.getEnd(),J=w<0;(J||z)&&(D=O(D,z))}return D}function O(D,w){var z=D-q(w),J=h();return D-=f(J*(it(re(z)/J)||1))*(w?1:-1),D}function L(){M(k(),!0),p.cancel()}function y(D){for(var w=t.Slides.get(),z=0,J=1/0,Q=0;Q<w.length;Q++){var Ee=w[Q].index,T=re(C(Ee,!0)-D);if(T<=J)J=T,z=Ee;else break}return z}function C(D,w){var z=f(d(D-1)-K(D));return w?G(z):z}function k(){var D=l("left");return ie(S)[D]-ie(m)[D]+f(u(!1))}function G(D){return r.trimSpace&&e.is($e)&&(D=He(D,0,f(h(!0)-g()))),D}function K(D){var w=r.focus;return w==="center"?(g()-c(D,!0))/2:+w*c(D)||0}function q(D){return C(D?t.Controller.getEnd():0,!!r.trimSpace)}function F(D){var w=f(O(k(),D));return D?w>=0:w<=S[l("scrollWidth")]-ie(m)[l("width")]}function R(D,w){w=lt(w)?k():w;var z=D!==!0&&f(w)<f(q(!1)),J=D!==!1&&f(w)>f(q(!0));return z||J}return{mount:P,move:N,jump:b,translate:M,shift:O,cancel:L,toIndex:y,toPosition:C,getPosition:k,getLimit:q,exceededLimit:R,reposition:_}}function Ti(e,t,r){var n=W(e),i=n.on,a=n.emit,s=t.Move,o=s.getPosition,c=s.getLimit,u=s.toPosition,d=t.Slides,g=d.isEnough,h=d.getLength,v=r.omitEnd,l=e.is(Be),f=e.is($e),E=V(k,!1),S=V(k,!0),m=r.start||0,p,P=m,_,N,b;function M(){A(),i([ne,X,It],A),i(cr,O)}function A(){_=h(!0),N=r.perMove,b=r.perPage,p=F();var T=He(m,0,v?p:_-1);T!==m&&(m=T,s.reposition())}function O(){p!==F()&&a(It)}function L(T,U,te){if(!Ee()){var Y=C(T),ee=q(Y);ee>-1&&(U||ee!==m)&&(z(ee),s.move(Y,ee,P,te))}}function y(T,U,te,Y){t.Scroll.scroll(T,U,te,function(){var ee=q(s.toIndex(o()));z(v?ye(ee,p):ee),Y&&Y()})}function C(T){var U=m;if(Le(T)){var te=T.match(/([+\-<>])(\d+)?/)||[],Y=te[1],ee=te[2];Y==="+"||Y==="-"?U=G(m+ +(""+Y+(+ee||1)),m):Y===">"?U=ee?R(+ee):E(!0):Y==="<"&&(U=S(!0))}else U=l?T:He(T,0,p);return U}function k(T,U){var te=N||(Q()?1:b),Y=G(m+te*(T?-1:1),m,!(N||Q()));return Y===-1&&f&&!tn(o(),c(!T),1)?T?0:p:U?Y:q(Y)}function G(T,U,te){if(g()||Q()){var Y=K(T);Y!==T&&(U=T,T=Y,te=!1),T<0||T>p?!N&&(Tt(0,T,U,!0)||Tt(p,U,T,!0))?T=R(D(T)):l?T=te?T<0?-(_%b||b):_:T:r.rewind?T=T<0?p:0:T=-1:te&&T!==U&&(T=R(D(U)+(T<U?-1:1)))}else T=-1;return T}function K(T){if(f&&r.trimSpace==="move"&&T!==m)for(var U=o();U===u(T,!0)&&Tt(T,0,e.length-1,!r.rewind);)T<m?--T:++T;return T}function q(T){return l?(T+_)%_||0:T}function F(){for(var T=_-(Q()||l&&N?1:b);v&&T-- >0;)if(u(_-1,!0)!==u(T,!0)){T++;break}return He(T,0,_-1)}function R(T){return He(Q()?T:b*T,0,p)}function D(T){return Q()?ye(T,p):Ct((T>=p?_-1:T)/b)}function w(T){var U=s.toIndex(T);return f?He(U,0,p):U}function z(T){T!==m&&(P=m,m=T)}function J(T){return T?P:m}function Q(){return!lt(r.focus)||r.isNavigation}function Ee(){return e.state.is([Ue,ot])&&!!r.waitForTransition}return{mount:M,go:L,scroll:y,getNext:E,getPrev:S,getAdjacent:k,getEnd:F,setIndex:z,getIndex:J,toIndex:R,toPage:D,toDest:w,hasFocus:Q,isBusy:Ee}}var Di="http://www.w3.org/2000/svg",Ai="m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z",bt=40;function Oi(e,t,r){var n=W(e),i=n.on,a=n.bind,s=n.emit,o=r.classes,c=r.i18n,u=t.Elements,d=t.Controller,g=u.arrows,h=u.track,v=g,l=u.prev,f=u.next,E,S,m={};function p(){_(),i(ne,P)}function P(){N(),p()}function _(){var y=r.arrows;y&&!(l&&f)&&A(),l&&f&&(rt(m,{prev:l,next:f}),nt(v,y?"":"none"),ue(v,S=hr+"--"+r.direction),y&&(b(),L(),x([l,f],ht,h.id),s(jn,l,f)))}function N(){n.destroy(),ge(v,S),E?(we(g?[l,f]:v),l=f=null):fe([l,f],vr)}function b(){i([Pe,vt,X,Ve,It],L),a(f,"click",V(M,">")),a(l,"click",V(M,"<"))}function M(y){d.go(y,!0)}function A(){v=g||xe("div",o.arrows),l=O(!0),f=O(!1),E=!0,ut(v,[l,f]),!g&&sr(v,h)}function O(y){var C='<button class="'+o.arrow+" "+(y?o.prev:o.next)+'" type="button"><svg xmlns="'+Di+'" viewBox="0 0 '+bt+" "+bt+'" width="'+bt+'" height="'+bt+'" focusable="false"><path d="'+(r.arrowPath||Ai)+'" />';return Jr(C)}function L(){if(l&&f){var y=e.index,C=d.getPrev(),k=d.getNext(),G=C>-1&&y<C?c.last:c.prev,K=k>-1&&y>k?c.first:c.next;l.disabled=C<0,f.disabled=k<0,x(l,se,G),x(f,se,K),s(Xn,l,f,C,k)}}return{arrows:m,mount:p,destroy:N,update:L}}var Ci=or+"-interval";function Ii(e,t,r){var n=W(e),i=n.on,a=n.bind,s=n.emit,o=Mt(r.interval,e.go.bind(e,">"),b),c=o.isPaused,u=t.Elements,d=t.Elements,g=d.root,h=d.toggle,v=r.autoplay,l,f,E=v==="pause";function S(){v&&(m(),h&&x(h,ht,u.track.id),E||p(),N())}function m(){r.pauseOnHover&&a(g,"mouseenter mouseleave",function(A){l=A.type==="mouseenter",_()}),r.pauseOnFocus&&a(g,"focusin focusout",function(A){f=A.type==="focusin",_()}),h&&a(h,"click",function(){E?p():P(!0)}),i([Te,ur,X],o.rewind),i(Te,M)}function p(){c()&&t.Slides.isEnough()&&(o.start(!r.resetProgress),f=l=E=!1,N(),s(on))}function P(A){A===void 0&&(A=!0),E=!!A,N(),c()||(o.pause(),s(ln))}function _(){E||(l||f?P(!1):p())}function N(){h&&(he(h,Re,!E),x(h,se,r.i18n[E?"play":"pause"]))}function b(A){var O=u.bar;O&&oe(O,"width",A*100+"%"),s(Jn,A)}function M(A){var O=t.Slides.getAt(A);o.set(O&&+le(O.slide,Ci)||r.interval)}return{mount:S,destroy:o.cancel,play:p,pause:P,isPaused:c}}function _i(e,t,r){var n=W(e),i=n.on;function a(){r.cover&&(i(cn,V(o,!0)),i([Pe,ne,X],V(s,!0)))}function s(c){t.Slides.forEach(function(u){var d=ft(u.container||u.slide,"img");d&&d.src&&o(c,d,u)})}function o(c,u,d){d.style("background",c?'center/cover no-repeat url("'+u.src+'")':"",!0),nt(u,c?"none":"")}return{mount:a,destroy:V(s,!1)}}var Mi=10,wi=600,Ri=.6,Pi=1.5,Ni=800;function Hi(e,t,r){var n=W(e),i=n.on,a=n.emit,s=e.state.set,o=t.Move,c=o.getPosition,u=o.getLimit,d=o.exceededLimit,g=o.translate,h=e.is($e),v,l,f=1;function E(){i(Te,P),i([ne,X],_)}function S(b,M,A,O,L){var y=c();if(P(),A&&(!h||!d())){var C=t.Layout.sliderSize(),k=Qt(b)*C*Ct(re(b)/C)||0;b=o.toPosition(t.Controller.toDest(b%C))+k}var G=tn(y,b,1);f=1,M=G?0:M||Ot(re(b-y)/Pi,Ni),l=O,v=Mt(M,m,V(p,y,b,L),1),s(ot),a(ur),v.start()}function m(){s(ze),l&&l(),a(Ve)}function p(b,M,A,O){var L=c(),y=b+(M-b)*N(O),C=(y-L)*f;g(L+C),h&&!A&&d()&&(f*=Ri,re(C)<Mi&&S(u(d(!0)),wi,!1,l,!0))}function P(){v&&v.cancel()}function _(){v&&!v.isPaused()&&(P(),m())}function N(b){var M=r.easingFunc;return M?M(b):1-Math.pow(1-b,4)}return{mount:E,destroy:P,scroll:S,cancel:_}}var ke={passive:!1,capture:!0};function ki(e,t,r){var n=W(e),i=n.on,a=n.emit,s=n.bind,o=n.unbind,c=e.state,u=t.Move,d=t.Scroll,g=t.Controller,h=t.Elements.track,v=t.Media.reduce,l=t.Direction,f=l.resolve,E=l.orient,S=u.getPosition,m=u.exceededLimit,p,P,_,N,b,M=!1,A,O,L;function y(){s(h,Yt,Xt,ke),s(h,jt,Xt,ke),s(h,Dn,k,ke),s(h,"click",q,{capture:!0}),s(h,"dragstart",ve),i([Pe,ne],C)}function C(){var I=r.drag;Er(!I),N=I==="free"}function k(I){if(A=!1,!O){var B=ee(I);Y(I.target)&&(B||!I.button)&&(g.isBusy()?ve(I,!0):(L=B?h:window,b=c.is([Ue,ot]),_=null,s(L,Yt,G,ke),s(L,jt,K,ke),u.cancel(),d.cancel(),F(I)))}}function G(I){if(c.is(Lt)||(c.set(Lt),a(qn)),I.cancelable)if(b){u.translate(p+te(Q(I)));var B=Ee(I)>Wr,Oe=M!==(M=m());(B||Oe)&&F(I),A=!0,a(Wn),ve(I)}else w(I)&&(b=D(I),ve(I))}function K(I){c.is(Lt)&&(c.set(ze),a(Kn)),b&&(R(I),ve(I)),o(L,Yt,G),o(L,jt,K),b=!1}function q(I){!O&&A&&ve(I,!0)}function F(I){_=P,P=I,p=S()}function R(I){var B=z(I),Oe=J(B),qe=r.rewind&&r.rewindByDrag;v(!1),N?g.scroll(Oe,0,r.snap):e.is(gt)?g.go(E(Qt(B))<0?qe?"<":"-":qe?">":"+"):e.is($e)&&M&&qe?g.go(m(!0)?">":"<"):g.go(g.toDest(Oe),!0),v(!0)}function D(I){var B=r.dragMinThreshold,Oe=Je(B),qe=Oe&&B.mouse||0,In=(Oe?B.touch:+B)||10;return re(Q(I))>(ee(I)?In:qe)}function w(I){return re(Q(I))>re(Q(I,!0))}function z(I){if(e.is(Be)||!M){var B=Ee(I);if(B&&B<Wr)return Q(I)/B}return 0}function J(I){return S()+Qt(I)*ye(re(I)*(r.flickPower||600),N?1/0:t.Layout.listSize()*(r.flickMaxPages||1))}function Q(I,B){return U(I,B)-U(T(I),B)}function Ee(I){return Zt(I)-Zt(T(I))}function T(I){return P===I&&_||P}function U(I,B){return(ee(I)?I.changedTouches[0]:I)["page"+f(B?"Y":"X")]}function te(I){return I/(M&&e.is($e)?gi:1)}function Y(I){var B=r.noDrag;return!et(I,"."+Sn+", ."+kt)&&(!B||!et(I,B))}function ee(I){return typeof TouchEvent<"u"&&I instanceof TouchEvent}function Cn(){return b}function Er(I){O=I}return{mount:y,disable:Er,isDragging:Cn}}var Fi={Spacebar:" ",Right:Pt,Left:Rt,Up:dn,Down:vn};function mr(e){return e=Le(e)?e:e.key,Fi[e]||e}var Kr="keydown";function xi(e,t,r){var n=W(e),i=n.on,a=n.bind,s=n.unbind,o=e.root,c=t.Direction.resolve,u,d;function g(){h(),i(ne,v),i(ne,h),i(Te,f)}function h(){var S=r.keyboard;S&&(u=S==="global"?window:o,a(u,Kr,E))}function v(){s(u,Kr)}function l(S){d=S}function f(){var S=d;d=!0,Yr(function(){d=S})}function E(S){if(!d){var m=mr(S);m===c(Rt)?e.go("<"):m===c(Pt)&&e.go(">")}}return{mount:g,destroy:v,disable:l}}var Qe=or+"-lazy",Dt=Qe+"-srcset",Gi="["+Qe+"], ["+Dt+"]";function zi(e,t,r){var n=W(e),i=n.on,a=n.off,s=n.bind,o=n.emit,c=r.lazyLoad==="sequential",u=[vt,Ve],d=[];function g(){r.lazyLoad&&(h(),i(X,h))}function h(){pe(d),v(),c?S():(a(u),i(u,l),l())}function v(){t.Slides.forEach(function(m){ar(m.slide,Gi).forEach(function(p){var P=le(p,Qe),_=le(p,Dt);if(P!==p.src||_!==p.srcset){var N=r.classes.spinner,b=p.parentElement,M=ft(b,"."+N)||xe("span",N,b);d.push([p,m,M]),p.src||nt(p,"none")}})})}function l(){d=d.filter(function(m){var p=r.perPage*((r.preloadPages||1)+1)-1;return m[1].isWithin(e.index,p)?f(m):!0}),d.length||a(u)}function f(m){var p=m[0];ue(m[1].slide,tr),s(p,"load error",V(E,m)),x(p,"src",le(p,Qe)),x(p,"srcset",le(p,Dt)),fe(p,Qe),fe(p,Dt)}function E(m,p){var P=m[0],_=m[1];ge(_.slide,tr),p.type!=="error"&&(we(m[2]),nt(P,""),o(cn,P,_),o(st)),c&&S()}function S(){d.length&&f(d.shift())}return{mount:g,destroy:V(pe,d),check:l}}function $i(e,t,r){var n=W(e),i=n.on,a=n.emit,s=n.bind,o=t.Slides,c=t.Elements,u=t.Controller,d=u.hasFocus,g=u.getIndex,h=u.go,v=t.Direction.resolve,l=c.pagination,f=[],E,S;function m(){p(),i([ne,X,It],m);var O=r.pagination;l&&nt(l,O?"":"none"),O&&(i([Te,ur,Ve],A),P(),A(),a(Zn,{list:E,items:f},M(e.index)))}function p(){E&&(we(l?De(E.children):E),ge(E,S),pe(f),E=null),n.destroy()}function P(){var O=e.length,L=r.classes,y=r.i18n,C=r.perPage,k=d()?u.getEnd()+1:it(O/C);E=l||xe("ul",L.pagination,c.track.parentElement),ue(E,S=Ft+"--"+b()),x(E,me,"tablist"),x(E,se,y.select),x(E,dr,b()===Nt?"vertical":"");for(var G=0;G<k;G++){var K=xe("li",null,E),q=xe("button",{class:L.page,type:"button"},K),F=o.getIn(G).map(function(D){return D.slide.id}),R=!d()&&C>1?y.pageX:y.slideX;s(q,"click",V(_,G)),r.paginationKeyboard&&s(q,"keydown",V(N,G)),x(K,me,"presentation"),x(q,me,"tab"),x(q,ht,F.join(" ")),x(q,se,Jt(R,G+1)),x(q,Ge,-1),f.push({li:K,button:q,page:G})}}function _(O){h(">"+O,!0)}function N(O,L){var y=f.length,C=mr(L),k=b(),G=-1;C===v(Pt,!1,k)?G=++O%y:C===v(Rt,!1,k)?G=(--O+y)%y:C==="Home"?G=0:C==="End"&&(G=y-1);var K=f[G];K&&(Qr(K.button),h(">"+G),ve(L,!0))}function b(){return r.paginationDirection||r.direction}function M(O){return f[u.toPage(O)]}function A(){var O=M(g(!0)),L=M(g());if(O){var y=O.button;ge(y,Re),fe(y,$r),x(y,Ge,-1)}if(L){var C=L.button;ue(C,Re),x(C,$r,!0),x(C,Ge,"")}a(Qn,{list:E,items:f},O,L)}return{items:f,mount:m,destroy:p,getAt:M,update:A}}var Ui=[" ","Enter"];function Vi(e,t,r){var n=r.isNavigation,i=r.slideFocus,a=[];function s(){e.splides.forEach(function(l){l.isParent||(u(e,l.splide),u(l.splide,e))}),n&&d()}function o(){a.forEach(function(l){l.destroy()}),pe(a)}function c(){o(),s()}function u(l,f){var E=W(l);E.on(Te,function(S,m,p){f.go(f.is(Be)?p:S)}),a.push(E)}function d(){var l=W(e),f=l.on;f(nn,h),f(un,v),f([Pe,ne],g),a.push(l),l.emit(an,e.splides)}function g(){x(t.Elements.list,dr,r.direction===Nt?"vertical":"")}function h(l){e.go(l.index)}function v(l,f){ir(Ui,mr(f))&&(h(l),ve(f))}return{setup:V(t.Media.set,{slideFocus:lt(i)?n:i},!0),mount:s,destroy:o,remount:c}}function Bi(e,t,r){var n=W(e),i=n.bind,a=0;function s(){r.wheel&&i(t.Elements.track,"wheel",o,ke)}function o(u){if(u.cancelable){var d=u.deltaY,g=d<0,h=Zt(u),v=r.wheelMinThreshold||0,l=r.wheelSleep||0;re(d)>v&&h-a>l&&(e.go(g?"<":">"),a=h),c(g)&&ve(u)}}function c(u){return!r.releaseWheel||e.state.is(Ue)||t.Controller.getAdjacent(u)!==-1}return{mount:s}}var qi=90;function Wi(e,t,r){var n=W(e),i=n.on,a=t.Elements.track,s=r.live&&!r.isNavigation,o=xe("span",ui),c=Mt(qi,V(d,!1));function u(){s&&(h(!t.Autoplay.isPaused()),x(a,Br,!0),o.textContent="\u2026",i(on,V(h,!0)),i(ln,V(h,!1)),i([vt,Ve],V(d,!0)))}function d(v){x(a,Vr,v),v?(ut(a,o),c.start()):(we(o),c.cancel())}function g(){fe(a,[Ur,Br,Vr]),we(o)}function h(v){s&&x(a,Ur,v?"off":"polite")}return{mount:u,disable:h,destroy:g}}var Ki=Object.freeze({__proto__:null,Media:ri,Direction:ni,Elements:mi,Slides:Ei,Layout:Si,Clones:Li,Move:yi,Controller:Ti,Arrows:Oi,Autoplay:Ii,Cover:_i,Scroll:Hi,Drag:ki,Keyboard:xi,LazyLoad:zi,Pagination:$i,Sync:Vi,Wheel:Bi,Live:Wi}),Yi={prev:"Previous slide",next:"Next slide",first:"Go to first slide",last:"Go to last slide",slideX:"Go to slide %s",pageX:"Go to page %s",play:"Start autoplay",pause:"Pause autoplay",carousel:"carousel",slide:"slide",select:"Select a slide to show",slideLabel:"%s of %s"},ji={type:"slide",role:"region",speed:400,perPage:1,cloneStatus:!0,arrows:!0,pagination:!0,paginationKeyboard:!0,interval:5e3,pauseOnHover:!0,pauseOnFocus:!0,resetProgress:!0,easing:"cubic-bezier(0.25, 1, 0.5, 1)",drag:!0,direction:"ltr",trimSpace:!0,focusableNodes:"a, button, textarea, input, select, iframe",live:!0,classes:vi,i18n:Yi,reducedMotion:{speed:0,rewindSpeed:0,autoplay:"pause"}};function Xi(e,t,r){var n=t.Slides;function i(){W(e).on([Pe,X],a)}function a(){n.forEach(function(o){o.style("transform","translateX(-"+100*o.index+"%)")})}function s(o,c){n.style("transition","opacity "+r.speed+"ms "+r.easing),Yr(c)}return{mount:i,start:s,cancel:Xt}}function Zi(e,t,r){var n=t.Move,i=t.Controller,a=t.Scroll,s=t.Elements.list,o=V(oe,s,"transition"),c;function u(){W(e).bind(s,"transitionend",function(v){v.target===s&&c&&(g(),c())})}function d(v,l){var f=n.toPosition(v,!0),E=n.getPosition(),S=h(v);re(f-E)>=1&&S>=1?r.useScroll?a.scroll(f,S,!1,l):(o("transform "+S+"ms "+r.easing),n.translate(f,!0),c=l):(n.jump(v),l())}function g(){o(""),a.cancel()}function h(v){var l=r.rewindSpeed;if(e.is($e)&&l){var f=i.getIndex(!0),E=i.getEnd();if(f===0&&v>=E||f>=E&&v===0)return l}return r.speed}return{mount:u,start:d,cancel:g}}var Qi=function(){function e(r,n){this.event=W(),this.Components={},this.state=ei(Fe),this.splides=[],this._o={},this._E={};var i=Le(r)?en(document,r):r;Ze(i,i+" is invalid."),this.root=i,n=be({label:le(i,se)||"",labelledby:le(i,fr)||""},ji,e.defaults,n||{});try{be(n,JSON.parse(le(i,or)))}catch{Ze(!1,"Invalid JSON")}this._o=Object.create(be({},n))}var t=e.prototype;return t.mount=function(n,i){var a=this,s=this.state,o=this.Components;Ze(s.is([Fe,At]),"Already mounted!"),s.set(Fe),this._C=o,this._T=i||this._T||(this.is(gt)?Xi:Zi),this._E=n||this._E;var c=rt({},Ki,this._E,{Transition:this._T});return Me(c,function(u,d){var g=u(a,o,a._o);o[d]=g,g.setup&&g.setup()}),Me(o,function(u){u.mount&&u.mount()}),this.emit(Pe),ue(this.root,fi),s.set(ze),this.emit(Gr),this},t.sync=function(n){return this.splides.push({splide:n}),n.splides.push({splide:this,isParent:!0}),this.state.is(ze)&&(this._C.Sync.remount(),n.Components.Sync.remount()),this},t.go=function(n){return this._C.Controller.go(n),this},t.on=function(n,i){return this.event.on(n,i),this},t.off=function(n){return this.event.off(n),this},t.emit=function(n){var i;return(i=this.event).emit.apply(i,[n].concat(De(arguments,1))),this},t.add=function(n,i){return this._C.Slides.add(n,i),this},t.remove=function(n){return this._C.Slides.remove(n),this},t.is=function(n){return this._o.type===n},t.refresh=function(){return this.emit(X),this},t.destroy=function(n){n===void 0&&(n=!0);var i=this.event,a=this.state;return a.is(Fe)?W(this).on(Gr,this.destroy.bind(this,n)):(Me(this._C,function(s){s.destroy&&s.destroy(n)},!0),i.emit(sn),i.destroy(),n&&pe(this.splides),a.set(At)),this},Fn(e,[{key:"options",get:function(){return this._o},set:function(n){this._C.Media.set(n,!0,!0)}},{key:"length",get:function(){return this._C.Slides.getLength(!0)}},{key:"index",get:function(){return this._C.Controller.getIndex()}}]),e}(),mt=Qi;mt.defaults={};mt.STATES=Gn;var An='[custom="images-slider"]',Ji='[custom="offers-slider"]';function es(){Array.isArray(window.offersSplides)&&(window.offersSplides.forEach(t=>{try{t.destroy()}catch{}}),window.offersSplides=[]);let e=document.querySelector(An);if(e&&e.splide)try{e.splide.destroy()}catch{}}function ts(){let e=document.querySelector(An);e&&new mt(e,{type:"loop",pagination:!0,speed:600,easing:"ease",gap:"0rem",perPage:1,arrows:!1,destroy:!0,breakpoints:{766:{destroy:!1}}}).mount()}function rs(e){let t=e.querySelector(".splide__list");return t&&t.children.length>0?!0:e.querySelectorAll(".splide__slide").length>0}function ns(){let e=document.querySelectorAll(Ji);window.offersSplides=[],e.forEach(t=>{if(!rs(t))return;let r=new mt(t,{autoWidth:!0,type:"loop",gap:"1.25rem",speed:600,easing:"ease",pagination:!1,breakpoints:{766:{gap:"0.625rem"}}}),n=t.querySelector(".splide__progress-bar");r.on("mounted move",()=>{let i=r.Components.Controller.getEnd()+1,a=i>0?Math.min((r.index+1)/i,1):0;n&&(n.style.width=`${100*a}%`)}),r.on("mounted",()=>{let i=r.root.querySelector(".splide__progress"),{length:a}=r;i&&a>0&&i.addEventListener("click",s=>{s.preventDefault(),s.stopPropagation();let{width:o,left:c}=i.getBoundingClientRect();if(o<=0)return;let u=s.clientX-c,d=Math.min(a-1,Math.max(0,Math.floor(u/o*a)));r.go(d)})}),r.mount(),window.offersSplides||(window.offersSplides=[]),window.offersSplides.push(r)})}function pr(){try{es(),ts(),ns()}catch{}}window.fsAttributes=window.fsAttributes||[];function is(){let e=window.location.pathname.replace(/\/$/,""),t=e.match(/^\/[a-z]{2}\/offers\/(.+)$/i);if(t)return t[1]?.trim()||null;let r=e.match(/^\/offers\/(.+)$/);return r&&r[1]?.trim()||null}function Z(e,t){e&&(e.style.display=t?"":"none")}function ss(e,t,r){let n=[];for(let i of[e,t,r]){if(!i)continue;let a=i.closest(H.offerOthersTabPane);n.push({listEl:i,pane:a,rendered:!1})}return n}function as(e){let t=e.querySelector(H.offerOthersTabsMenu);if(!t)return null;let r=[...e.querySelectorAll(H.offerOthersTabPane)],i=[...t.querySelectorAll(H.offerOthersTabLink)].findIndex(a=>a.classList.contains("w--current")||a.getAttribute("aria-selected")==="true");return i>=0&&r[i]?r[i]:r[0]??null}function Gt(e,t,r){let n=as(e);if(!n)return;let i=!1;for(let a of t)a.pane===n&&(a.rendered?(Z(r,!1),Z(a.listEl,!0),i=!0):(Z(r,!0),Z(a.listEl,!1)));for(let a of t)!a.pane&&a.rendered&&Z(a.listEl,!0);i&&On()}function os(e,t,r){let n=e.querySelector(H.offerOthersTabsMenu);if(!n)return;let i=()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>Gt(e,t,r))})};n.addEventListener("click",a=>{let s=a.target.closest(H.offerOthersTabLink);!s||!n.contains(s)||i()}),n.querySelectorAll(H.offerOthersTabLink).forEach(a=>{new MutationObserver(()=>i()).observe(a,{attributes:!0,attributeFilter:["class","aria-selected"]})}),Gt(e,t,r)}var xt=null;function On(){xt&&clearTimeout(xt),xt=setTimeout(()=>{xt=null,requestAnimationFrame(()=>pr())},80)}async function ls(){let e=is();if(!e)return;let t=document.querySelector(H.loadingSpinner),r=document.querySelector(H.offerSlugDetail),n=document.querySelector(H.offersMoreWrapper),i=!1;Z(t,!0),Z(r,!1),Z(n,!1);try{let a=document.querySelector(H.offerSlugDetail);a&&await Rr(e,a),Z(r,!0);let s=document.querySelector(H.offerSlugOthersList),o=document.querySelector(H.offerSlugOthersList2),c=document.querySelector(H.offerSlugOthersList3),u=ss(s,o,c),d=!!n?.querySelector(H.offerOthersTabsMenu)&&u.length>0&&u.every(l=>l.pane!==null);d&&Z(t,!1);let g=new Map;for(let l of u)g.set(l.listEl,l);let h=l=>{if(!l)return;let f=g.get(l);f&&(f.rendered=!0),d&&n&&Gt(n,u,t)},v=async(l,f)=>{if(l)try{await f()}finally{h(l)}};if(d&&n){i=!0;for(let f of u)Z(f.listEl,!1);Z(n,!0),os(n,u,t);let l=[];if(s){let f=Ie(s);l.push(v(s,()=>f?f.getGroupOtherOffers(e,Ye["R\xC9SERVEZ T\xD4T"]):Promise.resolve()))}if(o){let f=Ie(o);l.push(v(o,()=>f?f.getGroupOtherOffers(e,Ye["DERNI\xC8RE MINUTE"]):Promise.resolve()))}if(c){let f=Ie(c);l.push(v(c,()=>f?f.getGroupOtherThemedOffers(e):Promise.resolve()))}Promise.all(l).catch(()=>{}).finally(()=>{n&&Gt(n,u,t),On()})}else{let l=[];if(s){let f=Ie(s);f&&l.push(f.getGroupOtherOffers(e,Ye["R\xC9SERVEZ T\xD4T"]))}if(o){let f=Ie(o);f&&l.push(f.getGroupOtherOffers(e,Ye["DERNI\xC8RE MINUTE"]))}if(c){let f=Ie(c);f&&l.push(f.getGroupOtherThemedOffers(e))}l.length>0&&await Promise.all(l),Z(n,!0),requestAnimationFrame(()=>{pr()})}}catch{Z(t,!1),Z(r,!0),Z(n,!0)}finally{i||Z(t,!1)}}window.loadFromServer=()=>{let e=()=>{ls()};document.readyState==="complete"?setTimeout(e,0):window.addEventListener("load",()=>setTimeout(e,0))};window.addEventListener("load",()=>{window.loadFromServer()});})();
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
@splidejs/splide/dist/js/splide.esm.js:
|
package/dist/pages/Offers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var Q=Object.defineProperty;var V=(s,e,t)=>e in s?Q(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var D=(s,e,t)=>(V(s,typeof e!="symbol"?e+"":e,t),t);var l="data",f={startingPriceList:`[${l}=starting-price-list]`,price:`[${l}=price]`,discount:`[${l}=discount]`,discountContainer:`[${l}=discount-container]`,currency:`[${l}=currency]`,beHid:`[${l}-be-hid]`,destination:`[${l}=destination]`,offersList:`[${l}=offers-list]`,offerSlugDetail:`[${l}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${l}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${l}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${l}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${l}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${l}=offers-list-container]`,listItem:`[${l}=list-item]`,image:`[${l}=image]`,name:`[${l}=name]`,description:`[${l}=description]`,hotelName:`[${l}=hotel-name]`,hotelLink:`[${l}=hotel-link]`,hotelStartingPriceContainer:`[${l}=hotel-starting-price-container]`,moreDetails:`[${l}=more-details]`,offersPopup:`[${l}=offers-popup]`,offersPopupClose:`[${l}=close-btn]`,hotelReserveLink:`[${l}=hotel-reserve-link]`,hotelVillaReserveLink:`[${l}=hotel-villa-reserve-link]`,hotelURLS:`[${l}=hotel-urls]`,languageDropdown:`[${l}=language-dropdown]`,selectedLanguage:`[${l}=selected-language]`,loadingSpinner:`[${l}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:s=>`[${l}-be-hid=${s}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var L={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},R={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},O={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},J={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},S={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},w={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},$={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},X={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},M={gpgos12767:{destination:L,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:L,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:L,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:L,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:L,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:R,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:R,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:O,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:O,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:O,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:O,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:J,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:S,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:S,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:S,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:S,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:S,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:w,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:w,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:$,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:$,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:X,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},F={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},z={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"};var I="https://deshotelsetdesiles.ccordier.workers.dev/v2/",G="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",y="FR",k="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var _=async()=>new Promise(s=>{geoip2.country(e=>{s(e.country.iso_code)},()=>{s(y)})});var v=s=>{let e="?";for(let[t,r]of Object.entries(s))r&&(e+=`${t}=${r}&`);return e};var A=class{async getGroupOffersData(e){let t=I+"groupOffers"+v(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getSingleHotelOffersData(e){let t=I+"offers"+v(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getCMSOffers(){let e=I+"cmsOffers",r=await(await fetch(e)).json();return r.items?r:null}async getCountries(){let e=I+"cmsCountries",r=await(await fetch(e)).json();return r.items?r:null}};var q=()=>{let s=B();if(!s){let e=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(e)}window.Weglot.on("languageChanged",()=>{if(s)window.location.reload();else{let e=window.Weglot.getCurrentLang();localStorage.setItem("wglang",e),window.loadFromServer&&window.loadFromServer()}})},B=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",x=()=>{let s=E();return z[s]},E=()=>{if(!B())return localStorage.getItem("wglang")||"fr";try{let s=window.Weglot.getCurrentLang();if(s)return s}catch(s){return console.error("Error getting language",s),"fr"}return"fr"},ee=()=>!window.location.hostname.includes("webflow.io");function K(s){if(!ee())return`/offers/${s}`;let e=E();return!e||e==="fr"?`/offers/${s}`:`/${e}/offers/${s}`}var Y=()=>{let s={};return Object.entries(M).forEach(([e,t])=>{s[t.cmsId]=e}),s},p=(s,e)=>`${s.toLowerCase().trim()}-${e.toLowerCase().trim()}`,j=(s,e,t)=>{let r=E().toUpperCase(),a=M[e].codeIPlanet.toUpperCase(),i=`${G}?Lang=${r}¤cy=${s.toUpperCase()}&HotelCode=${a}`,n=U("_ga"),o=k,d=U("_gcl_au");return i+=`&_ga=${n}&_gl=${o}&_gcl_au=${d}`,t&&(i=`${i}&HotelPromo=${t}`),i},U=s=>{let e=document.cookie.match(new RegExp("(^| )"+s+"=([^;]+)"));return e?e[2]:null};var W=(s,e,t,r)=>{let{quotation:a,rate:{distribution:i}}=e,{pricePerNight:n,currency:o,plainBookLink:d}=a,{accessCode:m}=i||{},g="";m&&m.length>0&&([g]=m),te(s,n,o);let h=s.querySelector(f.hotelReserveLink);h&&h.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),window.open(d,"_blank")});let c=s.querySelector(f.hotelVillaReserveLink);if(c&&c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),window.open(j(o,t,g),"_blank")}),r){let{fieldData:{"discount-percentage":u}}=r,b=s.querySelector(f.discount);b&&u&&(b.innerHTML=`-${u}%`);let C=s.querySelector(f.discountContainer);C&&!u&&(C.style.display="none")}},te=(s,e,t)=>{let r=s.querySelector(f.price);r&&(r.innerHTML=Math.floor(e).toString());let a=s.querySelector(f.currency);a&&(a.innerHTML=F[t])};var H=class{constructor(e,t){this.listInstance=e;this.itemTemplateElement=t;D(this,"loadingSpinner");D(this,"cmsFilterEmptyState");D(this,"offerLookup",{});D(this,"apiClient",new A);D(this,"countryCode");D(this,"availableCountries",{});D(this,"countryCodeFilter",e=>{let{fieldData:t}=e;return!t["supported-countries"]||t["supported-countries"].length===0?!0:t["supported-countries"].map(a=>this.availableCountries[a]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(f.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),e.clearItems(),q(),this.loadingSpinner=document.querySelector(f.loadingSpinner),this.countryCode=y}async getGroupOffers(e){let{clearItems:t=!0,filter:r}=e||{};t&&this.listInstance.clearItems();let a=await this.apiClient.getCMSOffers();if(!a)return;let i=await this.apiClient.getCountries();if(!i)return;i.items.forEach(b=>{this.availableCountries[b.id]=b.fieldData.title?.trim()}),this.countryCode=await _();let n=a.items.filter(r).filter(this.countryCodeFilter),o=this.generateHotelIds(n),d=this.generateHotelIds(n).join(","),m=o.length===1;m&&(d=[d,d].join(","));let{offerMetaData:g}=this.generateOfferData(n),h=x(),c=await this.apiClient.getGroupOffersData({hids:d,locale:h});if(!c||c.error||!c.data){this.hideSpinnerAndShowFilter();return}m&&(c.data=[c.data[0]]);let u=this.getAllOffers(c,g);this.addHotelToCollection(u),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(e,t=!1){let r=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n?!1:t?(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot"):o.category===e};await this.getGroupOffers({filter:r})}async getGroupThemeOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:n}=r;return a||i||!n.thematiques?!1:n.thematiques.includes(e)};await this.getGroupOffers({filter:t})}async getGroupOtherThemedOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:n}=r;return a||i||n.slug===e?!1:Array.isArray(n.thematiques)&&n.thematiques.length>0};await this.getGroupOffers({filter:t})}async getGroupSlugOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:n}=r;return a||i?!1:n.slug===e};await this.getGroupOffers({filter:t})}async getGroupOtherOffers(e,t){let r=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n||o.slug===e?!1:t?o.category===t:(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot")};await this.getGroupOffers({filter:r})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(e){let t=[],r=Y();return e.forEach(a=>{let{fieldData:{"hotel-villa":i}}=a;t.push(r[i])}),Array.from(new Set(t))}getAllOffers(e,t){let r=[];return e.data.forEach(a=>{let{prop:{hid:i},rates:n}=a;n.forEach(o=>{let{name:d,title:m}=o.rate;(t.includes(p(i,d))||t.includes(p(i,m)))&&r.push({...a,rates:[o]})})}),r.sort((a,i)=>{let n=this.offerLookup[p(a.prop.hid,a.rates[0].rate.title)]||this.offerLookup[p(a.prop.hid,a.rates[0].rate.name)],o=this.offerLookup[p(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[p(i.prop.hid,i.rates[0].rate.name)],d=Number(n.fieldData.order)||0,m=Number(o.fieldData.order)||0;return d-m}),r}generateOfferData(e){let t=[];return e.forEach(r=>{let{fieldData:{"hotel-or-property-api-id":a,"offer-api-name":i}}=r,n=p(a,i);t.push(n),this.offerLookup[n]=r}),{offerMetaData:t}}addHotelToCollection(e){for(let{prop:t,rates:r}of e){let a=r.map(i=>this.createItem(t,i,this.itemTemplateElement));this.listInstance.addItems(a)}}createItem(e,t,r){let{rate:a}=t,{hid:i,title:n,property:o}=e,{image:d,title:m,name:g}=a,h=this.offerLookup[p(i||o,m)]||this.offerLookup[p(i||o,g)],c=r.cloneNode(!0),u=M[i||o];if(!u)return c;let{destination:b,slug:C}=u;this.bindOffersMetaData(c,{destination:b,image:d,hotelName:n,title:m,slug:C}),W(c,t,i,h);let N=this.getOffersCmsSlug(i,o,g);if(N){let T=c.querySelector(f.moreDetails),P=T instanceof HTMLAnchorElement?T:T?.querySelector("a")||T?.closest("a");P&&(P.href=K(N))}return c.style.display="flex",c}getOffersCmsSlug(e,t,r){return this.offerLookup[p(e||t,r)]?.fieldData.slug}bindOffersMetaData(e,{destination:t,image:r,hotelName:a,title:i,slug:n,description:o}){let d=e.querySelector(f.destination),m=e.querySelector(f.image),g=e.querySelector(f.hotelName),h=e.querySelector(f.name),c=e.querySelector(f.description),u=e.querySelector(f.hotelLink),b=E();d&&(d.textContent=t[b]),m&&(m.src=r?.url),g&&(g.innerHTML=a),h&&(h.innerHTML=i),c&&o&&(c.innerHTML=o),u&&n&&u.addEventListener("click",()=>{window.location.href=n})}};var Z=s=>{let[e]=s,{listInstance:t}=e;if(t.items.length===0)throw new Error("No items found in the list instance - Cannot create an instance of Offers");return se(t)},se=s=>{let[e]=s.items;if(!e)throw new Error("No items found in the list instance");let t=e.element;return new H(s,t)};window.fsAttributes=window.fsAttributes||[];window.loadFromServer=()=>{window.fsAttributes.push(["cmsfilter",async s=>{await Z(s).getGroupCategoryOffers(void 0,!0)}])};window.loadFromServer();})();
|
|
1
|
+
"use strict";(()=>{var X=Object.defineProperty;var ee=(r,e,t)=>e in r?X(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var D=(r,e,t)=>(ee(r,typeof e!="symbol"?e+"":e,t),t);var l="data",f={startingPriceList:`[${l}=starting-price-list]`,price:`[${l}=price]`,discount:`[${l}=discount]`,discountContainer:`[${l}=discount-container]`,currency:`[${l}=currency]`,beHid:`[${l}-be-hid]`,destination:`[${l}=destination]`,offersList:`[${l}=offers-list]`,offerSlugDetail:`[${l}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${l}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${l}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${l}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${l}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${l}=offers-list-container]`,listItem:`[${l}=list-item]`,image:`[${l}=image]`,name:`[${l}=name]`,description:`[${l}=description]`,hotelName:`[${l}=hotel-name]`,hotelLink:`[${l}=hotel-link]`,hotelStartingPriceContainer:`[${l}=hotel-starting-price-container]`,moreDetails:`[${l}=more-details]`,offersPopup:`[${l}=offers-popup]`,offersPopupClose:`[${l}=close-btn]`,hotelReserveLink:`[${l}=hotel-reserve-link]`,hotelVillaReserveLink:`[${l}=hotel-villa-reserve-link]`,hotelURLS:`[${l}=hotel-urls]`,languageDropdown:`[${l}=language-dropdown]`,selectedLanguage:`[${l}=selected-language]`,loadingSpinner:`[${l}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:r=>`[${l}-be-hid=${r}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var S={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},R={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},O={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},te={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},M={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},$={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},F={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},re={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},I={gpgos12767:{destination:S,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:S,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:S,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:S,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:S,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:R,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:R,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:O,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:O,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:O,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:O,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:te,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:M,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:M,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:M,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:M,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:M,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:$,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:$,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:F,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:F,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:re,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},z={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},k={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"};var E="https://deshotelsetdesiles.ccordier.workers.dev/v2/",G="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",y="FR",_="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var U=async()=>new Promise(r=>{geoip2.country(e=>{r(e.country.iso_code)},()=>{r(y)})});var w=r=>{let e="?";for(let[t,s]of Object.entries(r))s&&(e+=`${t}=${s}&`);return e};var A=class{async getGroupOffersData(e){let t=E+"groupOffers"+w(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getSingleHotelOffersData(e){let t=E+"offers"+w(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getCMSOffers(){let e=E+"cmsOffers",s=await(await fetch(e)).json();return s.items?s:null}async getCountries(){let e=E+"cmsCountries",s=await(await fetch(e)).json();return s.items?s:null}};var B=()=>{let r=x();if(!r){let e=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(e)}window.Weglot.on("languageChanged",()=>{if(r)window.location.reload();else{let e=window.Weglot.getCurrentLang();localStorage.setItem("wglang",e),window.loadFromServer&&window.loadFromServer()}})},x=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",K=()=>{let r=L();return k[r]},L=()=>{if(!x())return localStorage.getItem("wglang")||"fr";try{let r=window.Weglot.getCurrentLang();if(r)return r}catch(r){return console.error("Error getting language",r),"fr"}return"fr"},j=()=>!window.location.hostname.includes("webflow.io");function N(r){if(!j())return`/offers/${r}`;let e=L();return!e||e==="fr"?`/offers/${r}`:`/${e}/offers/${r}`}function se(r){if(!r||typeof r!="object")return null;let e=r;return e.to_words?.[0]?.w||e.words?.[0]?.w||null}async function Y(r){let e=N(r);if(!j())return e;let t=L();if(!t||t==="fr")return e;try{let s=`offers/${r}`,a=await window.Weglot.translate({words:[{t:1,w:s}],languageTo:t}),i=se(a);if(!i)return e;let n=i.replace(/^\/+/,"");return n?n.startsWith(`${t}/`)?`/${n}`:`/${t}/${n}`:e}catch{return e}}var W=()=>{let r={};return Object.entries(I).forEach(([e,t])=>{r[t.cmsId]=e}),r},p=(r,e)=>`${r.toLowerCase().trim()}-${e.toLowerCase().trim()}`,Z=(r,e,t)=>{let s=L().toUpperCase(),a=I[e].codeIPlanet.toUpperCase(),i=`${G}?Lang=${s}¤cy=${r.toUpperCase()}&HotelCode=${a}`,n=q("_ga"),o=_,u=q("_gcl_au");return i+=`&_ga=${n}&_gl=${o}&_gcl_au=${u}`,t&&(i=`${i}&HotelPromo=${t}`),i},q=r=>{let e=document.cookie.match(new RegExp("(^| )"+r+"=([^;]+)"));return e?e[2]:null};var Q=(r,e,t,s)=>{let{quotation:a,rate:{distribution:i}}=e,{pricePerNight:n,currency:o,plainBookLink:u}=a,{accessCode:m}=i||{},g="";m&&m.length>0&&([g]=m),ae(r,n,o);let h=r.querySelector(f.hotelReserveLink);h&&h.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),window.open(u,"_blank")});let c=r.querySelector(f.hotelVillaReserveLink);if(c&&c.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),window.open(Z(o,t,g),"_blank")}),s){let{fieldData:{"discount-percentage":d}}=s,b=r.querySelector(f.discount);b&&d&&(b.innerHTML=`-${d}%`);let C=r.querySelector(f.discountContainer);C&&!d&&(C.style.display="none")}},ae=(r,e,t)=>{let s=r.querySelector(f.price);s&&(s.innerHTML=Math.floor(e).toString());let a=r.querySelector(f.currency);a&&(a.innerHTML=z[t])};var v=class{constructor(e,t){this.listInstance=e;this.itemTemplateElement=t;D(this,"loadingSpinner");D(this,"cmsFilterEmptyState");D(this,"offerLookup",{});D(this,"apiClient",new A);D(this,"countryCode");D(this,"availableCountries",{});D(this,"countryCodeFilter",e=>{let{fieldData:t}=e;return!t["supported-countries"]||t["supported-countries"].length===0?!0:t["supported-countries"].map(a=>this.availableCountries[a]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(f.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),e.clearItems(),B(),this.loadingSpinner=document.querySelector(f.loadingSpinner),this.countryCode=y}async getGroupOffers(e){let{clearItems:t=!0,filter:s}=e||{};t&&this.listInstance.clearItems();let a=await this.apiClient.getCMSOffers();if(!a)return;let i=await this.apiClient.getCountries();if(!i)return;i.items.forEach(b=>{this.availableCountries[b.id]=b.fieldData.title?.trim()}),this.countryCode=await U();let n=a.items.filter(s).filter(this.countryCodeFilter),o=this.generateHotelIds(n),u=this.generateHotelIds(n).join(","),m=o.length===1;m&&(u=[u,u].join(","));let{offerMetaData:g}=this.generateOfferData(n),h=K(),c=await this.apiClient.getGroupOffersData({hids:u,locale:h});if(!c||c.error||!c.data){this.hideSpinnerAndShowFilter();return}m&&(c.data=[c.data[0]]);let d=this.getAllOffers(c,g);this.addHotelToCollection(d),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(e,t=!1){let s=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n?!1:t?(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot"):o.category===e};await this.getGroupOffers({filter:s})}async getGroupThemeOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i||!n.thematiques?!1:n.thematiques.includes(e)};await this.getGroupOffers({filter:t})}async getGroupOtherThemedOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i||n.slug===e?!1:Array.isArray(n.thematiques)&&n.thematiques.length>0};await this.getGroupOffers({filter:t})}async getGroupSlugOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i?!1:n.slug===e};await this.getGroupOffers({filter:t})}async getGroupOtherOffers(e,t){let s=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n||o.slug===e?!1:t?o.category===t:(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot")};await this.getGroupOffers({filter:s})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(e){let t=[],s=W();return e.forEach(a=>{let{fieldData:{"hotel-villa":i}}=a;t.push(s[i])}),Array.from(new Set(t))}getAllOffers(e,t){let s=[];return e.data.forEach(a=>{let{prop:{hid:i},rates:n}=a;n.forEach(o=>{let{name:u,title:m}=o.rate;(t.includes(p(i,u))||t.includes(p(i,m)))&&s.push({...a,rates:[o]})})}),s.sort((a,i)=>{let n=this.offerLookup[p(a.prop.hid,a.rates[0].rate.title)]||this.offerLookup[p(a.prop.hid,a.rates[0].rate.name)],o=this.offerLookup[p(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[p(i.prop.hid,i.rates[0].rate.name)],u=Number(n.fieldData.order)||0,m=Number(o.fieldData.order)||0;return u-m}),s}generateOfferData(e){let t=[];return e.forEach(s=>{let{fieldData:{"hotel-or-property-api-id":a,"offer-api-name":i}}=s,n=p(a,i);t.push(n),this.offerLookup[n]=s}),{offerMetaData:t}}addHotelToCollection(e){for(let{prop:t,rates:s}of e){let a=s.map(i=>this.createItem(t,i,this.itemTemplateElement));this.listInstance.addItems(a)}}createItem(e,t,s){let{rate:a}=t,{hid:i,title:n,property:o}=e,{image:u,title:m,name:g}=a,h=this.offerLookup[p(i||o,m)]||this.offerLookup[p(i||o,g)],c=s.cloneNode(!0),d=I[i||o];if(!d)return c;let{destination:b,slug:C}=d;this.bindOffersMetaData(c,{destination:b,image:u,hotelName:n,title:m,slug:C}),Q(c,t,i,h);let H=this.getOffersCmsSlug(i,o,g);if(H){let T=c.querySelector(f.moreDetails),P=T instanceof HTMLAnchorElement?T:T?.querySelector("a")||T?.closest("a");P&&(P.href=N(H),Y(H).then(J=>{P.href=J}))}return c.style.display="flex",c}getOffersCmsSlug(e,t,s){return this.offerLookup[p(e||t,s)]?.fieldData.slug}bindOffersMetaData(e,{destination:t,image:s,hotelName:a,title:i,slug:n,description:o}){let u=e.querySelector(f.destination),m=e.querySelector(f.image),g=e.querySelector(f.hotelName),h=e.querySelector(f.name),c=e.querySelector(f.description),d=e.querySelector(f.hotelLink),b=L();u&&(u.textContent=t[b]),m&&(m.src=s?.url),g&&(g.innerHTML=a),h&&(h.innerHTML=i),c&&o&&(c.innerHTML=o),d&&n&&d.addEventListener("click",()=>{window.location.href=n})}};var V=r=>{let[e]=r,{listInstance:t}=e;if(t.items.length===0)throw new Error("No items found in the list instance - Cannot create an instance of Offers");return ie(t)},ie=r=>{let[e]=r.items;if(!e)throw new Error("No items found in the list instance");let t=e.element;return new v(r,t)};window.fsAttributes=window.fsAttributes||[];window.loadFromServer=()=>{window.fsAttributes.push(["cmsfilter",async r=>{await V(r).getGroupCategoryOffers(void 0,!0)}])};window.loadFromServer();})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var V=Object.defineProperty;var J=(s,e,t)=>e in s?V(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var D=(s,e,t)=>(J(s,typeof e!="symbol"?e+"":e,t),t);var l="data",f={startingPriceList:`[${l}=starting-price-list]`,price:`[${l}=price]`,discount:`[${l}=discount]`,discountContainer:`[${l}=discount-container]`,currency:`[${l}=currency]`,beHid:`[${l}-be-hid]`,destination:`[${l}=destination]`,offersList:`[${l}=offers-list]`,offerSlugDetail:`[${l}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${l}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${l}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${l}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${l}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${l}=offers-list-container]`,listItem:`[${l}=list-item]`,image:`[${l}=image]`,name:`[${l}=name]`,description:`[${l}=description]`,hotelName:`[${l}=hotel-name]`,hotelLink:`[${l}=hotel-link]`,hotelStartingPriceContainer:`[${l}=hotel-starting-price-container]`,moreDetails:`[${l}=more-details]`,offersPopup:`[${l}=offers-popup]`,offersPopupClose:`[${l}=close-btn]`,hotelReserveLink:`[${l}=hotel-reserve-link]`,hotelVillaReserveLink:`[${l}=hotel-villa-reserve-link]`,hotelURLS:`[${l}=hotel-urls]`,languageDropdown:`[${l}=language-dropdown]`,selectedLanguage:`[${l}=selected-language]`,loadingSpinner:`[${l}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:s=>`[${l}-be-hid=${s}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var L={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},P={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},O={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},X={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},S={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},w={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},$={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},ee={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},M={gpgos12767:{destination:L,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:L,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:L,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:L,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:L,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:P,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:P,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:O,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:O,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:O,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:O,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:X,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:S,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:S,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:S,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:S,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:S,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:w,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:w,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:$,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:$,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:ee,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},F={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},z={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"},G={"DERNI\xC8RE MINUTE":"735fe5e0858671cf3a5c14cbcc2470fe","R\xC9SERVEZ T\xD4T":"c5abb23caf056891f3902ff42ae2f9e0"};var I="https://deshotelsetdesiles.ccordier.workers.dev/v2/",k="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",y="FR",_="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var U=async()=>new Promise(s=>{geoip2.country(e=>{s(e.country.iso_code)},()=>{s(y)})});var v=s=>{let e="?";for(let[t,r]of Object.entries(s))r&&(e+=`${t}=${r}&`);return e};var A=class{async getGroupOffersData(e){let t=I+"groupOffers"+v(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getSingleHotelOffersData(e){let t=I+"offers"+v(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getCMSOffers(){let e=I+"cmsOffers",r=await(await fetch(e)).json();return r.items?r:null}async getCountries(){let e=I+"cmsCountries",r=await(await fetch(e)).json();return r.items?r:null}};var B=()=>{let s=x();if(!s){let e=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(e)}window.Weglot.on("languageChanged",()=>{if(s)window.location.reload();else{let e=window.Weglot.getCurrentLang();localStorage.setItem("wglang",e),window.loadFromServer&&window.loadFromServer()}})},x=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",K=()=>{let s=E();return z[s]},E=()=>{if(!x())return localStorage.getItem("wglang")||"fr";try{let s=window.Weglot.getCurrentLang();if(s)return s}catch(s){return console.error("Error getting language",s),"fr"}return"fr"},te=()=>!window.location.hostname.includes("webflow.io");function Y(s){if(!te())return`/offers/${s}`;let e=E();return!e||e==="fr"?`/offers/${s}`:`/${e}/offers/${s}`}var j=()=>{let s={};return Object.entries(M).forEach(([e,t])=>{s[t.cmsId]=e}),s},p=(s,e)=>`${s.toLowerCase().trim()}-${e.toLowerCase().trim()}`,W=(s,e,t)=>{let r=E().toUpperCase(),a=M[e].codeIPlanet.toUpperCase(),i=`${k}?Lang=${r}¤cy=${s.toUpperCase()}&HotelCode=${a}`,o=q("_ga"),n=_,d=q("_gcl_au");return i+=`&_ga=${o}&_gl=${n}&_gcl_au=${d}`,t&&(i=`${i}&HotelPromo=${t}`),i},q=s=>{let e=document.cookie.match(new RegExp("(^| )"+s+"=([^;]+)"));return e?e[2]:null};var Z=(s,e,t,r)=>{let{quotation:a,rate:{distribution:i}}=e,{pricePerNight:o,currency:n,plainBookLink:d}=a,{accessCode:m}=i||{},g="";m&&m.length>0&&([g]=m),se(s,o,n);let h=s.querySelector(f.hotelReserveLink);h&&h.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),window.open(d,"_blank")});let c=s.querySelector(f.hotelVillaReserveLink);if(c&&c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),window.open(W(n,t,g),"_blank")}),r){let{fieldData:{"discount-percentage":u}}=r,b=s.querySelector(f.discount);b&&u&&(b.innerHTML=`-${u}%`);let C=s.querySelector(f.discountContainer);C&&!u&&(C.style.display="none")}},se=(s,e,t)=>{let r=s.querySelector(f.price);r&&(r.innerHTML=Math.floor(e).toString());let a=s.querySelector(f.currency);a&&(a.innerHTML=F[t])};var H=class{constructor(e,t){this.listInstance=e;this.itemTemplateElement=t;D(this,"loadingSpinner");D(this,"cmsFilterEmptyState");D(this,"offerLookup",{});D(this,"apiClient",new A);D(this,"countryCode");D(this,"availableCountries",{});D(this,"countryCodeFilter",e=>{let{fieldData:t}=e;return!t["supported-countries"]||t["supported-countries"].length===0?!0:t["supported-countries"].map(a=>this.availableCountries[a]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(f.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),e.clearItems(),B(),this.loadingSpinner=document.querySelector(f.loadingSpinner),this.countryCode=y}async getGroupOffers(e){let{clearItems:t=!0,filter:r}=e||{};t&&this.listInstance.clearItems();let a=await this.apiClient.getCMSOffers();if(!a)return;let i=await this.apiClient.getCountries();if(!i)return;i.items.forEach(b=>{this.availableCountries[b.id]=b.fieldData.title?.trim()}),this.countryCode=await U();let o=a.items.filter(r).filter(this.countryCodeFilter),n=this.generateHotelIds(o),d=this.generateHotelIds(o).join(","),m=n.length===1;m&&(d=[d,d].join(","));let{offerMetaData:g}=this.generateOfferData(o),h=K(),c=await this.apiClient.getGroupOffersData({hids:d,locale:h});if(!c||c.error||!c.data){this.hideSpinnerAndShowFilter();return}m&&(c.data=[c.data[0]]);let u=this.getAllOffers(c,g);this.addHotelToCollection(u),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(e,t=!1){let r=a=>{let{isArchived:i,isDraft:o,fieldData:n}=a;return i||o?!1:t?(!n.thematiques||n.thematiques.length===0)&&!n.slug.includes("derniere-minute")&&!n.slug.includes("reservez-tot"):n.category===e};await this.getGroupOffers({filter:r})}async getGroupThemeOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:o}=r;return a||i||!o.thematiques?!1:o.thematiques.includes(e)};await this.getGroupOffers({filter:t})}async getGroupOtherThemedOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:o}=r;return a||i||o.slug===e?!1:Array.isArray(o.thematiques)&&o.thematiques.length>0};await this.getGroupOffers({filter:t})}async getGroupSlugOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:o}=r;return a||i?!1:o.slug===e};await this.getGroupOffers({filter:t})}async getGroupOtherOffers(e,t){let r=a=>{let{isArchived:i,isDraft:o,fieldData:n}=a;return i||o||n.slug===e?!1:t?n.category===t:(!n.thematiques||n.thematiques.length===0)&&!n.slug.includes("derniere-minute")&&!n.slug.includes("reservez-tot")};await this.getGroupOffers({filter:r})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(e){let t=[],r=j();return e.forEach(a=>{let{fieldData:{"hotel-villa":i}}=a;t.push(r[i])}),Array.from(new Set(t))}getAllOffers(e,t){let r=[];return e.data.forEach(a=>{let{prop:{hid:i},rates:o}=a;o.forEach(n=>{let{name:d,title:m}=n.rate;(t.includes(p(i,d))||t.includes(p(i,m)))&&r.push({...a,rates:[n]})})}),r.sort((a,i)=>{let o=this.offerLookup[p(a.prop.hid,a.rates[0].rate.title)]||this.offerLookup[p(a.prop.hid,a.rates[0].rate.name)],n=this.offerLookup[p(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[p(i.prop.hid,i.rates[0].rate.name)],d=Number(o.fieldData.order)||0,m=Number(n.fieldData.order)||0;return d-m}),r}generateOfferData(e){let t=[];return e.forEach(r=>{let{fieldData:{"hotel-or-property-api-id":a,"offer-api-name":i}}=r,o=p(a,i);t.push(o),this.offerLookup[o]=r}),{offerMetaData:t}}addHotelToCollection(e){for(let{prop:t,rates:r}of e){let a=r.map(i=>this.createItem(t,i,this.itemTemplateElement));this.listInstance.addItems(a)}}createItem(e,t,r){let{rate:a}=t,{hid:i,title:o,property:n}=e,{image:d,title:m,name:g}=a,h=this.offerLookup[p(i||n,m)]||this.offerLookup[p(i||n,g)],c=r.cloneNode(!0),u=M[i||n];if(!u)return c;let{destination:b,slug:C}=u;this.bindOffersMetaData(c,{destination:b,image:d,hotelName:o,title:m,slug:C}),Z(c,t,i,h);let N=this.getOffersCmsSlug(i,n,g);if(N){let T=c.querySelector(f.moreDetails),R=T instanceof HTMLAnchorElement?T:T?.querySelector("a")||T?.closest("a");R&&(R.href=Y(N))}return c.style.display="flex",c}getOffersCmsSlug(e,t,r){return this.offerLookup[p(e||t,r)]?.fieldData.slug}bindOffersMetaData(e,{destination:t,image:r,hotelName:a,title:i,slug:o,description:n}){let d=e.querySelector(f.destination),m=e.querySelector(f.image),g=e.querySelector(f.hotelName),h=e.querySelector(f.name),c=e.querySelector(f.description),u=e.querySelector(f.hotelLink),b=E();d&&(d.textContent=t[b]),m&&(m.src=r?.url),g&&(g.innerHTML=a),h&&(h.innerHTML=i),c&&n&&(c.innerHTML=n),u&&o&&u.addEventListener("click",()=>{window.location.href=o})}};var Q=s=>{let[e]=s,{listInstance:t}=e;if(t.items.length===0)throw new Error("No items found in the list instance - Cannot create an instance of Offers");return re(t)},re=s=>{let[e]=s.items;if(!e)throw new Error("No items found in the list instance");let t=e.element;return new H(s,t)};window.fsAttributes=window.fsAttributes||[];window.loadFromServer=()=>{window.fsAttributes.push(["cmsfilter",async s=>{await Q(s).getGroupCategoryOffers(G["DERNI\xC8RE MINUTE"])}])};window.loadFromServer();})();
|
|
1
|
+
"use strict";(()=>{var ee=Object.defineProperty;var te=(r,e,t)=>e in r?ee(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var D=(r,e,t)=>(te(r,typeof e!="symbol"?e+"":e,t),t);var l="data",f={startingPriceList:`[${l}=starting-price-list]`,price:`[${l}=price]`,discount:`[${l}=discount]`,discountContainer:`[${l}=discount-container]`,currency:`[${l}=currency]`,beHid:`[${l}-be-hid]`,destination:`[${l}=destination]`,offersList:`[${l}=offers-list]`,offerSlugDetail:`[${l}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${l}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${l}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${l}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${l}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${l}=offers-list-container]`,listItem:`[${l}=list-item]`,image:`[${l}=image]`,name:`[${l}=name]`,description:`[${l}=description]`,hotelName:`[${l}=hotel-name]`,hotelLink:`[${l}=hotel-link]`,hotelStartingPriceContainer:`[${l}=hotel-starting-price-container]`,moreDetails:`[${l}=more-details]`,offersPopup:`[${l}=offers-popup]`,offersPopupClose:`[${l}=close-btn]`,hotelReserveLink:`[${l}=hotel-reserve-link]`,hotelVillaReserveLink:`[${l}=hotel-villa-reserve-link]`,hotelURLS:`[${l}=hotel-urls]`,languageDropdown:`[${l}=language-dropdown]`,selectedLanguage:`[${l}=selected-language]`,loadingSpinner:`[${l}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:r=>`[${l}-be-hid=${r}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var S={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},R={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},O={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},re={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},M={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},$={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},F={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},se={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},I={gpgos12767:{destination:S,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:S,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:S,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:S,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:S,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:R,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:R,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:O,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:O,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:O,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:O,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:re,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:M,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:M,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:M,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:M,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:M,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:$,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:$,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:F,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:F,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:se,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},z={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},G={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"},k={"DERNI\xC8RE MINUTE":"735fe5e0858671cf3a5c14cbcc2470fe","R\xC9SERVEZ T\xD4T":"c5abb23caf056891f3902ff42ae2f9e0"};var E="https://deshotelsetdesiles.ccordier.workers.dev/v2/",_="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",y="FR",U="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var q=async()=>new Promise(r=>{geoip2.country(e=>{r(e.country.iso_code)},()=>{r(y)})});var w=r=>{let e="?";for(let[t,s]of Object.entries(r))s&&(e+=`${t}=${s}&`);return e};var A=class{async getGroupOffersData(e){let t=E+"groupOffers"+w(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getSingleHotelOffersData(e){let t=E+"offers"+w(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getCMSOffers(){let e=E+"cmsOffers",s=await(await fetch(e)).json();return s.items?s:null}async getCountries(){let e=E+"cmsCountries",s=await(await fetch(e)).json();return s.items?s:null}};var x=()=>{let r=K();if(!r){let e=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(e)}window.Weglot.on("languageChanged",()=>{if(r)window.location.reload();else{let e=window.Weglot.getCurrentLang();localStorage.setItem("wglang",e),window.loadFromServer&&window.loadFromServer()}})},K=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",j=()=>{let r=L();return G[r]},L=()=>{if(!K())return localStorage.getItem("wglang")||"fr";try{let r=window.Weglot.getCurrentLang();if(r)return r}catch(r){return console.error("Error getting language",r),"fr"}return"fr"},Y=()=>!window.location.hostname.includes("webflow.io");function N(r){if(!Y())return`/offers/${r}`;let e=L();return!e||e==="fr"?`/offers/${r}`:`/${e}/offers/${r}`}function ae(r){if(!r||typeof r!="object")return null;let e=r;return e.to_words?.[0]?.w||e.words?.[0]?.w||null}async function W(r){let e=N(r);if(!Y())return e;let t=L();if(!t||t==="fr")return e;try{let s=`offers/${r}`,a=await window.Weglot.translate({words:[{t:1,w:s}],languageTo:t}),i=ae(a);if(!i)return e;let n=i.replace(/^\/+/,"");return n?n.startsWith(`${t}/`)?`/${n}`:`/${t}/${n}`:e}catch{return e}}var Z=()=>{let r={};return Object.entries(I).forEach(([e,t])=>{r[t.cmsId]=e}),r},p=(r,e)=>`${r.toLowerCase().trim()}-${e.toLowerCase().trim()}`,Q=(r,e,t)=>{let s=L().toUpperCase(),a=I[e].codeIPlanet.toUpperCase(),i=`${_}?Lang=${s}¤cy=${r.toUpperCase()}&HotelCode=${a}`,n=B("_ga"),o=U,u=B("_gcl_au");return i+=`&_ga=${n}&_gl=${o}&_gcl_au=${u}`,t&&(i=`${i}&HotelPromo=${t}`),i},B=r=>{let e=document.cookie.match(new RegExp("(^| )"+r+"=([^;]+)"));return e?e[2]:null};var V=(r,e,t,s)=>{let{quotation:a,rate:{distribution:i}}=e,{pricePerNight:n,currency:o,plainBookLink:u}=a,{accessCode:m}=i||{},g="";m&&m.length>0&&([g]=m),ie(r,n,o);let h=r.querySelector(f.hotelReserveLink);h&&h.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),window.open(u,"_blank")});let c=r.querySelector(f.hotelVillaReserveLink);if(c&&c.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),window.open(Q(o,t,g),"_blank")}),s){let{fieldData:{"discount-percentage":d}}=s,b=r.querySelector(f.discount);b&&d&&(b.innerHTML=`-${d}%`);let C=r.querySelector(f.discountContainer);C&&!d&&(C.style.display="none")}},ie=(r,e,t)=>{let s=r.querySelector(f.price);s&&(s.innerHTML=Math.floor(e).toString());let a=r.querySelector(f.currency);a&&(a.innerHTML=z[t])};var v=class{constructor(e,t){this.listInstance=e;this.itemTemplateElement=t;D(this,"loadingSpinner");D(this,"cmsFilterEmptyState");D(this,"offerLookup",{});D(this,"apiClient",new A);D(this,"countryCode");D(this,"availableCountries",{});D(this,"countryCodeFilter",e=>{let{fieldData:t}=e;return!t["supported-countries"]||t["supported-countries"].length===0?!0:t["supported-countries"].map(a=>this.availableCountries[a]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(f.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),e.clearItems(),x(),this.loadingSpinner=document.querySelector(f.loadingSpinner),this.countryCode=y}async getGroupOffers(e){let{clearItems:t=!0,filter:s}=e||{};t&&this.listInstance.clearItems();let a=await this.apiClient.getCMSOffers();if(!a)return;let i=await this.apiClient.getCountries();if(!i)return;i.items.forEach(b=>{this.availableCountries[b.id]=b.fieldData.title?.trim()}),this.countryCode=await q();let n=a.items.filter(s).filter(this.countryCodeFilter),o=this.generateHotelIds(n),u=this.generateHotelIds(n).join(","),m=o.length===1;m&&(u=[u,u].join(","));let{offerMetaData:g}=this.generateOfferData(n),h=j(),c=await this.apiClient.getGroupOffersData({hids:u,locale:h});if(!c||c.error||!c.data){this.hideSpinnerAndShowFilter();return}m&&(c.data=[c.data[0]]);let d=this.getAllOffers(c,g);this.addHotelToCollection(d),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(e,t=!1){let s=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n?!1:t?(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot"):o.category===e};await this.getGroupOffers({filter:s})}async getGroupThemeOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i||!n.thematiques?!1:n.thematiques.includes(e)};await this.getGroupOffers({filter:t})}async getGroupOtherThemedOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i||n.slug===e?!1:Array.isArray(n.thematiques)&&n.thematiques.length>0};await this.getGroupOffers({filter:t})}async getGroupSlugOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i?!1:n.slug===e};await this.getGroupOffers({filter:t})}async getGroupOtherOffers(e,t){let s=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n||o.slug===e?!1:t?o.category===t:(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot")};await this.getGroupOffers({filter:s})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(e){let t=[],s=Z();return e.forEach(a=>{let{fieldData:{"hotel-villa":i}}=a;t.push(s[i])}),Array.from(new Set(t))}getAllOffers(e,t){let s=[];return e.data.forEach(a=>{let{prop:{hid:i},rates:n}=a;n.forEach(o=>{let{name:u,title:m}=o.rate;(t.includes(p(i,u))||t.includes(p(i,m)))&&s.push({...a,rates:[o]})})}),s.sort((a,i)=>{let n=this.offerLookup[p(a.prop.hid,a.rates[0].rate.title)]||this.offerLookup[p(a.prop.hid,a.rates[0].rate.name)],o=this.offerLookup[p(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[p(i.prop.hid,i.rates[0].rate.name)],u=Number(n.fieldData.order)||0,m=Number(o.fieldData.order)||0;return u-m}),s}generateOfferData(e){let t=[];return e.forEach(s=>{let{fieldData:{"hotel-or-property-api-id":a,"offer-api-name":i}}=s,n=p(a,i);t.push(n),this.offerLookup[n]=s}),{offerMetaData:t}}addHotelToCollection(e){for(let{prop:t,rates:s}of e){let a=s.map(i=>this.createItem(t,i,this.itemTemplateElement));this.listInstance.addItems(a)}}createItem(e,t,s){let{rate:a}=t,{hid:i,title:n,property:o}=e,{image:u,title:m,name:g}=a,h=this.offerLookup[p(i||o,m)]||this.offerLookup[p(i||o,g)],c=s.cloneNode(!0),d=I[i||o];if(!d)return c;let{destination:b,slug:C}=d;this.bindOffersMetaData(c,{destination:b,image:u,hotelName:n,title:m,slug:C}),V(c,t,i,h);let H=this.getOffersCmsSlug(i,o,g);if(H){let T=c.querySelector(f.moreDetails),P=T instanceof HTMLAnchorElement?T:T?.querySelector("a")||T?.closest("a");P&&(P.href=N(H),W(H).then(X=>{P.href=X}))}return c.style.display="flex",c}getOffersCmsSlug(e,t,s){return this.offerLookup[p(e||t,s)]?.fieldData.slug}bindOffersMetaData(e,{destination:t,image:s,hotelName:a,title:i,slug:n,description:o}){let u=e.querySelector(f.destination),m=e.querySelector(f.image),g=e.querySelector(f.hotelName),h=e.querySelector(f.name),c=e.querySelector(f.description),d=e.querySelector(f.hotelLink),b=L();u&&(u.textContent=t[b]),m&&(m.src=s?.url),g&&(g.innerHTML=a),h&&(h.innerHTML=i),c&&o&&(c.innerHTML=o),d&&n&&d.addEventListener("click",()=>{window.location.href=n})}};var J=r=>{let[e]=r,{listInstance:t}=e;if(t.items.length===0)throw new Error("No items found in the list instance - Cannot create an instance of Offers");return ne(t)},ne=r=>{let[e]=r.items;if(!e)throw new Error("No items found in the list instance");let t=e.element;return new v(r,t)};window.fsAttributes=window.fsAttributes||[];window.loadFromServer=()=>{window.fsAttributes.push(["cmsfilter",async r=>{await J(r).getGroupCategoryOffers(k["DERNI\xC8RE MINUTE"])}])};window.loadFromServer();})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var V=Object.defineProperty;var J=(s,e,t)=>e in s?V(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var D=(s,e,t)=>(J(s,typeof e!="symbol"?e+"":e,t),t);var l="data",f={startingPriceList:`[${l}=starting-price-list]`,price:`[${l}=price]`,discount:`[${l}=discount]`,discountContainer:`[${l}=discount-container]`,currency:`[${l}=currency]`,beHid:`[${l}-be-hid]`,destination:`[${l}=destination]`,offersList:`[${l}=offers-list]`,offerSlugDetail:`[${l}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${l}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${l}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${l}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${l}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${l}=offers-list-container]`,listItem:`[${l}=list-item]`,image:`[${l}=image]`,name:`[${l}=name]`,description:`[${l}=description]`,hotelName:`[${l}=hotel-name]`,hotelLink:`[${l}=hotel-link]`,hotelStartingPriceContainer:`[${l}=hotel-starting-price-container]`,moreDetails:`[${l}=more-details]`,offersPopup:`[${l}=offers-popup]`,offersPopupClose:`[${l}=close-btn]`,hotelReserveLink:`[${l}=hotel-reserve-link]`,hotelVillaReserveLink:`[${l}=hotel-villa-reserve-link]`,hotelURLS:`[${l}=hotel-urls]`,languageDropdown:`[${l}=language-dropdown]`,selectedLanguage:`[${l}=selected-language]`,loadingSpinner:`[${l}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:s=>`[${l}-be-hid=${s}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var L={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},P={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},O={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},X={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},S={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},w={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},$={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},ee={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},M={gpgos12767:{destination:L,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:L,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:L,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:L,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:L,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:P,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:P,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:O,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:O,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:O,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:O,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:X,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:S,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:S,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:S,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:S,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:S,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:w,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:w,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:$,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:$,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:ee,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},F={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},z={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"},G={"DERNI\xC8RE MINUTE":"735fe5e0858671cf3a5c14cbcc2470fe","R\xC9SERVEZ T\xD4T":"c5abb23caf056891f3902ff42ae2f9e0"};var I="https://deshotelsetdesiles.ccordier.workers.dev/v2/",k="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",y="FR",_="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var U=async()=>new Promise(s=>{geoip2.country(e=>{s(e.country.iso_code)},()=>{s(y)})});var v=s=>{let e="?";for(let[t,r]of Object.entries(s))r&&(e+=`${t}=${r}&`);return e};var A=class{async getGroupOffersData(e){let t=I+"groupOffers"+v(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getSingleHotelOffersData(e){let t=I+"offers"+v(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getCMSOffers(){let e=I+"cmsOffers",r=await(await fetch(e)).json();return r.items?r:null}async getCountries(){let e=I+"cmsCountries",r=await(await fetch(e)).json();return r.items?r:null}};var B=()=>{let s=x();if(!s){let e=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(e)}window.Weglot.on("languageChanged",()=>{if(s)window.location.reload();else{let e=window.Weglot.getCurrentLang();localStorage.setItem("wglang",e),window.loadFromServer&&window.loadFromServer()}})},x=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",K=()=>{let s=E();return z[s]},E=()=>{if(!x())return localStorage.getItem("wglang")||"fr";try{let s=window.Weglot.getCurrentLang();if(s)return s}catch(s){return console.error("Error getting language",s),"fr"}return"fr"},te=()=>!window.location.hostname.includes("webflow.io");function Y(s){if(!te())return`/offers/${s}`;let e=E();return!e||e==="fr"?`/offers/${s}`:`/${e}/offers/${s}`}var j=()=>{let s={};return Object.entries(M).forEach(([e,t])=>{s[t.cmsId]=e}),s},p=(s,e)=>`${s.toLowerCase().trim()}-${e.toLowerCase().trim()}`,Z=(s,e,t)=>{let r=E().toUpperCase(),a=M[e].codeIPlanet.toUpperCase(),i=`${k}?Lang=${r}¤cy=${s.toUpperCase()}&HotelCode=${a}`,o=q("_ga"),n=_,d=q("_gcl_au");return i+=`&_ga=${o}&_gl=${n}&_gcl_au=${d}`,t&&(i=`${i}&HotelPromo=${t}`),i},q=s=>{let e=document.cookie.match(new RegExp("(^| )"+s+"=([^;]+)"));return e?e[2]:null};var W=(s,e,t,r)=>{let{quotation:a,rate:{distribution:i}}=e,{pricePerNight:o,currency:n,plainBookLink:d}=a,{accessCode:m}=i||{},g="";m&&m.length>0&&([g]=m),se(s,o,n);let h=s.querySelector(f.hotelReserveLink);h&&h.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),window.open(d,"_blank")});let c=s.querySelector(f.hotelVillaReserveLink);if(c&&c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),window.open(Z(n,t,g),"_blank")}),r){let{fieldData:{"discount-percentage":u}}=r,b=s.querySelector(f.discount);b&&u&&(b.innerHTML=`-${u}%`);let C=s.querySelector(f.discountContainer);C&&!u&&(C.style.display="none")}},se=(s,e,t)=>{let r=s.querySelector(f.price);r&&(r.innerHTML=Math.floor(e).toString());let a=s.querySelector(f.currency);a&&(a.innerHTML=F[t])};var H=class{constructor(e,t){this.listInstance=e;this.itemTemplateElement=t;D(this,"loadingSpinner");D(this,"cmsFilterEmptyState");D(this,"offerLookup",{});D(this,"apiClient",new A);D(this,"countryCode");D(this,"availableCountries",{});D(this,"countryCodeFilter",e=>{let{fieldData:t}=e;return!t["supported-countries"]||t["supported-countries"].length===0?!0:t["supported-countries"].map(a=>this.availableCountries[a]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(f.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),e.clearItems(),B(),this.loadingSpinner=document.querySelector(f.loadingSpinner),this.countryCode=y}async getGroupOffers(e){let{clearItems:t=!0,filter:r}=e||{};t&&this.listInstance.clearItems();let a=await this.apiClient.getCMSOffers();if(!a)return;let i=await this.apiClient.getCountries();if(!i)return;i.items.forEach(b=>{this.availableCountries[b.id]=b.fieldData.title?.trim()}),this.countryCode=await U();let o=a.items.filter(r).filter(this.countryCodeFilter),n=this.generateHotelIds(o),d=this.generateHotelIds(o).join(","),m=n.length===1;m&&(d=[d,d].join(","));let{offerMetaData:g}=this.generateOfferData(o),h=K(),c=await this.apiClient.getGroupOffersData({hids:d,locale:h});if(!c||c.error||!c.data){this.hideSpinnerAndShowFilter();return}m&&(c.data=[c.data[0]]);let u=this.getAllOffers(c,g);this.addHotelToCollection(u),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(e,t=!1){let r=a=>{let{isArchived:i,isDraft:o,fieldData:n}=a;return i||o?!1:t?(!n.thematiques||n.thematiques.length===0)&&!n.slug.includes("derniere-minute")&&!n.slug.includes("reservez-tot"):n.category===e};await this.getGroupOffers({filter:r})}async getGroupThemeOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:o}=r;return a||i||!o.thematiques?!1:o.thematiques.includes(e)};await this.getGroupOffers({filter:t})}async getGroupOtherThemedOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:o}=r;return a||i||o.slug===e?!1:Array.isArray(o.thematiques)&&o.thematiques.length>0};await this.getGroupOffers({filter:t})}async getGroupSlugOffers(e){let t=r=>{let{isArchived:a,isDraft:i,fieldData:o}=r;return a||i?!1:o.slug===e};await this.getGroupOffers({filter:t})}async getGroupOtherOffers(e,t){let r=a=>{let{isArchived:i,isDraft:o,fieldData:n}=a;return i||o||n.slug===e?!1:t?n.category===t:(!n.thematiques||n.thematiques.length===0)&&!n.slug.includes("derniere-minute")&&!n.slug.includes("reservez-tot")};await this.getGroupOffers({filter:r})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(e){let t=[],r=j();return e.forEach(a=>{let{fieldData:{"hotel-villa":i}}=a;t.push(r[i])}),Array.from(new Set(t))}getAllOffers(e,t){let r=[];return e.data.forEach(a=>{let{prop:{hid:i},rates:o}=a;o.forEach(n=>{let{name:d,title:m}=n.rate;(t.includes(p(i,d))||t.includes(p(i,m)))&&r.push({...a,rates:[n]})})}),r.sort((a,i)=>{let o=this.offerLookup[p(a.prop.hid,a.rates[0].rate.title)]||this.offerLookup[p(a.prop.hid,a.rates[0].rate.name)],n=this.offerLookup[p(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[p(i.prop.hid,i.rates[0].rate.name)],d=Number(o.fieldData.order)||0,m=Number(n.fieldData.order)||0;return d-m}),r}generateOfferData(e){let t=[];return e.forEach(r=>{let{fieldData:{"hotel-or-property-api-id":a,"offer-api-name":i}}=r,o=p(a,i);t.push(o),this.offerLookup[o]=r}),{offerMetaData:t}}addHotelToCollection(e){for(let{prop:t,rates:r}of e){let a=r.map(i=>this.createItem(t,i,this.itemTemplateElement));this.listInstance.addItems(a)}}createItem(e,t,r){let{rate:a}=t,{hid:i,title:o,property:n}=e,{image:d,title:m,name:g}=a,h=this.offerLookup[p(i||n,m)]||this.offerLookup[p(i||n,g)],c=r.cloneNode(!0),u=M[i||n];if(!u)return c;let{destination:b,slug:C}=u;this.bindOffersMetaData(c,{destination:b,image:d,hotelName:o,title:m,slug:C}),W(c,t,i,h);let N=this.getOffersCmsSlug(i,n,g);if(N){let T=c.querySelector(f.moreDetails),R=T instanceof HTMLAnchorElement?T:T?.querySelector("a")||T?.closest("a");R&&(R.href=Y(N))}return c.style.display="flex",c}getOffersCmsSlug(e,t,r){return this.offerLookup[p(e||t,r)]?.fieldData.slug}bindOffersMetaData(e,{destination:t,image:r,hotelName:a,title:i,slug:o,description:n}){let d=e.querySelector(f.destination),m=e.querySelector(f.image),g=e.querySelector(f.hotelName),h=e.querySelector(f.name),c=e.querySelector(f.description),u=e.querySelector(f.hotelLink),b=E();d&&(d.textContent=t[b]),m&&(m.src=r?.url),g&&(g.innerHTML=a),h&&(h.innerHTML=i),c&&n&&(c.innerHTML=n),u&&o&&u.addEventListener("click",()=>{window.location.href=o})}};var Q=s=>{let[e]=s,{listInstance:t}=e;if(t.items.length===0)throw new Error("No items found in the list instance - Cannot create an instance of Offers");return re(t)},re=s=>{let[e]=s.items;if(!e)throw new Error("No items found in the list instance");let t=e.element;return new H(s,t)};window.fsAttributes=window.fsAttributes||[];window.loadFromServer=()=>{window.fsAttributes.push(["cmsfilter",async s=>{await Q(s).getGroupCategoryOffers(G["R\xC9SERVEZ T\xD4T"])}])};window.loadFromServer();})();
|
|
1
|
+
"use strict";(()=>{var ee=Object.defineProperty;var te=(r,e,t)=>e in r?ee(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var D=(r,e,t)=>(te(r,typeof e!="symbol"?e+"":e,t),t);var l="data",f={startingPriceList:`[${l}=starting-price-list]`,price:`[${l}=price]`,discount:`[${l}=discount]`,discountContainer:`[${l}=discount-container]`,currency:`[${l}=currency]`,beHid:`[${l}-be-hid]`,destination:`[${l}=destination]`,offersList:`[${l}=offers-list]`,offerSlugDetail:`[${l}=offer-slug-detail], [data-offer-slug-detail]`,offerSlugOthersList:`[${l}=offer-slug-others-list], [data-offer-slug-others-list]`,offerSlugOthersList2:`[${l}=offer-slug-others-list2], [data-offer-slug-others-list2]`,offerSlugOthersList3:`[${l}=offer-slug-others-list3], [data-offer-slug-others-list3]`,offerSlugOthersListItem:".offer-others_item",offersMoreWrapper:`[${l}=offers-more-wrapper]`,offerOthersTabsMenu:".offer-others_tabs-menu",offerOthersTabLink:".offer-others_tab-link",offerOthersTabPane:".offer-others_tab-pane",offersListContainer:`[${l}=offers-list-container]`,listItem:`[${l}=list-item]`,image:`[${l}=image]`,name:`[${l}=name]`,description:`[${l}=description]`,hotelName:`[${l}=hotel-name]`,hotelLink:`[${l}=hotel-link]`,hotelStartingPriceContainer:`[${l}=hotel-starting-price-container]`,moreDetails:`[${l}=more-details]`,offersPopup:`[${l}=offers-popup]`,offersPopupClose:`[${l}=close-btn]`,hotelReserveLink:`[${l}=hotel-reserve-link]`,hotelVillaReserveLink:`[${l}=hotel-villa-reserve-link]`,hotelURLS:`[${l}=hotel-urls]`,languageDropdown:`[${l}=language-dropdown]`,selectedLanguage:`[${l}=selected-language]`,loadingSpinner:`[${l}=loading-spinner]`,cmsFilterEmptyState:"[fs-cmsfilter-element=empty]",startingfromItem:r=>`[${l}-be-hid=${r}]`,popupOverlay:"[fs-smartlightbox-element=trigger-close]"};var S={en:"Guadeloupe Islands",fr:"Les \xCEles de Guadeloupe",es:"Las islas de Guadalupe",it:"Le isole della Guadalupa"},R={en:"La Dominique",fr:"La Dominique",es:"Dominica",it:"Dominica"},O={en:"Saint Lucia",fr:"Sainte-Lucie",es:"Santa Luc\xEDa",it:"Santa Lucia"},re={en:"Martinique",fr:"Martinique",es:"Martinica",it:"Martinica"},M={en:"Mauritius",fr:"\xCEle Maurice",es:"Mauricio",it:"Mauritius"},$={en:"Saint Martin",fr:"Saint-Martin",es:"Saint-Martin",it:"Saint Martin"},F={en:"Antigua",fr:"Antigua",es:"Antigua",it:"Antigua"},se={en:"Anguilla",fr:"Anguilla",es:"Anguila",it:"Anguilla"},I={gpgos12767:{destination:S,slug:"/hotels-et-villas/creole-beach-hotel-spa",codeIPlanet:"FRAN414",cmsId:"67c809b5f63deab8a71cf8e9"},gptro12772:{destination:S,slug:"/hotels-et-villas/le-jardin-malanga",codeIPlanet:"FRAN416",cmsId:"67c809b5f63deab8a71cf90d"},gpsai12770:{destination:S,slug:"/hotels-et-villas/la-toubana-hotel-spa",codeIPlanet:"FRAN411",cmsId:"67c809b5f63deab8a71cf8ef"},gpgos12769:{destination:S,slug:"/hotels-et-villas/mahogany-hotel-residence-spa",codeIPlanet:"FRAN423",cmsId:"67c809b5f63deab8a71cf91f"},gpgua27143:{destination:S,slug:"/hotels-et-villas/langley-resort-fort-royal",codeIPlanet:"GPAN32",cmsId:"67c809b5f63deab8a71cf8f0"},mqros18592:{destination:R,slug:"/hotels-et-villas/jungle-bay-dominica",codeIPlanet:"DMAN1",cmsId:"67c809b5f63deab8a71cf8ed"},dmtib00001:{destination:R,slug:"/hotels-et-villas/secret-bay-dominique",codeIPlanet:"DMAN2",cmsId:"67c809b5f63deab8a71cfefd"},agste21689:{destination:O,slug:"/hotels-et-villas/jade-mountain",codeIPlanet:"AGAN6",cmsId:"67c809b5f63deab8a71cf92a"},zzzzz25376:{destination:O,slug:"/hotels-et-villas/windjammer-landing",codeIPlanet:"LCAN4",cmsId:"67c809b5f63deab8a71cf92b"},lcgro30400:{destination:O,slug:"/hotels-et-villas/cap-maison",codeIPlanet:"LCLC8",cmsId:"67c809b5f63deab8a71cf929"},agste21688:{destination:O,slug:"/hotels-et-villas/anse-chastanet",codeIPlanet:"AGAN5",cmsId:"67c809b5f63deab8a71cf928"},mqsai18593:{destination:re,slug:"/hotels-et-villas/plein-soleil",codeIPlanet:"MQAN16",cmsId:"67c809b5f63deab8a71cf925"},zzzzz25378:{destination:M,slug:"/hotels-et-villas/shanti-maurice",codeIPlanet:"MUAN22",cmsId:"67c809b5f63deab8a71cf933"},zzzzz25377:{destination:M,slug:"/hotels-et-villas/lux-le-morne",codeIPlanet:"MUAN21",cmsId:"67c809b5f63deab8a71cf931"},zzzzz25379:{destination:M,slug:"/hotels-et-villas/constance-belle-mare-plage",codeIPlanet:"MUAN20",cmsId:"67c809b5f63deab8a71cf92f"},mupos25678:{destination:M,slug:"/hotels-et-villas/constance-le-prince-maurice",codeIPlanet:"MUAN24",cmsId:"67c809b5f63deab8a71cf930"},zzzzz25380:{destination:M,slug:"/hotels-et-villas/anahita-the-resort",codeIPlanet:"MUAN19",cmsId:"67c809b5f63deab8a71cf92e"},agstm21687:{destination:$,slug:"/hotels-et-villas/la-samanna",codeIPlanet:"FRAN2350",cmsId:"67c809b5f63deab8a71cf926"},frsai31536:{destination:$,slug:"/hotels-et-villas/le-grand-case-beach-club",codeIPlanet:"FRFRA3",cmsId:"67c809b5f63deab8a71cf927"},ageng20433:{destination:F,slug:"/hotels-et-villas/the-inn-at-english-harbour",codeIPlanet:"AGAN4",cmsId:"67c809b5f63deab8a71cf8ec"},agcro20496:{destination:F,slug:"/hotels-et-villas/blue-waters",codeIPlanet:"AGAN1",cmsId:"67c809b5f63deab8a71cf8eb"},gpang25884:{destination:se,slug:"/hotels-et-villas/aurora-anguilla-resort-golf-club",codeIPlanet:"GPAN30",cmsId:"67c809b5f63deab8a71cf8ea"}},z={AED:"\u062F.\u0625.",AFN:"Af",ALL:"L",AMD:"\u058F",ANG:"\u0192",AOA:"Kz",ARS:"AR$",AUD:"AU$",AWG:"\u0192",AZN:"\u043C\u0430\u043D",BAM:"KM",BBD:"BBD$",BDT:"\u09F3",BGN:"\u043B\u0432.",BHD:"BD",BIF:"FBu",BMD:"$",BND:"B$",BOB:"Bs.",BRL:"R$",BSD:"$",BTN:"Nu.",BWP:"P",BYN:"Br",BZD:"BZ$",CAD:"CA$",CDF:"FC",CHF:"Fr.",CKD:"$",CLP:"CL$",CNY:"CN\xA5",COP:"CO$",CRC:"\u20A1",CUC:"CUC$",CUP:"$MN",CVE:"CV$",CZK:"K\u010D",DJF:"Fdj",DKK:"kr.",DOP:"RD$",DZD:"DA",EGP:"E\xA3",EHP:"Ptas.",ERN:"Nkf",ETB:"Br",EUR:"\u20AC",FJD:"FJ$",FKP:"FK\xA3",FOK:"kr",GBP:"\xA3",GEL:"\u20BE",GGP:"\xA3",GHS:"GH\u20B5",GIP:"\xA3",GMD:"D",GNF:"FG",GTQ:"Q",GYD:"G$",HKD:"HK$",HNL:"L",HRK:"kn",HTG:"G",HUF:"Ft",IDR:"Rp",ILS:"\u20AA",IMP:"\xA3",INR:"Rs.",IQD:"\u062F.\u0639.",IRR:"\uFDFC",ISK:"kr",JEP:"\xA3",JMD:"J$",JOD:"JD",JPY:"\xA5",KES:"KSh",KGS:"\u0441",KHR:"\u17DB",KID:"$",KMF:"CF",KPW:"\u20A9",KRW:"\u20A9",KWD:"KD",KYD:"CI$",KZT:"\u20B8",LAK:"\u20ADN",LBP:"LL.",LKR:"Rs.",LRD:"L$",LSL:"L",LYD:"LD",MAD:"DH",MDL:"L",MGA:"Ar",MKD:"den",MMK:"Ks",MNT:"\u20AE",MOP:"MOP$",MRU:"UM",MUR:"Rs.",MVR:"MRf",MWK:"MK",MXN:"MX$",MYR:"RM",MZN:"MTn",NAD:"N$",NGN:"\u20A6",NIO:"C$",NOK:"kr",NPR:"Rs.",NZD:"NZ$",OMR:"OR",PAB:"B/.",PEN:"S/.",PGK:"K",PHP:"\u20B1",PKR:"Rs.",PLN:"z\u0142",PND:"$",PRB:"\u0440.",PYG:"\u20B2",QAR:"QR",RON:"L",RSD:"din",RUB:"\u20BD",RWF:"FRw",SAR:"SR",SBD:"SI$",SCR:"Rs.",SDG:"\xA3SD",SEK:"kr",SGD:"S$",SHP:"\xA3",SLL:"Le",SLS:"Sl",SOS:"Sh.So.",SRD:"Sr$",SSP:"SS\xA3",STN:"Db",SVC:"\u20A1",SYP:"LS",SZL:"L",THB:"\u0E3F",TJS:"SM",TMT:"m.",TND:"DT",TOP:"T$",TRY:"TL",TTD:"TT$",TVD:"$",TWD:"NT$",TZS:"TSh",UAH:"\u20B4",UGX:"USh",USD:"$",UYU:"$U",UZS:"\u0441\u0443\u043C",VED:"Bs.",VES:"Bs.F",VND:"\u20AB",VUV:"VT",WST:"T",XAF:"Fr",XCD:"$",XOF:"\u20A3",XPF:"\u20A3",YER:"YR",ZAR:"R",ZMW:"ZK",ZWB:"",ZWL:"Z$",Abkhazia:"",Artsakh:"\u0564\u0580."},G={it:"it_IT",es:"es_ES",fr:"fr_FR",en:"en_GB"},k={"DERNI\xC8RE MINUTE":"735fe5e0858671cf3a5c14cbcc2470fe","R\xC9SERVEZ T\xD4T":"c5abb23caf056891f3902ff42ae2f9e0"};var E="https://deshotelsetdesiles.ccordier.workers.dev/v2/",_="https://deshotelsetdesiles.i-planet.fr/dhdi-public/searchform.cgi",y="FR",U="1*q1lzz9*_gcl_au*MTMyMzcyMDY5NC4xNzM5Mjg5MzYx*_ga*NTAxMzI1MzMwLjE3MzkyODkzNjE.*_ga_Q0RXHLR7D4*MTczOTI5NzEzNC4zLjAuMTczOTI5NzE3Mi4yMi4wLjA.";var q=async()=>new Promise(r=>{geoip2.country(e=>{r(e.country.iso_code)},()=>{r(y)})});var w=r=>{let e="?";for(let[t,s]of Object.entries(r))s&&(e+=`${t}=${s}&`);return e};var A=class{async getGroupOffersData(e){let t=E+"groupOffers"+w(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getSingleHotelOffersData(e){let t=E+"offers"+w(e),a=await(await fetch(t)).json();return a.error||!a.data?null:a}async getCMSOffers(){let e=E+"cmsOffers",s=await(await fetch(e)).json();return s.items?s:null}async getCountries(){let e=E+"cmsCountries",s=await(await fetch(e)).json();return s.items?s:null}};var x=()=>{let r=K();if(!r){let e=localStorage.getItem("wglang")||"fr";window.Weglot.switchTo(e)}window.Weglot.on("languageChanged",()=>{if(r)window.location.reload();else{let e=window.Weglot.getCurrentLang();localStorage.setItem("wglang",e),window.loadFromServer&&window.loadFromServer()}})},K=()=>window.location.hostname!=="deshotelsetdesiles.webflow.io",j=()=>{let r=L();return G[r]},L=()=>{if(!K())return localStorage.getItem("wglang")||"fr";try{let r=window.Weglot.getCurrentLang();if(r)return r}catch(r){return console.error("Error getting language",r),"fr"}return"fr"},Y=()=>!window.location.hostname.includes("webflow.io");function N(r){if(!Y())return`/offers/${r}`;let e=L();return!e||e==="fr"?`/offers/${r}`:`/${e}/offers/${r}`}function ae(r){if(!r||typeof r!="object")return null;let e=r;return e.to_words?.[0]?.w||e.words?.[0]?.w||null}async function W(r){let e=N(r);if(!Y())return e;let t=L();if(!t||t==="fr")return e;try{let s=`offers/${r}`,a=await window.Weglot.translate({words:[{t:1,w:s}],languageTo:t}),i=ae(a);if(!i)return e;let n=i.replace(/^\/+/,"");return n?n.startsWith(`${t}/`)?`/${n}`:`/${t}/${n}`:e}catch{return e}}var Z=()=>{let r={};return Object.entries(I).forEach(([e,t])=>{r[t.cmsId]=e}),r},p=(r,e)=>`${r.toLowerCase().trim()}-${e.toLowerCase().trim()}`,Q=(r,e,t)=>{let s=L().toUpperCase(),a=I[e].codeIPlanet.toUpperCase(),i=`${_}?Lang=${s}¤cy=${r.toUpperCase()}&HotelCode=${a}`,n=B("_ga"),o=U,u=B("_gcl_au");return i+=`&_ga=${n}&_gl=${o}&_gcl_au=${u}`,t&&(i=`${i}&HotelPromo=${t}`),i},B=r=>{let e=document.cookie.match(new RegExp("(^| )"+r+"=([^;]+)"));return e?e[2]:null};var V=(r,e,t,s)=>{let{quotation:a,rate:{distribution:i}}=e,{pricePerNight:n,currency:o,plainBookLink:u}=a,{accessCode:m}=i||{},g="";m&&m.length>0&&([g]=m),ie(r,n,o);let h=r.querySelector(f.hotelReserveLink);h&&h.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),window.open(u,"_blank")});let c=r.querySelector(f.hotelVillaReserveLink);if(c&&c.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),window.open(Q(o,t,g),"_blank")}),s){let{fieldData:{"discount-percentage":d}}=s,b=r.querySelector(f.discount);b&&d&&(b.innerHTML=`-${d}%`);let C=r.querySelector(f.discountContainer);C&&!d&&(C.style.display="none")}},ie=(r,e,t)=>{let s=r.querySelector(f.price);s&&(s.innerHTML=Math.floor(e).toString());let a=r.querySelector(f.currency);a&&(a.innerHTML=z[t])};var v=class{constructor(e,t){this.listInstance=e;this.itemTemplateElement=t;D(this,"loadingSpinner");D(this,"cmsFilterEmptyState");D(this,"offerLookup",{});D(this,"apiClient",new A);D(this,"countryCode");D(this,"availableCountries",{});D(this,"countryCodeFilter",e=>{let{fieldData:t}=e;return!t["supported-countries"]||t["supported-countries"].length===0?!0:t["supported-countries"].map(a=>this.availableCountries[a]).includes(this.countryCode)});this.cmsFilterEmptyState=document.querySelector(f.cmsFilterEmptyState),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.add("hide-empty-state"),e.clearItems(),x(),this.loadingSpinner=document.querySelector(f.loadingSpinner),this.countryCode=y}async getGroupOffers(e){let{clearItems:t=!0,filter:s}=e||{};t&&this.listInstance.clearItems();let a=await this.apiClient.getCMSOffers();if(!a)return;let i=await this.apiClient.getCountries();if(!i)return;i.items.forEach(b=>{this.availableCountries[b.id]=b.fieldData.title?.trim()}),this.countryCode=await q();let n=a.items.filter(s).filter(this.countryCodeFilter),o=this.generateHotelIds(n),u=this.generateHotelIds(n).join(","),m=o.length===1;m&&(u=[u,u].join(","));let{offerMetaData:g}=this.generateOfferData(n),h=j(),c=await this.apiClient.getGroupOffersData({hids:u,locale:h});if(!c||c.error||!c.data){this.hideSpinnerAndShowFilter();return}m&&(c.data=[c.data[0]]);let d=this.getAllOffers(c,g);this.addHotelToCollection(d),this.hideSpinnerAndShowFilter()}async getGroupCategoryOffers(e,t=!1){let s=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n?!1:t?(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot"):o.category===e};await this.getGroupOffers({filter:s})}async getGroupThemeOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i||!n.thematiques?!1:n.thematiques.includes(e)};await this.getGroupOffers({filter:t})}async getGroupOtherThemedOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i||n.slug===e?!1:Array.isArray(n.thematiques)&&n.thematiques.length>0};await this.getGroupOffers({filter:t})}async getGroupSlugOffers(e){let t=s=>{let{isArchived:a,isDraft:i,fieldData:n}=s;return a||i?!1:n.slug===e};await this.getGroupOffers({filter:t})}async getGroupOtherOffers(e,t){let s=a=>{let{isArchived:i,isDraft:n,fieldData:o}=a;return i||n||o.slug===e?!1:t?o.category===t:(!o.thematiques||o.thematiques.length===0)&&!o.slug.includes("derniere-minute")&&!o.slug.includes("reservez-tot")};await this.getGroupOffers({filter:s})}hideSpinnerAndShowFilter(){this.loadingSpinner&&(this.loadingSpinner.style.display="none"),this.cmsFilterEmptyState&&this.cmsFilterEmptyState.classList.remove("hide-empty-state")}generateHotelIds(e){let t=[],s=Z();return e.forEach(a=>{let{fieldData:{"hotel-villa":i}}=a;t.push(s[i])}),Array.from(new Set(t))}getAllOffers(e,t){let s=[];return e.data.forEach(a=>{let{prop:{hid:i},rates:n}=a;n.forEach(o=>{let{name:u,title:m}=o.rate;(t.includes(p(i,u))||t.includes(p(i,m)))&&s.push({...a,rates:[o]})})}),s.sort((a,i)=>{let n=this.offerLookup[p(a.prop.hid,a.rates[0].rate.title)]||this.offerLookup[p(a.prop.hid,a.rates[0].rate.name)],o=this.offerLookup[p(i.prop.hid,i.rates[0].rate.title)]||this.offerLookup[p(i.prop.hid,i.rates[0].rate.name)],u=Number(n.fieldData.order)||0,m=Number(o.fieldData.order)||0;return u-m}),s}generateOfferData(e){let t=[];return e.forEach(s=>{let{fieldData:{"hotel-or-property-api-id":a,"offer-api-name":i}}=s,n=p(a,i);t.push(n),this.offerLookup[n]=s}),{offerMetaData:t}}addHotelToCollection(e){for(let{prop:t,rates:s}of e){let a=s.map(i=>this.createItem(t,i,this.itemTemplateElement));this.listInstance.addItems(a)}}createItem(e,t,s){let{rate:a}=t,{hid:i,title:n,property:o}=e,{image:u,title:m,name:g}=a,h=this.offerLookup[p(i||o,m)]||this.offerLookup[p(i||o,g)],c=s.cloneNode(!0),d=I[i||o];if(!d)return c;let{destination:b,slug:C}=d;this.bindOffersMetaData(c,{destination:b,image:u,hotelName:n,title:m,slug:C}),V(c,t,i,h);let H=this.getOffersCmsSlug(i,o,g);if(H){let T=c.querySelector(f.moreDetails),P=T instanceof HTMLAnchorElement?T:T?.querySelector("a")||T?.closest("a");P&&(P.href=N(H),W(H).then(X=>{P.href=X}))}return c.style.display="flex",c}getOffersCmsSlug(e,t,s){return this.offerLookup[p(e||t,s)]?.fieldData.slug}bindOffersMetaData(e,{destination:t,image:s,hotelName:a,title:i,slug:n,description:o}){let u=e.querySelector(f.destination),m=e.querySelector(f.image),g=e.querySelector(f.hotelName),h=e.querySelector(f.name),c=e.querySelector(f.description),d=e.querySelector(f.hotelLink),b=L();u&&(u.textContent=t[b]),m&&(m.src=s?.url),g&&(g.innerHTML=a),h&&(h.innerHTML=i),c&&o&&(c.innerHTML=o),d&&n&&d.addEventListener("click",()=>{window.location.href=n})}};var J=r=>{let[e]=r,{listInstance:t}=e;if(t.items.length===0)throw new Error("No items found in the list instance - Cannot create an instance of Offers");return ne(t)},ne=r=>{let[e]=r.items;if(!e)throw new Error("No items found in the list instance");let t=e.element;return new v(r,t)};window.fsAttributes=window.fsAttributes||[];window.loadFromServer=()=>{window.fsAttributes.push(["cmsfilter",async r=>{await J(r).getGroupCategoryOffers(k["R\xC9SERVEZ T\xD4T"])}])};window.loadFromServer();})();
|