1import{_ as q}from"./RoomComponent-BBPwLFBy.js";import{R as E}from"./RatePlanComponent-D1qY2lp0.js";import{s as R,d as z}from"./pinia-BxPjN3GY.js";import{u as Q}from"./vue-i18n-Bb1jD0ox.js";import{_ as I,k as K,j as L,a3 as O,r as U,u as V,L as X}from"./index-C3qBTCDi.js";import{u as G}from"./vue-router-QQb6IO2i.js";import{f as t,g as r,D as v,H as f,F as w,L as D,z as B,r as $,c as J,w as F,s as k,j as S,a as W,x as H,X as Y,n as Z}from"./@vue-DOiiOO2i.js";import{W as ee}from"./WarningBanner-DaO1xkcw.js";import{f as A}from"./date-fns-Dzy_VLxG.js";import{S as j}from"./mealPlanIcons-0c_DFsLr.js";import{useOffersStore as te}from"./offers.store-HNEoNZCa.js";import"./ApiHtmlContent-DurjL9uE.js";import"./dompurify-BpHzDiVx.js";import"./exclamation-triangle-BEJOJtio.js";import"./mealPlanDisplay-DbIR0DeL.js";import"./WarningInfo-Db_lZuJX.js";import"./info-yE5ghp3p.js";import"./vue3-lottie-DhVXH9ie.js";import"./lottie-web-DiXPyFxs.js";import"./@intlify-Y34EtYYP.js";import"./tailwindcss-DF6Njrav.js";import"./picocolors-CBpy9uNM.js";import"./axios-DTyqpfTh.js";import"./vue-multiselect-ljvZoOSp.js";import"./@kyvg-CGsn1wZ4.js";import"./@dash0-D1h7I60T.js";import"./swiper-uFxvWEbO.js";const oe={class:"hotel-card transition-transform duration-300 hover:scale-105 hover:shadow-lg"},se=["src"],ae={class:"hotel-info"},re={class:"hotel-name"},ne={class:"hotel-description mb-4 hidden text-sm lg:block"},le={class:"hotel-buttons items-center lg:items-stretch"},ie={class:"w-full lg:w-3/5"},ce={class:"text-sm"},ue={class:"text-sm"},me={key:0,class:"text-text-secondary mt-1 text-center text-xs"},de={__name:"AlternativeHotelCard",props:{hotel:Object},setup(s){const _=G(),i=K(),l=L(),{loadPromotionsFromSession:y}=l,{activatedPromotionalCodes:g}=R(l),{initializeApp:c}=O(),u=s,m=e=>{if(!e||!u.hotel.currency_symbol)return"0";const o=Math.floor(parseFloat(e));return`${u.hotel.currency_symbol}${o}`},d=e=>{window.open(e,"_blank")},h=async e=>{i.setApiKey(e),g.value=[],y(),await c();const o={..._.query},a="gc";o[a]=e,U.push({name:"home",query:o}).then(()=>{window.location.reload()})};return(e,o)=>(t(),r("div",oe,[v("img",{src:s.hotel.image,alt:"Hotel image",class:"hotel-image"},null,8,se),v("div",ae,[v("h3",re,f(s.hotel.name),1),v("div",ne,f(s.hotel.description),1),v("div",le,[v("div",{onClick:o[0]||(o[0]=a=>d(s.hotel.link)),class:"visit-website-button cursor-pointer text-center"},f(e.$t("general.visitWebsite")),1),v("div",ie,[v("button",{class:"book-now-button cursor-pointer hover:opacity-75",onClick:o[1]||(o[1]=a=>h(s.hotel.api_key))},[s.hotel.price_per_night?(t(),r(w,{key:0},[D(f(e.$t("general.bookNowFrom",{n:m(s.hotel.price_per_night)}))+" ",1),v("span",ce,f(e.$t("general.perNight")),1)],64)):(t(),r(w,{key:1},[D(f(e.$t("general.bookNowFrom",{n:m(s.hotel.total_price),x:s.hotel.number_nights}))+" ",1),v("span",ue,f(e.$t("general.forNights",{x:s.hotel.number_nights})),1)],64))]),s.hotel.show_taxes_and_fees?(t(),r("div",me,f(e.$t("general.someTaxesAndFees")),1)):B("",!0)])])])]))}},he=I(de,[["__scopeId","data-v-9d50dd55"]]),ve=X(),x=$(!1),T=$({}),pe=V(),{applicationSetup:C}=R(pe),ye=L(),{query:p}=R(ye),ge=z("alternativeHotels",()=>{const s=async()=>{var y,g;if(x.value=!0,!C.value.currency)return;const i=_.value;let l=T.value[i];if(l)return x.value=!1,l;try{const c={language:C.value.language,checkin:A(p.value.startDate,"yyyy-MM-dd"),checkout:A(p.value.endDate,"yyyy-MM-dd"),currency:C.value.currency,adults:(y=p.value.occupancy[0])==null?void 0:y.nrAdults,children:(g=p.value.occupancy[0])==null?void 0:g.nrChildren,number_rooms:p.value.occupancy.length};return l=(await ve.get("alternative_hotels",c)).data,T.value[i]=l,l}catch(c){throw console.error("Error fetching alternative hotels:",c),new Error("Failed to fetch alternative hotels.")}finally{x.value=!1}},_=J(()=>{var i,l;return"alt_hotels_lang_"+C.value.language+"cur_"+C.value.currency+"checkin_"+A(p.value.startDate,"yyyy-MM-dd")+"checkout_"+A(p.value.endDate,"yyyy-MM-dd")+"adults_"+(((i=p.value.occupancy[0])==null?void 0:i.nrAdults)||0)+"children_"+(((l=p.value.occupancy[0])==null?void 0:l.nrChildren)||0)+"rooms_"+p.value.occupancy.length});return{getAlternativeHotels:s,loading:x}}),fe={key:0},_e={key:1,class:"alternative-hotel-container w-100"},ke={key:1,class:"w-full"},we={class:"hotel-list"},Re={__name:"AlternativeHotelsComponent",props:{showHotels:{type:Boolean,default:!1}},setup(s){const{t:_}=Q(),i=ge(),{loading:l}=R(i),{getAlternativeHotels:y}=i,g=V(),{applicationSetup:c}=R(g),u=s,m=$([]),d=$(""),h=async()=>
1{if(!u.showHotels){m.value=[],d.value=e();return}try{const o=await y(),{hotels:a,warning_message:n}=o;m.value=a,d.value=m.value.length?n:e()}catch(o){console.error("Error fetching alternative hotels:",o),d.value=e()}};F(()=>u.showHotels,async o=>{o?await h():(m.value=[],d.value=e())},{immediate:!0}),F(()=>c.value.currency,async()=>{u.showHotels&&await h()});function e(){return _("UnavailabilityMessage",[],{linked:!1,escapeParameters:!1})}return(o,a)=>k(l)?(t(),r("div",fe,[(t(),r(w,null,S(3,n=>W(j,{key:n,class:"mb-3 h-64 w-full lg:h-40",type:"rectangle",bgClass:"bg-palette-secondary-7",shimmerColor:"var(--color-skeleton-shimmer)"})),64))])):(t(),r("div",_e,[d.value?(t(),H(ee,{key:0,message:d.value,class:"w-full"},null,8,["message"])):B("",!0),s.showHotels?(t(),r("div",ke,[v("div",we,[(t(!0),r(w,null,S(m.value,n=>(t(),H(he,{key:n.id,hotel:n},null,8,["hotel"]))),128))])])):B("",!0)]))}},be=I(Re,[["__scopeId","data-v-44927474"]]),Ce={key:0},Se={key:1},He={key:1},$e={key:0},Ae={key:1},ot={__name:"SearchList",emits:["select"],setup(s,{emit:_}){const i=_,l=te(),{resultsByRoom:y,resultsByRate:g,loading:c,lastSelectedRoomRateCode:u}=R(l),m=(a,n)=>{u.value=a,i("select",a,n)},d=Y("applicationSetup"),h=$(null),e=()=>{if(c.value)return;const a=h.value??u.value;a&&Z(()=>{const n=document.querySelector(".roomRateCode-"+String(a).replace(".","_"));n&&setTimeout(()=>n.scrollIntoView({behavior:"smooth",block:"center"}),100),a===h.value&&(h.value=null),a===u.value&&(u.value=null)})},o=a=>{h.value=a,c.value||e()};return F(c,e,{immediate:!0}),(a,n)=>k(c)?(t(),r("div",Ce,[(t(),r(w,null,S(3,b=>W(j,{key:b,class:"mb-3 h-64 w-full lg:h-40",type:"rectangle",bgClass:"bg-palette-secondary-7",shimmerColor:"var(--color-skeleton-shimmer)"})),64))])):(t(),r("div",Se,[k(y).length<=0?(t(),H(be,{key:0,showHotels:k(d).has_alternative_hotels},null,8,["showHotels"])):(t(),r("div",He,[k(d).room_types_grouped?(t(),r("div",$e,[(t(!0),r(w,null,S(k(y),(b,M)=>(t(),H(q,{key:M,roomResult:b,initialResults:2,currentRoomRatePromoCode:h.value,onCurrentRoomRatePromoCode:o,onSelect:n[0]||(n[0]=(P,N)=>m(P,N))},null,8,["roomResult","currentRoomRatePromoCode"]))),128))])):(t(),r("div",Ae,[(t(!0),r(w,null,S(k(g),(b,M)=>(t(),H(E,{key:M,rateResult:b,initialResults:2,currentRoomRatePromoCode:h.value,onCurrentRoomRatePromoCode:o,onSelect:n[1]||(n[1]=(P,N)=>m(P,N))},null,8,["rateResult","currentRoomRatePromoCode"]))),128))]))]))]))}};export{ot as default}; 2//# sourceMappingURL=SearchList-AkR4jNr0.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.