1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[(new e.Error).stack]=function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];if(null!=t)for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])}return e}({},e._sentryModuleMetadata[(new e.Error).stack],{"_sentryBundlerPluginAppKey:kombo-app":!0})}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8514],{3415:(e,r,t)=>{t.d(r,{y:()=>o});var i=t(59419),n=t(53239);let a={outward:{byId:{}},inward:{byId:{}}},l=(e,r)=>{switch(r.type){case"add":{let{tripType:t,trips:n}=r,a={};for(let r of n){let{groupKey:n}=r;if(n){let i=e[t].byId[n]||a[n];i?(r.subTrips[0]&&i.subTrips.push(r.subTrips[0]),a[n]=i):a[n]=r}else a[(0,i.getCleanTripIdFrom)(r.tripId)]=r}return{...e,[t]:{...e[t],byId:{...e[t].byId,...a}}}}case"remove":{let{tripId:t,tripType:n}=r;if(!t)return e;let a=(0,i.getCleanTripIdFrom)(t),l=e[n].byId[a];if(!l)return e;let o={...e[n].byId,[a]:{...l,isAvailable:!1,isUnavailableAfterCheck:!0}};return{...e,[n]:{...e[n],byId:o}}}case"update":{let{newPrice:t,tripId:n,tripType:a,isAvailable:l,unsellableReason:o}=r;if(!n)return e;let s=(0,i.getCleanTripIdFrom)(n);if(!e[a].byId[s])return e;return{...e,[a]:{...e[a],byId:{...e[a].byId,[s]:{...e[a].byId[s],bestPrice:t,isAvailable:l,unsellableReason:o,...l&&{isUnavailableAfterCheck:!1}}}}}}case"reset":{let{tripType:t}=r;return{...e,[t]:{...a[t]}}}}},o=()=>(0,n.useReducer)(l,a)},8514:(e,r,t)=>{t.d(r,{S2:()=>j,mx:()=>U});var i=t(80263),n=t(17343),a=t(87490),l=t(53239),o=t(11988),s=t(80922),u=t(2596),d=t(50343),p=t(42059),c=t(59809),m=t(92259),v=t(19702),y=t(54222),T=t(17666),f=t(64937);let g=(e,r)=>{var t;let i=e.subTrips.map(e=>(0,f.o)(e,r)),n=y.A(i.map(e=>e.segments)),a=i[0],l=i[i.length-1];if(!a||!l)return;let o=a.segments[0],s=l.segments[l.segments.length-1];if(!o||!s)return;let u=o.departureTime,d=s.arrivalTime,p=o.departureStation,c=s.arrivalStation,m=p.city,v=c.city,g=(0,T.Ds)(u,d,m,v),b=e.isAvailable,I=o.company.transportType;return{...e,tripId:e.tripId,subTrips:i,allSegments:n,transportType:I,duration:g,departureTime:u,arrivalTime:d,departureSegment:o,arrivalSegment:s,departureStation:p,arrivalStation:c,departureCity:m,arrivalCity:v,url:null==(t=e.subTrips[0])?void 0:t.url,fees:e.fees,isAvailable:b,insurance:null==e?void 0:e.insurance,unsellableReason:e.unsellableReason}};var b=t(70523),I=t(10566),C=t(67096),S=t(77686),h=t(51668),w=t(9617),P=t(97268),R=t(94335),M=t(39017),E=t(79472);let O={outward:void 0,inward:void 0},A=(e,r)=>{var t,i,n;switch(r.type){case"set":{let{tripType:t,trip:i}=r;return{...e,[t]:{...i}}}case"selectSubTrip":{let{subTripId:i,newOptionIndex:n,tripType:a}=r,l={...e[a]};if(!l)return e;let o=null==(t=l.subTrips)?void 0:t.find(e=>e.subTripId===i);
1if(!o||!o.isPriceGlobal)return console.error("No subTripToUpdate. stID:",i),e;return o.selectedOptionIdx=n,{...e,[a]:{...e[a],...l}}}case"selectSegment":{let{tripType:t,newOptionIndex:a,segmentId:l,subTripId:o}=r,s={...e[t]};if(!s)return e;let u=null==(n=s.subTrips)||null==(i=n.find(e=>e.subTripId===o))?void 0:i.segments.find(e=>e.ticketId===l);if(!u||!u.options)return e;return u.selectedOptionIdx=a,{...e,[t]:{...e[t],...s}}}case"selectInsurance":{let{tripType:t,isSelected:i}=r,n={...e[t]};if(!n||!(null==n?void 0:n.insurance))return e;return n.insurance.isSelected=i,{...e,[t]:{...e[t],...n}}}case"reset":{let{tripType:t}=r;return{...e,[t]:void 0}}default:return e}};var D=t(35104);let k="__kombo_place_joker_request__";var F=t(47472),x=t(20644),_=t(13668);let B=a.A.CancelToken.source(),N=(0,l.createContext)(void 0),U=()=>{let e=(0,l.useContext)(N);if(void 0===e)throw Error("useReservation must be used within a ReservationProvider");return e},j=e=>{let{children:r}=e,t=(()=>{let{searchedPassengerList:e}=(0,w.Ur)(),{booking:r,bookingPassengers:t}=(0,R.Bx)(),{updateTripResult:i,removeTripResult:y,getTripResult:f}=(0,M.SQ)(),{userCurrency:N}=(0,S.F7)(),{addDependencies:U,dependencies:j}=(0,h.h6)(),[L,Y]=(0,E.A)(A,O),q=(0,s.wA)(),G=(0,p.Ym)(),V=(0,d.T)(),[W,K]=(0,l.useState)(),[J,Q]=(0,l.useState)(),[H,Z]=(0,l.useState)([]),[z,X]=(0,l.useState)(!1),[$,ee]=(0,l.useState)(),er=L.outward,et=L.inward,ei=(0,l.useMemo)(()=>[er,et].filter(e=>void 0!==e),[et,er]),en=(0,l.useMemo)(()=>L.outward?g(L.outward,j):void 0,[L.outward,j]),ea=(0,l.useMemo)(()=>L.inward?g(L.inward,j):void 0,[L.inward,j]),el=(0,l.useMemo)(()=>{let e=[];return en&&e.push(...en.subTrips),ea&&e.push(...ea.subTrips),e},[en,ea]),eo=(0,l.useMemo)(()=>(0,T.$N)(el),[el]),es=(0,l.useMemo)(()=>er?(0,x.jf)(er):void 0,[er]),eu=(0,l.useMemo)(()=>et?(0,x.jf)(et):void 0,[et]),ed=(0,u.useParams)(),[ep,ec]=((e,r)=>{let[t,i]=(0,l.useState)();return[(0,l.useMemo)(()=>{if(!r){if(t&&t.outwardId===e)return t.request;if(e&&!r)try{let r=window.sessionStorage.getItem(k);if(!r)return;let t=JSON.parse(r);return(0,T.Lj)(t.outwardId,e)?{requestedClass:t.requestedClass}:void 0}catch(e){(0,D.v)(e)}return}},[t,e,r]),(0,l.useCallback)(r=>{i({outwardId:e,request:r}),((e,r)=>{try{if(!e||!r)return void window.sessionStorage.removeItem(k);let t={outwardId:e,requestedClass:r.requestedClass};window.sessionStorage.setItem(k,JSON.stringify(t))}catch(e){(0,D.v)(e)}})(e,r)},[e])]})(ed.outwardId,ed.inwardId),em=(0,l.useMemo)(()=>r?r.placeJoker?{requestedClass:r.placeJoker.requestedClass}:void 0:!er||(0,T.pJ)(er.subTrips)?ep:void 0,[r,er,ep]),ev=(0,l.useMemo)(()=>{var e;return null!=(e=em&&en?(0,T.gM)(en.subTrips,em.requestedClass):void 0)?e:(0,x.mE)(es,eu)},[em,en,es,eu]),ey=(0,l.useMemo)(()=>+ed.departureCityId,[ed]),eT=(0,l.useMemo)(()=>+ed.arrivalCityId,[ed]),ef=(0,l.useMemo)(()=>en&&(0,_.QB)(en)||ea&&(0,_.QB)(ea),[en,ea]),eg=(0,l.useMemo)(()=>t?(0,P.$)(t):void 0,[t]),eb=(0,l.useMemo)(()=>(null==t?void 0:t.some(e=>e.reducedMobility))&&!!(null==en?void 0:en.allSegments.length)&&!!(null==ea?void 0:ea.allSegments.length),[t,en,ea]),eI=(0,l.useMemo)(()=>(0,F.q0)(en,ea,null==es?void 0:es.amount,null==eu?void 0:eu.amount),[en,ea,es,eu]),eC=(0,l.useMemo)(()=>(0,F.D3)(en,ea),[en,ea]),eS=(0,l.useMemo)(()=>{var e,r;return!!(null==W||null==(r=W.carbonOffset)||null==(e=r.options)?void 0:e.length)},[W]),eh=(0,l.useMemo)(()=>!!(null==J?void 0:J.length),[J]),ew=(0,l.useMemo)(()=>el.filter(e=>e.segments.find(e=>e.company.transportType===n.TransportType.Flight)).length||0,[el]),eP=(0,l.useMemo)(()=>eh&&ew>1,[eh,ew]),eR=(0,l.useMemo)(()=>{var e;return!!(null==W||null==(e=W.providerInvoices)?void 0:e.length)},[W]),eM=(0,l.useMemo)(()=>!!el.find(e=>e.segments.find(e=>e.isSeatMapEligible)),[el]),eE=(0,l.useMemo)(()=>el.some(e=>{var r;return null==(r=e.availableExtraOptions)?void 0:r.some(e=>e.type===n.ExtraOptionType.OuigoFlex)}),[el]),eO=(0,l.useMemo)(()=>el.some(e=>{var r;return null==(r=e.availableExtraOptions)?void 0:r.some(e=>e.type===n.ExtraOptionType.DogOnLeash||e.type===n.ExtraOptionType.SmallAnimalInCarrier)}),[el]),eA=(0,l.useMemo)(()=>el.some(e=>{var r;return null==(r=e.availableExtraOptions)?void 0:r.some(e=>e.type===n.ExtraOptionType.FoldedOrDismantledBicycleOrScooter||e.type===n.ExtraOptionType.UndismantledBicycle)}),[el]),eD=(0,l.useMemo)(()=>el.some(e=>{var r;return null==(r=e.availableExtraOptions)?void 0:r.some(e=>e.type===n.ExtraOptionType.Pushchair)}),[el]),ek=(0,l.useMemo)(()=>Math.max(0,...el.map(e=>{var r,t,i;return null!=(r=null==(i=e.availableExtraOptions)||null==(t=i.find(e=>e.type===n.ExtraOptionType.Pushchair))?void 0:t.maxQuantity)?r:0})),[el]),{includeFees:eF}=(0,M.SQ)(),[ex,e_]=(0,l.useState)(void 0),eB=(0,l.useMemo)(()=>!em&&(ef||eS||eh||eR||eM||eg||eb||eE||eO||eA||eD),[em,eS,ef,eh,eR,eM,eg,eb,eE,eO,eA,eD]),eN=(0,l.useMemo)(()=>eM||ef||eh&&!eP||eb||eE||eO||eA||eD,[eM,ef,eh,eb,eE,eO,eP,eA,eD]),eU=(0,l.useMemo)(()=>eR||eS||eP,[eR,eS,eP]),ej=(0,l.useMemo)(()=>en?(0,F.xc)(en,ea):[],[en,ea]),eL=(0,l.useMemo)(()=>en?(0,F.bE)(en,ea):[],[en,ea]),eY=(0,l.useMemo)(()=>(null==en?void 0:en.allSegments.some(e=>
1e.company.transportType===n.TransportType.Flight))||(null==ea?void 0:ea.allSegments.some(e=>e.company.transportType===n.TransportType.Flight))||(null==en?void 0:en.subTrips.some(e=>e.providerId===n.ProviderId.Duffel))||(null==ea?void 0:ea.subTrips.some(e=>e.providerId===n.ProviderId.Duffel)),[en,ea]),eq=(0,l.useMemo)(()=>(null==en?void 0:en.subTrips.some(e=>e.providerId===n.ProviderId.Movelia))||(null==ea?void 0:ea.subTrips.some(e=>e.providerId===n.ProviderId.Movelia)),[en,ea]),eG=(0,l.useMemo)(()=>(null==en?void 0:en.allSegments.some(e=>(0,C.Ap)(e)))||(null==ea?void 0:ea.allSegments.some(e=>(0,C.Ap)(e))),[en,ea]),eV=(0,l.useMemo)(()=>(null==en?void 0:en.allSegments.some(e=>e.company.id===n.CompanyId.Marino))||(null==ea?void 0:ea.allSegments.some(e=>e.company.id===n.CompanyId.Marino)),[en,ea]),eW=(0,l.useMemo)(()=>(null==en?void 0:en.subTrips.some(e=>e.providerId===n.ProviderId.Renfe))||(null==ea?void 0:ea.subTrips.some(e=>e.providerId===n.ProviderId.Renfe)),[en,ea]),eK=(0,l.useMemo)(()=>(null==en?void 0:en.allSegments.some(e=>e.company.id===n.CompanyId.Flixbus||e.company.id===n.CompanyId.FlixTrain))||(null==en?void 0:en.subTrips.some(e=>e.providerId===n.ProviderId.Flixbus))||(null==ea?void 0:ea.allSegments.some(e=>e.company.id===n.CompanyId.Flixbus||e.company.id===n.CompanyId.FlixTrain))||(null==ea?void 0:ea.subTrips.some(e=>e.providerId===n.ProviderId.Flixbus)),[en,ea]),eJ=(0,l.useMemo)(()=>(null==en?void 0:en.allSegments.some(e=>e.company.id===n.CompanyId.TOTOOM))||(null==ea?void 0:ea.allSegments.some(e=>e.company.id===n.CompanyId.TOTOOM)),[en,ea]),eQ=(0,l.useMemo)(()=>(null==en?void 0:en.allSegments.some(e=>e.company.id===n.CompanyId.OuigoSpain))||(null==ea?void 0:ea.allSegments.some(e=>e.company.id===n.CompanyId.OuigoSpain)),[en,ea]),eH=(0,l.useMemo)(()=>(null==en?void 0:en.subTrips.some(e=>e.providerId===n.ProviderId.Benerail))||(null==ea?void 0:ea.subTrips.some(e=>e.providerId===n.ProviderId.Benerail)),[en,ea]),eZ=(0,l.useMemo)(()=>eY||eG||eV||eq||eW||eK||eJ||eH||eQ,[eY,eG,eV,eq,eW,eK,eJ,eH,eQ]),ez=(0,l.useMemo)(()=>{var e,r,t,i;return{amount:(null!=(e=null==en?void 0:en.subTrips.reduce((e,r)=>{var t,i;return(null!=(t=null==(i=r.flightFees)?void 0:i.amount)?t:0)+e},0))?e:0)+(null!=(r=null==ea?void 0:ea.subTrips.reduce((e,r)=>{var t,i;return(null!=(t=null==(i=r.flightFees)?void 0:i.amount)?t:0)+e},0))?r:0),currency:(null==en||null==(i=en.subTrips.find(e=>e.flightFees))||null==(t=i.flightFees)?void 0:t.currency)||n.Currency.EUR}},[en,ea]),eX=(0,l.useMemo)(()=>(0,n.isGenderRequiredForProviders)(el.map(e=>e.providerId)),[el]),e$=(0,l.useMemo)(()=>{let e=[n.ProviderId.Duffel,n.ProviderId.Movelia,n.ProviderId.Renfe,n.ProviderId.Flixbus,n.ProviderId.Benerail];return(null==en?void 0:en.subTrips.some(r=>e.includes(r.providerId)))||(null==ea?void 0:ea.subTrips.some(r=>e.includes(r.providerId)))},[null==en?void 0:en.subTrips,null==ea?void 0:ea.subTrips]),e0=(0,l.useMemo)(()=>{var e,r;return(null==(r=L.outward)||null==(e=r.insurance)?void 0:e.isSelected)?"yes":"no"},[L]),e1=(0,l.useMemo)(()=>{var e,r;return(null==(r=L.inward)||null==(e=r.insurance)?void 0:e.isSelected)?"yes":"no"},[L]),e3=+ed.passengerCount||1,{isPlaceJokerRawTrip:e4}=(0,b.N)(),e6=(0,l.useCallback)((e,r,t,a)=>(r&&(r.isAvailable||e4(r,e3,!!t)?(Y({type:"set",trip:r,tripType:n.TripType.Outward}),i(n.TripType.Outward,e,(0,x.bF)(r),r.isAvailable,r.unsellableReason)):y(n.TripType.Outward,e)),a&&(a.isAvailable?(Y({type:"set",trip:a,tripType:n.TripType.Inward}),i(n.TripType.Inward,t,(0,x.bF)(a),a.isAvailable,a.unsellableReason)):t&&y(n.TripType.Inward,t)),!0),[Y,y,i,e3,e4]),e5=(0,l.useCallback)(async(e,r,t,a,l,o,s)=>{U(t),Q(r.baggageOptions),ee(r.discountCardCrossSellAdDetails),void 0!==r.includeFees&&e_(r.includeFees);let u=r.outwardTrip,d=r.inwardTrip,p=u.isAvailable&&(!d||d.isAvailable),c=(0,x.jf)(u),m=d?(0,x.jf)(d):void 0,v=c;if(m&&v&&(v={...v,amount:v.amount+m.amount}),(!o||p)&&(s&&a?e6(a,d,e,u):e6(e,u,a,d)),null==l?void 0:l.length)for(let e of l)try{i(n.TripType.Outward,e.tripId,e.bestPrice,e.isAvailable,e.unsellableReason),i(n.TripType.Inward,e.tripId,e.bestPrice,e.isAvailable,e.unsellableReason)}catch(e){console.error(e)}return{newTotalPrice:v,newOutwardPrice:c,newInwardPrice:m,newOutwardTrip:u,newInwardTrip:d,isAvailable:p}},[U,e6,i]),e9=(0,l.useCallback)(async(r,i,l,s,u,d,p)=>{let v=!1;try{var y,T,g,b,C,S,h,P,R,M;let v,E,O,A,D,k=(null==u?void 0:u.length)?u:(null==t?void 0:t.length)?t:(0,w.F$)(+ed.passengerCount||1,e);z&&s&&(B.cancel(),B=a.A.CancelToken.source()),X(!0),r=decodeURIComponent(r),l&&(l=decodeURIComponent(l));let F=!r.startsWith("0"),j=!!l&&!l.startsWith("0"),L=f(r),Y=f(l);Z([r,l]);let q=null==L?void 0:L.bestPrice,V=null==Y?void 0:Y.bestPrice,W=new o.A,J=(0,I.hp)(W),Q={locale:G,outwardTripId:r,outwardTrip:er,outwardCurrency:null!=(y=null==L?void 0:L.currency)?y:N,passengers:k,inwardDate:i,inwardTripId:l,inwardTrip:et,inwardCurrency:null!=(T=null==Y?void 0:Y.currency)?T:N,encodedBookingId:ed.bookingId,partnerReferral:J,updateBooking:p,outwardSmartPricingFeePercentage:null!=(g=null==er?void 0:er.smartPricingFeePercentage)?g:null==L?void 0:L.smartPricingFeePercentage,inwardSmartPricingFeePercentage:null!=(b=null==et?void 0:et.smartPricingFeePercentage)?b:null==Y?void 0:Y.smartPricingFeePercentage};if(r&&!F||l&&!j){let e="number"==typeof k?k:k.length;if(!F){if(L)v=(0,_.tb)(L);else{let t=await m.k.getAffiliationTicket({tripId:r,passengerCount:e,departureCityId:ey,arrivalCityId:eT,locale:G});U(t.dependencies),v=t.trip}A=(0,x.jf)(v)}if(l&&!j){if(Y)E=(0,_.tb)(Y);else{let r=await m.k.getAffiliationTicket({tripId:l,passengerCount:e,departureCityId:eT,arrivalCityId:ey,locale:G});U(r.dependencies),E=r.trip}O=(0,x.jf)(E)}D=A,d||e6(r,v,l,E),D={amount:(null!=(h=null==A?void 0:A.amount)?h:0)+(null!=(P=null==O?void 0:O.amount)?P:0),currency:(null==A?void 0:A.currency)||(null==O?void 0:O.currency)||n.Currency.EUR}}if(F||j){let e,t,i=(e=l,!F&&!!e&&j),n=(t=l,F&&t&&!j);R=Q,M=l,i&&M?(R.outwardTripId=M,R.outwardTrip=et,R.inwardTripId=void 0,R.inwardTrip=void 0,R.inwardDate=void 0):n&&(R.inwardTripId=void 0,R.inwardTrip=void 0,R.inwardDate=void 0),Q=R;let{availability:a,dependencies:o,otherTrips:s,currency:u}=await c._.checkAvailability(Q,B);if(u!==N)throw Error("Currency mismatch in checkAvailability response");let p=await e5(r,a,o,l,s,d,i);i?(p.newInwardPrice&&(A=p.newInwardPrice),p.newOutwardPrice&&(O=p.newOutwardPrice)):(p.newOutwardPrice&&(A=p.newOutwardPrice),p.newInwardPrice&&(O=p.newInwardPrice)),D=p.newTotalPrice,F&&(v=a.outwardTrip),j&&(i?(E=a.outwardTrip,O=A):E=a.inwardTrip),q||(q=a.formerOutwardPrice),
1!V&&l&&(V=a.formerInwardPrice),K(a.additionalServices)}let H=(null==v?void 0:v.isAvailable)&&(!E||E.isAvailable),$=q;return V&&($={amount:(null!=(C=null==$?void 0:$.amount)?C:0)+V.amount,currency:null!=(S=null==$?void 0:$.currency)?S:V.currency}),{newOutwardTrip:v,newInwardTrip:E,isAvailable:H,newOutwardPrice:A,newInwardPrice:O,newTotalPrice:D,formerOutwardPrice:q,formerInwardPrice:V,formerTotalPrice:$}}catch(e){if(e instanceof Error&&e.message.includes("Currency mismatch in checkAvailability response"))return void window.location.reload();if(a.A.isCancel(e))return v=!0,{isCancelled:!0};throw console.error(e),e}finally{v||(X(!1),Z([]))}},[z,f,G,er,et,ed.bookingId,ed.passengerCount,t,e,ey,eT,U,e6,N,e5]),e7=(0,l.useCallback)(e=>{Y({type:"reset",tripType:e})},[Y]),e2=(0,l.useCallback)((e,r,t)=>{Y({type:"selectSubTrip",tripType:e,newOptionIndex:r,subTripId:t})},[Y]),e8=(0,l.useCallback)((e,r,t,i)=>{Y({type:"selectSegment",tripType:e,newOptionIndex:r,segmentId:t,subTripId:i})},[Y]),re=(0,l.useCallback)((e,r)=>{Y({type:"selectInsurance",tripType:e,isSelected:r})},[Y]);return{checkAvailability:e9,outwardTrip:en,inwardTrip:ea,outwardPrice:es,inwardPrice:eu,totalPrice:ev,resetTrip:e7,handlePriceChange:(0,l.useCallback)(function(e,r,t){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],l=arguments.length>5&&void 0!==arguments[5]&&arguments[5],o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,s=el.some(e=>e.segments.some(r=>(0,C.v0)(r,e.providerId))),u=(i||a)&&r?{newPrice:V(r),oldPrice:V(e)}:{};if(e.amount!==(null==r?void 0:r.amount)&&void 0!==r)if(r.amount>e.amount+100){let a,o=(r.amount-e.amount)/e.amount*100;a=o>110&&!i?"LARGE_PRICE_INCREASE":o>120&&!i?"VERY_LARGE_PRICE_INCREASE":el.some(e=>e.segments.some(e=>e.company.transportType===n.TransportType.Train))&&l?"REDUCTION_NUMBER_DEACTIVATE":i?"PASSENGERS_PRICE_INCREASED":"PRICE_INCREASE",q((0,v.VR)(t,!0,v.VL.Info,a,u))}else r.amount<e.amount-100&&q((0,v.VR)(t,!0,v.VL.Success,el.some(e=>e.segments.some(e=>e.company.transportType===n.TransportType.Train))&&a&&!s?o>1?"REDUCTION_CARD_APPLIED_PLURAL":"REDUCTION_CARD_APPLIED":i?"PASSENGERS_PRICE_ADAPTED":"PRICE_DECREASED",u))},[el,V,q]),updateSelectedSubTrip:e2,updateSelectedSegment:e8,updateSelectedInsurance:re,isOutwardInsuranceSelected:e0,isInwardInsuranceSelected:e1,rawOutwardTrip:er,rawInwardTrip:et,rawTrips:ei,hasSeatChoice:ef,allSubTrips:el,checkingTripIds:H,isCheckingAvailability:z,discountCardProviders:eI,toddlerOnLapProvi
1ders:eC,requiredIdentityDocument:ej,requiredVisaType:eL,handleCheckAvailabilityResponse:e5,additionalServices:W,hasCarbonOffset:eS,hasProviderInvoice:eR,hasSeatMap:eM,hasOuigoFlex:eE,hasPetOption:eO,hasBicycle:eA,hasPushchair:eD,pushchairMaxQuantity:ek,baggageCategories:J,setBaggageCategories:Q,hasExtraBaggage:eh,displayPreferences:eB,placeJokerRequest:em,setPlaceJokerRequest:ec,displayPreferencesPerSegment:eN,displayPreferencesPerBooking:eU,displayExtraBaggagePerBooking:eP,hasAccompaniedPrm:eg,hasReducedMobilityPassenger:eb,hasStrictPhoneValidationProvider:e$,isPhoneNumberRequired:eZ,isSexRequired:eX,flightFees:ez,crossSellAdDetails:$,setAdditionalServices:K,includeFees:null!=ex?ex:eF,companiesSortedByHighestPrice:eo}})();return(0,i.jsx)(N.Provider,{value:t,children:r})}},10566:(e,r,t)=>{t.d(r,{hp:()=>a});var i=t(17343);let n=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();if("string"!=typeof e)return;let[t,i,n]=e.split(".");if("GCL"!==t||!n)return;let a=1e3*Number(i);return a>0&&r-a<=6048e5?n:void 0},a=e=>{let r,t,a=(r=e.get("gclid"),t=e.get("_gcl_aw"),"string"==typeof r&&""!==r?r:n(t));if(a)return{partnerId:i.PartnerId.GoogleAds,code:a};let l=e.get("msclkid");if(l)return{partnerId:i.PartnerId.BingAds,code:l};let o=e.get("oppref");if(o)return{partnerId:i.PartnerId.ChatGPTAds,code:o};let s=e.get("lpc"),u=s?parseInt(s):null;return null!==u&&u!==i.KomboAppPartnerId.Direct?{partnerId:u,code:e.get("partnerCode")}:{partnerId:u,code:""}}},13668:(e,r,t)=>{t.d(r,{QB:()=>o,ZE:()=>c,tb:()=>d,ws:()=>p,yq:()=>a});var i=t(17343),n=t(57517);let a=e=>{var r;return null==(r=e.selectedOption)?void 0:r.some(e=>{var r;return!!(null==e||null==(r=e.seatOptions)?void 0:r.length)})},l=e=>e.segments.some(a),o=e=>e.subTrips.some(l),s=e=>({arrivalStationId:e.arrivalStation.id,arrivalTime:e.arrivalTime,companyId:e.company.id,departureStationId:e.departureStation.id,departureTime:e.departureTime,options:[],ticketId:e.ticketId,carRentalInfo:e.carRentalInfo}),u=e=>({isPriceGlobal:!0,providerId:e.providerId,segments:e.segments.map(s),selectedOptionIdx:0,subTripId:e.subTripId,isAvailable:!0,sortedPriceOptions:[e.bestPrice],url:e.url}),d=e=>({fees:{amount:0,currency:e.currency},subTrips:e.subTrips.map(u),tripId:e.tripId,isAvailable:e.isAvailable,unsellableReason:e.unsellableReason,...null!=e.smartPricingFeePercentage&&{smartPricingFeePercentage:e.smartPricingFeePercentage}}),p=e=>{var r;return null==(r=e.allSegments)?void 0:r.every(e=>{var r;let t=!(null==(r=e.options)?void 0:r.some(e=>e.some(e=>e.flexibility.level===i.FlexibilityLevel.NO_FLEX)));return(0,n.e)(e.departureTime,7)&&[i.CompanyId.Sncf,i.CompanyId.InOui].includes(e.company.id)&&t||(0,n.e)(e.departureTime,1)&&i.TER_COMPANY_IDS.includes(e.company.id)&&t||(0,n.e)(e.departureTime,8)&&[i.CompanyId.BlaBlaBus].includes(e.company.id)})},c=e=>{var r;let t;if(p(e))return null==(r=e.allSegments)||r.forEach(e=>{(0,n.e)(e.departureTime,7)&&[i.CompanyId.Sncf,i.CompanyId.InOui].includes(e.company.id)&&(t=new Date(e.departureTime.getFullYear(),e.departureTime.getMonth(),e.departureTime.getDate()-7)),(0,n.e)(e.departureTime,1)&&i.TER_COMPANY_IDS.includes(e.company.id)&&(t=new Date(e.departureTime.getFullYear(),e.departureTime.getMonth(),e.departureTime.getDate()-1)),(0,n.e)(e.departureTime,30)&&[i.CompanyId.BlaBlaBus].includes(e.company.id)&&(t=new Date(e.departureTime.getFullYear(),e.departureTime.getMonth(),e.departureTime.getDate()-30))}),t}},20644:(e,r,t)=>{t.d(r,{bF:()=>d,jE:()=>l,jf:()=>o,mE:()=>s,vj:()=>n,zH:()=>u});var i=t(17343);let n=e=>{var r,t,n,a;if(e.isPriceGlobal&&e.sortedPriceOptions&&void 0!==e.selectedOptionIdx){let{selectedOptionIdx:n}=e;return{amount:(null==(r=e.sortedPriceOptions[n])?void 0:r.amount)||0,currency:(null==(t=e.sortedPriceOptions[n])?void 0:t.currency)||i.Currency.EUR}}if(!e.isPriceGlobal){let r,t=0;for(let i of e.segments)if(i.options&&void 0!==i.selectedOptionIdx)for(let e of i.options[i.selectedOptionIdx]||[])t+=(null==(n=e.price)?void 0:n.amount)||0,r=null==(a=e.price)?void 0:a.currency;return{amount:t,currency:r||i.Currency.EUR}}return{amount:0,currency:i.Currency.EUR}},a=e=>{let r,t=0;for(let i of(e.fees&&(t+=e.fees.amount),e.subTrips)){let e=n(i);t+=e.amount,r=e.currency}return{amount:t,currency:r||i.Currency.EUR}},l=(e,r)=>{if(e.price)return e.price;if(null!=e.priceCoef){let t=a(r);return{amount:Math.ceil(t.amount*e.priceCoef),currency:t.currency}}if(e.priceCoefPerSubTrip){let t,a=e.priceCoefPerSubTrip,l=0;return r.subTrips.forEach((e,r)=>{var i;let o=n(e);l+=Math.ceil(o.amount*(null!=(i=a[r])?i:0)),t=o.currency}),{amount:l,currency:null!=t?t:i.Currency.EUR}}},o=function(e){var r;let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=a(e);if(t&&(null==e||null==(r=e.insurance)?void 0:r.isSelected)){let r=l(e.insurance,e);if(r)return{amount:i.amount+r.amount,currency:i.currency}}return i},s=(e,r)=>{let t={amount:e?e.amount:0,currency:(null==e?void 0:e.currency)||i.Currency.EUR};return r&&(t={...t,amount:t.amount+r.amount}),t},u=e=>{let r,t=0;if(e.isPriceGlobal&&e.sortedPriceOptions){var n,a;t+=(null==(n=e.sortedPriceOptions[0])?void 0:n.amount)||0,r=null==(a=e.sortedPriceOptions[0])?void 0:a.currency}else for(let i of e.segments)for(let e of i.options[0]||[])e.price&&(t+=e.price.amount,r=e.price.currency);return{amount:t,currency:r||i.Currency.EUR}},d=e=>{let r;if(!e)return{amount:0,currency:i.Currency.EUR};let t=0;for(let i of(e.fees&&(t+=e.fees.amount),e.subTrips)){let e=u(i);r=e.currency,t+=e.amount}return{amount:t,currency:r||i.Currency.EUR}}},33125:(e,r,t)=>{t.d(r,{R:()=>n});var i,n=((i={}).Direct="Direct",i.Refundable="Refundable",i.DepartureTime="DepartureTime",i.ArrivalTime="ArrivalTime",i.DepartureStation="DepartureStation",i.ArrivalStation="ArrivalStation",i.Company="Company",i)},39017:(e,r,t)=>{t.d(r,{YL:()=>K,SQ:()=>W});var i=t(80263),n=t(59419),a=t(17343),l=t(74196),o=t(74915),s=t(53239),u=t(80922),d=t(2596),p=t(2429),c=t(63791),m=t(19702),v=t(85158),y=t(42059),T=t
1(43555),f=t(87490),g=t(36126),b=t(8809);let I=f.A.create({baseURL:"//".concat(b.yb),timeout:3e4});I.defaults.withCredentials=!0;let C=(0,g.VT)("salesOpening",{getSalesOpening:async(e,r,t)=>(await I.get("sales-opening/".concat(e,"/").concat(r,"/").concat(t))).data});var S=t(21482),h=t(25955),w=t(57525),P=t(10832),R=t(17666),M=t(26187),E=t(35760),O=t(9617),A=t(94335),D=t(77758),k=t(52840),F=t(77686),x=t(87426),_=t(58958),B=t(86273),N=t(3415),U=t(92259),j=t(35104);let L=async(e,r,t)=>{try{let[i,n]=await Promise.all([U.k.getCity(e,t),U.k.getCity(r,t)]);return{departureCity:i,arrivalCity:n}}catch(t){(0,j.v)(t,{tags:{feature:"search-results"},extra:{departureCityId:e,arrivalCityId:r}});return}};var Y=t(46889),q=t(97580);let G=e=>e.departureTime.getTime()>Date.now(),V=(0,s.createContext)(void 0),W=()=>{let e=(0,s.useContext)(V);if(void 0===e)throw Error("useSearch must be used within a SearchProvider");return e},K=e=>{let{children:r}=e,t=(()=>{let e,r,{searchKey:t,vertical:i,currency:f}=(0,v.o)(),g=(0,d.useParams)(),b=(0,d.useHistory)(),I=(0,d.useLocation)(),U=(0,s.useMemo)(()=>(0,T.Yn)(I.pathname),[I.pathname]),{dateOutward:j,dateInward:V}=g,W=Number(g.departureCityId),K=Number(g.arrivalCityId),J=Number(g.departureStationId),Q=Number(g.arrivalStationId),{tripType:H,withInward:Z}=(0,D.oZ)(),[z,X]=(0,N.y)(),$=(0,y.Ym)(),{passengerList:ee,checkedUserPassengers:er}=(0,O.Ur)(),{checkedAuth:et}=(0,k.As)(),{userCurrency:ei}=(0,F.F7)(),{getBusBestRanking:en,logBusBestRankingExposure:ea}=(0,E.NZ)(),el=(0,s.useMemo)(()=>en(),[en]),eo=(0,s.useRef)(!1),es=w.f[(0,h.LV)()].hasCurrencySelection&&(0,a.isValidCurrency)(f)&&f!==ei,eu=(0,u.wA)(),{createSearch:ed,isServerBusy:ep}=(0,c.Z1)(),ec="sp_".concat(W,"_").concat(K),em=(0,s.useMemo)(()=>{let e=sessionStorage.getItem("".concat(ec,"_start"));if(e)return Number(e);let r=Date.now();return sessionStorage.setItem("".concat(ec,"_start"),String(r)),r},[ec]),[ev,ey]=(0,s.useState)(()=>{let e=sessionStorage.getItem("".concat(ec,"_count"));return e?Number(e):0}),[eT,ef]=(0,s.useState)(a.TransportType.Train),[eg,eb]=(0,s.useState)(!1),eI=(e=>{if(e&&Object.values(a.TransportType).some(r=>r===e))return e})(i),eC=w.f[(0,h.LV)()].opensOnCoach;(0,s.useEffect)(()=>{eI&&ef(eI)},[eI]);
1let[eS,eh]=(0,s.useState)(!1),ew=(0,s.useCallback)(e=>{eh(!0),ef(e)},[]),[eP,eR]=(0,s.useState)(),eM=(0,s.useRef)((e=0,r=!1,async(t,i,n)=>{e+=1;let a=await L(t,i,n);return(e-=1,a)?(r=!0,{status:"success",cities:a}):r||e>0?{status:"cancelled"}:{status:"failed"}})).current,{arrivalCity:eE,departureCity:eO,searchKey:eA,includeFees:eD=!1}=(0,s.useMemo)(()=>eP,[eP])||{},ek=(0,s.useMemo)(()=>H===a.TripType.Outward?eO:eE,[eE,eO,H]),eF=(0,s.useMemo)(()=>H===a.TripType.Outward?eE:eO,[eE,eO,H]),ex=(0,s.useMemo)(()=>H!==a.TripType.Outward&&V?V:j,[V,j,H]),[e_,eB]=(0,s.useState)(0),[eN,eU]=(0,s.useState)(0),[ej,eL]=(0,s.useState)(),{bookingPassengers:eY}=(0,A.Bx)(),eq=(0,s.useMemo)(()=>Object.values(z.outward.byId),[z.outward.byId]),eG=(0,s.useMemo)(()=>Object.values(z.inward.byId),[z.inward.byId]),eV=(0,s.useMemo)(()=>(0,q.WJ)(eq,ek,eF),[eq,ek,eF]),eW=(0,s.useMemo)(()=>(0,q.WJ)(eG,ek,eF),[eG,ek,eF]),eK=(0,s.useMemo)(()=>H===a.TripType.Outward?eV:eW,[H,eV,eW]),eJ=(0,s.useMemo)(()=>(0,q.LB)(eK.filter(G),ek&&eF?{departureCity:ek,arrivalCity:eF}:void 0),[eK,eF,ek]),eQ=(0,s.useMemo)(()=>(0,q.vx)(eJ),[eJ]),eH=(0,s.useMemo)(()=>(0,q.I0)(eJ),[eJ]),eZ=(0,s.useMemo)(()=>(0,q.Xw)(eJ),[eJ]),ez=(0,s.useMemo)(()=>(0,B.E)(eJ),[eJ]),eX=(0,s.useMemo)(()=>H===a.TripType.Outward?e_:eN,[H,e_,eN]),e$=(0,s.useMemo)(()=>eX>=100,[eX]),e0=(0,s.useCallback)(()=>{if(!eI){if(eC){var e;if(!e$)return void ef(a.TransportType.Bus);let r=null!=(e=eQ[a.TransportType.Bus])?e:eQ[a.TransportType.Carpooling];if(null==r?void 0:r.isAvailable)return void ef(a.TransportType.Bus)}if(e$){let e,r;for(let t of Object.values(eQ))t&&t.isAvailable&&(!r||t.rank&&t.rank<r)&&(e=t.transportType,t.transportType===a.TransportType.Carpooling&&(e=a.TransportType.Bus),t.transportType===a.TransportType.CarRental&&(e=a.TransportType.Multimodal),r=t.rank);e&&ef(e)}else{let e=ek&&eF?(0,R.o3)(ek,eF):void 0;if(void 0===e)return;e>800?ef(a.TransportType.Flight):ef(a.TransportType.Train)}}},[eI,e$,ek,eF,eQ,eC]);(0,s.useEffect)(()=>{eS||e0()},[eS,e0]);let e1=(0,s.useMemo)(()=>eJ[eT],[eT,eJ]);(0,s.useEffect)(()=>{if(eo.current||eT!==a.TransportType.Bus)return;let e=eJ[a.TransportType.Bus];(e.exact.length||e.alternative.length)&&(eo.current=!0,ea())},[eT,eJ,ea]);let{handleActiveFilterChange:e3,handleTimeFilter:e4,handleStationFilter:e6,setSelectedArrivalStations:e5,setSelectedDepartureStations:e9,selectedArrivalStations:e7,selectedDepartureStations:e2,setSelectedSortingCriteria:e8,selectedSortingCriteria:re,setActiveFilters:rr,setActiveSorting:rt,activeFilters:ri,activeSorting:rn,setDepartureTime:ra,setArrivalTime:rl,departureTime:ro,arrivalTime:rs,filteredTrips:ru,isSortingLoading:rd,selectedCompanies:rp,availableCompanies:rc,hasActiveCompanyFilter:rm,shouldShowCompanyFilter:rv,handleCompanyFilter:ry,clearCompanies:rT,computePendingCompanyCount:rf,carryFiltersToSearchKey:rg}=(0,x.R)(e1,eT,eA,e$,ez,H,el.sortByBest),rb=(0,s.useMemo)(()=>e$&&re!==_.R.SortingCheapest&&re!==_.R.SortingFastest?(0,q.HZ)(ru):void 0,[ru,e$,re]),rI=(0,s.useMemo)(()=>eT===a.TransportType.Train?(0,Y.oG)(ru.exact,rb,ej):void 0,[eT,ru.exact,rb,ej]),rC=(0,s.useMemo)(()=>{var e,r;if(!rb)return ru;let{exact:t,alternative:i}=ru,n=t.some(e=>e.tripId===rb.tripId),a=n&&(null==(e=t[0])?void 0:e.tripId)===rb.tripId||!n&&(null==(r=i[0])?void 0:r.tripId)===rb.tripId;return re===_.R.SortingBest||a?{exact:t.filter(e=>e.tripId!==rb.tripId),alternative:i.filter(e=>e.tripId!==rb.tripId)}:ru},[ru,rb,re]),rS=(0,s.useMemo)(()=>{if(ri.length>0||void 0!==ro||void 0!==rs||rm)return!0;let e=e2[eT],r=e7[eT],t=!!(null==e?void 0:e.length),i=!!(null==r?void 0:r.length);return t||i},[ri,ro,rs,rm,eT,e2,e7]),rh=(0,s.useCallback)(()=>{rr([]),rt(void 0),ra(void 0),rl(void 0),e9(e=>({...e,[eT]:[]})),e5(e=>({...e,[eT]:[]})),rT(eT)},[rr,rt,ra,rl,e9,e5,eT,rT]),rw=ex&&ek&&eF?{searchDate:ex,departureCityId:ek.id.toString(),arrivalCityId:eF.id.toString()}:void 0,{data:rP}=(0,l.I)({queryKey:["salesOpening",rw],queryFn:rw?async()=>C.getSalesOpening(rw.searchDate,rw.departureCityId,rw.arrivalCityId):o.hT,...S.R}),rR=(0,s.useCallback)((e,r)=>{X({type:"add",tripType:e,trips:r})},[X]);(0,s.useEffect)(()=>{eB(0),eU(0),eL(void 0),X({type:"reset",tripType:a.TripType.Outward}),X({type:"reset",tripType:a.TripType.Inward})},[X,eA]);let rM=(0,s.useCallback)(()=>{eU(0),X({type:"reset",tripType:a.TripType.Inward})},[X]),rE=(0,s.useCallback)(()=>{let e={departureCityId:W,arrivalCityId:K,dateOutward:j,locale:$,passengers:ee,departureStationId:J,arrivalStationId:Q,currency:ei};return V&&(e.dateInward=V),e},[W,K,j,V,$,ee,J,Q,ei]),rO=(0,s.useCallback)(()=>{ey(e=>{let r=e+1;return sessionStorage.setItem("".concat(ec,"_count"),String(r)),r})},[ec]),rA=(0,s.useCallback)(()=>{eB(100),eU(100),ep&&eu((0,m.VR)(m.ME.ResultsOutward,!0,m.VL.Warning,"SERVER_BUSY_TRY_AGAIN"))}
1,[ep,eu]),[rD,rk]=(0,s.useState)(!1),rF=(0,s.useCallback)(async()=>{rk(!0),rO(),X({type:"reset",tripType:a.TripType.Outward}),X({type:"reset",tripType:a.TripType.Inward});let e=await ed(rE(),{keepPendingSearch:!0});if("success"!==e.status)return rk(!1),rA(),!1;let r=e.response;return rg(r.key),eR({searchKey:r.key,departureCity:r.departureCity,arrivalCity:r.arrivalCity,departureStation:r.departureStation,arrivalStation:r.arrivalStation,includeFees:r.includeFees}),!0},[rE,rg,rO,ed,X,rA]);(0,s.useEffect)(()=>{e$&&rk(!1)},[e$]),(0,s.useEffect)(()=>{if(eP)return;let e=async()=>{rO();let e=rE();eR(void 0);let r=await ed(e);if("success"!==r.status)return void rA();let t=r.response;eR({searchKey:t.key,departureCity:t.departureCity,arrivalCity:t.arrivalCity,departureStation:t.departureStation,arrivalStation:t.arrivalStation,includeFees:t.includeFees})},r=async()=>{if(!t)return;let e=await eM(W,K,$);if("failed"===e.status&&rA(),"success"!==e.status)return;let r=(0,p.formatRoute)(U,{...g}),n=new URLSearchParams;i&&n.append("vertical",i),n.toString()&&(r+="?".concat(n.toString())),b.replace(r),eR({searchKey:t,departureCity:e.cities.departureCity,arrivalCity:e.cities.arrivalCity,includeFees:!0})};if(V&&(0,M.LU)(V)||V&&new Date(j)>new Date(V)){eB(100),eU(100);return}t?r():et&&er&&!es&&e()},[K,et,er,ed,V,j,W,J,Q,$,es]);let rx=(0,s.useCallback)(e=>{if(!e)return;let r=(0,n.getCleanTripIdFrom)(e);if(!e.startsWith("0"))return z.outward.byId[r]||z.inward.byId[r];{let r=eq.find(r=>r.subTrips.some(r=>r.subTripId===e))||eG.find(r=>r.subTrips.some(r=>r.subTripId===e));if(!r)return;let t=r.subTrips.find(r=>r.subTripId===e);if(!t)return;
1return{...r,subTrips:[t],tripId:t.subTripId,bestPrice:t.bestPrice}}},[z.outward.byId,z.inward.byId,eq,eG]),r_=(0,s.useCallback)((e,r)=>X({type:"remove",tripType:e,tripId:r}),[X]),rB=(0,s.useCallback)((e,r,t,i,n)=>X({type:"update",tripType:e,tripId:r,newPrice:t,isAvailable:i,unsellableReason:n}),[X]),rN=(0,s.useCallback)(e=>{+g.passengerCount!==e&&b.replace((0,p.formatRoute)(U,{...g,passengerCount:e}))},[b,Z,g,U]);(0,s.useEffect)(()=>{(null==eY?void 0:eY.length)&&rN(eY.length)},[rN,eY]);let rU=(0,s.useMemo)(()=>{let e=new Set;for(let t of eK){var r;if(1!==t.subTrips.length)continue;let i=null==(r=t.subTrips[0])?void 0:r.providerId;null!=i&&e.add(i)}return e.size},[eK]),rj=(0,s.useMemo)(()=>(Date.now()-em)/6e4,[em]),rL=(0,s.useMemo)(()=>eK.length,[eK]),[rY,rq]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{!rY&&eO&&eE&&j&&$&&ee.length&&e$&&((0,P.xt)({departureCity:eO,arrivalCity:eE,dateOutward:j,dateInward:V,locale:$,passengers:ee,transportTypes:Object.entries(eQ).filter(e=>{let[,r]=e;return!!r}).map(e=>{let[r]=e;return r})}),rq(!0))},[eE,V,j,eO,$,ee,rY,e$,eQ]),{allTripResults:eK,isDone:e$,percentageDone:eX,refreshSearch:rF,isRefreshingSearch:rD,resetInwardState:rM,getTripResult:rx,removeTripResult:r_,updateTripResult:rB,departureCity:eO,arrivalCity:eE,departureStationId:J,arrivalStationId:Q,updatePassengerCount:rN,searchKey:eA,setOutwardPercentageDone:eB,setInwardPercentageDone:eU,sponsorship:ej,setSponsorship:eL,sponsoredRow:rI,addTrips:rR,currentDepartureCity:ek,currentArrivalCity:eF,bestTripsPerTransport:eQ,cheapestTripsPerTransport:eH,fastestTripsPerTransport:eZ,tripsPerTransport:eJ,busBestRanking:el,handleSetActiveTransportType:ew,activeTransportType:eT,activeTrips:e1,userSelectedCategory:eS,activeFilters:ri,activeSorting:rn,setActiveFilters:rr,setActiveSorting:rt,setDepartureTime:ra,setArrivalTime:rl,departureTime:ro,arrivalTime:rs,handleActiveFilterChange:e3,handleTimeFilter:e4,handleStationFilter:e6,setSelectedArrivalStations:e5,setSelectedDepartureStations:e9,selectedArrivalStations:e7,selectedDepartureStations:e2,setSelectedSortingCriteria:e8,selectedSortingCriteria:re,selectedCompanies:rp,availableCompanies:rc,hasActiveCompanyFilter:rm,shouldShowCompanyFilter:rv,handleCompanyFilter:ry,clearCompanies:rT,computePendingCompanyCount:rf,filteredTrips:rC,getStationsFromTripsPerTransportType:B.E,stationsPerTransportType:ez,recommendedTrip:rb,dateOutward:j,dateInward:V,currentSearchDate:ex,salesOpening:rP,altTripsAccordionOpen:eg,setAltTripsAccordionOpen:eb,isSortingLoading:rd,hasActiveFilters:rS,clearAllFilters:rh,includeFees:eD,searchCount:ev,sessionDurationMinutes:rj,numberOfProviders:rU,nbResultsReturned:rL}})();return(0,i.jsx)(V.Provider,{value:t,children:r})}},46889:(e,r,t)=>{t.d(r,{DS:()=>s,K6:()=>d,oG:()=>o});var i=t(9444);let n=(e,r)=>{var t;return 1===e.allSegments.length&&(null==(t=e.allSegments[0])?void 0:t.companyId)===r},a=e=>e.isAvailable&&!e.unsellableReason&&!e.isUnavailableAfterCheck,l=(e,r)=>(0,i.El)(e)-(0,i.El)(r)||e.bestPrice.amount-r.bestPrice.amount||e.departureTime.getTime()-r.departureTime.getTime(),o=(e,r,t)=>{if(!t||!r)return;let{companyId:i,floor:o}=t;if(n(r,i))return{reason:"organic_first"};let[s]=e.filter(e=>n(e,i)&&a(e)).sort(l);if(!s)return{reason:"no_candidate"};let u=r.bestPrice.amount,d=Math.max(u*o.priceRatio,u+o.priceDelta);return s.bestPrice.amount<=d&&s.duration<=r.duration+o.durationDeltaMinutes?{reason:"shown",trip:s}:{reason:"floor_failed"}},s=e=>{let{exactCount:r,insertIndex:t,hasSponsoredRow:i,hasRecommendedTrip:n}=e,a=Math.min(t,r);if(!i||!(a+ +!!n<4))return a},u=e=>e.reduce((e,r)=>!e||r.amount<e.amount?r:e,void 0),d=(e,r)=>{let t=e.filter(e=>n(e,r)&&a(e)),[i]=t,l=null==i?void 0:i.allSegments[0],o=u(t.map(e=>e.bestPrice));if(i&&l&&o)return{companyName:l.company.displayName,companyLogoName:i.companyLogoName,departureCount:t.length,minDuration:Math.min(...t.map(e=>e.duration)),minPrice:o,minBusinessClassPrice:u(t.map(e=>e.businessClassPrice).filter(e=>!!e))}}},47472:(e,r,t)=>{t.d(r,{D3:()=>u,bE:()=>p,q0:()=>s,xc:()=>d});var i=t(17343),n=t(67096);let a=[i.ProviderId.SNCF,i.ProviderId.TrenItalia,i.ProviderId.Eurostar,i.ProviderId.DBahn],l=e=>e?e.subTrips.map(e=>e.providerId):[],o=(e,r)=>{var t;return(0,n.dX)(e)&&0!==r?[]:(null!=(t=null==e?void 0:e.subTrips.map(e=>e.providerId))?t:[]).filter(e=>a.includes(e))},s=(e,r,t,i)=>[...o(e,t),...o(r,i)],u=(e,r)=>[...l(e),...l(r)].filter(e=>e===i.ProviderId.SNCF||e===i.ProviderId.Eurostar),d=(e,r)=>{if(!e)return;let t=(r?[e,r]:[e]).flatMap(e=>e.subTrips).map(e=>e.requiredIdentityDocument).filter(e=>!!(null==e?void 0:e.length));if(0===t.length)return;let n=t.reduce((e,r)=>e.filter(e=>r.includes(e)));return n.length>0?n:t.some(e=>e.includes(i.IdentityDocument.Passport))?[i.IdentityDocument.Passport]:t.some(e=>
1e.includes(i.IdentityDocument.NationalId))?[i.IdentityDocument.NationalId]:t.some(e=>e.includes(i.IdentityDocument.NationalityOnly))?[i.IdentityDocument.NationalityOnly]:void 0},p=(e,r)=>{let t=new Set(e.subTrips.flatMap(e=>{var r;return null!=(r=e.requiredVisa)?r:[]}));if(!r)return t.size>0?Array.from(t):void 0;let i=new Set(r.subTrips.flatMap(e=>{var r;return null!=(r=e.requiredVisa)?r:[]})),n=Array.from(t).filter(e=>i.has(e));return n.length>0?n:void 0}},58958:(e,r,t)=>{t.d(r,{R:()=>n});var i,n=((i={}).SortingCheapest="SortingCheapest",i.SortingFastest="SortingFastest",i.SortingBest="SortingBest",i.SortingEarliest="SortingEarliest",i)},64937:(e,r,t)=>{t.d(r,{o:()=>a});var i=t(20644),n=t(86529);let a=(e,r)=>{let t=e.segments.map(t=>(0,n.yf)(t,r,e.isPriceGlobal?e.selectedOptionIdx:void 0)),a=t[0],l=t[e.segments.length-1];if(!a||!l)throw Error("[denormalizeSubTrip] broken subTrip");return{...e,segments:t,departureSegment:a,arrivalSegment:l,departureCity:a.departureCity,arrivalCity:l.arrivalCity,departureTime:new Date(a.departureTime),arrivalTime:new Date(l.arrivalTime),selectedOptionIdx:e.isPriceGlobal?e.selectedOptionIdx||0:void 0,sortedPriceOptions:e.isPriceGlobal?e.sortedPriceOptions:void 0,providerId:e.providerId,totalPrice:(0,i.vj)(e),requiredIdentityDocument:e.requiredIdentityDocument,unsellableReason:e.unsellableReason}}},79472:(e,r,t)=>{t.d(r,{A:()=>n});var i=t(53239);let n=(e,r)=>{let t=(0,i.useRef)(r),[n,a]=(0,i.useReducer)(e,r),l=(0,i.useMemo)(()=>function(e){a(e)},[a]);return(0,i.useEffect)(()=>{t.current=n},[n,r]),[n,l]}},86273:(e,r,t)=>{t.d(r,{E:()=>a});var i=t(52496);let n={[i.YgW.Train]:void 0,[i.YgW.Bus]:void 0,[i.YgW.Flight]:void 0,[i.YgW.Multimodal]:void 0,[i.YgW.Carpooling]:void 0,[i.YgW.CarRental]:void 0,[i.YgW.Ferry]:void 0},a=e=>{let r={...n},t={...n},a=(e,i)=>{let n={},a={};for(let r of e){let e=r.departureStation.id,t=n[e];t||(t={station:r.departureStation,count:0}),t.count++,n[e]=t;let i=r.arrivalStation.id,l=a[i];l||(l={station:r.arrivalStation,count:0}),l.count++,a[i]=l}r[i]=Object.values(n).sort((e,r)=>r.count-e.count).map(e=>e.station),t[i]=Object.values(a).sort((e,r)=>r.count-e.count).map(e=>e.station)};for(let r of Object.values(i.YgW)){let{exact:t,alternative:i}=e[r];a([...t,...i],r)}return{departureStationsByTransportType:r,arrivalStationsByTransportType:t}}},87426:(e,r,t)=>{t.d(r,{R:()=>v});var i=t(17343),n=t(53239),a=t(96313),l=t(97645),o=t(33125),s=t(17666);let u=()=>({[i.TransportType.Train]:void 0,[i.TransportType.Bus]:void 0,[i.TransportType.Flight]:void 0,[i.TransportType.Multimodal]:void 0,[i.TransportType.Carpooling]:void 0,[i.TransportType.CarRental]:void 0,[i.TransportType.Ferry]:void 0});var d=t(14942),p=t(8809);let c=()=>({[i.TransportType.Train]:[],[i.TransportType.Bus]:[],[i.TransportType.Flight]:[],[i.TransportType.Multimodal]:[],[i.TransportType.Carpooling]:[],[i.TransportType.CarRental]:[],[i.TransportType.Ferry]:[]}),m=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return{[i.TransportType.Flight]:(0,a.r)(i.TransportType.Flight),[i.TransportType.Train]:(0,a.r)(i.TransportType.Train),[i.TransportType.Bus]:(0,a.r)(i.TransportType.Bus,e),[i.TransportType.Multimodal]:(0,a.r)(i.TransportType.Multimodal),[i.TransportType.Carpooling]:(0,a.r)(i.TransportType.Carpooling),[i.TransportType.CarRental]:(0,a.r)(i.TransportType.CarRental),[i.TransportType.Ferry]:(0,a.r)(i.TransportType.Ferry)}},v=function(e,r,t,a,v,y){let T=arguments.length>6&&void 0!==arguments[6]&&arguments[6],[f,g]=(0,n.useState)([]),[b,I]=(0,n.useState)(),[C,S]=(0,n.useState)(),[h,w]=(0,n.useState)(),[P,R]=(0,n.useState)(!1),[M,E]=(0,n.useState)(c),[O,A]=(0,n.useState)(c),[D,k]=(0,n.useState)(()=>m(T)),F=(0,n.useRef)(void 0),x=(0,n.useCallback)(e=>{F.current="".concat(null!=t?t:"","|").concat(y),R(!0),setTimeout(()=>{R(!1)},150),k(t=>({...t,[r]:e}))},[r,t,y]),_=(0,n.useMemo)(()=>D[r],[r,D]),B=(0,n.useCallback)(e=>{e?f.includes(e)?g(f.filter(r=>r!==e)):g([...f,e]):(g([]),w(void 0))},[f]),N=(0,n.useCallback)((e,r)=>{e===o.R.DepartureTime&&I(r),e===o.R.ArrivalTime&&S(r),void 0===r&&(e===o.R.DepartureTime&&I(void 0),e===o.R.ArrivalTime&&S(void 0))},[]),U=(0,n.useCallback)((e,t)=>{e===o.R.DepartureStation&&E(e=>({...e,[r]:t})),e===o.R.ArrivalStation&&A(e=>({...e,[r]:t})),0===t.length&&(e===o.R.DepartureStation&&E(e=>({...e,[r]:[]})),e===o.R.ArrivalStation&&A(e=>({...e,[r]:[]})))},[E,A,r]),j=(0,n.useCallback)((e,r)=>{let{exact:t,alternative:n}=e,{activeFilters:a,selectedSortingCriteria:o,departureTime:s,arrivalTime:u,selectedDepartureStations:d,selectedArrivalStations:p,activeTrans
1portType:c}=r,m=d[c],v=p[c];t=(0,l.ee)(a,o,t),n=(0,l.ee)(a,o,n),s&&(t=(0,l.tU)(t,s),n=(0,l.tU)(n,s)),u&&(t=(0,l.wj)(t,u),n=(0,l.wj)(n,u));let y=e=>(null==m?void 0:m.some(r=>e.departureStation.id===r.id))||e.transportType===i.TransportType.Carpooling||e.transportType===i.TransportType.CarRental,T=e=>(null==v?void 0:v.some(r=>e.arrivalStation.id===r.id))||e.transportType===i.TransportType.Carpooling||e.transportType===i.TransportType.CarRental;return(null==m?void 0:m.length)&&(t=t.filter(y),n=n.filter(y)),(null==v?void 0:v.length)&&(t=t.filter(T),n=n.filter(T)),{exact:t,alternative:n}},[]),L=(0,n.useCallback)((e,r)=>{if(!r||0===r.length)return e;let t=new Set(r),i=e=>e.allSegments.some(e=>t.has(e.companyId));return{exact:e.exact.filter(i),alternative:e.alternative.filter(i)}},[]),Y=(0,n.useMemo)(()=>j(e,{activeFilters:f,departureTime:b,arrivalTime:C,selectedDepartureStations:M,selectedArrivalStations:O,selectedSortingCriteria:_,activeTransportType:r}),[j,e,f,b,C,M,O,_,r]),{selectedCompanies:q,setSelectedCompanies:G,availableCompanies:V,hasActiveCompanyFilter:W,shouldShowCompanyFilter:K,handleCompanyFilter:J,clearCompanies:Q}=((e,r)=>{let[t,i]=(0,n.useState)(u),a=(0,n.useMemo)(()=>(0,s.Bv)(e,r),[e,r]),l=t[r],o=!!l&&l.length>0,d=e.length>=4&&a.length>=2,p=(0,n.useCallback)((e,r)=>{i(t=>({...t,[e]:0===r.length?void 0:r}))},[]),c=(0,n.useCallback)(e=>{i(r=>({...r,[e]:void 0}))},[]);return{selectedCompanies:t,setSelectedCompanies:i,availableCompanies:a,hasActiveCompanyFilter:o,shouldShowCompanyFilter:d,handleCompanyFilter:p,clearCompanies:c}})((0,n.useMemo)(()=>[...Y.exact,...Y.alternative],[Y]),r),H=q[r],Z=(0,n.useMemo)(()=>L(Y,H),[L,Y,H]);(0,n.useEffect)(()=>{0===Z.exact.length&&0===Z.alternative.length&&(g([]),w(void 0))},[r]);let z=(0,n.useRef)(void 0),[X,$,{removeItem:ee}]=(0,d.A)(p.d,{defaultValue:void 0,storageSync:!1}),er=f.length>0||void 0!==h||void 0!==b||void 0!==C||Object.values(M).some(e=>!!(null==e?void 0:e.length))||Object.values(O).some(e=>!!(null==e?void 0:e.length))||Object.values(q).some(e=>!!(null==e?void 0:e.length)),et=(0,n.useCallback)(()=>({activeFilters:f,activeSorting:h,departureTime:b,arrivalTime:C,selectedDepartureStations:M,selectedArrivalStations:O,sortingCriteriaPerTransportType:D,selectedCompanies:q}),[f,h,b,C,M,O,D,q]),ei=(0,n.useCallback)((e,r,t)=>$(i=>({searchKey:e,byTripType:{...(null==i?void 0:i.searchKey)===e||t&&(null==i?void 0:i.searchKey)===t?null==i?void 0:i.byTripType:{},[y]:r}})),[$,y]),en=(0,n.useRef)(ee);en.current=ee,(0,n.useEffect)(()=>()=>en.current(),[]),(0,n.useEffect)(()=>{if(!a||!t)return;let e="".concat(t,"|").concat(y);if(z.current===e)return;let r=void 0===z.current;z.current=e;let n=(null==X?void 0:X.searchKey)===t?X.byTripType[y]:void 0;if(n){g(n.activeFilters),w(n.activeSorting),I(n.departureTime),S(n.arrivalTime),E(n.selectedDepartureStations),A(n.selectedArrivalStations),k(n.sortingCriteriaPerTransportType),G(n.selectedCompanies);return}r&&(er||F.current===e)?ei(t,et()):(g([]),w(void 0),I(void 0),S(void 0),k(m(T)),G({[i.TransportType.Train]:void 0,[i.TransportType.Bus]:void 0,[i.TransportType.Flight]:void 0,[i.TransportType.Multimodal]:void 0,[i.TransportType.Carpooling]:void 0,[i.TransportType.CarRental]:void 0,[i.TransportType.Ferry]:void 0}),E(c()),A(c()))},[a,t,y,v,G,X,T,er,et,ei]),(0,n.useEffect)(()=>{t&&z.current==="".concat(t,"|").concat(y)&&ei(t,et())},[t,y,et,ei]);let ea=(0,n.useCallback)(e=>{(er||F.current==="".concat(null!=t?t:"","|").concat(y))&&(F.current="".concat(e,"|").concat(y),ei(e,et(),t))},[et,ei,er,t,y]);return{handleActiveFilterChange:B,handleTimeFilter:N,handleStationFilter:U,setSelectedDepartureStations:E,setSelectedArrivalStations:A,setSelectedSortingCriteria:x,selectedSortingCriteria:_,selectedArrivalStations:O,selectedDepartureStations:M,activeFilters:f,activeSorting:h,setActiveFilters:g,setActiveSorting:w,setDepartureTime:I,setArrivalTime:S,departureTime:b,arrivalTime:C,filteredTrips:Z,isSortingLoading:P,selectedCompanies:q,setSelectedCompanies:G,availableCompanies:V,hasActiveCompanyFilter:W,shouldShowCompanyFilter:K,handleCompanyFilter:J,clearCompanies:Q,computePendingCompanyCount:(0,n.useCallback)(e=>{let r=L(Y,e);return r.exact.length+r.alternative.length},[L,Y]),carryFiltersToSearchKey:ea}}},96313:(e,r,t)=>{t.d(r,{T:()=>
1o,r:()=>l});var i=t(52496),n=t(9444),a=t(58958);let l=function(e){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e===i.YgW.Flight||e===i.YgW.Bus&&r?a.R.SortingBest:a.R.SortingEarliest},o=(e,r)=>{switch(r){case a.R.SortingCheapest:return[...e].sort((e,r)=>e.bestPrice.amount-r.bestPrice.amount);case a.R.SortingFastest:return(0,n.co)(e,"duration");case a.R.SortingBest:return[...e].sort((e,r)=>(0,n.El)(e)-(0,n.El)(r));case a.R.SortingEarliest:return(0,n.co)(e,"departureTime");default:return(0,n.co)(e,"rank")}}},97645:(e,r,t)=>{t.d(r,{aN:()=>s,ee:()=>o,tU:()=>d,wj:()=>u});var i=t(33125),n=t(96313),a=t(9444);let l=e=>e.filter(e=>1===e.subTrips.length&&e.subTrips.every(e=>1===e.segments.length)),o=(e,r,t)=>{let o=[];if(e.length)if(e.includes(i.R.Direct)&&e.includes(i.R.Refundable)){let e=l(t),r=t.filter(a.Oi);o=[...o,...e.filter(e=>r.includes(e))]}else e.includes(i.R.Direct)?o=[...o,...l(t)]:e.includes(i.R.Refundable)&&(o=[...o,...t.filter(a.Oi)]);else o=t;return(0,n.T)(o,r)},s=(e,r)=>{switch(r){case i.R.Direct:let t=[...e.exact,...e.alternative],n=l(t),o=t.filter(e=>{var r,t,i;return(null==(r=e.subTrips[0])?void 0:r.segments)&&(null==(i=e.subTrips[0])||null==(t=i.segments)?void 0:t.length)>1});return n.length>0&&o.length>0;case i.R.Refundable:let s=[...e.exact,...e.alternative],u=s.filter(a.Oi),d=s.filter(e=>!(0,a.Oi)(e));return u.length>0&&d.length>0;case i.R.ArrivalStation:case i.R.ArrivalTime:case i.R.Company:case i.R.DepartureStation:case i.R.DepartureTime:default:return!1}},u=(e,r)=>e.filter(t=>{var i;if(t.arrivalTime.getUTCDate()===(null==(i=e[0])?void 0:i.arrivalTime.getUTCDate()))return t.arrivalTime.getUTCHours()>=r}),d=(e,r)=>e.filter(e=>e.departureTime.getUTCHours()>=r)}}]);
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.