1import{ak as K,al as W,am as X,an as ee,ao as se,af as c,m as q,ap as te,aq as oe,ar as ae,I as L,T as re,as as ce,h as l,e as B,at as ie,n as ne,v as le}from"./main-kBzK4eIG.js";import{d as ue,r,c as E,w as V,o as de,b as ve,z as u,C as t,E as x,u as o,N as T,f as a,Q as he,Y as pe,F as C,V as H,O as me,L as fe,Z as k,S as j,P as _e,A as i}from"./vendor-primevue-CeEACqX_.js";import{s as F}from"./socket-D7UBviuq.js";import{D}from"./vendor-luxon-D-syak89.js";import{H as ge}from"./HomeHotelCardInterface-CgfsRZUq.js";import{u as ke}from"./vendor-i18n-G4dYfk6F.js";import"./vendor-fontawesome-CHTXNQM2.js";import"./vendor-pako-DwGzBETv.js";import"./vendor-posthog-B2YXpdD_.js";import"./vendor-query-B7KhvNMU.js";import"./vendor-socket-YTJ-CyAn.js";import"./HotelCardImage-DEtelr5M.js";import"./ImageWithFallback-raoQ1sx0.js";import"./bunny-BFgfExvG.js";import"./NoHotelImage-Bo4zjMQU.js";import"./LoyaltyLabelBanner-b4_DrhEs.js";const ye={class:"grid-container v-favourites"},xe={class:"grid"},Fe={class:"col-12"},be={class:"top-content"},Ie={class:"search-container h-full"},we={class:"p-input-icon-left"},Ce={key:1,class:"pi pi-search text-500"},He={key:0,class:"grid-container"},Ae={class:"grid"},Se={class:"col-12"},Pe={class:"skeleton-cards-container"},Ne={class:"rating-skeleton mb-2"},qe={class:"footer-skeleton"},Le={key:1,class:"error"},Ve={class:"error-noFavourites-text"},Oe={class:"flex justify-content-between align-items-center city-details"},Re={class:"cities"},Ue={class:"flex justify-content-center align-items-center propCount"},Be={class:"heartIcon"},Ee={class:"favoriteCards"},Te=ue({__name:"Favourites",setup(je){const{t:p}=ke(),{isGrabPreset:$}=K(),n=r([]),A=re(),G=r(""),d=r(!1),f=r(c.checkin),_=r(c.checkout),M=r(1),b=r(""),v=r([{adults:2,children:[]}]),S=r(W(v.value)),P=r(X(v.value)),N=r(ee(v.value)),y=r([]),Q=E(()=>{let e=n.value;if(b.value){const s=b.value.toLowerCase();e=e.filter(m=>m.name.toLowerCase().includes(s)||m.city.toLowerCase().includes(s))}return e}),O=E(()=>Q.value.reduce((e,s)=>(e[s.city]||(e[s.city]=[]),e[s.city].push(s),e),{})),R=e=>{e.requestId==="favourites"&&Array.isArray(e.result)&&e.result.forEach(s=>{!s||n.value.find(h=>h.id===s.id)||n.value.push(s)})},U=e=>{e.requestId==="favourites"&&(d.value=!0)},z=()=>{ce.push({name:"home"})},g=()=>{G.value="",d.value=!1,n.value=[];const e={requestId:"favourites",pool:"favourites",checkin:f.value,checkout:_.value,rooms:S.value,adults:P.value,children:N.value,currency:l.currency,guestNationality:l.guestNationality,domain:B.project.domain,timeout:4,occupancies:v.value,hotelIds:y.value,isGuestUser:l.isGuestUser};n.value=[],F.emit("hotels:fetch-rates",e)};V(()=>l.agentMargin,(e,s)=>{s!==void 0&&ne&&l.guest?.isAgent&&g()}),V(()=>l.favouriteHotelIds,e=>{y.value=e,g()}),V(()=>l.currency||l.guestNationality,()=>{g()}),de(async()=>{F.on("hotels:fetch-rates:complete",U),F.on("hotels:fetch-rates:rate",R),await Z();const e=se();e&&(f.value=A.query.checkin||c.checkin,_.value=A.query.checkout||c.checkout,M.value=D.fromISO(_.value).diff(D.fromISO(f.value),"days").days||1,v.value=q(A.query.occupancies)||c.occupancies,f.value=e.checkin||c.checkin,_.value=e.checkout||c.checkout,S.value=e.rooms&&typeof e.rooms=="string"?parseInt(e.rooms,10):e.rooms||c.rooms,P.value=e.adults&&typeof e.adults=="string"?parseInt(e.adults,10):e.adults||c.adults,N.value=e.children&&typeof e.children=="string"?e.children?.split(",").map(s=>parseInt(s,10)):e.children||[],v.value=e.occupancies?q(e.occupancies):c.occupancies)});const Y=e=>{d.value=!1,n.value=[],f.value=e.checkin,_.value=e.checkout,S.value=e.rooms,P.value=e.adults,N.value=e.children&&e.children!==void 0?e.children.split(",").filter(s=>s!=="").map(s=>parseInt(s,10)):[],v.value=e.occupancies&&e.occupancies!==void 0?q(e.occupancies):c.occupancies,g()},Z=async()=>{try{const e=await te();y.value=e,e.length>0?g():d.value=!0}catch{y.value=oe(),y.value.length>0?g():d.value=!0}},J=e=>{const s=n.value.findIndex(m=>m.id===e);s>-1&&n.value.splice(s,1)};return ve(()=>{F.off("hotels:fetch-rates:rate",R),F.off("hotels:fetch-rates:complete",U)}),(e,s)=>{const m=_e("font-awesome-icon");return i(),u("div",ye,[t("div",xe,[t("div",Fe,[t("div",be,[t("h2",null,x(o(p)("favourites.title")),1),t("div",Ie,[t("span",we,[o($)?(i(),T(m,{key:0,icon:"fa-solid fa-house",class:"property-icon"})):(i(),u("i",Ce)),a(o(he),{modelValue:b.value,"onUpdate:modelValue":s[0]||(s[0]=h=>b.value=h),type:"text",placeholder:o(p)("favourites.searchPlaceholder"),class:"search-input","aria-label":o(p)("favourites.searchPlaceholder")},null,8,["modelValue","placeholder","aria-label"])]),a(ae,{inline:!0,mini:!0,isLabel:!0,roomSearch:!0,onChange:Y,class:"date-occupancy-search",source:"favourites"})])]),a(o(pe),{style:{"margin-block":"28px"}}),d.value?me("",!0):(i(),u("div",He,[t("div",Ae,[t("div",Se,[t("div",Pe,[(i(),u(C,null,H(3,h=>t("div",{class:"skeleton-card radius_lg",key:h},[a(o(k),{width:"100%",height:"190px",class:"mb-2"}),t("div",Ne,[(i(),u(C,null,H(5,I=>a(o(k),{key:I,width:"20px",height:"20px",class:"mr-1"})),64))]),a(o(k),{width:"80%",height:"24px",class:"mb-2"}),a(o(k),{width:"60%",height:"16px",class:"mb-3"}),t("div",qe,[a(o(k),{shape:"circle",size:"40px"}),a(o(k),{width:"30%",height:"24px"})])])),64))])])])])),!n.value.length&&d.value||Object.keys(O.value).length===0&&d.value?(i(),u("div",Le,[a(L,{name:"no-fav-hotel"}),t("div",Ve,[t("span",null,x(o(p)("favourites.noFavourites")),1),t("p",null,x(o(p)("favourites.noFavouritesPrompt")),1)]),a(o(fe),{label:o(p)("favourites.exploreLabel"),severity:"secondary",class:"secondary errorBtn",outlined:"",onClick:z},null,8,["label"])])):(i(!0),u(C,{key:2},H(O.value,(h,I)=>(i(),u("div",{key:I},[t("div",Oe,[t("span",Re,[a(L,{name:"like-group"}),j(x(I),1)]),t("span",Ue,[t("span",Be,[a(L,{name:"heart-filled-circle"})]),j(" "+x(o(p)("favourites.numberPropertiesSaved",{number:h.length})),1)])]),t("div",Ee,[(i(!0),u(C,null,H(h,w=>(i(),T(ge,{key:w.id,variant:o(B).project.appearance.pages?.home?.components?.homeHotelCard?.id,hotel:w,mini:o(l).isMobile,checkin:f.value,"has-likes":!0,checkout:_.value,sameTab:!0,occupancies:v.value,"is-liked":o(ie)(w.id),source:"favourites",onUnfavourite:$e=>J(w.id)},null,8,["variant","hotel","mini","checkin","checkout","occupancies","is-liked","onUnfavourite"]))),128))])]))),128))])])])}}}),cs=le(Te,[["__file","Favourites.vue"]]);export{cs as default};
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.