1function __vite__mapDeps(indexes) { 2 if (!__vite__mapDeps.viteFileDeps) { 3 __vite__mapDeps.viteFileDeps = ["./D4kUlG1j.js","./De3pT11_.js","./entry.C3kZ6Sp1.css","./BWNMpVqg.js","./Card.AI2AFjtO.css","./2K-h4u5b.js","./admin.BkF_B05F.css","./Admin.DboI2X-f.css"] 4 } 5 return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) 6} 7import{a5 as J,as as we,u as Ie,G as De,ac as Nt,J as St,p as z,b8 as He,b9 as Fe,q as Be,K as Kt,M as Ss,L as Ps,ba as va,bb as ga,bc as Es,ap as Me,e as $t,g as E,f as Ve,H as ts,O as Ut,aO as ya,a as ie,z as kt,s as ke,ai as Is,o as l,i as w,j as B,h as s,n as W,a6 as Ns,Y as ae,m as x,t as F,r as $e,bd as ss,T as nt,b as Gt,am as Zt,ae as Us,F as ee,C as fe,af as Vs,k as Te,v as V,w as Q,a1 as as,_ as Hs,W as ns,X as is,a2 as ba,a3 as ka,y as qt,P as es,a0 as Ta,be as js,bf as Gs,bg as Ys,aC as os,aL as zs,bh as $a,D as at,aj as rs,I as wt,aq as wa,al as Ks,ak as Sa,Q as Pa,bi as Ia,bj as Da,N as tt,aF as Ws,aJ as Ba,aK as Oa,aM as xa,R as Ma,S as Ds,aH as ls,a9 as Ra,a_ as Bs,aU as Ca,aN as qa,aV as La,aP as st,bk as Aa,an as Rt,at as Os,a8 as Fa,bl as Ea,bm as Na}from"./De3pT11_.js";import{_ as Ua}from"./D_bD1e4R.js";import{_ as Va}from"./Dx6kZXmx.js";import{_ as Qs}from"./BWNMpVqg.js";import{T as cs}from"./BwguV2dW.js";import{_ as Ha}from"./7GD57HIi.js";import{_ as Xs}from"./DyWn5lHh.js";import{u as Yt}from"./CjDa9RlZ.js";import{u as us,_ as Js,a as ja}from"./DICkmG4b.js";import{I as Vt,t as xs}from"./BCvWZbVu.js";import{R as Ga}from"./Ci4V4k3N.js";import{B as Lt,f as At,h as Zs,u as ce,i as Ya,S as Ct,j as za,k as Ka,b as Wa,l as ea,m as ta,n as sa,g as Qa,o as Xa}from"./Du77hPAC.js";import{m as Wt}from"./W18s3g0a.js";import{e as Ja,d as Za}from"./V1G7v_VC.js";import{u as en}from"./DJTuGA96.js";import{_ as tn}from"./orFo9k4e.js";import{u as sn}from"./BiRLitPW.js";import{D as Ue}from"./BPJXYr9T.js";import{_ as aa}from"./8ye1rBnf.js";import{_ as an,a as nn}from"./DNFAbDlQ.js";const on=t=>t.reduce((e,a)=>e.minPrice.value<a.minPrice.value?e:a),rn=t=>on(t.classOptions).minPrice,dl=3,ml=3,ln=4,cn=9,un=4,fl=3,_l=3,hl=268*2,vl=3,gl=2,pn=(t,e=0)=>Object.fromEntries(Object.entries(t).sort(([,a],[,p])=>(p.quantity||0)-(a.quantity||0)).map(([,a],p)=>[e+p,a])),dn=(t,e=0)=>Object.fromEntries(Object.entries(t).sort(([,a],[,p])=>a.label.localeCompare(p.label)).map(([,a],p)=>[e+p,a])),Qt=t=>{let e=t;const a=t.split(" ");a.length===2&&(e=a[1]);const[p,r,d=0]=e.split(":").map(i=>parseInt(i,10)),n=new Date;return n.setHours(p,r,d),n},mn=(t,e,a)=>{var p;for(const r in t.prices){const d=t.prices[r],n=(p=t.prices[parseInt(r,10)+1])==null?void 0:p.price;if(d.price.value===0&&Number(r)>0){d.quantity=0,d.available=!1;continue}d.quantity=e.filter(i=>i.params.is_bookable&&i.params.min_price.value>=d.price.value&&(n?i.params.min_price.value<n.value:!0)).length+a.filter(i=>{const c=rn(i);return c.value>=d.price.value&&(n?c.value<n.value:!0)}).length,d.available=d.quantity>0}},fn=(t,e,a,p)=>{t.range[0]===Lt&&t.range[1]===At?t.quantity=a.filter(r=>r.params.is_bookable).length+p.length:t.quantity=a.filter(r=>r.params.is_bookable&&na(r,e,[0],{0:t})).length+p.length};function _n(t,e,a,p=!1,r=!1,d=!1){["dep_time","arr_time"].forEach(n=>{for(const i in t[n]){const c=t[n][i],m=e.filter(o=>o.params.is_bookable&&na(o,n,[i],t.dep_time)).length;c.quantity=m+a.length,p&&(c.available=!(!c.price.value||!c.quantity)),r&&(c.available=!!c.quantity)}}),["stations_from","stations_to"].forEach(n=>{var i,c;for(const m in t[n]){const o=t[n][m],b=e.filter(h=>h.params.is_bookable&&hn(h,n,[o.id??m],t)).length,_=(i=o.vehclasses)!=null&&i.includes(J.train)||(c=o.vehclasses)!=null&&c.includes(J.railpass)?a.length:0;o.quantity=b+_,p&&(o.available=o.quantity>0)}});for(const n in t.operator_id){const i=t.operator_id[n];i.quantity=e.filter(c=>{var m;return c.params.is_bookable?(m=i.aliases)==null?void 0:m.some(o=>{var b;return(b=c.params.operators)==null?void 0:b.map(_=>_.toString()).includes(o.toString())}):!1}).length+a.filter(c=>{var m;return(m=i.aliases)==null?void 0:m.some(o=>c.operators.filter(b=>b.id===parseInt(o,10)).length)}).length,p&&(i.available=i.quantity>0)}
7Object.entries(t.vehclasses).forEach(([,n])=>{const i=n.vehclasses||[],c=e.reduce((b,_)=>{const h=i.some(I=>_.params.is_bookable&&_.params.vehclasses.includes(I));return b+(h?1:0)},0),m=i.includes(J.railpass)?a.length:0,o=c+m;n.quantity=o,n.available=o>0});for(const n in t.quick){const i=t.quick[n],c=i.feature,m=e.filter(_=>{var h;return((h=_==null?void 0:_.features)==null?void 0:h[c])&&_.params.is_bookable}).length,o=a.filter(_=>_.features.some(h=>h.key===c)).length,b=m+o;i.quantity=b,i.available=b>0}if(d)for(const n in t.trip_rating){const i=t.trip_rating[n],c=e.filter(b=>b.params.is_bookable&&vn(b,[n],t)).length,m=a.filter(b=>b.classOptions[0].rating>=i.minRating).length,o=c+m;i.quantity=o,i.available=o>0}}const na=(t,e,a,p)=>{const r=t.segments[0],d=t.segments[t.segments.length-1];let n=!1;if(e==="dep_time"&&r.type==="route"&&r.vehclasses[0]==="charter"&&(n=!0),e==="arr_time"&&d.type==="route"&&d.vehclasses[d.vehclasses.length-1]==="charter"&&(n=!0),n)return!0;const i=Qt(t.params[e]);return a.some(c=>{var _;const m=(_=p[c])==null?void 0:_.range;if(!m||!c&&c!==0)return!1;const o=Qt(m[0]),b=Qt(m[1]);return i>=o&&i<=b})},hn=(t,e,a,p)=>{const r=e==="stations_from"?"from":"to",d=t.params[r].toString();if(a.includes(d))return!0;const n=p[e];return Object.values(n).flatMap(c=>{var m;return a.length>1&&c.selected||(m=c.aliases)!=null&&m.some(o=>a.includes(o))?c.aliases??[]:[]}).includes(d)},vn=(t,e,a)=>{const p=i=>i?e.some(c=>{const m=a.trip_rating[c];return i>=m.minRating}):!1,r=t.travel_options.length>1;if(r&&t.travel_options.every(i=>i.class.id===t.travel_options[0].class.id)&&t.travel_options.filter(i=>i.dep_datetime).length===t.travel_options.length||!r)return p(t.travel_options[0].rating);const n=Zs(t.travel_options);return p((n==null?void 0:n.rating)||null)},gn=({filterGroup:t,selectedIds:e,filterKey:a,unselect:p=!1,isSortOperatorsAlphabetically:r})=>{var o,b;const d=a==="operator_id"&&r?dn:pn;if(!e.length||p)return d(t);const n={};let i={},c=0;for(let _=e.length-1;_>=0;_--){const h=e[_];for(const I in t){const u=t[I];if(!u.fromUrl&&(((o=u.id)==null?void 0:o.toString())===h.toString()||(b=u==null?void 0:u.aliases)!=null&&b.some(f=>f.toString()===h.toString()))){n[c]={...u,selected:!0,id:u.id??I},c++;break}}}for(const _ in t){const h=t[_];if(h.fromUrl)continue;e.some(u=>{var f,S;return((f=h.id)==null?void 0:f.toString())===u.toString()||((S=h==null?void 0:h.aliases)==null?void 0:S.some(v=>v.toString()===u.toString()))})||(i[c]={...h,id:h.id??_},c++)}return i=d(i,e.length),{...n,...i}},ps=50,yn=t=>"data"in t;function Ms({isRechecked:t,products:e,hasLazyRechecksFeature:a}){var r,d;if(t)return!1;if(!a)return!0;let p=0;for(let n=0;n<e.length;n++){const i=e[n];if(p+=Number(i.type===we.railpass||(yn(i)?(d=(r=i.data)==null?void 0:r.params)==null?void 0:d.is_bookable:i.is_bookable)),p>=ps)return!1}return!0}const Rs=({trips:t,railpasses:e,vehclass:a})=>{if(a==="all"||!a)return{filteredTrips:t,filteredPasses:e};const p=a.split("-"),r=t.filter(n=>p.every(i=>n.params.vehclasses.includes(i))&&n.params.vehclasses.every(i=>p.includes(i))),d=p.includes(J.railpass)?e:[];return{filteredTrips:r,filteredPasses:d}},ia="x-trip-search-backend";var ds=(t=>(t.go="go",t.php="php",t))(ds||{});function bn(){return{getVehclass:()=>{var r;const{route:e}=Ie(),a=(r=e==null?void 0:e.params)==null?void 0:r.vehclass;let p={flights:"avia",taxi:"charter"}[a]||a;return p==="travel"&&(p=null),p}}}const Xt="-",We=()=>{const{$features:t,$t:e}=z(),{tripsData:a}=ce(),{fxcode:p,FXCODES:r}=De(),d=()=>{const v=(y,R)=>({...za(y),vehclasses:R});return{...Ya({currencySymbol:r[p.value]||"$",timeRangeLabels:[e("filter-time-range-0-new-range"),e("filter-time-range-1-new-range"),e("filter-time-range-2-new-range"),e("filter-time-range-3-new-range")],quickFilterLabels:{instant:e("search-results-filters-instant-title"),freeCancelation:e("search-results-trip-label-full-refundable")},rangeTimeFilters:t["search-departure-arrival-filter-slider"]??!1,hasTripRatingFilter:t["search-trip-rating-filters"]??!1,tripRatingLabels:[e("filter-trip-rating-label-excellent"),e("filter-trip-rating-label-very-good"),e("filter-trip-rating-label-good")],isRearrangedFilters:t["all-search-rearrange-filter-options-v2"]}),vehclasses:{0:v(e("vehclasses-bus"),["bus"]),1:v(e("vehclasses-ferry"),["ferry"]),2:v(e("vehclasses-railpass"),["pass"]),3:v(e("vehclasses-train"),["train"]),4:v(e("vehclasses-van"),["van"]),5:v(e("vehclasses-avia"),["avia"]),6:v(e("vehclasses-charter"),["charter"])}}},n=Nt("unwatchSelectedFilters",()=>null),i=Nt("filters",()=>d()),c=v=>{let k;for(k in v)i.value[k]=v[k],Ct.includes(k)&&t["search-bring-selected-filters-to-top"]&&S(k)},m=(v=!1)=>{const{state:k}=St();
7typeof n.value=="function"&&n.value();const y=d();if(v){let R;for(R in i.value)if(!(R==="operator_id"&&k.value.isStaff))for(const C in i.value[R])i.value[R][C].selected&&(y[R][C]?y[R][C].selected=!0:(y[R][C]=i.value[R][C],y[R][C].available=!1,y[R][C].price.value=0))}c(y)},o=v=>{let k;for(k in i.value)if(!(v&&v!==k)){if((k==="dep_time"||k==="arr_time")&&t["search-departure-arrival-filter-slider"]){const y={...i.value[k][0],available:i.value[k][0].available??!1,options:i.value[k][0].options??[],range:[Lt,At],selected:null};fn(y,k,a.value.trips,a.value.passes),i.value[k][0]=y}for(const y in i.value[k])i.value[k][y].selected=null;Ct.includes(k)&&t["search-bring-selected-filters-to-top"]&&S(k,!0)}},b=()=>{var T,g;const{route:v,router:k}=Ie(),y={...v.query},R=d();let C=!1,A;for(A in y){if(!R[A])continue;const O=y[A];if(!O){delete y[A],C=!0;continue}const L=O.split(",");for(const N in L){const U=L[N];if((A==="dep_time"||A==="arr_time")&&t["search-departure-arrival-filter-slider"]){const D=U.split(Xt);let q=[...D],j=D.map(_e=>Number(_e));const K=Number(Lt.split(":")[0]),ne=Number(At.split(":")[0]);if(isNaN(j[0])||isNaN(j[1])||q.length!==2||q[0]===q[1]){delete y[A],C=!0;continue}j[0]>j[1]&&(q=[q[1],q[0]],j=[j[1],j[0]]),j[0]>ne&&(q[0]=Lt.split(":")[0],j[0]=K),j[1]>ne&&(q[1]=At.split(":")[0],j[1]=ne),q[0]=q[0].padStart(2,"0"),q[1]=q[1].padStart(2,"0"),(q[0]!==D[0]||q[1]!==D[1])&&(y[A]=q.join(Xt),C=!0),R[A][0].selected=j[0]!==K||j[1]!==ne,R[A][0].range=[`${q[0]}:00`,`${q[1]}:00`];continue}if(Ct.includes(A)&&t["search-bring-selected-filters-to-top"]){let D=!1;for(const q in R[A]||{}){const j=R[A][q];if(j&&(((T=j.id)==null?void 0:T.toString())===U||(g=j.aliases)!=null&&g.includes(U))){j.selected=!0,D=!0;break}}D||(R[A][Object.keys(R[A]).length]={fromUrl:!0,selected:!0,tran:!0,label:`filter-unknown-${A}`,price:{value:0},id:U})}else{const D=Number(U);R[A][D]?R[A][D].selected=!0:R[A][D]={fromUrl:!0,selected:!0,tran:!0,label:`filter-unknown-${A}`,price:{value:0}}}}}c(R),C&&k.replace({query:y})},_=()=>{var y,R,C;const v={};let k;for(k in i.value){const A=i.value[k];for(const T in A){const g=A[T];if(!g.selected)continue;if((k==="dep_time"||k==="arr_time")&&t["search-departure-arrival-filter-slider"]){v[k]=[`${(y=g==null?void 0:g.range)==null?void 0:y[0].split(":")[0]}${Xt}${(R=g==null?void 0:g.range)==null?void 0:R[1].split(":")[0]}`];continue}const O=Ct.includes(k)&&t["search-bring-selected-filters-to-top"]&&((C=g.id)==null?void 0:C.toString())||T,L=v[k];L?L.indexOf(O)===-1&&(v[k]=[...L,O]):v[k]=[O]}}return v},h=()=>Object.values(_()).reduce((v,k)=>v+k.length,0),I=()=>{const{route:v,router:k}=Ie(),y=Object.keys(d()),R={...v.query};y.forEach(A=>delete R[A]);const C=_();for(const A in C)R[A]=C[A].join(",");k.replace({query:R})},u=(v,k)=>{var g;const{route:y,router:R}=Ie(),C={...y.query};if(!k){delete C[v],R.replace({query:C});return}let A=((g=C[v])==null?void 0:g.toString().split(","))||[];const T=k.options.filter(O=>O.option.selected);T.length<A.length&&(A=A.filter(O=>T.some(L=>L.id===O)));for(const O of T)A.some(L=>L===O.id)||A.push(O.id);A.length===0?delete C[v]:C[v]=A.join(","),R.replace({query:C})},f=(v,k)=>{_n(i.value,v,k,!0,t["search-departure-arrival-filter-slider"],!1),mn(i.value,v,k)},S=(v,k=!1)=>{var C;const{route:y}=Ie(),R=((C=y.query[v])==null?void 0:C.toString().split(","))||[];i.value[v]=gn({filterGroup:i.value[v],filterKey:v,selectedIds:R,unselect:k,isSortOperatorsAlphabetically:t["search-sort-operator-filters-alphabet"]})};return{filters:i,getSelectedFilters:_,getSelectedFiltersCount:h,applyFiltersFromUrl:b,replaceUrlWithFilters:I,getDefaultFilters:d,setFilters:c,resetFilters:m,unselectFilters:o,recalculateQuantity:f,handleBringSelectedToTop:S,replaceUrlWithFiltersForGroup:u}};let Ft=[],Ht,jt;const oa=()=>{Ht&&Ht.abort(),Ft.length&&(Ft.forEach(t=>t.abort()),Ft=[]),jt&&jt.abort()},kn=(t,e={})=>{const{$features:a}=z(),{getUrl:p}=Be();oa(),Ht=new AbortController;const{signal:r}=Ht;return He(p(Fe.tripsSearch,{...t,...e,...a["search-pagination-with-lazy-re-checks"]?{recheck:ps}:{}}),{signal:r,headers:a["new-trips-search-service"]?{[ia]:ds.go}:void 0})},Tn=(t,e)=>{const{getUrl:a}=Be(),p=new AbortController,{signal:r}=p;return Ft.push(p),He(a(Fe.tripsRecheck,{index:t}),{signal:r,headers:e})},$n=t=>{const{getUrl:e}=Be();return He(e(Fe.tripsNextDates,t))},wn=t=>{const{getUrl:e}=Be();return jt=new AbortController,He(e(Fe.tripsFactsOnDate,t),{signal:jt.signal})};
7let Et=[],Tt,yt,bt;const yl=()=>{Et.length&&(Et.forEach(t=>t.abort()),Et=[])},bl=()=>{Tt&&Tt.abort()},kl=async t=>{const{$features:e}=z(),{getUrl:a}=Be(),p=a(Fe.tripsPageData,{...t,seoOverrideExperiment:e["w-search-results-seo-override"]?"y":"n",...e["travel-page-json-ld-migration"]?{experimentJSONLD:"y"}:{}});yt&&yt.abort(),yt=new AbortController;const{signal:r}=yt,d=await He(p,{signal:r});return yt=null,d},Tl=async(t,e={})=>{const{$features:a}=z(),{getUrl:p}=Be();Tt=new AbortController;const{signal:r}=Tt,d=await He(p(Fe.tripsSearchV2,{...t,...e,...a["search-pagination-with-lazy-re-checks"]?{recheck:ps}:{}}),{signal:r,headers:a["new-trips-search-service"]?{[ia]:ds.go}:void 0});return Tt=null,d},$l=(t,e)=>{const{getUrl:a}=Be(),p=new AbortController,{signal:r}=p;return Et.push(p),He(a(Fe.tripsRecheckV2,{index:t}),{signal:r,headers:e})},Sn=async t=>{const{getUrl:e}=Be();bt&&bt.abort(),bt=new AbortController;const a=await He(e(Fe.tripsFactsOnDate,t),{signal:bt.signal});return bt=null,a},Pn=10*24*60*60*1e3,In=()=>{const{$features:t}=z(),e=Nt("factsState",()=>({travel:[],travelBannerRecommended:[],travelBannerGroups:[]})),a=()=>!!t["web-promo-banner-dismiss-analytics"],p=()=>{if(!a())return!1;const o=Kt("factsBarDismissedUntil");return typeof o!="number"||!Number.isFinite(o)?(o!=null&&Ps("factsBarDismissedUntil"),!1):Date.now()>=o?(Ps("factsBarDismissedUntil"),!1):!0},r=()=>{Ss("factsBarDismissedUntil",Date.now()+Pn)},d=o=>{const b=Kt("facts_banned")||"";let _=o.filter(h=>!b.includes(h.id));return p()&&(_=_.filter(h=>h.type!=="travel")),_},n=async({fromId:o,toId:b,date:_,people:h})=>{const I=await wn({fromId:o,toId:b,date:_,people:h}).catch(()=>[])||[];m(d(I))},i=async({fromId:o,toId:b,date:_,people:h})=>{const I=await Sn({fromId:o,toId:b,date:_,people:h}).catch(()=>[])||[];m(d(I))},c=(o=[])=>{if(a()){r(),e.value.travel=[];return}const b=Kt("facts_banned")||"";Ss("facts_banned",`${o.join(",")},${b}`),m(e.value.travel.filter(_=>!o.includes(_.id)))},m=o=>{for(const b in e.value)e.value[b]=[];for(const b in o){const _=o[b];!e.value[_.type]||!e.value[_.type].length?e.value[_.type]=[_]:e.value[_.type].push(_)}};return{factsState:e,getFactOnDate:n,getFactOnDateNew:i,ban:c,setFacts:m}},Dn=""+new URL("worker-dA6Co711.js",import.meta.url).href,Ne={};function zt(t,e,a){const p=va(t);if(Ne[e])if(a)Ne[e].worker.terminate(),Ne[e]=null;else return new Promise(n=>{Ne[e].fnPromise.then(()=>{Ne[e]=null,n(zt(t,e))})});const r=ga(Dn),d=new Promise((n,i)=>{r.postMessage({fn:e,options:p}),r.addEventListener("message",({data:c})=>{c?n(c):i(`No data returned in: ${e}`),Ne[e]===d&&(Ne[e]=null),r.terminate()},!1)});return Ne[e]={fnPromise:d,worker:r},d}const Bn=(t,e=!1)=>zt(t,"makeActualNextTripDates",e),On=(t,e,a,p=!1)=>(a.trips=t,a.passes=e,zt(a,"makeProductList",p)),xn=(t,e=!1)=>zt(t,"sortAndFilterProducts",e),Jt=5;function ra(){const{total:t,children:e,infants:a}=Es();return{getPassengerGroup:()=>{const r=t.value,d=e.value+a.value;return r>=Jt?Me.Group:d>0&&r<Jt?Me.Families:r===1&&d===0?Me.Solo:r===2&&d===0?Me.Couple:r>=1&&r<Jt&&d===0?Me.SmallGroup:Me.SmallGroup}}}const la=()=>{const{getPassengerGroup:t}=ra(),e=()=>{var q;const{tripsData:T}=ce(),g=T.value.products,O=j=>j.type===we.railpass?!1:j.data.travel_options.some(K=>K.discount_data),L=g.filter(O),N=L.length>0,U=N?g.findIndex(O)+1:null,D=N?(q=L[0].data.travel_options[0].discount_data)==null?void 0:q.discount_pct:null;return{hasDiscountedTrip:N,discountedTripsCount:L.length,firstDiscountedTripPosition:U,firstDiscountedTripDiscountPct:D}},a=()=>{var O;const{tripsData:T,tripsSummary:g}=ce();return(O=T.value.transportationTabs)==null?void 0:O.find(L=>L.key===g.value.transportationTab)},{getVehclass:p}=bn(),r=T=>{var N;const{tripsData:g,tripsSummary:O,clearTripsData:L}=ce();if(Number(T)===503){O.value.isSearching=!1,O.value.hasError=!0;return}(N=g.value.trips)!=null&&N.length||(L(),O.value.minPrice={value:0,fxcode:"THB"},O.value.maxPrice={value:0,fxcode:"THB"},O.value.availableVehclasses=[],O.value.hasAutoconnection=!1,O.value.hasError=!0)},d=T=>{const{tripsData:g,tripsSummary:O}=ce(),{$analytics:L}=z(),N=g.value.trips.filter(te=>te.params.is_auto_pack).length,U=g.value.trips.filter(te=>te.params.is_manual_pack).length,D=g.value.trips.filter(te=>te.params.is_bookable),q=g.value.trips.filter(te=>te.params.external_purchase_url).length,j=[...new Set(D.flatMap(te=>te.params.operators.map(re=>typeof re=="object"?re.id:Number(re)))),...new Set(g.value.passes.flatMap(te=>te.operators.map(re=>re.id)))],{direction:K,date:ne,date2:_e}=O.value.searchParams;L.sendEvent("health",{date:K==="forward"?ne:_e,init_trips:0,trips:g.value.trips.length,passes:g.value.passes.length,disabled:g.value.trips.filter(te=>!te.params.is_bookable).length,"rechecks[rechecka]":T,type:1,available_operator_ids:j.join(","),active:O.value.active,auto_packs:N,manual_packs:U,meta_trips:q})};function n(){var $,X,oe,Re;const{$analytics:T,$features:g}=z(),{tripsData:O,tripsSummary:L}=ce(),{route:N}=Ie(),U=[...new Set(O.value.products.flatMap(H=>{var le,ue;return H.type===we.trip?(le=H.data.params)==null?void 0:le.operators:(ue=H.data.operators)==null?void 0:ue.map(ve=>ve.id)}))];let D=0,q=0;const j=O.value.products.map(H=>{var le,ue,ve;return H.type===we.trip&&H.data.params.is_bookable&&(H.data.params.autopack_id?q++:H.data.isPackOrAutopack&&D++),{id:H.type===we.trip?(ue=(le=H.data.travel_options)==null?void 0:le[0])==null?void 0:ue.id:H.data.mainPassId,godate:H.type===we.trip?H.data.params.dep_time:void 0,type:H.type,scoreSorting:H.type===we.trip?H.data.score_sorting:void 0,salesSorting:H.type===we.trip?H.data.sales_sorting:void 0,isBookable:H.type===we.trip?H.data.params.is_bookable:!0,hasRoundTripDiscount:H.type===we.trip?H.data.travel_options.some(pe=>pe.round_trip_discount_pct):!1,price:H.type===we.trip?(ve=H.data.travel_options[0])==null?void 0:ve.price:void 0,isBoosted:H.type===we.trip?!!H.data.is_boosted:!1}}),{fromSlug:K,toSlug:ne,date:_e,date2:te,people:re}=L.value.searchParams,he=O.value.products.some(H=>{var le,ue,ve,pe,de,Z;return H.type===we.trip&&(((ve=(ue=(le=H.data.travel_options)==null?void 0:le[0])==null?void 0:ue.discount_data)==null?void 0:ve.promo_type)==="pricing_rule"||((Z=(de=(pe=H.data.travel_options)==null?void 0:pe[0])==null?void 0:de.discount_data)==null?void 0:Z.promo_type)==="normal+pricing_rule")});T.sendEvent("visit",{section:"search-result",data:{operators:U,vehclasses:L.value.availableVehclasse
7s,products:j,urlVehclass:(X=($=N==null?void 0:N.params)==null?void 0:$.vehclass)==null?void 0:X.toString(),searchForm:{fromSlug:K,toSlug:ne,date:_e,date2:te,people:re},isHighDemandRoute:g["high-demand-banner-dynamic-data-source"]?(oe=L.value.highDemandRoute)==null?void 0:oe.topDemandSourceEnabled:(Re=L.value.highDemandRoute)==null?void 0:Re.enabled,hasPricingRuleDiscount:he,manualPacksCount:D,autoPacksCount:q,...e()}}),h.value&&T.sendEvent("visit",{section:"user-perform-last-minute-search"}),I.value&&T.sendEvent("visit",{section:"user-perform-long-term-search"})}const{tripsData:i,tripsSummary:c}=ce(),{getSelectedFiltersCount:m}=We(),{getActualDate:o}=$t(),{$dayjs:b}=z(),{route:_}=Ie(),h=E(()=>c.value.sortedBy==="recommended"&&i.value.products.length>cn&&c.value.transportationTab==="all"&&m()<1&&b(o()).isBefore(b().add(ln,"days"),"days")),I=E(()=>b(_.query.date).isSameOrAfter(b().add(un,"days"),"day"));function u(){const{tripsSummary:T}=ce(),{getDefaultFilters:g,filters:O}=We(),{fromId:L,toId:N}=T.value.searchParams;return{recommendedRules:T.value.recommendedRules,sortBy:T.value.sortedBy,routeVehclass:p(),filters:O.value,defaultFilters:g(),fromId:L,toId:N}}const f=T=>{{const{$analytics:N}=z();N.sendEvent("visit",{section:"trip-info",error:`Trip ${T} marked as disabled`})}const g=T.split("/"),O=[];g.forEach((N,U)=>{U%2===0?O.push(N):O[O.length-1]+=`/${N}`});const{tripsData:L}=ce();O.forEach(N=>{const U=D=>{D.travel_options.forEach(q=>{q.booking_uri.includes(N)&&(q.bookable=0)}),D.travel_options.filter(q=>q.bookable>0).length||(D.params.bookable=0,D.params.is_bookable=!1)};L.value.trips.forEach(U),L.value.recommended.forEach(U)}),k()},S=async T=>{const g=await $n(T),O=await Bn({...T,actualDates:g});if(!O)return;const{$t:L,$dayjs:N}=z(),{tripsSummary:U}=ce();U.value.actualNextTripDates=O.map(D=>{const q=N(D.date);return D.date=q.format("YYYY-MM-DD"),D.title=q.format(L("df_s")),D})};function v(){const T=p(),{tripsData:g}=ce();return T?g.value.transportationTabs.some(O=>O.key===T):!0}const k=async T=>{const g=a(),{filters:O,sortBy:L}=u(),{fxcode:N,fxrate:U}=De(),{$t:D,$features:q}=z(),{commonData:j}=Ve(),{tripsData:K,tripsSummary:ne}=ce(),{recalculateQuantity:_e}=We(),te=await xn({sortBy:L,commonData:j,filters:O,trips:K.value.trips,railpasses:K.value.passes,priceOptions:{fxrate:U.value,fxcode:N.value},filteringVehclasses:g==null?void 0:g.vehclasses,tranBestseller:D("search-results-trip-label-bestseller"),tranFastestLabel:D("search-results-trip-label-fastest"),tranFastestLabelByVehclass:{[J.bus]:D("search-results-trip-label-fastest-bus"),[J.ferry]:D("search-results-trip-label-fastest-ferry"),[J.train]:D("search-results-trip-label-fastest-train"),[J.van]:D("search-results-trip-label-fastest-van"),[J.flight]:D("search-results-trip-label-fastest-flight"),[J.taxi]:D("search-results-trip-label-fastest-taxi")},tranCheapestLabel:D("search-results-trip-label-cheapest"),tranCheapestLabelByVehclass:{[J.bus]:D("search-results-trip-label-cheapest-bus"),[J.ferry]:D("search-results-trip-label-cheapest-ferry"),[J.train]:D("search-results-trip-label-cheapest-train"),[J.van]:D("search-results-trip-label-cheapest-van"),[J.flight]:D("search-results-trip-label-cheapest-flight"),[J.taxi]:D("search-results-trip-label-cheapest-taxi")},tranRecommendedLabel:D("search-results-trip-label-recommended"),tranInstantLabel:D("search-results-trip-label-instant"),hasCheapestByVehclassFeature:q["search-cheapest-vehclass-tag"],recommendedTagReduceFeature:q["recommended-tag-reduce"],passengerGroup:t()});if(K.value.products=te,T!=null&&T.shouldRecalculateFilters){const{filteredTrips:he,filteredPasses:$}=Rs({trips:K.value.trips,railpasses:K.value.passes,vehclass:ne.value.transportationTab});_e(he,$)}Ms({isRechecked:K.value.isRechecked,products:K.value.products,hasLazyRechecksFeature:q["search-pagination-with-lazy-re-checks"]})&&C(T)},y=async T=>{const g=a(),O=u(),{fxcode:L,fxrate:N}=De(),{$wlconfig:U,$t:D,$features:q}=z(),{commonData:j}=Ve(),{tripsData:K,tripsSummary:ne,setMinPrice:_e,setMaxPrice:te}=ce(),{setFilters:re}=We(),{route:he}=Ie(),{recalculateQuantity:$}=We(),{products:X,preparedTrips:oe,minPrice:Re,maxPrice:H,vehclasses:le,newFilters:ue,transportationTabs:ve,tripsBookable:pe}=await On(K.value.trips,K.value.passes,{...O,people:ne.value.searchParams.people,priceOptions:{fxrate:N.value,fxcode:L.value}
7,commonData:j.value,canBeHidden:!0,config:U,filteringVehclasses:g==null?void 0:g.vehclasses,routeDate2:he.query.date2,tranRecommendedLabel:D("search-results-trip-label-recommended"),tranBestseller:D("search-results-trip-label-bestseller"),tranInstantLabel:D("search-results-trip-label-instant"),tranFastestLabel:D("search-results-trip-label-fastest"),tranFastestLabelByVehclass:{[J.bus]:D("search-results-trip-label-fastest-bus"),[J.ferry]:D("search-results-trip-label-fastest-ferry"),[J.train]:D("search-results-trip-label-fastest-train"),[J.van]:D("search-results-trip-label-fastest-van"),[J.flight]:D("search-results-trip-label-fastest-flight"),[J.taxi]:D("search-results-trip-label-fastest-taxi")},tranCheapestLabel:D("search-results-trip-label-cheapest"),tranCheapestLabelByVehclass:{[J.bus]:D("search-results-trip-label-cheapest-bus"),[J.ferry]:D("search-results-trip-label-cheapest-ferry"),[J.train]:D("search-results-trip-label-cheapest-train"),[J.van]:D("search-results-trip-label-cheapest-van"),[J.flight]:D("search-results-trip-label-cheapest-flight"),[J.taxi]:D("search-results-trip-label-cheapest-taxi")},hasCheapestByVehclassFeature:q["search-cheapest-vehclass-tag"],rangeTimeFilter:q["search-departure-arrival-filter-slider"],tripRatingFilter:q["search-trip-rating-filters"],selectedToTop:q["search-bring-selected-filters-to-top"],passengerGroup:t(),recommendedTagReduceFeature:q["recommended-tag-reduce"],bringOutsideImageFirst:q["search-desktop-single-image-trip-card"],segmentFavoriteByVehclassTabFeature:q["search-segment-favorite-veclass-tab"]});if(K.value.products=X,K.value.trips=oe,K.value.bookable=pe,K.value.transportationTabs=ve,_e(Re),te(H),re(ue),ne.value.availableVehclasses=le,T!=null&&T.shouldRecalculateFilters){const{filteredTrips:de,filteredPasses:Z}=Rs({trips:K.value.trips,railpasses:K.value.passes,vehclass:ne.value.transportationTab});$(de,Z)}return{tripsBookable:pe}},R=async()=>{const{formatRailpasses:T}=Ka(),{tripsData:g,tripsSummary:O}=ce();if(g.value.passes=[],!O.value.searchParams.fromId||!O.value.searchParams.toId)return;const{passes:L,recheck:N}=await Ja(O.value.searchParams.fromId.toString(),O.value.searchParams.toId.toString());if(L!=null&&L.length||N!=null&&N.length){const{$analytics:U}=z();U.sendEvent("visit",{section:"hybrid-search-results-passes-count",message:L.length})}T(L),g.value.passes=L,await Promise.all(N.map(async U=>{const D=await Za(U);T(D.passes),g.value.passes=Wt(g.value.passes,D.passes,"slug")})),await y()},C=async T=>{var L;const{tripsData:g,tripsSummary:O}=ce();if((L=g.value.tripsRecheck)!=null&&L.length&&!g.value.isRechecked){g.value.isRechecked=!0,O.value.isSearching=!0;let N=[];if(g.value.tripsRecheck.length>1){const{$analytics:D}=z();D.sendEvent("visit",{section:"search-result-few-recheck-were-sent"})}const{setCommonData:U}=Ve();await Promise.all(g.value.tripsRecheck.map(async(D,q)=>{var K;const j=await Tn(q,{recheckURL:D,token:((K=g.value.tripsRecheckToken)==null?void 0:K.toString())??""});j&&(U(j),N=Wt(N,j.trips))})),g.value.trips=Wt(g.value.trips,N),await y(T),O.value.isSearching=!1}};return{search:async T=>{const{tripsData:g,tripsSummary:O}=ce();oa(),O.value.isSearching=!0,O.value.hasError=!1,g.value.trips=[],g.value.tripsRecheck=[],g.value.tripsRecheckToken=null,g.value.isRechecked=!1;const L=performance.now(),{getRoundTripSearchParams:N}=us(),{$analytics:U,$features:D}=z(),{setCommonData:q}=Ve(),{getFactOnDate:j}=In(),{unselectFilters:K,replaceUrlWithFilters:ne}=We(),_e=R(),{route:te}=Ie(),{sendSearchResultsGa:re}=ts(),{state:he}=$t();try{const $=await kn(O.value.searchParams,N());U.sendEvent("visit",{section:"query"}),O.value.hasAutoconnection&&U.sendEvent("visit",{section:"query-autoconn"}),q($),j(O.value.searchParams),g.value.trips=$.trips.filter(de=>!de.approximate),g.value.tripsRecheck=$.recheck||[],g.value.tripsRecheckToken=$.token||null,g.value.provinceName=$.provinceName;const{tripsBookable:oe}=await y();await _e,O.value.isSearching=!1,Ms({isRechecked:g.value.isRechecked,products:g.value.products,hasLazyRechecksFeature:D["search-pagination-with-lazy-re-checks"]})?C().then(()=>{n()}):n(),g.value.products.length===0&&(oe.length!==0||g.value.passes.length!==0)&&(K(),k({shouldRecalculateFilters:!0}),ne());try{T(te.query)}catch{console.error("failed to applyTransportationTabFromUrl")}const{gaSend:H,createItemFromTripData:le}=Ut();H({clear:!0,event:"view_item_list",ecommerce:{item_list_id:"search_results",item_list_name:"Search Results"},items:g.value.trips.map(le),google_business_vertical:"travel"}),re({fromName:he.value.from.name,toName:he.value.to.name,date:he.value.date,date2:he.value.date2,people:he.value.people,URL:te.fullPath}),d(performance.now()-L),te.query.date2&&g.value.trips.find(de=>de.travel_options.find(Z=>
7Z.round_trip_discount_pct))&&U.sendEvent("visit",{section:"received-discounted-trip-on-search-results"}),oe.some(de=>de.params.rating_count)&&U.sendEvent("visit",{section:"saw-trip-with-rating-in-search-result"}),oe.some(de=>de.travel_options.some(Z=>Z.full_refund_until))&&U.sendEvent("visit",{section:"saw-full-refund-label",message:"search-page"})}catch($){if($.message===ya.aborted)return;U.sendEvent("visit",{section:"query",error:`Error get trips with status ${$.status}`}),console.error($),r($.status),O.value.isSearching=!1}},recheckTrips:C,isLastMinuteSearch:h,isLongTermSearch:I,updateProductList:k,markTripsAsDisabledBySlug:f,getActualNextTripDates:S,getHasTripsWithRouteVehclass:v,getVehclass:p}},Mn={key:0,class:"price","data-qa":"trip-card-price"},Rn=["itemprop","content"],Cn=["itemprop","content"],qn={class:"display-price-block"},Ln=["title","innerHTML"],An={key:1},Fn=["innerHTML"],En={key:1,class:"commission-info"},Nn={class:"commission","data-qa":"trip-card-commission"},Un=ie({__name:"Price",props:{price:{default:()=>({fxcode:"THB",value:0})},displayPrice:{},displayOriginalPrice:{},priceDescription:{},taxInfo:{default:""},commission:{},commissionLabel:{},twoLines:{type:Boolean,default:!1},allowPriceWrap:{type:Boolean},hideDiscount:{type:Boolean}},setup(t){const e=t,a=kt(Is["travel-page-json-ld-migration"],ke(!1)),p=kt(Is["search-trip-card-per-person-as-icon"],ke(!1)),r=E(()=>p.value&&!e.priceDescription);return(d,n)=>d.price.value>0?(l(),w("div",Mn,[B("meta",{itemprop:s(a)?void 0:"priceCurrency",content:d.price.fxcode||"","data-qa":"trip-card-meta-currency"},null,8,Rn),B("meta",{itemprop:s(a)?void 0:"price",content:""+d.price.value,"data-qa":"trip-card-meta-price"},null,8,Cn),B("div",qn,[W(Xs,{class:"display-price","data-qa":"display-price",displayPrice:d.displayPrice,displayOriginalPrice:d.displayOriginalPrice,showPerPersonAsIcon:r.value},null,8,["displayPrice","displayOriginalPrice","showPerPersonAsIcon"]),Ns(d.$slots,"afterPrice",{},void 0,!0)]),d.priceDescription||d.taxInfo?(l(),w("span",{key:0,class:ae(["price-info",{"price-info--two-lines":d.twoLines}])},[d.taxInfo?(l(),w("small",{key:0,title:d.taxInfo,class:"tax-info",innerHTML:d.taxInfo},null,8,Ln)):x("",!0),d.priceDescription&&d.taxInfo?(l(),w("small",An,"|")):x("",!0),d.priceDescription?(l(),w("small",{key:2,"data-qa":"trip-card-description",class:"price-description",innerHTML:d.priceDescription},null,8,Fn)):x("",!0)],2)):x("",!0),d.commission?(l(),w("span",En,[B("small",null,F(d.commissionLabel)+": ",1),B("span",Nn,F(d.commission),1)])):x("",!0)])):x("",!0)}}),Vn=$e(Un,[["__scopeId","data-v-a049434d"]]);function ms(){const{$t:t,$features:e}=z(),{formatPrice:a}=De(),{getDisplayPrice:p}=Yt(),{state:r}=St(),{isMobile:d}=nt(),n=o=>o&&r.value.role===ss.Reseller&&a.value(o.value,o.fxcode),i=o=>{const b={score:(o==null?void 0:o.rating)||0,label:""};return e["show-trip-ratings-count"]&&o.rating_count&&(b.label=d.value?`(${o.rating_count})`:t("n-reviews",{n:o.rating_count})),b},c=({isMultiPax:o,vehclasses:b})=>o?t(`price-multi-${b==null?void 0:b[0]}`):e["search-trip-card-per-person-as-icon"]?void 0:t("price-per-adult");return{getPriceProps:({trip:o,travelOption:b,withFrom:_})=>{let h=o.min_price,I=o.travel_options[0];b&&(h=b.price,I=b);const{displayPrice:u,displayOriginalPrice:f,hideDiscount:S}=p(h,I.original_price,_,I.features.discount);return{price:h,displayPrice:u,displayOriginalPrice:f,priceDescription:c({isMultiPax:e["bugfix-search-results-multi-pax"]?b==null?void 0:b.is_multi_pax:o.is_multi_pax,vehclasses:o.vehclasses}),taxInfo:t("search-results-trip-label-tax-included"),commission:n(I.agfee)||void 0,commissionLabel:t("trip-card-commission-label"),hideDiscount:S}},getCommission:n,getPriceDescription:c,getRating:i}}const Hn=[16454,16530];function jn(t,e){const{getCommonData:a}=Ve(),{formatDuration:p}=Gt(),{$t:r,$dayjs:d,$features:n}=z(),i=e==null?void 0:e.hasTimeOptions,c=(_=!0)=>{if(!t)return;let h=!0,I="",u=0,f="";for(const[S,v]of t.segments.entries())if(v.type!=="route"){const k=t.segments[S-1],y=t.segments[S+1],R=a(k.to,"stations"),C=a(y.from,"stations");
7if(k.vehclass==="avia"&&y.vehclass==="avia"){const A=I?", ":"";R.station_code===C.station_code?I+=`${A}${R.station_code}`:(I+=`${A}${R.station_code}+${C.station_code}`,f=`<b>${r("travel-to-trip-info-stopinfo-change-stations")}</b>`),u+=v.duration}else{h=!1;break}}if(h&&t.segments&&t.segments.length>1){let S="travel-to-trip-info-stopinfo";return _&&(S="travel-to-trip-info-stopinfo-with-count"),r(S,{stops:r("n-stops",{n:t.params.stops}),stopover_station:I,stopover_dura:`(${p(u)})`,change_station:f})}else return""},m=(_=null)=>{var U,D;if(!t)return;const h=(U=t.params.operators)==null?void 0:U.some(q=>Hn.includes((q==null?void 0:q.id)||q)),I=_?"segment":"trip",u=_?_.vehclasses:t.params.vehclasses,f=u.map(q=>r(`vehclass-${q}`)),S=n["search-autopacks"]||n["search-mvp-autopacks"];let v,k,y,R,C,A,T="";const g=t.travel_options.length>1,O=_==null?void 0:_.duration,L=_==null?void 0:_.operator,N=_==null?void 0:_.class;switch(I){case"segment":v=p(O),k=_==null?void 0:_.official_id,y=!0,R=a(L,"operators").name,C=a(N,"classes").name,A=u.length>1;break;case"trip":v=p(t.params.duration),k=t.segments[0].official_id,y=!t.segments.filter(q=>q.type!=="route"&&!q.connection_guaranteed).length,C=a(t.travel_options[0].class,"classes").name,R=a((D=t.params.operators)==null?void 0:D[0],"operators").name,A=u.length>1||t.segments.length>1;break}if(y)T=r("travel-to-trip-info-connections-guaranteed");else if(!(S&&t.isPackOrAutopack)){const q=r("travel-to-trip-info-connections-not-guaranteed");T=e!=null&&e.isMobileView?q:`<strong>${q}</strong>`}return{forceOfficialId:h,rawVehclasses:u,vehclasses:f,duration:v,officialId:k,operatorName:R,className:C,hasMultipleVehclasses:A,hasTravelOptions:g,connections:T}};return{getTime:(_,h=Zt.DepTime)=>{const I=d(t==null?void 0:t.segments[0].dep_time).format("HH:mm"),u=d(_[h]).format("HH:mm");return t&&t.segments[0].vehclasses.length===1&&t.segments[0].vehclasses[0]==="charter"&&I==="00:00"?"--:--":u},stopsInfo:c,routeInfo:(_=null,h)=>{const I=m(_);if(!I||!t)return;const{forceOfficialId:u,rawVehclasses:f,vehclasses:S,duration:v,officialId:k,operatorName:y,className:R,hasMultipleVehclasses:C,hasTravelOptions:A,connections:T}=I;if(e!=null&&e.isMobileView)return C?[T,S.join("+")].filter(Boolean).join(" | "):"";const g=(e==null?void 0:e.isSimplified)&&!C;if(!C){const L=D=>typeof D.class=="object"?D.class.id:D.class,N=t.travel_options.length<=1||t.travel_options.every(D=>L(D)===L(t.travel_options[0]));let U=`<span data-qa="short-info-duration">${v}</span>`;return U+=`<span data-qa="short-info-operator"> | ${y}</span>`,U+=` | ${k?`<span data-qa="short-info-vehclass">${S[0]} #${k}</span>`:`<span data-qa="short-info-vehclass">${S[0]}</span>`}`,R&&(N||h!=null&&h.alwaysShowClass)&&(U+=`<span> | <b data-qa="short-info-class">${R}</b></span>`),U}let O;return u?O="travel-to-point-info-force-id":g?O=!A&&R?"travel-to-point-info-simplified-with-class":"travel-to-point-info-simplified":(!A||i)&&!C?O=`travel-to-point-info-${f[0]}`:A&&!C?O=`travel-to-point-info-single-${f[0]}`:O="travel-to-point-info-single",!u&&["avia","train"].includes(f[0])&&!k&&!g&&(O+="-noid"),r(O,{duration:v,official_id:`<strong class="official-id">#${k}</strong>`,operator:y,vehclasses:S.join("+"),connections:T,stops_info:c(),class:`<strong>${R}</strong>`})},routeInfoData:m}}const ca=t=>(ns("data-v-4fb94b66"),t=t(),is(),t),Gn={class:"time-options-grid-header"},Yn=ca(()=>B("div",{class:"grid-header-radio"},null,-1)),zn={class:"grid-header-time"},Kn={class:"grid-header-departure","data-qa":"time-options-grid-header-departure"},Wn={class:"grid-header-arrival","data-qa":"time-options-grid-header-arrival"},Qn={class:"grid-header-duration","data-qa":"time-options-grid-header-duration"},Xn={class:"grid-header-price","data-qa":"time-options-grid-header-price"},Jn={class:"grid-header-price-per-adult"},Zn=ca(()=>B("div",{class:"grid-header-action"},null,-1)),ei=["data-parent-id","data-qa-id","data-dep-time","data-position","data-parent-position","data-option-count","onClick"],ti={class:"grid-cell-radio"},si={key:0,class:"radio-inner"},ai={class:"grid-cell-duration"},ni={class:"grid-cell-action"},ii={key:2,class:"unavailable"},oi=ie({__name:"TimeOptionsGrid",props:{timeOptions:{},selectedTimeOption:{},onTimeOptionSeen:{type:Function},inSearchResults:{type:Boolean},parentId:{},parentPosition:{}},emits:["timeOptionSelected"],setup(t,{emit:e}){const a=t,p=e,{$t:r}=z(),{calculateDuration:d,formatTime:n}=Gt(),{formatPrice:i}=De(),{isMobile:c}=nt(),m=u=>{var f;return((f=a.selectedTimeOption)==null?void 0:f.booking_uri)===u||!1},o=u=>u.bookable>0,b=u=>u.dep_datetime?`${u.dep_datetime}|${u.arr_datetime??"~"}`:"~",_=E(()=>[...a.timeOptions].sort((u,f)=>{const S=Number(o(f))-Number(o(u));if(S!==0)return S;const v=b(u),k=b(f);return v===k?0:v<k?-1:1})),h=(u,f)=>{const S=n(u),v=n(f);return`${S} - ${v}`},I=u=>{p("timeOptionSelected",u)};return(u,f)=>{const S=as,v=Hs,k=Us("onSeen");return l(),w("div",{class:ae(["trip-time-options-grid",{"in-search-results":u.inSearchResults}])},[B("div",Gn,[Yn,B("div",zn,F(s(r)("trip-info-time-options-time")),1),B("div",Kn,F(s(r)("departure")),1),B("div",Wn,F(s(r)("arrival")),1),B("div",Qn,F(s(r)("station-info-duration")),1),B("div",Xn,F(s(r)("price")),1),B("div",Jn,F(s(r)("trip-info-time-options-price-per-adult")),1),Zn]),(l(!0),w(ee,null,fe(s(_),(y,R)=>Vs((l(),w("div",{key:R,class:ae(["time-options-grid-row",{selected:m(y.booking_uri),"not-bookable":!o(y)}]),"data-type":"time-option","data-qa":"time-options-time-option","data-
7parent-id":u.parentId,"data-qa-id":y.id,"data-dep-time":y.dep_datetime,"data-position":R+1,"data-parent-position":u.parentPosition,"data-option-count":s(_).length,onClick:C=>o(y)?I(y.booking_uri||""):null},[B("div",ti,[B("div",{class:ae(["radio-button",{checked:m(y.booking_uri),"not-bookable":!o(y)}])},[m(y.booking_uri)?(l(),w("div",si)):x("",!0)],2)]),B("div",{class:ae(["grid-cell-time",{selected:m(y.booking_uri)}])},F(h(y.dep_datetime||"",y.arr_datetime||"")),3),B("div",{class:ae(["grid-cell-departure",{selected:m(y.booking_uri)}])},F(s(n)(y.dep_datetime||"")),3),B("div",{class:ae(["grid-cell-arrival",{selected:m(y.booking_uri)}])},F(s(n)(y.arr_datetime||"")),3),B("div",ai,[y.dep_datetime&&y.arr_datetime?(l(),w(ee,{key:0},[Te(F(s(d)(y.dep_datetime,y.arr_datetime)),1)],64)):x("",!0)]),B("div",{class:ae(["grid-cell-price",{selected:m(y.booking_uri),unavailable:!o(y)}])},F(o(y)?s(i)(y.price.value,y.price.fxcode,{roundDown:!0}):s(c)?s(r)("unavailable"):""),3),B("div",ni,[o(y)?(l(),V(v,{key:0,variant:m(y.booking_uri)?"success":"default",disabled:m(y.booking_uri),"data-analytics":s(Ue).AddToCartButton,"data-qa":"time-option-select-button",class:"select-button desktop-action"},{default:Q(()=>[m(y.booking_uri)?(l(),w(ee,{key:0},[W(S,{name:"check",width:"14"}),Te(" "+F(s(r)("trip-info-time-options-selected")),1)],64)):(l(),w(ee,{key:1},[Te(F(s(r)("trip-info-time-options-select")),1)],64))]),_:2},1032,["variant","disabled","data-analytics"])):x("",!0),o(y)&&u.inSearchResults?(l(),V(S,{key:1,name:"caret",class:ae(["mobile-action-icon",{selected:m(y.booking_uri)}]),size:"14"},null,8,["class"])):x("",!0),!o(y)&&!(u.inSearchResults&&s(c))?(l(),w("div",ii,F(s(r)("unavailable")),1)):x("",!0)])],10,ei)),[[k,a.onTimeOptionSeen]])),128))],2)}}}),Cs=$e(oi,[["__scopeId","data-v-4fb94b66"]]),it=t=>(ns("data-v-b562441e"),t=t(),is(),t),ri={class:"skeletons","data-qa":"trip-skeleton-main"},li={class:"skeleton-body"},ci={key:0,class:"skeleton-labels","data-qa":"trip-skeleton-with-labels"},ui=it(()=>B("div",{class:"skeleton-labels-item skeleton-element"},null,-1)),pi=[ui],di=it(()=>B("div",{class:"skeleton-points"},[B("div",{class:"skeleton-points-item skeleton-element"}),B("div",{class:"skeleton-points-item skeleton-element"}),B("div",{class:"skeleton-points-item skeleton-element"})],-1)),mi={key:1,class:"skeleton-photo","data-qa":"trip-skeleton-with-photo"},fi=it(()=>B("div",{class:"skeleton-photo-item skeleton-element"},null,-1)),_i=it(()=>B("div",{class:"skeleton-photo-item skeleton-element"},null,-1)),hi=[fi,_i],vi=it(()=>B("div",{class:"skeleton-free-cancelation-label"},"Â ",-1)),gi={key:0,class:"skeleton-cta","data-qa":"trip-skeleton-cta"},yi={key:0,class:"skeleton-cta-price","data-qa":"trip-skeleton-with-price"},bi={key:0,itemprop:"offers",itemscope:"",itemtype:"http://schema.org/Offer"},ki=["content"],Ti=["content"],$i=["innerHTML"],wi={key:1,itemprop:"offers",itemscope:"",itemtype:"http://schema.org/Offer"},Si=["content"],Pi=["content"],Ii=["innerHTML"],Di={key:2,class:"skeleton-cta-price-element"},Bi=it(()=>B("div",{class:"skeleton-cta-btn skeleton-element"},null,-1)),Oi=ie({__name:"Skeleton",props:{total:{default:3},withPhoto:{type:Boolean,default:!1},withPrice:{type:Boolean,default:!1},withCta:{type:Boolean,default:!1},withLabels:{type:Boolean,default:!1},minPrice:{},maxPrice:{},displayedMinPrice:{},displayedMaxPrice:{}},setup(t){return(e,a)=>(l(),w("div",ri,[(l(!0),w(ee,null,fe(e.total,p=>(l(),w("div",{key:p,class:"skeleton-wrapper"},[W(Qs,{class:"skeleton"},{default:Q(()=>[B("div",li,[e.withLabels?(l(),w("div",ci,pi)):x("",!0),di,e.withPhoto?(l(),w("div",mi,hi)):x("",!0)]),vi,e.withCta?(l(),w("div",gi,[e.withPrice?(l(),w("div",yi,[p===1&&e.minPrice?(l(),w("span",bi,[B("meta",{itemprop:"priceCurrency",content:e.minPrice.fxcode,"data-qa":"trip-skeleton-min-price-fxcode"},null,8,ki),B("meta",{itemprop:"price",content:""+e.minPrice.value,"data-qa":"trip-skeleton-min-price-value"},null,8,Ti),B("span",{"data-qa":"trip-skeleton-min-price-display",innerHTML:e.displayedMinPrice},null,8,$i)])):p===3&&e.maxPrice?(l(),w("div",wi,[B("meta",{itemprop:"priceCurrency",content:e.maxPrice.fxcode,"data-qa":"trip-skeleton-max-price-fxcode"},null,8,Si),B("meta",{itemprop:"price",content:""+e.maxPrice.value,"data-qa":"trip-skeleton-max-price-value"},null,8,Pi),B("span",{"data-qa":"trip-skeleton-max-price-display",innerHTML:e.displayedMaxPrice},null,8,Ii)])):(l(),w("div",Di))])):x("",!0),Bi])):x("",!0)]),_:2},1024)]))),128))]))}}),xi=$e(Oi,[["__scopeId","data-v-b562441e"]]),qs=700,Mi=ie({__name:"NavTabs",props:ba({highlightLabel:{type:Boolean},dataAnchorPrefix:{},tabs:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t,{expose:e}){const a=t,p=ke(null),r=ka(t,"modelValue");function d(){var _,h;(_=p.value)!=null&&_.rootEl&&p.value.rootEl.scrollWidth>
7p.value.rootEl.clientWidth&&((h=p.value.rootEl.querySelector(".tab.active"))==null||h.scrollIntoView({behavior:"smooth",inline:"center"}))}const n=ke();function i(_,h){const I=document.querySelector(_.selector);I&&(clearTimeout(n.value),I.scrollIntoView({behavior:h,block:"start"}),n.value=setTimeout(()=>{n.value=void 0},qs))}async function c(_,h="smooth"){r.value=_,await es(),d(),i(_,h)}const m=ke(null);function o(){m.value&&(m.value.disconnect(),m.value=null)}function b(){if(typeof IntersectionObserver>"u")return;o();const _=new Map;a.tabs.forEach(I=>{const u=document.querySelector(I.selector);u&&_.set(u,I)});const h=new Map;m.value=new IntersectionObserver(I=>{if(I.forEach(S=>{h.set(S.target,S)}),n.value)return;let u;for(const S of h.values())S.isIntersecting&&(!u||S.intersectionRatio>u.intersectionRatio)&&(u=S);if(!u)return;const f=_.get(u.target);f&&(r.value=f,setTimeout(()=>{d()},qs))},{root:null,threshold:[.1,.2,.3,.4,.5,.6,.7,.8,.9,1]}),_.forEach((I,u)=>{var f;(f=m.value)==null||f.observe(u)})}return qt(()=>a.tabs,async()=>{await es(),b()},{immediate:!0}),Ta(()=>{o()}),e({setActiveTab:c}),(_,h)=>(l(),V(Ua,{ref_key:"tabsRef",ref:p,modelValue:r.value,tabs:_.tabs,dataAnchorPrefix:_.dataAnchorPrefix,highlightLabel:_.highlightLabel,"onUpdate:modelValue":c},null,8,["modelValue","tabs","dataAnchorPrefix","highlightLabel"]))}}),Ri={class:"trip-points"},Ci={key:0,class:"trip-points-line-left time-label","data-qa":"time-label"},qi=["title"],Li={key:2,class:"trip-points-line-left logo-icons"},Ai=["innerHTML"],Fi=["innerHTML"],Ei=["innerHTML"],Ni=["innerHTML"],Ui=ie({__name:"PointsFull",props:{hideTimeOptionsCount:{type:Boolean}},setup(t){const{$t:e,$dayjs:a,$date:p}=z(),{getCommonData:r}=Ve(),{formatDuration:d,formatDate:n}=Gt(),i=kt(js),c=kt(Gs),m=kt(Ys,E(()=>null)),{getTime:o,routeInfo:b}=jn(i==null?void 0:i.value,{hasTimeOptions:c==null?void 0:c.value}),_=E(()=>{var u;return p.format((u=i==null?void 0:i.value)==null?void 0:u.travel_options[0].dep_datetime,"HH:mm")}),h=E(()=>{if(!(i!=null&&i.value))return[];const u=i.value.segments,f=u[0],S=i.value.segments[i.value.segments.length-1];let v=f.dep_time,k=S.arr_time;if(m!=null&&m.value){const T=m.value;T.dep_datetime&&(v=T.dep_datetime),T.arr_datetime&&(k=T.arr_datetime)}const y=a(v,"YYYY-MM-DD"),C=a(k,"YYYY-MM-DD").diff(y,"days"),A=[];for(const T in u){const g=u[T],O=r(g.from,"stations"),L=r(g.to,"stations");if(g.type==="route"){let N=g.dep_time,U=g.arr_time;if(m!=null&&m.value){const q=m.value;T==="0"&&q.dep_datetime&&(N=q.dep_datetime);const j=u.findLastIndex(K=>K.type==="route");T===String(j)&&q.arr_datetime&&(U=q.arr_datetime)}const D={...g,dep_time:N,arr_time:U};A.push({type:"station",time:{text:o(D,Zt.DepTime)},desc:O.station_name_full,station_lat:O.station_lat,station_lng:O.station_lng,station_id:O.station_id,station_slug:O.station_slug,badges:[null],oneLine:!0},{type:"summary",vehclasses:g.vehclasses,desc:b(g)},{type:"station",time:{text:o(D,Zt.ArrTime)},desc:L.station_name_full,station_lat:L.station_lat,station_lng:L.station_lng,station_id:L.station_id,station_slug:L.station_slug,badges:[null],oneLine:!0});continue}A.push({type:g.type,desc:g==null?void 0:g.instruction,faded:!0,dashed:!0})}return A[A.length-1].badges=[{text:C?`+${C}`:""}],A}),I=E(()=>{var u,f,S,v;if(!((f=(u=i==null?void 0:i.value)==null?void 0:u.params)!=null&&f.arr_time)||!((v=(S=i==null?void 0:i.value)==null?void 0:S.params)!=null&&v.duration))return null;try{return e("trip-points-travel-summary",{date:n(i.value.params.arr_time),time:d(i.value.params.duration)})}catch{return null}});return(u,f)=>{var k;const S=os("FontAwesomeIcon"),v=cs;return l(),w("div",Ri,[(l(!0),w(ee,null,fe(s(h),(y,R)=>(l(),w("div",{key:R,class:ae(["trip-points-line",{text:y.type!="station",dep:R===0,arr:R===s(h).length-1}])},[B("div",{class:ae(["trip-points-line-bar",{dashed:y.dashed}])},[(l(!0),w(ee,null,fe(y.badges,C=>(l(),w("div",{key:C,class:ae(["badge",{empty:C&&C.empty,text:C&&C.text}])},F(C&&C.text||""),3))),128))],2),y.time?(l(),w("div",Ci,F(y.time.text),1)):x("",!0),y.vehclasses?(l(),w("div",{key:1,class:ae(["trip-points-line-left logo-icons",{multiple:y.vehclasses.length>1}])},[(l(!0),w(ee,null,fe(y.vehclasses,C=>(l(),w("i",{key:C,class:ae(["v x24",C]),title:s(e)("vehclass-"+C)},null,10,qi))),128))],2)):x("",!0),y.type!=="station"&&y.type!=="summary"?(l(),w("div",Li,[W(S,{icon:y.type==="wait"?"hourglass-half":"walking",class:"v grey",title:y.instruction},null,8,["icon","title"])])):x("",!0),B("div",{class:ae(["trip-points-line-desc",{"one-line":y.oneLine,faded:y.faded}]),"data-qa":"trip-points-line-desc"},[y.type==="station"?(l(),w("span",{key:0,innerHTML:y.desc},null,8,Ai)):(l(),w("span",{key:1,innerHTML:y.desc},null,8,Fi))],2)],2))),128)),s(I)?(l(),w("p",{key:0,class:"trip-points-travel-summary",innerHTML:s(I)},null,8,Ei)):x("",!0),s(c)&&s(i)&&!u.hideTimeOptionsCount?(l(),w("p",{key:1,innerHTML:s(e)("trip-time-option-desc",{n:(k=s(i))==null?void 0:k.travel_options.length,time:`<strong>${s(_)}</strong>`})},null,8,Ni)):x("",!0),s(i)&&s(i).bookings_last_month?(l(),V(v,{key:2,class:"trip-points-bookings-last-month",variant:"plain",size:"sm",text:s(e)("trip-card-bookings-last-month-high-demand",{n:s(i).bookings_last_month})},null,8,["text"])):x("",!0)])}}}
7),Vi=$e(Ui,[["__scopeId","data-v-b77b5d04"]]),Hi={key:0,class:"trip-marker"},ji=["src","alt","title"],Gi=ie({__name:"TripMarker",props:{baseUrl:{},content:{},texts:{}},setup(t){const e=t,a=E(()=>{switch(e.content){case"sha-certified-pl":case"sha-certified-plus":return[`${e.baseUrl}/images/sha-plus-logo.png`,e.texts.certifiedPlus];case"sha-certified":return[`${e.baseUrl}/images/sha-logo.png`,e.texts.certified];case"safe-travels":return[`${e.baseUrl}/images/safe-travels-logo.png`,e.texts.safeTravels];default:return null}});return(p,r)=>a.value?(l(),w("div",Hi,[B("img",{src:a.value[0],alt:a.value[1],title:a.value[1],width:"82",height:"82",loading:"lazy"},null,8,ji)])):x("",!0)}}),Yi=ie({__name:"MarkerWrapper",props:{content:{}},setup(t){var d;const{$t:e,$wlconfig:a}=z(),p=(d=a==null?void 0:a.app)==null?void 0:d["assets-path"],r={certifiedPlus:e("sha-certified-plus"),certified:e("sha-certified"),safeTravels:e("safe-travels")};return(n,i)=>{const c=Gi;return l(),V(c,{"data-qa":"trip-marker-wrapper",texts:r,content:n.content||"",baseUrl:s(p)},null,8,["content","baseUrl"])}}}),zi={class:"bestseller-scarcity-title"},Ki=ie({__name:"BestsellerScarcity",props:{segmentFavoriteBadge:{}},setup(t){const e=t,{$features:a,$t:p}=z(),{getPassengerGroup:r}=ra(),d={[Me.Solo]:"trip-bestseller-segment-fav-title-solo",[Me.Couple]:"trip-bestseller-segment-fav-title-couple",[Me.Families]:"trip-bestseller-segment-fav-title-family",[Me.SmallGroup]:"trip-bestseller-segment-fav-title-group",[Me.Group]:"trip-bestseller-segment-fav-title-group"},n={solo:"trip-bestseller-segment-fav-title-solo",couple:"trip-bestseller-segment-fav-title-couple",family:"trip-bestseller-segment-fav-title-family",group:"trip-bestseller-segment-fav-title-group"},i=E(()=>{if(!a["trip-itinerary-bestseller-copy-for-segment-fav"])return"search-results-trip-label-bestseller";const c=e.segmentFavoriteBadge&&n[e.segmentFavoriteBadge];return c||d[r()]});return(c,m)=>{const o=zs;return l(),V(o,{variant:"flat",color:"promotion"},{title:Q(()=>[B("div",zi,F(s(p)(s(i))),1)]),default:Q(()=>[Te(" "+F(s(p)("trip-bestseller-scarcity-text")),1)]),_:1})}}}),Wi=t=>(ns("data-v-c9c6a831"),t=t(),is(),t),Qi=["content"],Xi=["content"],Ji={class:"price-info","data-qa":"price-info"},Zi=["title","innerHTML"],eo={key:0,"data-qa":"separator"},to=["innerHTML"],so={key:0,"data-qa":"commission-info"},ao=Wi(()=>B("small",null," Commission: ",-1)),no={class:"commission","data-qa":"commission"},io=ie({__name:"Price",props:{price:{default:()=>({value:0,fxcode:"THB"})},discountData:{default:void 0},originalPrice:{default:null},commission:{default:null},isMultiPax:{type:Boolean,default:!1},from:{type:Boolean,default:!1},vehclass:{default:""},nowrap:{type:Boolean,default:!1}},setup(t){const e=t,{formatPrice:a}=De(),{state:p}=St(),{getPriceDescription:r}=ms(),{getDisplayPrice:d}=Yt(),n=r({isMultiPax:e.isMultiPax,vehclasses:[e.vehclass]}),i=E(()=>d(e.price,e.originalPrice,e.from,e.discountData));return(c,m)=>{const o=Xs;return c.price.value>0?(l(),w("div",{key:0,class:ae(["price",{nowrap:c.nowrap}]),"data-qa":"price"},[B("meta",{itemprop:"priceCurrency",content:c.price.fxcode||""},null,8,Qi),B("meta",{itemprop:"price",content:String(c.price.value||0)},null,8,Xi),W(o,{class:"display-price","data-qa":"display-price",displayPrice:s(i).displayPrice,displayOriginalPrice:s(i).displayOriginalPrice},null,8,["displayPrice","displayOriginalPrice"]),B("span",Ji,[B("small",{title:c.$t("search-results-trip-label-tax-included"),class:"tax-info","data-qa":"tax-info",innerHTML:c.$t("search-results-trip-label-tax-included")},null,8,Zi),s(n)?(l(),w("small",eo,"|")):x("",!0),s(n)?(l(),w("small",{key:1,"data-qa":"price-desc",innerHTML:s(n)},null,8,to)):x("",!0)]),c.commission&&typeof c.commission=="object"&&s(p).role===s(ss).Reseller?(l(),w("span",so,[ao,B("span",no,F(s(a)(c.commission.value,c.commission.fxcode)),1)])):x("",!0)],2)):x("",!0)}}}),oo=$e(io,[["__scopeId","data-v-c9c6a831"]]),ro=ie({__name:"Amenity",props:{content:{},texted:{type:Boolean,default:!1}},setup(t){const{$t:e}=z(),a=t,p=E(()=>e(`trip-info-amenity-${a.content}`));return(r,d)=>{const n=Js;return l(),w("span",{class:ae([r.texted?"amenity-texted":"amenity-icon"]),"data-qa":"amenity"},[W(n,{type:r.content},null,8,["type"]),Te(" "+F(r.texted?s(p):""),1)],2)}}}),lo={class:"trip-feature-rich","data-qa":"trip-feature-rich"},co={class:"icon-block","data-qa":"trip-feature-icon-block"},uo={class:"icon","data-qa":"trip-feature-icon"},po={class:"text-block","data-qa":"trip-feature-text-block"},mo={class:"title","data-qa":"trip-feature-title"},fo=ie({__name:"TripFeatureRich",props:{title:{},description:{}},setup(t){return(e,a)=>(l(),w("div",lo,[B("div",co,[B("div",uo,[Ns(e.$slots,"icon",{}
7,void 0,!0)])]),B("div",po,[B("div",mo,F(e.title),1),Te(" "+F(e.description),1)])]))}}),_o=$e(fo,[["__scopeId","data-v-5177c8d8"]]),ho={key:0,class:"trip-info-features-baggage"},vo={key:1,class:"trip-info-features-baggage"},go={key:2,class:"trip-info-features-amenities","data-qa":"trip-info-features-amenities"},yo={class:"trip-info-features-rich-labels","data-qa":"trip-info-features-labels"},bo=ie({__name:"Features",props:{isLoaded:{type:Boolean},modifiedByTripPrioritizeAmenitiesBookingInfoExperiment:{type:Boolean,default:!1},features:{default:()=>({amenities:[],labels:{},class_name:"",baggageCarryon:"",baggageChecked:"",flightsBaggage:{}})}},setup(t){const{$t:e,$date:a,$features:p,$dayjs:r}=z(),d=n=>{const i=[];if(n!=null&&n.show_on_screen&&i.push({title:e("search-results-trip-label-title-e-ticket"),description:e("search-results-trip-label-title-show_on_screen"),icon:"qr",iconVariant:"primary-murk"}),n!=null&&n.instant&&i.push({title:n==null?void 0:n.instant.toString(),description:e("trip-feature-sent-immediately"),icon:"instant",iconVariant:"urgent"}),n!=null&&n.manual&&i.push({title:e("trip-feature-confirmation"),description:n==null?void 0:n.manual.toString(),icon:"instant",iconVariant:"gray"}),n!=null&&n.nonrefundable&&i.push({title:e("trip-feature-no-cancellation"),description:e("trip-feature-no-refunds-selected-date"),icon:"ban",iconVariant:"gray"}),n!=null&&n.refundable&&i.push({title:e("trip-feature-cancellation-possible"),description:e("trip-feature-check-rules"),icon:"refundable",iconVariant:"info"}),n!=null&&n["full-refundable"]){const m=n["full-refundable"].toString().substring(0,10);i.push({title:e("search-results-trip-label-full-refundable"),description:e("search-results-trip-label-rich-full-refundable-before",{date:p["bugfix-free-cancellation-invalid-date-format"]?r(m,"YYYY-MM-DD HH:mm:ss").format("DD MMM, YYYY"):a.format(m,"DD MMM, YYYY")}),icon:"refundable",iconVariant:"highlight"})}return i};return(n,i)=>{var _,h,I,u,f,S;const c=Js,m=ro,o=as,b=_o;return l(),w("div",{class:ae(["trip-info-features",n.modifiedByTripPrioritizeAmenitiesBookingInfoExperiment?"top":"bottom"]),"data-qa":"trip-info-features"},[s(p)["itinerary-flights-baggage-information"]&&(n.features.baggageCarryon||n.features.baggageChecked)?(l(),w("div",ho,[n.features.baggageCarryon?(l(),V(c,{key:0,type:"shopping-bag",text:n.features.baggageCarryon.toString(),responsive:"","data-qa":"trip-info-features-baggage-carryon"},null,8,["text"])):x("",!0),n.features.baggageChecked?(l(),V(c,{key:1,type:"suitcase-rolling",text:n.features.baggageChecked.toString(),responsive:"","data-qa":"trip-info-features-baggage-checked"},null,8,["text"])):x("",!0)])):x("",!0),Object.keys(n.features.flightsBaggage??{}).length&&s(p)["trip-info-flights-baggage-information"]?(l(),w("div",vo,[(_=n.features.flightsBaggage)!=null&&_.baggage_carryon?(l(),V(c,{key:0,type:"shopping-bag",text:(h=n.features.flightsBaggage)==null?void 0:h.baggage_carryon.text,responsive:"","data-qa":"flight-baggage-item"},null,8,["text"])):x("",!0),(I=n.features.flightsBaggage)!=null&&I.baggage_checked?(l(),V(c,{key:1,type:"suitcase-rolling",text:(u=n.features.flightsBaggage)==null?void 0:u.baggage_checked.text,responsive:"","data-qa":"flight-baggage-item"},null,8,["text"])):x("",!0)])):x("",!0),(S=(f=n.features)==null?void 0:f.amenities)!=null&&S.length?(l(),w("div",go,[(l(!0),w(ee,null,fe(n.features.amenities,v=>(l(),V(m,{key:v,content:v,texted:""},null,8,["content"]))),128))])):x("",!0),B("div",yo,[(l(!0),w(ee,null,fe(d(n.features.labels),(v,k)=>(l(),V(b,{key:k,title:v.title,description:v.description},{icon:Q(()=>[W(o,{name:v.icon,variant:v.iconVariant,size:"100%"},null,8,["name","variant"])]),_:2},1032,["title","description"]))),128))])],2)}}}),ko=$e(bo,[["__scopeId","data-v-ce984f53"]]),To={key:0,"data-qa":"operator-logo-image"},$o={key:1,class:"operator-logo-text","data-qa":"operator-logo-text"},wo=ie({__name:"Logo",props:{operator:{},height:{default:32},tooltip:{default:null}},setup(t){const e=t,a=([r,d],n)=>Math.min(125,Math.ceil(r*n/d)),p=E(()=>{var d;const r=(d=e.operator.logo)==null?void 0:d.slice(1);return Vt.props(e.operator.logo,[a(r,e.height),e.height])});return(r,d)=>{const n=rs,i=Us("tooltip");return r.operator.logo?Vs((l(),w("span",To,[W(n,at({alt:r.operator.name,class:"operator-logo"},s(p)),null,16,["alt"])])),[[i,("tooltip"in r?r.tooltip:s($a))||r.operator.name,"right"]]):(l(),w("div",$o,F(r.operator.name),1))}}}),So={key:0,class:"trip-info-operator-name","data-qa":"trip-info-operator-name"},Po={key:1,class:"trip-info-operator-review"},Io={class:"trip-info-operator-review-rating"},Do={key:0,class:"trip-info-operator-review-total"},Bo={key:2,class:"trip-info-operator-review-no-reviews"},Oo=ie({__name:"Operator",props:{isLoaded:{type:Boolean,default:!1},operator:{}},setup(t){const{router:e}=Ie(),{getUrl:a}=Be(),{$features:p}=z(),r=t;function d(){e.push(a("/:lang/operator/:slug",{slug:r.operator.slug}))}function n(){return r.operator.reviews&&r.operator.reviews>0}function i(){return p["all-trip-itinerary-remove-count-when-1-to-4-reviews"]?r.operator.reviews&&r.operator.reviews>4:!0}return(c,m)=>{const o=wo,b=Ga;return l(),w("div",{class:"trip-info-operator",onClick:wt(d,["stop","prevent"])},[W(o,{operator:c.operator,height:36},null,8,["operator"]),c.operator.logo&&c.operator.name?(l(),w("div",So,F(c.operator.name),1)):x("",!0),n()?(l(),w("div",Po,[B("div",Io,[W(b,{rate:Number(c.operator.rating),size:"md",isWide:""},null,8,["rate"]),Te("Â "),B("span",null,F(c.operator.rating?c.operator.rating.toFixed(1):""),1)]),i()?(l(),w("div",Do,[B("span",null,F(c.isLoaded?c.$t("operator-total-reviews",{count:c.operator.reviews}):""),1)])):x("",!0)])):(l(),w("div",Bo))])}}}),xo=$e(Oo,[["__scopeId","data-v-37087c97"]]),Mo=["href","onClick"],Ro={class:"text"},Co=ie({__name:"Gallery",props:{modifiedByTripPrioritizeAmenitiesBookingInfoExperiment:{type:Boolean,default:!1},images:{default:()=>[]},operators:{default:()=>[]},isLoaded:{type:Boolean,default:!1},tripId:{default:""},tripDate:{default:""}},setup(t){const{mq:e}=nt(),{$analytics:a}
7=z(),p=t,r=ke(!1),d=ke(0),n=E(()=>p.images&&p.images.length?p.images.length:0),i=E(()=>n.value>0),c=E(()=>e.value=="xs"||e.value=="xss"?!1:n.value+1>3),m=E(()=>{const u=p.images;if(e.value=="xs"||e.value=="xss")return u.map(function(v){return v.class="",v});let f=1;const S=2;for(const v of u)f<=S?v.class="":v.class="hidden",f++;return u}),o=E(()=>m.value.map(u=>({src:Vt.url(u),width:u[1],height:u[2]}))),{hasTouchSupport:b}=wa();function _(u){d.value=u,r.value=!0,a.sendEvent("visit",{section:"photo-gallery-displayed",data:{imagesInGallery:n.value+1,context:we.trip,index:u,tripId:p.tripId,tripDate:p.tripDate,hasTouchSupport:b.value}})}function h(){r.value=!0,d.value=2}const I=u=>{a.sendEvent("visit",{section:"photo-gallery-arrow-click",data:{tappedImgIndex:u.imgIndex,tapDirection:u.direction,tripId:p.tripId,tripDate:p.tripDate}})};return(u,f)=>{const S=xo,v=rs,k=Sa;return l(),w("div",{class:ae(["trip-info-gallery",u.modifiedByTripPrioritizeAmenitiesBookingInfoExperiment?"modified":"standard"]),"data-qa":"trip-info-gallery",itemtype:"http://schema.org/ImageGallery",onClick:f[1]||(f[1]=wt(()=>{},["stop"]))},[(l(!0),w(ee,null,fe(u.operators,(y,R)=>(l(),V(S,{key:`operator-${R}`,"data-qa":"trip-info-gallery-item-operator",class:"trip-info-gallery-item trip-info-gallery-operator",operator:y,isLoaded:u.isLoaded},null,8,["operator","isLoaded"]))),128)),s(i)?(l(!0),w(ee,{key:0},fe(s(m),(y,R)=>{var C;return l(),w("figure",{key:R,"data-qa":"trip-info-gallery-item-image",class:ae(["trip-info-gallery-item",y.class]),itemprop:"associatedMedia",itemscope:"",itemtype:"http://schema.org/ImageObject"},[B("a",{href:(C=s(o)[s(d)])==null?void 0:C.src,itemprop:"contentUrl","data-qa":"trip-info-gallery-item-link",onClick:wt(A=>_(R),["prevent"])},[W(v,at({itemprop:"thumbnail",class:"thumbnail"},s(Vt).props(y,[s(xs).width,s(xs).height],"fill")),null,16)],8,Mo)],2)}),128)):x("",!0),s(c)?(l(),w("figure",{key:1,class:"more","data-qa":"more",onClick:h},[B("span",Ro,"+"+F(s(n)),1)])):x("",!0),s(r)?(l(),V(Ks,{key:2,to:"#photoswipe"},[W(k,{items:s(o),index:s(d),onClose:f[0]||(f[0]=y=>r.value=!1),onArrowPhotoClick:I},null,8,["items","index"])])):x("",!0)],2)}}}),qo=$e(Co,[["__scopeId","data-v-a7136f6d"]]),Lo={class:"operator-review-snippets"},Ao={class:"operator-review-snippets__label"},Fo=ie({__name:"OperatorReviewSnippets",props:{snippets:{}}
7,setup(t){const e=t,{$t:a,$analytics:p}=z();Pa(()=>{e.snippets.length!==0&&p.sendEvent("visit",{section:"user-saw-operator-review-snippet",data:{snippets:e.snippets,snippetCount:e.snippets.length}})});const r=()=>{p.sendEvent("visit",{section:"user-scrolled-operator-review-snippets",data:{snippets:e.snippets,snippetCount:e.snippets.length}})};return(d,n)=>{const i=cs;return l(),w("section",Lo,[B("div",Ao,F(s(a)("trip-info-operator-review-snippets")),1),B("div",{class:"operator-review-snippets__tags",onScrollOncePassive:r},[(l(!0),w(ee,null,fe(d.snippets,c=>(l(),V(i,{key:c,text:`â${c}â`,variant:"default",size:"sm"},null,8,["text"]))),128))],32)])}}}),Eo=$e(Fo,[["__scopeId","data-v-aae721ee"]]),No={key:0,class:"trip-info-stations"},Uo={class:"trip-info-stations-item-desc"},Vo=["innerHTML"],Ho=["href"],jo=["href"],Go=ie({__name:"Stations",props:{from:{},to:{}},setup(t){const{$t:e}=z(),a=t,p=E(()=>{const d={from:{title:e("departure-station"),url:null,src:null,srcset:null,name:null,name_full:null},to:{title:e("arrival-station"),url:null,src:null,
7srcset:null,name:null,name_full:null}};for(const n in d){const i=a[n],c=[[76,76],[320,200],[421,260]].map(m=>`${Vt.url([i.map[0]],{width:m[0],height:m[1],type:"crop"})} ${m[0]}w`);i.station_lat&&i.station_lng&&(d[n].url=`https://www.google.com/maps/place/${i.station_lat},${i.station_lng}`),d[n].src=c[0].split(" ")[0],d[n].srcset=c.join(", "),d[n].name=i.station_name,d[n].name_full=i.station_name_full}return d}),r=E(()=>{const d=a.from.station_type!=="charter"&&a.to.station_type!=="charter",n=a.from.map&&a.to.map;return d&&n});return(d,n)=>{const i=rs;return s(r)?(l(),w("div",No,[(l(!0),w(ee,null,fe(s(p),c=>(l(),w("div",{key:c.title,class:"trip-info-stations-item"},[B("div",Uo,[B("h5",null,F(c.title),1),c.name_full?(l(),w("span",{key:0,innerHTML:c.name_full},null,8,Vo)):x("",!0),c.url?(l(),w("a",{key:1,href:c.url,target:"_blank",rel:"noopener noreferrer"},F(s(e)("trip-info-stations-gmaps-label")),9,Ho)):x("",!0)]),B("a",{href:c.url,target:"_blank",rel:"noopener noreferrer"},[W(i,{src:c.src,alt:c.name,srcset:c.srcset,sizes:"(min-width: 992px) 421px, (min-width: 768px) 320px, 76px"},null,8,["src","alt","srcset"])],8,jo)]))),128))])):x("",!0)}}}),Yo=(t,e="",a=0,p={},r="",d=!1,n=!1,i=!1,c=!1,m="",o="")=>{const{getUrl:b}=Be(),_=Ia({"bugfix-displayed-new-reviews-trip":d,"trip-prioritize-amenities-booking-info":n,"trip-info-trip-details-structuring":c}),h=b(Fe.tripInfo,{slug:t,hash:e,seats:a,autopack_id:r,...i?{bringOutsideImageFirst:1}:{},...o?{pd_options_key:o}:m?{pd_key:m}:{},...p,..._?{feature:_}:{}});return Da(h)};function ua(t=""){const e=Nt("tripinfo",()=>({})),{tripsData:a}=ce(),{$features:p}=z();async function r(i="",c=0,m={},o="",b="",_=""){if(!t)return;const h=!!p["search-desktop-single-image-trip-card"],I=await Yo(t,i,c,m,o,p["bugfix-displayed-new-reviews-trip"],p["trip-prioritize-amenities-booking-info"],h,p["trip-info-trip-details-structuring"],b,_);return e.value[t]=I,I}const d=E(()=>{var c,m,o;if(e.value[t])return e.value[t];let i=null;for(const b in a.value.trips){const h={...a.value.trips[b]},I=h.travel_options.find(u=>t===u.buy.map(f=>`${f.trip_id}/${f.date}`).join("/"));if(I){h.travel_options=[I],h.id=I.id,h.params.min_price=I.price,h.params.max_price=I.price,h.segments=(c=h.segments)==null?void 0:c.map(u=>({...u,class:I.class})),i=h;break}}return i&&((o=(m=i==null?void 0:i.params)==null?void 0:m.vehclasses)!=null&&o.includes("charter"))&&(i.show_map=!1),i||null});function n(){e.value[t]&&(e.value[t].params.bookable=0,e.value[t].params.is_bookable=!1)}return{getTripInfo:r,markAsDisabled:n,state:e,data:d}}function zo(){const{getDisplayPrice:t}=Yt(),e=(m,o,b)=>{if(!m)return;const{fxcode:_}=De(),{getSelectedFilters:h}=We(),I=h(),{gaSend:u,createItemFromTripData:f}=Ut(),{tripsSummary:S}=ce(),v=Object.keys(I).map(k=>`${k}=${I[k].join(",")}`).join("&");u({clear:!0,event:"add_to_cart",ecommerce:{currency:_.value,value:m.travel_options[0].price.value},items:[f(m)],google_business_vertical:"travel"}),u({category:"travel-search",action:"click",label:b?"BuyFromCarousel":"Buy",metrics:{metric1:o,metric2:v,metric3:S.value.sortedBy}})},a=m=>{var R,C,A;const{$eventBus:o,$analytics:b}=z(),{fxcode:_}=De(),{gaSend:h,createItemFromTripData:I}=Ut(),{getUrl:u}=Be(),{trip:f,travelOption:S,fromBestOptions:v}=m,k=u("/:lang/secure/metaurl",{tripId:S.id,godate:f.params.dep_time});f&&(b.sendEvent("visit",{section:"trip-book-meta",message:"Pushed book button with external purchase",isRecommended:+(f.params.recommended>0),fromBestOptions:v,isBoosted:!!f.is_boosted}),h({clear:!0,event:"external_purchase",ecommerce:{currency:_.value,value:f.travel_options[0].price.value,items:[I(f)]}})),window.open(k,"_blank");const y=((A=(C=(R=f.params.external_purchase_url)==null?void 0:R.toString())==null?void 0:C.match(/^https?:\/\/([^/?#]+)(?:[/?#]|$)/i))==null?void 0:A[1])||null;o.emit(tt.setExternalPurchaseConfirmation,y)},p=async m=>{var Z,je,ot,rt,Qe,Pt,lt,Xe,It,Ge,ct,Dt,ut;const{$eventBus:o,$analytics:b,$dayjs:_,$features:h}=z(),{router:I,route:u}=Ie(),{getParams:f,applySearch:S,state:v}=$t(),{getUrl:k}=Be(),{addTrip:y,getErrorDetails:R}=sn(),{isMobile:C}=nt(),{sendBookNowGa:A}=ts(),{trip:T,travelOption:g,position:O,fromBestOptions:L,isBestseller:N,fromInfoPage:U=!1,fromCarousel:
7D}=m;if(!T||!g)return;const q=(g==null?void 0:g.discount_data)??{},j=((Z=T==null?void 0:T.params.vehclasses[0])==null?void 0:Z.toString())==="railpass"?"railpass":"trip",K=!!((je=T==null?void 0:T.photos)!=null&&je.length)&&C.value,ne=Zs(T.travel_options),_e=T.travel_options.length>1;let te,re;(h["search-flights-baggage-information"]||h["trip-info-flights-baggage-information"])&&(te=((rt=(ot=g.features)==null?void 0:ot.baggage_carryon)==null?void 0:rt.weight)||0,re=((Pt=(Qe=g.features)==null?void 0:Qe.baggage_checked)==null?void 0:Pt.weight)||0);const he=Wa(T);b.sendEvent("visit",{section:"add-to-cart",data:{type:j,cancellationOption:ea([T]),isApiCancellationPolicyApplied:ta([T]),displayedPhotoThumbnail:K,fromBestOptions:L,isRecommended:T.params.recommended>0,id:g.id,godate:T.params.dep_time,position:O,fromInfoPage:U,discount:(U?u.query.fromRoundTrip:u.query.date2)&&g.round_trip_discount_pct||0,hasBestsellerLabel:!!(T.isBestseller||N),hasCheapestLabel:!!T.isCheapest,hasFastestLabel:!!((lt=T.features)!=null&<.fastest),hasCheapestByVehclassLabel:!!T.isCheapestByVehclass,hasFastestByVehclassLabel:!!T.isFastestByVehclass,hasInstantLabel:!!((Xe=T.features)!=null&&Xe.instant),hasTravelOptions:_e,travelOptions:sa(T),segments:Ws(T),isMostPopular:!!(ne&&ne.id===g.id),operators:(It=T.params.operators)==null?void 0:It.map(ge=>typeof ge=="object"&&"id"in ge?ge.id:ge),isBoosted:!!T.is_boosted,vehclasses:T.params.vehclasses,isConnectedTrips:T.segments.length>1,carryOn:te,checkedBaggage:re,isAutopack:!!T.params.autopack_id,isManualPack:!!T.pack_id,manualPackId:T.pack_id??null,hasETicket:g.ticket_type==="show_on_screen",fromCarousel:D,isSegmentFavorite:!!((Ge=T.badges)!=null&&Ge.length),amenities:Qa(g??T.travel_options[0]),...he,...q}}),b.sendEvent("visit",{section:"trip-book",message:"Pushed book button",isRecommended:+(T.params.recommended>0),fromBestOptions:L,isBoosted:!!T.is_boosted}),U&&b.sendEvent("visit",{section:"trip-page-book-btn-was-pressed",isRecommended:+(T.params.recommended>0),fromBestOptions:L,isBoosted:!!T.is_boosted}),e(T,O,D),o.emit(tt.showLoading);const $=((ct=g.buy)==null?void 0:ct.map(ge=>({tripId:ge.trip_id,datetime:ge.date})))??[],{roundTripState:X,setRoundTrip:oe,resetRoundTrip:Re}=us(),{date2:H,direction:le="forward"}={...f(),...u.params,...u.query},ue=!!H&&le==="forward",ve={isBestseller:T.isBestseller||N?"1":"0",autopackId:((Dt=T.params.autopack_id)==null?void 0:Dt.toString())||"",...g.pd_key?{pdKey:g.pd_key}:{}},pe=await y($,ve).catch(ge=>{const{reason:Se,bookable:Je}=R(ge);if(!Je){const pt=$.map(({tripId:Ot,datetime:xt})=>`${Ot}/${xt}`).join("/"),{markTripsAsDisabledBySlug:Bt}=la(),{markAsDisabled:dt}=ua(pt);Bt(pt),dt()}return b.sendEvent("visit",{section:"trip-book",error:Se}),o.emit(tt.showError,Se),b.sendEvent("error",{type:Ba.Error,action:Oa.AddToCart,context:"Add to cart error",text:Se}),null});if(o.emit(tt.hideLoading),!pe)return;A(T,g,Number(v.value.people),pe),X.value.trip&&b.sendEvent("visit",{section:"searched-for-round-trip-and-visited-checkout"});const{getData:de}=xa();if(de(),ue){b.sendEvent("visit",{section:"trip-book-roundtrip-first"}),oe(T,g);const ge=_((ut=g.buy)==null?void 0:ut[0].date,"YYYY-MM-DD-HH-mm-ss").format("YYYY-MM-DD"),Se=f();S({params:{...Se,fromSlug:Se.toSlug,toSlug:Se.fromSlug,date:ge,direction:"backward"}})}else if(Re(),pe){const ge={hash:pe};I.push(k("/:lang/checkout/:hash",ge))}else I.push(k("/:lang/checkout"))},r=async m=>{var v;const{$eventBus:o}=z(),{route:b}=Ie(),{adults:_}=Es(),{getCommonData:h}=Ve(),{state:I}=$t(),{trip:u,travelOption:f,fromInfoPage:S=!1}=m;if(!(!u||!f)){if(!S){const k=u.params.dep_time.split(" ")[0],y=I.value.direction==="backward"?I.value.date2:I.value.date,R=I.value.from.slug,C=I.value.to.slug;if((k!==y||b.params.fromSlug!==R||b.params.toSlug!==C)&&!await new Promise(T=>{o.emit(tt.searchFormMismatchConfirmation,{data:{date:k!==y?k:null,from:h(u.params.from,"stations").station_name_full.toString(),to:h(u.params.to,"stations").station_name_full.toString()},done:g=>T(g)})}))return}if(u.params.external_purchase_url){a(m);return}if(((v=u.params.vehclasses[0])==null?void 0:v.toString())==="railpass"){p(m);return}u.features&&u.features["seats-left"]&&I.value.people>f.bookable?o.emit(tt.setSeatsPurchaseConfirmation,{show:!0,seats:f.bookable,done:()=>{_.value=f.bookable,I.value.people=f.bookable,p(m)}}):p(m)}},d=m=>{const{formatPrice:o}=De(),{state:b}=St();return m&&typeof m=="object"&&b.value.role===ss.Reseller?o.value(m.value,m.fxcode):void 0},n=(m,o,b)=>{const{$features:_,$t:h}=z(),{formatPriceNonReactive:I}=De(),u={};for(const f in m){const S=(m[f]||"").toString(),v=m[f];switch(f){case"discount":{const k=o==null?void 0:o.discount_amount,y=k?h("search-results-trip-label-discount-amount",{discount:I(k.value,k.fxcode)}):S;u[f]={variant:"urgent",text:y};break}case"full-refundable":u[f]={icon:"refundable",variant:"info-lighter",text:h("search-results-trip-label-full-refundable"),tooltip:h("search-results-trip-label-full-refundable")};break;case"show_on_screen":u[f]={icon:"qr",variant:"success-darker",tooltip:h(S)};break;case"refundable":u[f]={icon:"refundable",variant:"info",tooltip:S};break;case"baggage-carryon":u[f]={icon:"shopping-bag",tooltip:S};break;case"baggage-checked":u[f]={icon:"suitcase-rolling",tooltip:S};break;case"baggage_carryon":case"baggage_checked":v&&typeof v=="object"&&"weight"in v&&(u[f]=v);break}}return(b||_["pricing-rule-strikethrough-visual"]===!1&&(o==null?void 0:o.promo_type)==="pricing_rule")&&delete u.discount,u};return{buyButtonClick:r,getCommission:d,getFeatures:n,getTimeOptionsProps:m=>{const{$dayjs:o,$t:b}=z(),{getPriceDescription:_}=ms();return m.travel_options.map(h=>
7{const{displayPrice:I,displayOriginalPrice:u,hideDiscount:f}=t(h.price,h.original_price,!1,h.discount_data);return{id:h.id,bookingUri:h.booking_uri,departureDatetime:h.dep_datetime,arrivalDatetime:h.arr_datetime,displayedDepartureTime:o(h.dep_datetime).format("HH:mm"),displayedArrivalTime:o(h.arr_datetime).format("HH:mm"),price:h.price,commission:d(h.agfee),commissionLabel:b("trip-card-commission-label"),bookable:h.bookable,priceDescription:_({isMultiPax:m.params.is_multi_pax,vehclasses:m.params.vehclasses}),textOptionBtnBook:b("trip-time-option-btn-book"),textReason:h.reason||b("unavailable"),features:n(h.features,h.discount_data),displayPrice:I,displayOriginalPrice:u,isExternalPurchaseDomain:!!m.params.external_purchase_url,pending:!1,displayDiscount:!f}})},getExternalPurchaseDomain:m=>{if(!m.params.external_purchase_url)return null;const o=m.params.external_purchase_url.toString().match(/^https?:\/\/([^/?#]+)(?:[/?#]|$)/i);return o&&o[1]}}}function Ls(t){if(!t)return null;const a=t.split("?")[0].split("#")[0].match(/\/(\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2})/);return a?a[1].split("-").slice(3,5).join(":"):null}function pa(t,e){var a;return!t.dep_datetime||!e?!1:!!((a=t.dep_datetime)!=null&&a.includes(e))}function Ko(t){const[e,a]=t.split("-");if(!e||!a)return null;const p=parseInt(e,10),r=parseInt(a,10);return isNaN(p)||isNaN(r)?null:`${e}:${a}`}function As(t,e){if(!e)return null;const a=e.includes(":")?e:Ko(e);if(!a)return null;const p=t.findIndex(r=>pa(r,a));return p>=0?p:null}function Wo(t){const{$analytics:e}=z(),{trip:a,url:p,selectedTime:r,isModal:d,router:n,route:i}=t,c=ke(void 0),m=E(()=>{const I=s(a),u=(I==null?void 0:I.travel_options)||[];return u.length<=1?u:u.filter(f=>f.bookable>0).sort((f,S)=>!f.dep_datetime||!S.dep_datetime?0:f.dep_datetime.localeCompare(S.dep_datetime)).concat(u.filter(f=>f.bookable<=0).sort((f,S)=>!f.dep_datetime||!S.dep_datetime?0:f.dep_datetime.localeCompare(S.dep_datetime)))}),o=E(()=>
7{if(typeof c.value=="number")return c.value;const I=r?s(r):null,u=typeof I=="string"?As(m.value,I):null;if(u!==null)return c.value=u,u;const f=p?s(p):null,S=Ls(f),v=As(m.value,S);if(v!==null)return c.value=v,v;const k=m.value.findIndex(y=>y.bookable>0);if(k>=0)return c.value=k,k}),b=E(()=>{if(!s(a)||m.value.length<=1||typeof o.value!="number"||!_.value)return m.value[0]||null;let u=null;if(o.value>=0&&o.value<m.value.length&&(u=m.value[o.value]),u&&u.bookable<=0){const f=m.value.find(S=>S.bookable>0);if(f)return f}return u}),_=E(()=>{var u;const I=s(a);return!!(I&&((u=I.travel_options)==null?void 0:u.length)>1&&I.travel_options.every(f=>f.class.id===I.travel_options[0].class.id)&&I.travel_options.filter(f=>f.dep_datetime).length===I.travel_options.length)});return{travelOptions:m,selectedTravelOption:b,hasTimeOptions:_,onTimeOptionSelected:async I=>{if(!s(a)||!I)return;const f=Ls(I),S=m.value.findIndex(v=>pa(v,f));if(!(S<0||S===o.value)&&(e.sendEvent("visit",{section:"user-selected-another-time-option",data:{fromIndex:o.value,toIndex:S,totalTimeOptions:m.value.length,availableTimeOptions:m.value.filter(v=>v.bookable>0).length}}),c.value=S,!d&&n&&i)){const v={...i.query},k=f?f.split(":").join("-"):null;k?v.selectedTime=k:delete v.selectedTime,await n.push({path:i.path,query:v})}}}}const Qo={key:0},Xo={key:1,"data-qa":"cancellation-policy-no-refunds"},Jo={class:"options-list"},Zo={class:"option-title"},er={class:"option-description"},tr=ie({__name:"CancellationPolicy",props:{cancellationPolicy:{},showTitle:{type:Boolean}},setup(t){const{formatPriceNonReactive:e}=De(),{$t:a}=z(),p=r=>{var d;return(d=r.price)!=null&&d.value?`${r.title} ${e(r.price.value,r.price.fxcode)}`:r.title};return(r,d)=>(l(),w(ee,null,[r.showTitle?(l(),w("h2",Qo,F(r.cancellationPolicy.title),1)):x("",!0),r.cancellationPolicy.options.length?(l(),w(ee,{key:2},[B("p",null,F(s(a)("cancellation-policy-following-options-available")),1),B("ul",Jo,[(l(!0),w(ee,null,fe(r.cancellationPolicy.options,n=>(l(),w("li",{key:n.title,"data-qa":"cancellation-policy-option"},[B("div",Zo,F(p(n)),1),B("div",er,F(n.description),1)]))),128))]),B("p",null,F(s(a)("cancellation-policy-may-be-different"))+".",1)],64)):(l(),w("p",Xo,F(s(a)("cancellation-policy-no-refunds")),1))],64))}}),sr=$e(tr,[["__scopeId","data-v-6a4f5e62"]]),ar=ie({__name:"AmendmentPolicy",props:{amendment:{}},setup(t){const e={"date-time":"clock","passenger-details":"user",route:"route","pick-up-drop-off-point":"pin"};return(a,p)=>{const r=an,d=nn;return a.amendment.items.length?(l(),V(d,{key:0,"data-qa":"amendment-policy"},{default:Q(()=>[(l(!0),w(ee,null,fe(a.amendment.items,n=>(l(),V(r,{key:n.key,icon:e[n.key],variant:"info","data-qa":"amendment-policy-item"},Ma({title:Q(()=>[Te(F(n.title),1)]),description:Q(()=>[Te(F(n.description),1)]),_:2},[n.explainer?{name:"explainer",fn:Q(()=>[Te(F(n.explainer),1)]),key:"0"}:void 0]),1032,["icon"]))),128))]),_:1})):x("",!0)}}}),nr={class:"trip-info-policies","data-qa":"trip-info-policies"},ir=["innerHTML"],or=ie({__name:"Policies",props:{segment:{},travelOptions:{}},setup(t){const{$t:e}=z(),a=t,p=ke(!0),r=ke(!0),d=E(()=>!!(a.segment.cancel||a.segment.cancellation_policy)),n=E(()=>e("trip-info-nav-cancellation")),i=E(()=>e("trip-info-policy-amendment-title"));return(c,m)=>{var _;const o=ls,b=aa;return l(),w("div",nr,[s(d)?(l(),V(b,{key:0,modelValue:s(p),"onUpdate:modelValue":m[0]||(m[0]=h=>Ds(p)?p.value=h:null),appearance:"policy",icon:"cancellation",iconVariant:"warning","data-qa":"trip-info-policies-cancellation"},{header:Q(()=>[B("h4",null,F(s(n)),1)]),body:Q(()=>[W(o,null,{default:Q(()=>[c.segment.cancellation_policy?(l(),V(sr,{key:0,cancellationPolicy:c.segment.cancellation_policy,travelOptions:c.travelOptions||[],showTitle:!1},null,8,["cancellationPolicy","travelOptions"])):(l(),w("div",{key:1,innerHTML:c.segment.cancel},null,8,ir))]),_:1})]),_:1},8,["modelValue"])):x("",!0),(_=c.segment.amendment)!=null&&_.items.length?(l(),V(b,{key:1,modelValue:s(r),"onUpdate:modelValue":m[1]||(m[1]=h=>Ds(r)?r.value=h:null),appearance:"policy",icon:"arrowsRotate",iconVariant:"warning","data-qa":"trip-info-policies-amendment"},{header:Q(()=>[B("h4",null,F(s(i)),1)]),body:Q(()=>[W(ar,{amendment:c.segment.amendment},null,8,["amendment"])]),_:1},8,["modelValue"])):x("",!0)])}}}),rr=$e(or,[["__scopeId","data-v-7449492e"]]),lr={class:"trip-details-policies","data-qa":"trip-details-policies"},cr={class:"trip-details-policies-title"},ur=["innerHTML"],pr=ie({__name:"TripDetailsPolicies",props:{policies:{}},setup(t){const e={"important-information":"infoOutline",boarding:"ticket",baggage:"luggage","travel-requirements":"checklist",other:"opaqueInfo"};function a(r){return e[r]??"circleInfo"}const p=ke([]);return(r,d)=>{const n=ls,i=aa;return l(),w("div",lr,[(l(!0),w(ee,null,fe(r.policies,(c,m)=>
7(l(),V(i,{key:c.key,modelValue:s(p)[m]??!1,appearance:"policy",icon:a(c.key),iconVariant:"success","data-qa":`trip-details-policy-${c.key}`,"onUpdate:modelValue":o=>s(p)[m]=o},{header:Q(()=>[B("h4",cr,F(c.title),1)]),body:Q(()=>[W(n,null,{default:Q(()=>[B("div",{innerHTML:c.description},null,8,ur)]),_:2},1024)]),_:2},1032,["modelValue","icon","data-qa","onUpdate:modelValue"]))),128))])}}}),dr=$e(pr,[["__scopeId","data-v-eb558c18"]]),mr={key:0,class:"trip-info-time-options"},fr={key:0,class:"trip-info-time-options-mobile"},_r={class:"time-options-date"},hr=["innerHTML"],vr={"data-qa":"time-options-header"},gr={key:1,class:"trip-info-time-options-desktop"},yr={class:"time-options-title"},br=ie({__name:"TimeOptions",props:{tripTimeOptions:{},selectedTimeOption:{}},emits:["timeOptionSelected"],setup(t,{emit:e}){const a=t,p=e,{$t:r,$dayjs:d,$analytics:n}=z(),{isMobile:i}=nt(),c=ke(!1),{calculateDuration:m,formatTime:o}=Gt(),{formatPrice:b}=De(),_=()=>{i.value&&(c.value=!0,n.sendEvent("visit",{section:"user-opened-time-options-dropdown"}))},h=()=>{if(!a.selectedTimeOption)return r("trip-time-options-dropdown-btn");const u=o(a.selectedTimeOption.dep_datetime),f=o(a.selectedTimeOption.arr_datetime),S=a.selectedTimeOption.dep_datetime&&a.selectedTimeOption.arr_datetime?m(a.selectedTimeOption.dep_datetime,a.selectedTimeOption.arr_datetime):"",v=b.value(a.selectedTimeOption.price.value,a.selectedTimeOption.price.fxcode,{roundDown:!0});return`${u} - ${f}${S?` (${S})`:""} - <strong>${v}</strong>`},I=u=>{p("timeOptionSelected",u),i.value&&c.value&&(c.value=!1)};return(u,f)=>{var k;const S=os("FontAwesomeIcon"),v=as;return a.tripTimeOptions&&a.tripTimeOptions.length>1?(l(),w("div",mr,[s(i)?(l(),w("div",fr,[B("h5",null,F(s(r)("trip-info-time-options-all-departures")),1),B("p",_r,[W(S,{icon:"calendar-alt"}),Te(" "+F(s(d)((k=a.selectedTimeOption)==null?void 0:k.dep_datetime).format("ddd, MMM D")),1)]),B("button",{class:"time-options-dropdown-trigger",onClick:_},[B("span",{class:"dropdown-label",innerHTML:h()},null,8,hr),W(v,{name:"caret",width:"10",class:ae({reverse:s(c)})},null,8,["class"])]),s(c)?(l(),V(Ks,{key:0,to:"#modals"},[W(Ra,{dropdown:"",fullHeight:"","data-qa":"trip-info-time-options-modal",onClose:f[0]||(f[0]=y=>c.value=!1)},{header:Q(()=>[B("h3",vr,F(s(r)("trip-time-options-dropdown-header")),1)]),default:Q(()=>[W(Cs,{timeOptions:a.tripTimeOptions,selectedTimeOption:a.selectedTimeOption,"data-qa":"time-options-list",onTimeOptionSelected:I},null,8,["timeOptions","selectedTimeOption"])]),_:1})])):x("",!0)])):(l(),w("div",gr,[B("h3",yr,F(s(r)("trip-info-time-options-all-departures")),1),W(Cs,{timeOptions:a.tripTimeOptions,selectedTimeOption:a.selectedTimeOption,onTimeOptionSelected:I},null,8,["timeOptions","selectedTimeOption"])]))])):x("",!0)}}}),Fs=$e(br,[["__scopeId","data-v-3e4d3526"]]),kr=Ea(()=>Na(()=>import("./D4kUlG1j.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url).then(t=>t.default||t)),Tr={class:"info-card-title"},$r={key:0,class:"block-title",header:!0},wr={key:1,class:"trip-info-labels"},Sr={key:2,class:"trip-info-card"},Pr={class:"trip-info-card-body"},Ir={key:0,class:"free-cancel-label m-t-1"},Dr={key:1,class:"discount-label m-t-1","data-qa":"trip-info-discount-label-mobile"},Br={class:"trip-info-card-cta hide-on-mobile"},Or={key:0,class:"tirp-info-partial-features"},xr={key:1,class:"free-cancel-label"},Mr={key:2,class:"discount-label","data-qa":"trip-info-discount-label-desktop"},Rr={class:"buy-btn-text"},Cr={key:1,class:"unavailable"},qr={id:"map-section"},Lr={key:2,class:"trip-info-time-options-mobile-wrapper hide-on-desktop","data-qa":"trip-info-time-options-mobile-wrapper"},Ar=["innerHTML"],Fr=["innerHTML"],Er={"data-qa":"trip-info-policies-section-title"},Nr={id:"reviews-section","data-qa":"reviews-block"},Ur={key:0,class:"footer-price-block"},Vr={class:"buy-btn-text"},Hr={key:1,class:"unavailable"},jr=ie({__name:"[...slug]",props:{url:{},isModal:{type:Boolean},showTabs:{type:Boolean},selected:{},withoutTimeOptions:{type:Boolean},defaultSection:{}},emits:["closeModal"],async setup(t,{emit:e}){var hs;let a,p;const r=["overview","map","details","policies","reviews"],d={overview:"#overview-section",map:"#map-section",details:".details-section",policies:".policies-section",reviews:"#reviews-section"},n=P=>r.find(M=>d[M]===P),i=ke(),{$date:c,$analytics:m,$t:o,$features:b}=z(),{route:_,router:h}=Ie(),{isMobile:I}=nt(),u=e,f=t,S=f.url?h.resolve(f.url):_,{state:v}
7=St(),{getCommonData:k}=Ve(),{markTripsAsDisabledBySlug:y}=la(),{state:R}=$t(),{gaSend:C,createItemFromTripData:A}=Ut(),{fxcode:T}=De(),{getDisplayPrice:g}=Yt(),{getBuyButtonText:O}=ja(),{buyButtonClick:L,getFeatures:N}=zo(),{sendTripPageGa:U}=ts(),{getPriceDescription:D,getCommission:q}=ms(),j=E(()=>{const P=S.params.slug;return Array.isArray(P)?P.join("/"):P||""}),K=E(()=>{var P,M;return String(S.query.autopack_id||((M=(P=$.value)==null?void 0:P.params)==null?void 0:M.autopack_id)||"")}),ne=E(()=>String(S.query.pd_key||"")),_e=E(()=>String(S.query.pd_options_key||"")),te=E(()=>{var P;return(P=S.query.segmentFavoriteBadge)==null?void 0:P.toString()}),{getRoundTripSearchParams:re}=us(),{getTripInfo:he,data:$}=ua(j.value),{data:X,pending:oe,error:Re}=f.isModal?Bs(S.fullPath,()=>he("",R.value.people||0,re(),K.value,ne.value,_e.value),"$jn5XQx7TZl"):([a,p]=Ca(()=>Bs(S.fullPath,()=>he("",R.value.people||0,re(),K.value,ne.value,_e.value),"$pberl2zGng")),a=await a,p(),a),H=E(()=>{var P;if(Re.value)return Re.value;if(f.isModal&&((P=$.value)!=null&&P.redirectCode))return{message:o("trip-info-error-no-longer-available-text")}});if(H.value&&(m.sendEvent("visit",{section:"page-error",data:{page:qa.Tripinfo,errorMessage:(hs=H.value)==null?void 0:hs.message}}),!f.isModal))throw La(H.value);const le=E(()=>{var M;let P=[];if($.value&&S.query.fromRoundTrip){const G=(M=$.value)==null?void 0:M.travel_options.reduce((Y,se)=>(Y.round_trip_discount_pct||0)>(se.round_trip_discount_pct||0)?Y:se);P=[...(G==null?void 0:G.labels)||[]]}return P.filter(G=>G.text)}),ue=E(()=>$.value?k($.value.params.from,"stations"):{}),ve=E(()=>$.value?k($.value.params.to,"stations"):{}),pe=E(()=>{var G;const P=ue.value.station_type!==J.taxi&&ve.value.station_type!==J.taxi,M=ue.value.map&&ve.value.map;return((G=$.value)==null?void 0:G.show_map)&&P&&M});qt(X,P=>{var M,G,Y,se,ye,Pe,Ce,Oe,Ye;if(P)if(H.value||!((G=(M=$.value)==null?void 0:M.params)!=null&&G.bookable))y(j.value);else{const{isRecommended:Ze=0,fromBestOptions:qe=0}=S.query;{C({clear:!0,event:"view_item",ecommerce:{currency:T.value,value:$.value.travel_options[0].price.value},items:[A($.value)],google_business_vertical:"travel"});let et,ze;(b["search-flights-baggage-information"]||b["trip-info-flights-baggage-information"])&&(et=((se=(Y=$.value.travel_options[0].features)==null?void 0:Y.baggage_carryon)==null?void 0:se.weight)||0,ze=((Pe=(ye=$.value.travel_options[0].features)==null?void 0:ye.baggage_checked)==null?void 0:Pe.weight)||0);const Ke={section:"trip-info",isRecommended:Ze?"1":"0",fromBestOptions:qe?"1":"0",isBoosted:$.value.is_boosted?"1":"0",data:{discount:le.value.length&&$.value.travel_options[0].round_trip_discount_pct||0,id:$.value.id,godate:$.value.params.dep_time,productReviews:(Ce=$.value.reviews)==null?void 0:Ce.reviewsTotal,cancellationOption:ea([X.value]),isApiCancellationPolicyApplied:ta([X.value]),hasRefundOptions:Xa(X.value),bookingsLastMonth:$.value.bookings_last_month||0,isFullyRefundable:!!$.value.travel_options[0].full_refund_until,carryOn:et,checkedBaggage:ze,travelOptions:sa($.value),segments:Ws($.value),isOperatorCheckListInfoReady:!1,displayedMap:!!pe.value}};if($.value.params.operators&&typeof $.value.params.operators[0]=="object"){const mt=$.value.params.operators;Ke.data.operatorReviews=mt.map(Le=>({id:Le.id,reviews:Le.reviews})),Ke.data.operators=mt.map(Le=>(Le.policies_information_ready&&(Ke.data.isOperatorCheckListInfoReady=!0),{id:Le.id,isCheckListInfoReady:Le.policies_information_ready}))}m.sendEvent("visit",Ke),U($.value)}S.hash==="#reviews"&&((Ye=(Oe=i.value)==null?void 0:Oe.$el)==null||Ye.scrollIntoView())}},{immediate:!0});const{travelOptions:de,selectedTravelOption:Z,hasTimeOptions:je,onTimeOptionSelected:ot}=Wo({trip:X,slug:j,url:f.url,selectedTime:typeof S.query.selectedTime=="string"?S.query.selectedTime:void 0,isModal:f.isModal,router:h,route:S});st("error",H),st(js,$),st(Ys,Z),st("position",E(()=>S.query.position)),st(Aa,E(()=>!!S.query.fromBestOptions)),st(Gs,je);const rt=E(()=>{var P,M,G;return((G=(M=(P=$.value)==null?void 0:P.params)==null?void 0:M.operators)==null?void 0:G.map(Y=>
7k(Y,"operators")))||[]}),Qe=E(()=>{var G;let P=((G=$.value)==null?void 0:G.segments)||[];P=P.filter(Y=>Y.type==="route");const M=P.filter(Y=>Y.info).length;return P.map(Y=>{const se=k(Y.from,"stations"),ye=k(Y.to,"stations");return M>1?Y.title=o("trip-details-from-to",{from:se.station_code||se.station_name,to:ye.station_code||ye.station_name}):Y.title=o("trip-details"),Y})}),Pt=E(()=>Qe.value.filter(P=>{var M;return lt.value&&((M=P.policies)==null?void 0:M.length)||P.info})),lt=E(()=>!!b["trip-info-trip-details-structuring"]),Xe=E(()=>Qe.value.filter(P=>{var M;return P.cancel||P.cancellation_policy||((M=P.amendment)==null?void 0:M.items.length)})),It=E(()=>{const P=Xe.value.length>1;return Xe.value.map(M=>{if(!P)return o("trip-info-nav-policies");const G=k(M.from,"stations"),Y=k(M.to,"stations");return`${o("trip-info-nav-policies")}: ${G.station_code||G.station_name} - ${Y.station_code||Y.station_name}`})}),Ge=E(()=>{var Y,se,ye,Pe,Ce,Oe,Ye,Ze;if(!$.value)return null;const P={},M=(Pe=(ye=(se=(Y=$.value)==null?void 0:Y.travel_options)==null?void 0:se[0])==null?void 0:ye.features)==null?void 0:Pe.baggage_carryon,G=(Ze=(Ye=(Oe=(Ce=$.value)==null?void 0:Ce.travel_options)==null?void 0:Oe[0])==null?void 0:Ye.features)==null?void 0:Ze.baggage_checked;return M&&typeof M=="object"&&(P.baggage_carryon=M),G&&typeof G=="object"&&(P.baggage_checked=G),{amenities:$.value.travel_options?$.value.travel_options[0].amenities:null,labels:$.value.features,class_name:Qe.value.reduce((qe,et)=>{const ze=k(et.class,"classes").name||"";return qe+ze},""),flightsBaggage:P}}),ct=E(()=>!S.query.fromCheckout),Dt=E(()=>{var Y,se,ye,Pe,Ce;const P=$.value&&((Y=$.value)!=null&&Y.segments)?$.value.segments[0]:null,M=$.value;if(!P||!(M!=null&&M.reviews))return{ready:!1};const G=(se=M.reviews)==null?void 0:se.reviews.map(Oe=>({...Oe,ratetxt:Oe.ratetxt&&Oe.ratetxt.replace(/ \s+/g,"")||""}));return f.isModal&&G.splice(10),{ready:!0,title:(ye=M.reviews)==null?void 0:ye.name,reviews:G,total:(Pe=M.reviews)==null?void 0:Pe.reviewsTotal,summary:(Ce=M.reviews)==null?void 0:Ce.ratingsSummary,fromSlug:k(P.from,"stations").province_slug||"",toSlug:k(P.to,"stations").province_slug||"",operatorId:P.operator.id||P.operator||"",tripId:P.trip_id||""}}),ut=E(()=>{var P,M;if(!((M=(P=$.value)==null?void 0:P.params)!=null&&M.dep_time))return null;try{return c.format($.value.params.dep_time,"LL")}catch{return null}}),ge=P=>{var G,Y;let M;P?M=(G=X.value)==null?void 0:G.travel_options.find(se=>se.booking_uri===P):je.value&&Z.value?M=Z.value:M=(Y=X.value)==null?void 0:Y.travel_options[0],M&&X.value&&L({trip:X.value,travelOption:M,position:Number(S.query.position),fromBestOptions:!!S.query.fromBestOptions,isBestseller:!!S.query.isBestseller,fromInfoPage:!0})},Se=E(()=>{var ye,Pe;if(!Z.value||!((ye=$.value)!=null&&ye.params))return null;const P=Z.value,M=(((Pe=$.value.travel_options)==null?void 0:Pe.length)??0)>1,{displayPrice:G,displayOriginalPrice:Y,hideDiscount:se}=g(P.price,P.original_price,M,P.discount_data);return{price:P.price,displayPrice:G,displayOriginalPrice:Y,priceDescription:D({isMultiPax:$.value.params.is_multi_pax,vehclasses:$.value.params.vehclasses}),taxInfo:o("search-results-trip-label-tax-included"),commission:q(P.agfee)||void 0,commissionLabel:o("trip-card-commission-label"),hideDiscount:se}}),Je=E(()=>{var P,M,G,Y,se;return N((P=$.value)==null?void 0:P.features,(Y=(G=(M=X.value||$.value)==null?void 0:M.travel_options)==null?void 0:G[0])==null?void 0:Y.discount_data,(se=Se.value)==null?void 0:se.hideDiscount)});qt($,P=>{P!=null&&P.meta&&!f.isModal&&en(P==null?void 0:P.meta)},{immediate:!0});const pt=E(()=>{var P,M,G;return((M=(P=$.value)==null?void 0:P.reviews)==null?void 0:M.reviews)&&((G=$.value)==null?void 0:G.reviews.reviews.length)>0}),Bt=E(()=>{const P=[{label:o("trip-info-nav-overview"),value:o("trip-info-nav-overview"),selector:d.overview,dataAnalytics:Ue.TripInfoModalNavTabOverview}];return pe.value&&P.push({label:o("trip-info-nav-map"),value:o("trip-info-nav-map"),selector:d.map,dataAnalytics:Ue.TripInfoModalNavTabMap}),P.push({label:o("trip-info-nav-details"),value:o("trip-info-nav-
7details"),selector:d.details,dataAnalytics:Ue.TripInfoModalNavTabDetails}),P.push({label:o("trip-info-nav-policies"),value:o("trip-info-nav-policies"),selector:d.policies,dataAnalytics:Ue.TripInfoModalNavTabCancellation}),pt.value&&P.push({label:o("trip-info-nav-reviews"),value:o("trip-info-nav-reviews"),selector:d.reviews,dataAnalytics:Ue.TripInfoModalNavTabReviews}),P}),dt=ke(null),Ot=ke(!1),xt=E(()=>{const P=f.defaultSection&&d[f.defaultSection];return P?Bt.value.find(M=>M.selector===P):void 0});qt([()=>$.value,()=>dt.value,()=>xt.value],()=>{const P=xt.value,M=dt.value;Ot.value||!P||!M||document.querySelector(P.selector)&&(Ot.value=!0,M.setActiveTab(P,"instant"))},{immediate:!0,flush:"post"});const fs=new Set,da=P=>{var Y;const M=P!=null&&P.selector?n(P.selector):void 0,G=(Y=$.value)==null?void 0:Y.id;!M||fs.has(M)||!G||(fs.add(M),m.sendEvent("visit",{section:"user-saw-trip-info-section",message:M,data:{tripId:G}}))},_s=ke(null),ma=()=>{var M;const P=(M=_s.value)==null?void 0:M.$el;P&&P.scrollIntoView({behavior:"smooth"})},fa=async P=>{await ot(P),await es(),ma()};return(P,M)=>{var Mt,bs,ks;const G=Mi,Y=kr,se=Fa,ye=zs,Pe=Va,Ce=xi,Oe=cs,Ye=Vi,Ze=Yi,qe=Ha,et=Ki,ze=Vn,Ke=oo,mt=os("FontAwesomeIcon"),Le=Hs,ft=Qs,vs=ko,gs=qo,ys=Eo,_a=Go,ha=ls;return l(),w(ee,null,[P.showTabs&&!s(H)?(l(),V(G,{key:0,ref_key:"navTabsRef",ref:dt,tabs:s(Bt),class:ae(["nav-tabs","no-radius"]),highlightLabel:"","onUpdate:modelValue":da},null,8,["tabs"])):x("",!0),s(oe)||s($)&&!s($).redirectCode||s(H)?(l(),w("div",{key:1,class:ae(["trip-info","container",{modal:P.isModal}])},[W(se,null,{default:Q(()=>[s(v).isStaff?(l(),V(Y,{key:0,slug:s(j)},null,8,["slug"])):x("",!0)]),_:1}),s(H)?(l(),w(ee,{key:0},[P.isModal?(l(),V(ye,{key:0,collapsed:!1,color:"danger",variant:"default"},{title:Q(()=>[B("h3",Tr,F(s(o)("trip-info-error-no-longer-available-title")),1)]),default:Q(()=>[Te(" "+F(s(o)("trip-info-error-no-longer-available-text")),1)]),_:1})):(l(),V(Pe,{key:1,text:((bs=(Mt=s(H))==null?void 0:Mt.toString)==null?void 0:bs.call(Mt))||s(o)("trip-info-error-404-text")},null,8,["text"]))],64)):(l(),w(ee,{key:1},[s($)?x("",!0):(l(),V(Ce,{key:0,withPhoto:"",withLabels:"",total:1})),W(ft,{id:"overview-section",ref_key:"tripInfoSectionRef",ref:_s,class:"trip-card"},{default:Q(()=>{var me,be,xe,_t,ht,vt,gt;return[s(ut)?(l(),w("h1",$r,F(s(ut)),1)):x("",!0),(me=s(le))!=null&&me.length?(l(),w("div",wr,[(l(!0),w(ee,null,fe(s(le),Ae=>(l(),V(Oe,at(Ae,{key:Ae.key}),null,16))),128))])):x("",!0),s($)?(l(),w("div",Sr,[B("div",Pr,[s($).segments?(l(),V(Ye,{key:0,hideTimeOptionsCount:P.withoutTimeOptions},null,8,["hideTimeOptionsCount"])):x("",!0),s($).segments?(l(),V(Ze,{key:1,content:s($).segments[0].search_results_marker},null,8,["content"])):x("",!0),B("div",null,[(be=s($).features)!=null&&be["full-refundable"]&&!s(b)["mob-trip-info-information-cleanun-free-cancellation"]&&!s(b)["trip-prioritize-amenities-booking-info"]?(l(),w("div",Ir,[W(qe,{text:s(o)("search-results-trip-label-full-refundable"),tooltip:s(o)("search-results-trip-label-full-refundable"),icon:"refundable",variant:"info-lighter"},null,8,["text","tooltip"])])):x("",!0),(xe=s(Je))!=null&&xe.discount?(l(),w("div",Dr,[W(qe,Rt(Os(s(Je).discount)),null,16)])):x("",!0)]),s(S).query.isBestseller==="1"?(l(),V(et,{key:2,segmentFavoriteBadge:s(te),class:"bestseller-scarcity"},null,8,["segmentFavoriteBadge"])):x("",!0)]),B("div",Br,[s($).features?(l(),w("div",Or,[s($).features.refundable&&!s(b)["trip-prioritize-amenities-booking-info"]?(l(),V(qe,{key:0,icon:"refundable",variant:"info",tooltip:`${s($).features.refundable}`},null,8,["tooltip"])):x("",!0),s($).features.show_on_screen?(l(),V(qe,{key:1,icon:"qr",variant:"success-darker",tooltip:s(o)("search-results-trip-label-title-show_on_screen")},null,8,["tooltip"])):x("",!0)])):x("",!0),(_t=s($).features)!=null&&_t["full-refundable"]&&!s(b)["trip-prioritize-amenities-booking-info"]?(l(),w("div",xr,[W(qe,{text:s(o)("search-results-trip-label-full-refundable"),tooltip:s(o)("search-results-trip-label-full-refundable"),icon:"refundable",variant:"info-lighter"},null,8,["text","tooltip"])])):x("",!0),(ht=s(Je))!=null&&ht.discount?(l(),w("div",Mr,[W(qe,Rt(Os(s(Je).discount)),null,16)])):x("",!0),s(b)["search-trip-card-per-person-as-icon"]&&s(Se)?(l(),V(ze,Rt(at({key:3},s(Se))),null,16)):s($).params&&s(Z)?(l(),V(Ke,{key:4,price:s(Z).price,discountData:s(Z).discount_data,originalPrice
7:s(Z).original_price,commission:s($).params.minAgFee,vehclass:s($).params.vehclasses[0],isMultiPax:s($).params.is_multi_pax,from:s($).travel_options.length>1},null,8,["price","discountData","originalPrice","commission","vehclass","isMultiPax","from"])):x("",!0),s(ct)?(l(),w(ee,{key:5},[(vt=s($).params)!=null&&vt.is_bookable?(l(),V(Le,{key:0,variant:"primary",size:"narrow",disabled:s(oe),"data-analytics":s(Ue).AddToCartButton,"data-qa":"trip-buy-button-desktop",onClick:M[0]||(M[0]=wt(Ae=>{var Ee;return ge(((Ee=s(Z))==null?void 0:Ee.booking_uri)??"")},["stop","prevent"]))},{default:Q(()=>{var Ae,Ee;return[B("div",Rr,[Te(F(s(O)(s(X)))+" ",1),(Ee=(Ae=s(X))==null?void 0:Ae.params)!=null&&Ee.external_purchase_url?(l(),V(mt,{key:0,icon:["fas","external-link-alt"]})):x("",!0)])]}),_:1},8,["disabled","data-analytics"])):(l(),w("div",Cr,F((gt=s($).params)==null?void 0:gt.reason),1))],64)):x("",!0)])])):x("",!0)]}),_:1},512),W(ft,null,{default:Q(()=>{var me,be,xe,_t,ht,vt,gt,Ae,Ee,Ts,$s,ws;return[s(b)["trip-prioritize-amenities-booking-info"]?(l(),w(ee,{key:0},[s(Ge)?(l(),V(vs,{key:0,features:s(Ge),isLoaded:!s(oe),modifiedByTripPrioritizeAmenitiesBookingInfoExperiment:""},null,8,["features","isLoaded"])):x("",!0),W(gs,{tripId:(me=s($))==null?void 0:me.id,images:s($)?s($).photos:void 0,operators:s(rt),isLoaded:!s(oe),tripDate:(xe=(be=s($))==null?void 0:be.params)==null?void 0:xe.dep_time,modifiedByTripPrioritizeAmenitiesBookingInfoExperiment:""},null,8,["tripId","images","operators","isLoaded","tripDate"]),(_t=s(X))!=null&&_t.operator_review_snippets&&((ht=s(X))==null?void 0:ht.operator_review_snippets.length)>0?(l(),V(ys,{key:1,snippets:(vt=s(X))==null?void 0:vt.operator_review_snippets},null,8,["snippets"])):x("",!0)],64)):(l(),w(ee,{key:1},[W(gs,{tripId:(gt=s($))==null?void 0:gt.id,images:s($)?s($).photos:void 0,operators:s(rt),isLoaded:!s(oe),tripDate:(Ee=(Ae=s($))==null?void 0:Ae.params)==null?void 0:Ee.dep_time},null,8,["tripId","images","operators","isLoaded","tripDate"]),(Ts=s(X))!=null&&Ts.operator_review_snippets&&(($s=s(X))==null?void 0:$s.operator_review_snippets.length)>0?(l(),V(ys,{key:0,snippets:(ws=s(X))==null?void 0:ws.operator_review_snippets},null,8,["snippets"])):x("",!0),s(Ge)?(l(),V(vs,{key:1,features:s(Ge),isLoaded:!s(oe)},null,8,["features","isLoaded"])):x("",!0)],64)),B("section",qr,[s(pe)?(l(),V(_a,{key:0,from:s(ue),to:s(ve)},null,8,["from","to"])):x("",!0)]),s(je)&&s(X)&&!P.withoutTimeOptions?(l(),w("div",Lr,[W(Fs,{tripTimeOptions:s(de),selectedTimeOption:s(Z),pending:s(oe),onTimeOptionSelected:s(ot)},null,8,["tripTimeOptions","selectedTimeOption","pending","onTimeOptionSelected"])])):x("",!0)]}),_:1}),(l(!0),w(ee,null,fe(s(Pt),(me,be)=>(l(),V(ft,{key:`details-${be}`,class:"segment-info details-section","data-qa":"trip-info-details-section"},{title:Q(()=>[B("h3",{innerHTML:me.title},null,8,Ar)]),default:Q(()=>{var xe;return[s(lt)&&((xe=me.policies)!=null&&xe.length)?(l(),V(dr,{key:0,policies:me.policies},null,8,["policies"])):(l(),V(ha,{key:1},{default:Q(()=>[B("div",{innerHTML:me.info},null,8,Fr)]),_:2},1024))]}),_:2},1024))),128)),s(je)&&s(X)&&!P.withoutTimeOptions?(l(),V(ft,{key:1,class:"trip-info-time-options-section hide-on-mobile","data-qa":"trip-info-time-options-section"},{default:Q(()=>[W(Fs,{tripTimeOptions:s(de),selectedTimeOption:s(Z),pending:s(oe),onTimeOptionSelected:fa},null,8,["tripTimeOptions","selectedTimeOption","pending"])]),_:1})):x("",!0),(l(!0),w(ee,null,fe(s(Xe),(me,be)=>(l(),V(ft,{key:`cancellation-${be}`,class:"segment-info policies-section","data-qa":"trip-info-policies-section"},{title:Q(()=>[B("h3",Er,F(s(It)[be]),1)]),default:Q(()=>{var xe;return[W(rr,{segment:me,travelOptions:((xe=s($))==null?void 0:xe.travel_options)||[]},null,8,["segment","travelOptions"])]}),_:2},1024))),128)),B("section",Nr,[s(pt)?(l(),V(se,{key:0},{default:Q(()=>[W(tn,at({id:"reviews",ref_key:"reviews",ref:i},s(Dt)),null,16)]),_:1})):x("",!0)])],64))],2)):x("",!0),P.isModal?(l(),w("div",{key:2,class:ae(["modal-footer",{"has-error":!!s(H)}])},[s($)&&!s(H)?(l(),w("div",Ur,[s(b)["search-trip-card-per-person-as-icon"]&&s(Se)?(l(),V(ze,Rt(at({key:0},s(Se))),null,16)):s($).params&&s(Z)?(l(),V(Ke,{key:1,price:s(Z).price,discountData:s(Z).discount_data,originalPrice
7:s(Z).original_price,commission:s($).params.minAgFee,vehclass:s($).params.vehclasses[0],isMultiPax:s($).params.is_multi_pax,from:s($).travel_options.length>1,nowrap:s(I)},null,8,["price","discountData","originalPrice","commission","vehclass","isMultiPax","from","nowrap"])):x("",!0)])):x("",!0),W(Le,{onClick:M[1]||(M[1]=me=>u("closeModal"))},{default:Q(()=>[Te(F(s(o)("close")),1)]),_:1}),s($)&&s(ct)&&!s(H)?(l(),w(ee,{key:1},[(ks=s($).params)!=null&&ks.is_bookable?(l(),V(Le,{key:0,variant:"primary",size:"narrow",disabled:s(oe),"data-analytics":s(Ue).AddToCartButton,"data-qa":"trip-buy-button-mobile",onClick:M[2]||(M[2]=wt(me=>{var be;return ge(((be=s(Z))==null?void 0:be.booking_uri)??"")},["stop","prevent"]))},{default:Q(()=>{var me,be;return[B("div",Vr,[Te(F(s(O)(s(X)))+" ",1),(be=(me=s(X))==null?void 0:me.params)!=null&&be.external_purchase_url?(l(),V(mt,{key:0,icon:["fas","external-link-alt"]})):x("",!0)])]}),_:1},8,["disabled","data-analytics"])):(l(),w("div",Hr,F(s($).params.reason),1))],64)):x("",!0)],2)):x("",!0)],64)}}}),Gr=$e(jr,[["__scopeId","data-v-7f1222de"]]),wl=Object.freeze(Object.defineProperty({__proto__:null,default:Gr},Symbol.toStringTag,{value:"Module"}));export{zo as A,jn as B,sr as C,gl as D,wl as E,Hn as F,_l as L,vl as M,hl as S,Cs as T,Vn as _,bn as a,$n as b,ms as c,ra as d,In as e,cn as f,ln as g,un as h,dl as i,fl as j,ml as k,Ms as l,$l as m,kl as n,Gr as o,xi as p,yl as q,bl as r,Tl as s,Vi as t,la as u,ua as v,Ki as w,qo as x,Eo as y,ko as z}; 8//# sourceMappingURL=Czl6wWir.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.