var Xt=Object.defineProperty;var qt=(e,t,a)=>t in e?Xt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var w=(e,t,a)=>qt(e,typeof t!="symbol"?t+"":t,a);import{a as ce,c as Jt,i as R,s as ea,v as ta}from"./vendors-CFLVreUN-v01.js";import{q as re}from"./getyourguide-framework-DDypCIrS-v01.js";import{f as We,a as aa,i as sa,p as Fe,b as Be,c as $e}from"./vendors-framework-q7tHTlbv-v01.js";const pt="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IG49W107bGV0IGk9IiIsbztmdW5jdGlvbiByKCl7aWYobi5sZW5ndGg+MCl7Y29uc3QgdD1uLnNwbGljZSgwLG4ubGVuZ3RoKSxlPW5ldyBBYm9ydENvbnRyb2xsZXIsbD1zZXRUaW1lb3V0KCgpPT57Y2xlYXJUaW1lb3V0KGwpLGUuYWJvcnQoKX0sMWU0KTtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkxvZ2dlciB3b3JrZXIgbXVzdCBiZSBpbml0aWFsaXplZCBwYXNzaW5nIHRoZSBiYXNlIHVybCBmaXJzdCIpO2ZldGNoKG8se2JvZHk6SlNPTi5zdHJpbmdpZnkodCksbWV0aG9kOiJQT1NUIixrZWVwYWxpdmU6ITAsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJ4LWxvZy1vcmlnaW4tdXJsIjppfSxzaWduYWw6ZS5zaWduYWx9KX19ZnVuY3Rpb24gcyh0LGUpe24ucHVzaCh7bGV2ZWw6dCxhcmdzOmV9KSxuLmxlbmd0aD49MyYmcigpfXNldEludGVydmFsKCgpPT5yKCksM2UzKSxzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHQ9Pntjb25zdHthY3Rpb246ZX09dC5kYXRhO2lmKGU9PT0iaW5pdCIpe289bmV3IFVSTCgiL3RmZS1sb2dnaW5nIix0LmRhdGEuYmFzZVVybCk7cmV0dXJufXModC5kYXRhLmxldmVsLHQuZGF0YS5hcmdzKSxpPXQuZGF0YS51cmx9KX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvZ2dlci13b3JrZXItQms0bTdiN08uanMubWFwCg==",ra=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Ve=typeof self<"u"&&self.Blob&&new Blob([ra(pt)],{type:"text/javascript;charset=utf-8"});function ia(e){let t;try{if(t=Ve&&(self.URL||self.webkitURL).createObjectURL(Ve),!t)throw"";const a=new Worker(t,{name:e?.name});return a.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),a}catch{return new Worker("data:text/javascript;base64,"+pt,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}const na=e=>{Object.keys(e).forEach(t=>{const a=e[t];a instanceof Error&&(e[t]={},["name","message","fileName","lineNumber","stack"].forEach(function(s){e[t][s]=a[s]}))})};let J;const oa=["info","error","warn","debug"],h=oa.reduce((e,t)=>(e[t]=(...a)=>{console[t](...a),a.forEach(s=>na(s));try{J.postMessage({level:t,args:a,url:window.location.href})}catch(s){console.error(`Failed to send data to logger-worker. Please make sure you send only strings or serializable data. 
`,s)}return e},e),{});function zn(){J=new ia,J.postMessage({action:"init",baseUrl:window.location.origin}),J.onerror=e=>{console.warn("Failed to register logger worker.",e)}}const ie="experimentation",ca="CE-FTB-Smart-Banner",la="chk-enable-passwordless-login",ua="mov-enable-new-languages-v2",da="mov-preview-new-languages",pa="ffm-additional-pickup-instructions",ma="chk-currency-picker-v1",ha="rtl-support-tfe",ga="chk-use-formatter-multiplatform",wa="chk-reservation-countdown-banner-improvements",fa="navi-search-ux-2-redesign",Ta="act-hackdays-single-option-simplification-checkout",_a="chk-default-currency-google",Ea="ffm-checkout-pickup-improvements",mt="dex-wishlist-remove-account-wall",P="dex-guest-wishlist-flag",Sa="top-rated-across-funnel-web",Ia="mtp-web-usercentrics-banner",ya="chk-speculation-rules",Ca="chk-green-color-for-deals",Yn="ffm-skip-pickup-reminders-web",Aa="ftp-enable-fraud-prevention",va=[Ta,ca,la,ua,da,ha,pa,ma,ga,wa,_a,fa,Sa,Ea,mt,P,ya,Ca,Ia,Aa],ba="ptech-miles-calc-flying-blue",Ra="ptech-miles-calc-swiss-air",La=[ba,Ra];function Oa(e){return[...e?.route?.meta?.experiments??e?.route?._value?.meta?.experiments??[],...e?.route?.meta?.featureToggles??e?.route?._value?.meta?.featureToggles??[],...va,...La]}function ne(e,t){if(!Oa(e).includes(t))throw new Error(`Experiment ${t} not enabled for the route ${e?.route?.name} ${e?.route?.path} and was evaluated. Go to the route definition file for the Page Level component and add the experiment key to the route meta object. This impression will not be triggered and the returnt value will be baseline. Refer to the Experimentation Docs (https://github.com/getyourguide/traveler-frontend/blob/main/docs/experimentation.md) for more information.`)}function N(e,t,a){const s=e?e[ie]:void 0;try{ne(e,t)}catch(i){return h.error(i),!1}return s?.isExperimentActive?s.isExperimentActive(e,t,a):re.get(t)?.toLowerCase()===a?.toLowerCase()}function Zn(e,t){const a=e?e[ie]:void 0;try{ne(e,t)}catch(s){return h.error(s),!1}return a?.isFeatureToggleActive?a.isFeatureToggleActive(e,t):re.check(t)}function jn(e,t,a){const s=e?e[ie]:void 0;try{ne(e,t)}catch(i){return h.error(i),!1}return s?.peekIsExperimentActive?s.peekIsExperimentActive(e,t,a):re.peek(t)?.toLowerCase()===a?.toLowerCase()}function Qn(e,t){const a=e?e[ie]:void 0;try{ne(e,t)}catch(s){return h.error(s),!1}if(a?.sendExperimentImpression)return a.sendExperimentImpression(e,t);try{re.trackImpression(t)}catch(s){return h.error(s),!1}return!0}const ht="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IG49W107bGV0IHM7ZnVuY3Rpb24gaSgpe2lmKG4ubGVuZ3RoPjApe2NvbnN0IGU9bi5zcGxpY2UoMCxuLmxlbmd0aCksdD1uZXcgQWJvcnRDb250cm9sbGVyLHI9c2V0VGltZW91dCgoKT0+e2NsZWFyVGltZW91dChyKSx0LmFib3J0KCl9LDFlNCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJMb2dnZXIgd29ya2VyIG11c3QgYmUgaW5pdGlhbGl6ZWQgcGFzc2luZyB0aGUgYmFzZSB1cmwgZmlyc3QiKTtmZXRjaChzLHtib2R5OkpTT04uc3RyaW5naWZ5KGUpLG1ldGhvZDoiUE9TVCIsa2VlcGFsaXZlOiEwLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sc2lnbmFsOnQuc2lnbmFsfSl9fWZ1bmN0aW9uIG8oZSx0KXtuLnB1c2goe21ldHJpY1R5cGU6ZSxhcmdzOnR9KSxuLmxlbmd0aD49NiYmaSgpfXNldEludGVydmFsKCgpPT5pKCksM2UzKSxzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGU9Pntjb25zdHthY3Rpb246dH09ZS5kYXRhO3Q9PT0iaW5pdCI/cz1uZXcgVVJMKCIvdGZlLW1ldHJpY3MiLGUuZGF0YS5iYXNlVXJsKTp0PT09ImZvcmNlRmx1c2giP2koKTpvKGUuZGF0YS5tZXRyaWNUeXBlLGUuZGF0YS5hcmdzKX0pfSkoKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWV0cmljcy13b3JrZXItQjBtMGZaTlIuanMubWFwCg==",Ua=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Ke=typeof self<"u"&&self.Blob&&new Blob([Ua(ht)],{type:"text/javascript;charset=utf-8"});function Da(e){let t;try{if(t=Ke&&(self.URL||self.webkitURL).createObjectURL(Ke),!t)throw"";const a=new Worker(t,{name:e?.name});return a.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),a}catch{return new Worker("data:text/javascript;base64,"+ht,{name:e?.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}let M;const ka=["increment","timing","gauge","histogram","distribution"],S=ka.reduce((e,t)=>(e[t]=(...a)=>{try{M.postMessage({metricType:t,args:a})}catch(s){console.error(`Failed to send data to metrics-worker. 
`,s)}return e},e),{});function Xn(){M=new Da,M.postMessage({action:"init",baseUrl:window.location.origin}),M.onerror=e=>{console.warn("Failed to register metrics worker.",e)}}document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&M.postMessage({action:"forceFlush"})});window.addEventListener("pagehide",()=>{M.postMessage({action:"forceFlush"})});const ze=60,ee=60*60,F=ee*24,x=F*365,Ye={apVId:{name:"AP-VID",options:{httpOnly:!1}},anonymizedIp:{name:"HIA"},authToken:{name:"auth_token",options:{httpOnly:!0}},currency:{name:"cur",options:{httpOnly:!1,maxAge:x*5}},isMobile:{name:"isMobile"},localeCode:{name:"locale_code",options:{maxAge:x*5,httpOnly:!1}},platform:{name:"platform"},visitorId:{name:"visitor_id",options:{httpOnly:!1,maxAge:x*5,path:"/",sameSite:"none",secure:!0}},visitorOs:{name:"visitor_os"},customerId:{name:"customer_id"},dateFrom:{name:"TFE_DATE_FROM",options:{maxAge:ze*30}},dateTo:{name:"TFE_DATE_TO",options:{maxAge:ze*30}},partnerSession:{name:"par_sess",options:{maxAge:F*31,overwrite:!0,httpOnly:!1}},dismissedBroadcast:{name:"dismissed_broadcast"},sessionMessage:{name:"session_message"},forceLogout:{name:"force_logout"},localeAutoredirectOptout:{name:"locale_autoredirect_optout",options:{httpOnly:!0}},localeAutoredirectOrigin:{name:"locale_autoredirect_origin",options:{httpOnly:!0}},localeAutoredirectDeviceLocale:{name:"locale_autoredirect_deviceLocale",options:{httpOnly:!0}},isOfficeIp:{name:"is_office_ip"},disableOneTap:{name:"disable_one_tap"},sessionData:{name:"SESSDATA"},shoppingCartId:{name:"shopping_cart_id",options:{httpOnly:!1,maxAge:F*31}},tripHash:{name:"trip_hash",options:{httpOnly:!1,maxAge:x*3}},ticketingBackUrl:{name:"ticketing_back_url",options:{overwrite:!0,maxAge:ee}},viasatInteractionId:{name:"viasat_interaction_id",options:{overwrite:!0,maxAge:ee*16,httpOnly:!0}},gygTradedoubler:{name:"gyg_tradedoubler",options:{maxAge:F*30,httpOnly:!1}},commissionJunctionEvent:{name:"cje",options:{maxAge:x+F*30,httpOnly:!1}},ga:{name:"_ga"},fbp:{name:"_fbp"},fbc:{name:"_fbc"},optanonConsent:{name:"OptanonConsent"},optanonAlertBoxClosed:{name:"OptanonAlertBoxClosed"},utmzz:{name:"__utmzz"},gygTheme:{name:"gyg_theme"},gygThemeFollowSystem:{name:"gyg_theme_follow_system"},debugGettextKeys:{name:"debug_gettext_keys",options:{httpOnly:!1}},bookedActivities:{name:"TFE_booked_activity",options:{httpOnly:!1}},geoip_country:{name:"geoip_country"},geoip_city:{name:"geoip_city"},geoip_region:{name:"geoip_region"},is_synthetic:{name:"is_synthetic"},shoppingCartExpiration:{name:"shoppingCartExpiration",options:{httpOnly:!1}},csrfToken:{name:"csrfToken",options:{httpOnly:!1}},tfeAppletName:{name:"tfeAppletName",options:{httpOnly:!0}},persist_date_date_from:{name:"persist_date_date_from"},persist_date_date_to:{name:"persist_date_date_to"},passesBundlesQualificationChecks:{name:"passesBundlesQualificationChecks",options:{maxAge:ee,httpOnly:!1}},tfeEndpointsRedirect:{name:"tfeEndpointsRedirect",options:{httpOnly:!1,sameSite:"strict"}},cdnCached:{name:"cdnCached",options:{httpOnly:!1,maxAge:15}},consentTPS:{name:"consentTPS",options:{httpOnly:!1,sameSite:"strict"}}};function Pa(e){if(!Ye[e])throw new Error(`No mapping for cookie name ${e}`);return Ye[e]}const le={get:e=>Pa(e)};function Na(e){return Object.keys(e).forEach(t=>{e[t]=e[t].toString()}),e}function Ma(e){delete e.httpOnly}function Ha(){return{get:(e,t=!1)=>{const a=ce.get(le.get(e).name);return a&&(t?decodeURIComponent(a):a)},set:(e,t,a={})=>{const s=le.get(e),r="maxAge"in a,i="maxAge"in(s?.options??{}),n=Na({...s.options??{},...a,...i&&{"max-age":s?.options?.maxAge},...r&&{"max-age":a.maxAge}});delete n.maxAge,Ma(n),ce.set(s.name,t,n)},expire:e=>{ce.remove(le.get(e).name)}}}const Ga={"tfe-login":{path:"/tfe-login"},"tfe-logout":{path:"/tfe-logout"},"tfe-facebook-validate-token":{path:"/tfe-facebook-validate-token"},"track-attribution":{path:"/track-attribution"},"viasat-activation":{path:"/in-flight/viasat/activation/:offerInteractionId"},"refresh-session-cookie":{path:"/auth/refresh-session-cookie"}},xa={path:"/pages/activity-details/:activityId(\\d+)"},Wa={path:"/customers/:customerId(\\d+)"},Fa={path:"/destinations"},Ba={path:"/esim"},$a={path:"/locations/:locationId(\\d+)"},Va={path:"/suppliers/:supplierId(\\d+)"},Ka={activities:xa,"sadp-available-options":{path:"/activities/:activityId(\\d+)/available-options"},"convert-dynamic-seats":{path:"/seats/converted"},"activities-reviews":{path:"/activities/:activityToFetch(\\d+)/reviews"},"activities-metadata":{path:"/activities/:activityId(\\d+)/metadata"},"addresses-countries":{path:"/addresses/countries"},"aggregator-activities-availabilities":{path:"/components/booking-assistant/activities/:activityId(\\d+)/availabilities"},"booking-pin":{path:"/bookings/reference/:bookingReference(\\b.*\\b)"},"booking-refunds":{path:"/bookings/:bookingHash(\\d+|\\w+)/refunds"},"booking-summary":{path:"/pages/booking-summary/:bookingHash(\\d+|\\w+)"},"booking-reschedule-availability":{path:"/components/bookings/:bookingHash(\\d+|\\w+)/reschedule/availability"},"booking-reschedule-available-options":{path:"/components/bookings/:bookingHash(\\d+|\\w+)/reschedule/available-options"},"booking-preview-modifications":{path:"/bookings/:bookingHash(\\d+|\\w+)/preview-modifications"},"booking-cancel":{path:"/bookings/:bookingHash(\\d+|\\w+)/cancel"},"booking-reschedule":{path:"/bookings/:bookingHash(\\d+|\\w+)/reschedule"},"booking-update-participants":{path:"/bookings/:bookingHash(\\d+|\\w+)/modify"},"booking-modify":{path:"/bookings/:bookingHash(\\d+|\\w+)/modify-v2"},"booking-supplier-requested-information":{path:"/bookings/:bookingHash(\\d+|\\w+)/supplier-requested-information"},"booking-supplier-requested-information-answer":{path:"/bookings/:bookingHash(\\d+|\\w+)/supplier-requested-information/:questionIdentifier(\\d+|\\w+)"},"send-customer-email-with-proof-of-payment":{path:"/send-proof-of-payment-email/:bookingHash(\\d+|\\w+)"},"cancellation-reasons":{path:"/cancellation-reasons"},"carts-create":{path:"/carts"},"carts-get":{path:"/carts/:shoppingCartHash(\\d+|\\w+)"},"carts-claim-for-customer":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/claim"},"carts-get-meta":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/meta"},"carts-addon":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/items/:shoppingCartItemId(\\d+)/addons/:addonId(\\d+)"},"carts-addons":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/items/:shoppingCartItemId(\\d+)/addons"},"carts-currency":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/currency"},"carts-customer-billing-information":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/customer-billing-information"},"carts-flexibility-upgrade":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/items/:shoppingCartItemId(\\d+)/flexibility-upgrades/:flexibilityUpgradeId(\\d+)"},"carts-flexibility-upgrades":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/items/:shoppingCartItemId(\\d+)/flexibility-upgrades"},"carts-item":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/items/:shoppingCartItemId(\\d+)"},"carts-items":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/items"},"carts-redeemable-code":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/redeemable-codes/:redeemableCode(\\d+|\\w+)"},"carts-redeemable-codes":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/redeemable-codes"},"carts-initiate-pay-early":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/initiate-pay-early"},"carts-initiate-payment":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/initiate-payment/:paymentMethodIdentifier(\\d+|\\w+)"},"carts-initiate-payment-v2":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/initiate-payment-v2"},"carts-patch-payment-session":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/payment-session"},"carts-expire":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/expire"},"checkout-page":{path:"/checkout/carts/:shoppingCartHash(\\d+|\\w+)"},"shopping-cart-page":{path:"/pages/shopping-carts/:shoppingCartHash(\\d+|\\w+)"},"collection-activity-cards":{path:"/locations/:locationId(\\d+)/collections/:categoryId([a-z0-9-]+)"},"confirmation-page":{path:"/pages/checkout/confirmation/carts/:shoppingCartHash(\\d+|\\w+)"},"create-app-link":{path:"/app-links"},"get-attribution-links":{path:"/attribution-links"},"get-app-rating":{path:"/app-ratings"},"customers-permissions":{path:"/customers/:customerId(\\d+)/permissions"},"authenticated-customers-communication-preferences":{path:"/customers/:customerId(\\d+)/communicationPreferences"},"customer-communication-preferences":{path:"/customer/:customerId(\\d+)/communicationPreferences"},"customer-communication-preferences-marketing-enabled":{path:"/customers/:customerId(\\d+)/channels/email/marketing-enabled"},"customer-login":{path:"/customers/login"},"customer-logout":{path:"/customers/logout"},"fetch-sign-in-methods-for-email":{path:"/auth/actions/fetch-sign-in-methods-for-email"},"customer-information-page":{path:"/pages/checkout/customer-information/carts/:shoppingCartHash(\\d+|\\w+)"},"customer-information-validate-email":{path:"/pages/checkout/customer-information/validate-email"},"customer-information-submit":{path:"/pages/checkout/customer-information/carts/:shoppingCartHash(\\d+|\\w+)"},"customer-password-reset":{path:"/customerPasswordReset"},"customer-password-reset-submit":{path:"/customerPasswordResetSubmit"},"customer-email-soft-optin-eligible":{path:"/customers/:customerId(\\d+|\\w+)/soft-optin-eligible"},customers:Wa,"customers-payment-info":{path:"/customers/:customerId(\\d+)/payment-cards"},"customers-payment-info-delete":{path:"/customers/:customerId(\\d+)/payment-cards/:paymentCardId(\\d+)"},"customers-address":{path:"/customers/:customerId(\\d+)/address"},"customers-password":{path:"/customers/:customerId(\\d+)/password"},"customers-password-info":{path:"/customers/:customerId(\\d+)/password/info"},"customers-subscribe-locations":{path:"/customers/:userId(\\d+)/subscribe/locations"},"customers-resend-validation-email":{path:"/customers/:customerId(\\d+)/resend-validation-email"},"customers-wishlists":{path:"/customers/:customerId(\\d+|\\w+)/activities/wishlisted"},"customers-wishlists-activities":{path:"/customers/:customerId(\\d+|\\w+)/wishlists/activities/:activityId(\\d+)"},"customers-bookings":{path:"/customers/:customerId(\\d+|\\w+)/bookings"},"data-layer":{path:"/components/shopping-cart/:shoppingCartHash(\\d+|\\w+)/data-layer"},destination:Fa,"destination-location":{path:"/destinations/locations/:locationId(\\d+)"},"destination-metadata":{path:"/destinations/metadata"},esim:Ba,"experiments-assignment":{path:"/experiments/:id(\\d+|\\w+|-)/assignment"},"firebase-users":{path:"/firebaseUsers"},"flexibility-upgrades-page":{path:"/pages/checkout/flexibility-upgrades/carts/:shoppingCartHash(\\d+|\\w+)"},"gift-cards":{path:"/gift-cards/:giftCardHash(\\d+|\\w+)"},"gift-cards-activity-details":{path:"/components/gift-card/activity-details/:activityId(\\d+)"},"gift-cards-preview-print":{path:"/gift-cards/preview/print"},"gift-cards-print":{path:"/gift-cards/:giftCardHash(\\d+|\\w+)/print"},"gift-cards-extend":{path:"/gift-cards/:giftCardHash(\\d+|\\w+)/extend"},"global-navigation":{path:"/global-navigation"},"help-center-topics":{path:"/help-center/topics"},"help-center-data-deletion-request":{path:"/help-center/contact/data-deletion-requests"},"help-center-data-deletion-request-confirm":{path:"/help-center/contact/data-deletion-requests/:requestId"},"help-center-contact":{path:"/help-center/contact/submit"},"help-center-contact-async":{path:"/help-center/contact/submit-async"},"home-seo-links":{path:"/home/seo-links"},"home-top-cities":{path:"/home/top-cities"},"home-top-pois":{path:"/home/top-pois"},"home-components":{path:"/components/home"},"home-components-initial":{path:"/home-dynamic"},"home-components-themes":{path:"/home-dynamic/themes/:themeIds(\\b[a-z0-9,-]+(?:-[a-z0-9,-]+)*\\b)"},"partner-promotion":{path:"/partner/:partnerHash(\\d+|\\w+)/promotion"},"partner-public-information":{path:"/partners/:partnerHash(\\d+|\\w+)/public-information"},"image-service-activities-images":{path:"/activities/images"},"image-service-activity-images":{path:"/activities/:activityId(\\d+)/images"},"bundle-claim":{path:"/incentives/:incentiveHash(\\d+|\\w+)/bundle-claim"},locations:$a,"page-level-locations":{path:"/pages/locations/:locationId(\\d+)"},"locations-activity-cards":{path:"/locations/:locationId(\\d+)/activity-cards"},"locations-metadata":{path:"/locations/:locationId(\\d+)/metadata"},"locations-intro":{path:"/locations/:locationId(\\d+)/intro"},"locations-seo-content":{path:"/locations/:locationId(\\d+)/seo-content"},"locations-seo-links":{path:"/locations/:locationId(\\d+)/seo-links"},"locations-related-top-locations":{path:"/locations/:locationId(\\d+)/related-locations"},"locations-categories":{path:"/locations/:locationId(\\d+)/categories"},"locations-navigation-collections":{path:"/locations/:locationId(\\d+)/navigation-collections"},"locations-global-navigation":{path:"/locations/:locationId(\\d+)/global-navigation"},"loyalty-program-convert":{path:"/loyalty-program/convert"},"loyalty-program-calculate":{path:"/loyalty-program/calculate"},"marketing-emails-activities":{path:"/marketing-emails/activities"},"marketing-emails-subscribe":{path:"/marketing-emails/subscribe"},"marketing-emails-subscribe-confirmation":{path:"/marketing-emails/confirm-subscription/:customerHash(\\w+)"},"countries-seo-links":{path:"/countries/:locationId(\\d+)/seo-links"},"payment-validate-apple-pay-merchant":{path:"/payments/apple-pay/validate-merchant"},"pages-sdui":{path:"/user-interface/pages/:pageId(.*)"},"blocks-sdui":{path:"/user-interface/:route(\\b.*\\b)/blocks"},"pages-campaigns":{path:"/pages/campaigns/:campaignName(\\b[0-9a-z]+(?:['-]?[0-9a-z]+)*\\b)"},"pages-originals":{path:"/pages/originals"},"pages-voucher":{path:"/pages/voucher/:bookingHash(\\d+|\\w+)"},"pages-voucher-preview":{path:"/pages/voucher-preview"},"payment-information-page":{path:"/pages/checkout/payment-information/carts/:shoppingCartHash(\\d+|\\w+)"},"additional-payment-details":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/submit-additional-payment-details"},"planner-list-public":{path:"/aggregator/planner/p/lists/:listUuid(\\b.*\\b)"},"planner-list":{path:"/aggregator/planner/lists/:listUuid(\\b.*\\b)"},"planner-list-clear":{path:"/aggregator/planner/lists/clear"},"planner-lists":{path:"/aggregator/planner/lists"},"planner-lists-item":{path:"/aggregator/planner/lists/:listUuid(\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b)/items/:itemUuid(\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b)"},"planner-lists-item-recommendations":{path:"/aggregator/planner/lists/:listUuid(\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b)/items/:itemUuid(\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b)/recommendations"},"planner-lists-items":{path:"/aggregator/planner/lists/:listUuid(\\b[0-9a-f]{8}\\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\\b[0-9a-f]{12}\\b)/items"},"planner-lists-items-relocate":{path:"/aggregator/planner/lists/items/relocate"},"planner-activities":{path:"/planner/activities"},"bundles-suggested-activities":{path:"/bundles/suggested-activities/:activityId(\\d+)"},"recommendations-activities-similars":{path:"/components/activity-cards/activity-detail/:activityId(\\d+)/recommendations"},"recommendations-activity-detail-page":{path:"/recommendations/activity-detail-page/:activityId(\\d+)"},"recommendations-travel-guides":{path:"/recommendations/travel-guides/:locationId(\\d+)"},"resend-voucher":{path:"/bookings/reference/:bookingReference(\\b.*\\b)/resend-voucher"},"reviews-helpful":{path:"/reviews/:reviewId(\\d+)/helpful"},"dsa-report-types":{path:"/ugc/report/types"},"dsa-report":{path:"/ugc/report"},"reviews-translated":{path:"/reviews/:reviewId(\\d+)/translated"},"search-v2-search":{path:"/search/v2/search"},"search-v2-search-facets":{path:"/search/v2/search/facets"},"search-v3-search-facets":{path:"/search/v3/search/facets"},"search-v2-suggest":{path:"/search/v2/suggest"},"send-app-link":{path:"/app-link"},"special-offers-locations":{path:"/special-offers/locations"},suppliers:Va,"suppliers-v2":{path:"/pages/supplier/:supplierId(\\d+)"},"suppliers-contact-information":{path:"/pages/supplier/:supplierId(\\d+)/contact-information"},"suppliers-activities":{path:"/suppliers/:supplierId(\\d+)/activities"},"transaction-value-in-eur":{path:"/components/shopping-cart/:shoppingCartHash/transaction-value-in-eur"},"visitors-email-soft-optin-eligible":{path:"/visitors/:visitorId(\\d+|\\w+)/email-soft-optin-eligible"},"review-questions":{path:"/components/review-submission/:bookingHash(\\S+)/questions"},"review-submission":{path:"/review-submission"},"submit-payment":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/submit-payment"},"finalize-shopping-cart":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/finalize-shopping-cart"},"execute-payment":{path:"/carts/:shoppingCartHash(\\d+|\\w+)/execute-payment"},"pending-reviews":{path:"/components/pending-reviews"},"submit-review-rating":{path:"/review-submission/:encryptedBookingHash(\\S+)/submit-rating"},"companion-content-content-hub":{path:"/companion-content/content-hub"},"companion-content-travel-guide-itinerary":{path:"/companion-content/travel-guide/:travelGuideName(\\b[a-z0-9]+(?:-[a-z0-9]+)*\\b)/itinerary"},"companion-content-travel-guide-top-picks":{path:"/companion-content/travel-guide/:travelGuideName(\\b[a-z0-9]+(?:-[a-z0-9]+)*\\b)/top-picks"},"confirmation-recommendations":{path:"/recommendations/confirmation"},"added-to-cart-recommendations":{path:"/recommendations/added-to-cart"},"locations-nearest-locations":{path:"/locations/:locationId(\\d+)/nearest-locations"},"locations-nearest-activities":{path:"/locations/:locationId(\\d+)/nearest-activities"},"tickets-share":{path:"/tickets/:bookingHash(\\d+|\\w+)/share"},"trigger-login-link-email":{path:"/auth/actions/init-link-login-auth"},"esim-connect-booking":{path:"/esim/connect-booking"},"esim-status":{path:"/esim/status/:bookingHash(\\d+|\\w+)"},"ai-text-to-filters":{path:"/ai_filter/search_filter"},"payment-methods-session":{path:"/payment/payment-methods/session"},"partner-customizations":{path:"/partners/hash/:partnerHash(\\d+|\\w+)/customizations"},"location-itinerary":{path:"/v2/itinerary/:locationId(\\d+)"}},za={"upcoming-bookings":{path:"/upcoming-bookings.json"}},Ya={"viasat-auth":{path:"https://jwt.viasat.io/v1/token"},"viasat-details":{path:"https://sponsoredaccess.viasat.com/soas/api/v1/offer-interaction/:offerInteractionId"},"viasat-activation":{path:"https://sponsoredaccess.viasat.com/soas/api/v1/offer-interaction/activate"}},Za={"tour-option-time-slots":{path:"reservation/tour-options/:tourOptionId(\\d+)/time-slots"}},ja={"traveler-data":{path:"/travelers"}},Qa={"traveler-frontend":Ga,"travelers-api":Ka,"traveler-profile":ja,fishfarm:za,nongyg:Ya,inventory:Za};var Xa=(e=>(e.external="external",e.internal="internal",e))(Xa||{});class d{constructor(t,a){w(this,"api");w(this,"name");w(this,"pathParams");w(this,"searchString");w(this,"_apiUrls");w(this,"_definition");w(this,"_clientType");const[s,r]=t.split(".");if(!s||!r)throw new Error("Please define an endpoint name as api-name.endpointname");if(this.api=s,this.name=r,this.pathParams=a?.pathParams||{},this.searchString=a?.searchString,this._definition=Qa[s][r],!this._definition){const i=`No endpoint definition for ${r} in ${s}`;throw h.error(i),new Error(i)}}setClientType(t){this._clientType=t}setApiUrls(t){this._apiUrls=t}get _apiUrl(){if(!this._apiUrls[this.api])throw new Error(`There's no API definition for ${this.api} used in ${this.name}`);return this._apiUrls[this.api]}get url(){if(!this._apiUrl[this._clientType])throw new Error(`API definition for ${this.name} has no ${this._clientType} definition`);return this._apiUrl[this._clientType]}get path(){const t=Jt(this._definition.path),a=this.pathParams||{};try{return t(a)}catch(s){return h.error({pathParams:this.pathParams,api:this.api,name:this.name,error:s},"API path validation error"),"/_invalid_path"}}get headers(){return{...this._apiUrl.defaultHeaders,...this._definition.headers}}get host(){return this._definition.host||""}isDomainDependant(){return this.api==="fishfarm"}}const qa=(e,t={},a=!1)=>{const s={message:`${e}: ${t?.message}`,url:t?.config?.url,method:t?.config?.method,headers:t?.config?.headers,status:t?.response?.status,statusText:t?.response?.statusText,responseBody:typeof t?.response?.data=="object"?t?.response?.data:{message:t?.response?.data},stack:t?.stack};return a?{...s,request:t?.request}:s},$=e=>{if(typeof window<"u"&&"URLSearchParams"in window)return new URLSearchParams(e).toString();const t=[];for(const s in e){const r=encodeURIComponent(s),i=encodeURIComponent(e[s]);t.push(`${r}=${i}`)}return t.join("&")},D={currency:"currency",locale:"locale",next:"next",visitorId:"visitor-id",shoppingCartId:"shopping-cart-id",partnerId:"parid",partnerSession:"parsess",partnerExpires:"parex",partnerVisitorId:"parvid"};var V=(e=>(e.active="active",e.inPayment="in_payment",e.capturing="capturing",e.reserved="reserved",e.reserved_capturing="reserved_capturing",e.processed="processed",e))(V||{}),ye=(e=>(e.giftCard="giftCard",e.activity="activity",e))(ye||{}),Ja=(e=>(e.year="year",e.month="month",e.day="day",e.hour="hour",e.minute="minute",e))(Ja||{}),es=(e=>(e.timeSelected="timeSelected",e.timeBooked="timeBooked",e.timeActivated="timeActivated",e))(es||{}),ts=(e=>(e.freeCancellation="freeCancellation",e.other="other",e))(ts||{}),as=(e=>(e.freeCancellation="freeCancellation",e.fixedFee="fixedFee",e.percentageFee="percentageFee",e.nonRefundable="nonRefundable",e.other="other",e))(as||{}),ss=(e=>(e.gygOriginal="gygOriginal",e.likelyToSellOut="likelyToSellOut",e.freeCancellation="freeCancellation",e.likelyToSellOutV2="likelyToSellOutV2",e))(ss||{}),rs=(e=>(e.perPerson="per_persons",e.group="group",e))(rs||{}),is=(e=>(e.standard="standard",e.last_hour="last_hour",e.non_refundable="non_refundable",e.custom="custom",e.none="none",e))(is||{});function gt(e){return[V.processed,V.reserved,V.reserved_capturing].includes(e)}const ns=[{hosts:[/^actividades\.nmviajes\.com$/,/^nmviajes\.getyourguide\.biz$/,/^actividades-nmviajes-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"ISJWP0T",onetrustDomainHash:"f02651d3-157b-4922-80c7-e9b0ef03d91e"},{hosts:[/^activities\.icelandair\.com$/,/^icelandair\.getyourguide\.biz$/,/^activities-icelandair-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"C3935",onetrustDomainHash:"ca6e0b44-f654-498f-8335-9c7b26810af8"},{hosts:[/^activities\.timeout\.com$/,/^timeout\.getyourguide\.biz$/,/^activities-timeout-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"M7Z0W0W",onetrustDomainHash:"78ae1e90-337d-4c54-bee9-bfe8211eaebd"},{hosts:[/^tours\.aegeanair\.com$/,/^aegeanair\.getyourguide\.biz$/,/^tours-aegeanair-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"CW4CX1S",onetrustDomainHash:"1f86d905-196d-44d5-89fe-5804685fbbfd"},{hosts:[/^activities\.iberiaexpress\.com$/,/^iberiaexpress\.getyourguide\.biz$/,/^activities-iberiaexpress-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"D1IORY2",onetrustDomainHash:"557360b2-5fb9-48fe-8224-54a52b6ddbac"},{hosts:[/^activities\.transavia\.com$/,/^trips\.transavia\.com$/,/^transavia\.getyourguide\.biz$/,/^activities-transavia-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"S6FO0GK",onetrustDomainHash:"3b125998-c44e-4ee5-a879-3d2a067ef91c"},{hosts:[/^activities\.easyjet\.com$/,/^easyjet\.getyourguide\.biz$/,/^activities-easyjet-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"CNZCFDE",onetrustDomainHash:"b12779af-0dd8-4875-84b7-5030051fbf8a"},{hosts:[/^activities\.vueling\.com$/,/^vueling\.getyourguide\.biz$/,/^activities-vueling-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"NPSXJV0",onetrustDomainHash:"954d64ba-35b6-4575-87e6-47f11b401fbb"},{hosts:[/^activities\.spirit\.com$/,/^spirit\.getyourguide\.biz$/,/^activities-spirit-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"539YB0B",onetrustDomainHash:"a48fcc87-1898-4578-9b2a-df7c4d8872c9"},{hosts:[/^tours\.olympicair\.com$/,/^olympicair\.getyourguide\.biz$/,/^tours-olympicair-com\.testing[1-9]+\.gygtest\.com$/],partner_hash:"ZPVB61F",onetrustDomainHash:"0645d8ae-47fb-4ad2-85f2-6fa0f7ed5e83"},{hosts:[/^www\.the-edge-tickets\.com$/,/^www\.edge-tickets\.com$/],partner_hash:"2CB6ZAE",onetrustDomainHash:"01920a7c-194f-7bd6-81cf-ee79645c6d7a"},{hosts:[/^www\.puy-du-fou-tickets\.com$/],partner_hash:"OLICA0P",onetrustDomainHash:"01920a7d-1ccd-70fe-a153-f92b88f500dc"},{hosts:[/^www\.marina-bay-sands-tickets\.com$/],partner_hash:"GHESL9X",onetrustDomainHash:"01920a7d-5cf4-7504-80d1-895dbd06c391"},{hosts:[/^www\.up-at-the-o2-tickets\.com$/,/^www\.up-at-the-o2-tickets\.co\.uk$/],partner_hash:"XN6QIKU",onetrustDomainHash:"01920a7d-a657-78bc-9d0c-71e249ad5408"}],wt=e=>ns.find(t=>t.hosts.some(a=>a.test(e))),os=e=>wt(e)?.partner_hash,qn=e=>!!wt(e);function cs(e,t){const a=e.match(/(testing\d+)/g);return a&&a.length>0?t.replace("testing",a[0]):t}function ls(e,t,a,s,r){return{changeLocale:({commit:i,state:n},o)=>{i("setCurrentLocale",o);const c=new URLSearchParams;c.set(D.currency,n.currency),c.set(D.currency,n.currency),c.set(D.locale,o),c.set(D.visitorId,n.visitorId),c.set(D.next,window.location.pathname+window.location.search),c.set(D.shoppingCartId,a.getShoppingCartHash()||"");const l=t.getLastClickPartnerSession();l&&c.set(D.partnerSession,l);const p=$(c),m=cs(window.location.host,n.domainLocaleUrls[o]),f=`${os(window.location.host)?window.location.origin:new URL(m).origin}${n.languageSwitcherPath}?${p}`;window.location.assign(f)},changeCurrency:async({commit:i,rootGetters:n},{selectedCurrencyIso:o,enforceGiftCardRemoval:c})=>{const l=a.getShoppingCartHash();if(l)try{await s.switchShoppingCartCurrency(l,o,c,n["context/partnerSession"],n["auth/isLoggedInRealtime"])}catch(p){if(p.status!==404)throw p}i("setCurrentCurrency",o)},fetchShoppingCartMeta:async({commit:i,rootGetters:n,state:o})=>{const c=a.getShoppingCartHash();if(c)try{const l=await s.getShoppingCartMeta(c,n["auth/isLoggedInRealtime"]);if(!l||gt(l.status))a.deleteShoppingCartHashAndExpiryCookie(),i("setShoppingCartExpiration",null);else{i("setShoppingCartMeta",l);const p=l.currencyIsoCode;p&&p!==o.currency&&(h.info("Currency mismatch detected on page load [CHK-8786]",{currentCurrencyIso:o.currency,shoppingCartCurrencyIso:p,visitorId:o.visitorId}),S.increment("currency_mismatch"),i("setCurrentCurrency",p),Ha().set("currency",p))}}catch(l){l?.response?.status===404&&(a.deleteShoppingCartHashAndExpiryCookie(),i("setShoppingCartExpiration",null))}},clearSessionMessage:({commit:i})=>{i("setSessionMessage",void 0)},setAppBannerStatus:({commit:i},n)=>{i("setAppBannerStatus",n)},setShoppingCartExpiration:({commit:i},n)=>{i("setShoppingCartExpiration",n),t.setShoppingCartExpirationCookie(n)},setFutureSessionMessage:(i,{message:n})=>{t.setSessionMessageCookie(n)},updateBroadcast:({commit:i})=>{i("setDismissedBroadcast",t.getBroadcastCookie())},dismissBroadcast:(i,n)=>{t.setBroadcastCookie(n)},setIsUserInteractingWithBookingAssistant:({commit:i},n)=>{i("setIsUserInteractingWithBookingAssistant",n)},setCustomerConsentData:async({rootGetters:i})=>{const n=i["auth/customerId"]??null,o=t.getConsent();if(n&&o===void 0){const p=(await r.getCustomerConsent(n))?.traveler_profiles?.[0]?.features?.[0],m=p?.platform??void 0,g=p?.updated??void 0,f=p?.consents??null;if(f&&m&&["web","app"].includes(m)){const{marketing:T,analytics:L}=f,I=new URLSearchParams;I.set("M",String(T)),I.set("A",String(L)),I.set("U",String(g)),t.setConsent(I.toString())}}}}}var us=(e=>(e.fetchSignInMethods="fetchSignInMethods",e.facebookAccessToken="facebook_access_token",e.emailPassword="email_password",e.triggerEmailLoginLink="trigger_email_login_link",e.emailLinkAuth="email_link_auth",e.googleIdToken="google_id_token",e.googleAccessToken="google_access_token",e.googleCode="google_code",e.googleAuthCodeSignup="google_auth_code_signup",e.appleAccessToken="apple_access_token",e.googleOneTap="google_one_tap",e.updateDisplayName="update_display_name",e.logout="logout",e.claimShoppingCart="claimShoppingCart",e))(us||{});class ds{constructor(t){w(this,"_httpClient");this._httpClient=t}login(t){return this._httpClient.post(new d("traveler-frontend.tfe-login"),{idToken:t},{headers:{"X-Forwarded-Proto":"https"}})}claimShoppingCartForCustomer(t){return this._httpClient.post(new d("travelers-api.carts-claim-for-customer",{pathParams:{shoppingCartHash:t}}),{},{needsAuth:!0})}logout(){return this._httpClient.get(new d("traveler-frontend.tfe-logout"))}validateFacebookToken(t){const a=new URLSearchParams;return a.set("inspectToken",t),this._httpClient.get(new d("traveler-frontend.tfe-facebook-validate-token",{searchString:`?${a}`}))}async createCustomerFromLogin({actionOrigin:t,softOptInDisplayed:a,customerData:s}){const r={method:t,softOptInDisplayed:a,customerData:s};return await this._httpClient.post(new d("travelers-api.customer-login"),r,{needsAuth:!0,optOutOfForcedLogin:!0})}async customerLogOut(t=""){return this._httpClient.post(new d("travelers-api.customer-logout"),{},{headers:{Authorization:`Bearer ${t}`}})}fetchSignInMethodsForEmail({email:t}){return this._httpClient.post(new d("travelers-api.fetch-sign-in-methods-for-email"),{email:t})}async checkFirebaseUser(t,a){return this._httpClient.patch(new d("travelers-api.firebase-users"),{password:a,username:t})}reissueFirebaseSessionCookie({freshIdToken:t,csrfToken:a}){return this._httpClient.post(new d("traveler-frontend.refresh-session-cookie"),{freshIdToken:t,csrfToken:a},{})}async triggerEmailLoginLink({email:t,nextUri:a}){return this._httpClient.post(new d("travelers-api.trigger-login-link-email"),{continueLink:a,customerEmail:t}).then(s=>s.status===204)}}class ps{constructor(t){w(this,"_cookieManager");this._cookieManager=t}getBroadcastCookie(){return this._cookieManager.get("dismissedBroadcast")}setBroadcastCookie(t){return this._cookieManager.set("dismissedBroadcast",t)}getExperimentsCookie(){return this._cookieManager.get("experiments")}setSessionMessageCookie(t){return this._cookieManager.set("sessionMessage",t)}setShoppingCartExpirationCookie(t){return t?this._cookieManager.set("shoppingCartExpiration",t):this._cookieManager.expire("shoppingCartExpiration")}getLastClickPartnerSession(){return this._cookieManager.get("partnerSession")}setConsent(t){return this._cookieManager.set("consentTPS",t)}getConsent(){return this._cookieManager.get("consentTPS")}}const ms=function(e){return Object.prototype.toString.call(e)==="[object Object]"},hs=(e,t,a)=>{Object.keys(a).forEach(s=>{const r=`${t}[${s}]`;Ce(e,r,a[s])})},gs=(e,t,a)=>{a.forEach((s,r)=>{const i=`${t}[${r}]`;Ce(e,i,s)})},Ce=(e,t,a)=>{const s=`${t}`;Array.isArray(a)?gs(e,s,a):ms(a)?hs(e,s,a):e.append(s,`${a}`)};function ft(){const e=ae("short");if(e){const a=Ts[e]??e,s=Ze(a);if(s!==null)return s}const t=ae("long");if(t){const a=fs[t]??null,s=Ze(a);if(s!==null)return s}return h.warn({message:"[Safari TimeZone Bug] Could not calculate timeZone offset",timeZoneShort:e,timeZoneLong:t}),null}function Ze(e){if(!e)return null;if(e==="UTC"||e==="GMT"||e==="UTC+00")return 0;const t=e.match(/(GMT|UTC)(?<prefix>[+-])[0]?(?<hour>[0-9]{1,2})(:(?<minute>[0-5][0-9]))?/);if(!t?.groups)return null;const a=parseInt(t.groups.hour)*60+(parseInt(t.groups.minute)||0);return t.groups.prefix==="-"?-a:a}var we=(e=>(e.short="short",e.long="long",e))(we||{});function ae(e,t="en-US"){const a=new Date,r=new Intl.DateTimeFormat(t,{day:"numeric",timeZoneName:e==="long"?"long":"short"}).format(a),i=r.indexOf(", "),n=i>=0?r.substring(i+2).trim():null;return n||h.warn({message:"[Safari TimeZone Bug] Could not extract timezone",dateFormatted:r,userAgent:ws()??"[No UserAgent]"}),n?n.replace(/[^a-zA-Z\s]/g,"").trim():null}function ws(){return typeof navigator<"u"?navigator.userAgent:null}const fs={"Acre Time":"UTC-05","Amazon Time":"UTC-04","Armenia Time":"UTC+04","Arabia Standard Time":"UTC+03","Atlantic Standard Time":"UTC-04","Bangladesh Standard Time":"UTC+06","Bougainville Standard Time":"UTC+11","British Summer Time":"UTC+01","Central Daylight Time":"UTC-05","Cuba Daylight Time":"UTC-04","Central Standard Time":"UTC-06","China Standard Time":"UTC+08","Cuba Standard Time":"UTC-05","Eastern Caribbean Time":"UTC-04","Ecuador Time":"UTC-05","South Georgia and the South Sandwich Islands Time":"UTC-02","Gulf Standard Time":"UTC+04","Indian Standard Time":"UTC+05:30","Irish Standard Time":"UTC+01","Israel Standard Time":"UTC+02","Lord Howe Standard Time":"UTC+10:30","Lord Howe Summer Time":"UTC+11","Malaysia Standard Time":"UTC+08","Mountain Standard Time":"UTC-07","Pacific Standard Time":"UTC-08","Philippine Standard Time":"UTC+08","Samoa Standard Time":"UTC-11","Singapore Standard Time":"UTC+08","Coordinated Universal Time":"UTC+00"},Ts={ACDT:"UTC+10:30",ACST:"UTC+09:30",ACWST:"UTC+08:45",ADT:"UTC-03",AEDT:"UTC+11",AEST:"UTC+10",AFT:"UTC+04:30",AKDT:"UTC-08",AKST:"UTC-09",ALMT:"UTC+06",AMST:"UTC-03",ANAT:"UTC+12",AQTT:"UTC+05",ART:"UTC-03",AWST:"UTC+08",AZOST:"GMT",AZOT:"UTC-01",AZT:"UTC+04",BNT:"UTC+08",BIOT:"UTC+06",BIT:"UTC-12",BOT:"UTC-04",BRST:"UTC-02",BRT:"UTC-03",BTT:"UTC+06",CAT:"UTC+02",CCT:"UTC+06:30",CEST:"UTC+02",CET:"UTC+01",CHADT:"UTC+13:45",CHAST:"UTC+12:45",CHOT:"UTC+08",CHOST:"UTC+09",CHST:"UTC+10",CHUT:"UTC+10",CIST:"UTC-08",CKT:"UTC-10",CLST:"UTC-03",CLT:"UTC-04",COST:"UTC-04",COT:"UTC-05",CVT:"UTC-01",CWST:"UTC+08:45",CXT:"UTC+07",DAVT:"UTC+07",DDUT:"UTC+10",DFT:"UTC+01",EASST:"UTC-05",EAST:"UTC-06",EAT:"UTC+03",EDT:"UTC-04",EEST:"UTC+03",EET:"UTC+02",EGST:"GTM",EGT:"UTC-01",EST:"UTC-05",FET:"UTC+03",FJT:"UTC+12",FKST:"UTC-03",FKT:"UTC-04",FNT:"UTC-02",GALT:"UTC-06",GAMT:"UTC-09",GET:"UTC+04",GFT:"UTC-03",GILT:"UTC+12",GIT:"UTC-09",GYT:"UTC-04",HDT:"UTC-09",HAEC:"UTC+02",HST:"UTC-10",HKT:"UTC+08",HMT:"UTC+05",HOVST:"UTC+08",HOVT:"UTC+07",ICT:"UTC+07",IDLW:"UTC-12",IDT:"UTC+03",IOT:"UTC+03",IRDT:"UTC+04:30",IRKT:"UTC+08",IRST:"UTC+03:30",JST:"UTC+09",KALT:"UTC+02",KGT:"UTC+06",KOST:"UTC+11",KRAT:"UTC+07",KST:"UTC+09",LINT:"UTC+14",MAGT:"UTC+12",MART:"UTC-09:30",MAWT:"UTC+05",MDT:"UTC-06",MET:"UTC+01",MEST:"UTC+02",MHT:"UTC+12",MIST:"UTC+11",MIT:"UTC-09:30",MMT:"UTC+06:30",MSK:"UTC+03",MUT:"UTC+04",MVT:"UTC+05",MYT:"UTC+08",NCT:"UTC+11",NDT:"UTC-02:30",NFT:"UTC+11",NOVT:"UTC+07",NPT:"UTC+05:45",NST:"UTC-03:30",NT:"UTC-03:30",NUT:"UTC-11",NZDT:"UTC+13",NZST:"UTC+12",OMST:"UTC+06",ORAT:"UTC+05",PDT:"UTC-07",PET:"UTC-05",PETT:"UTC+12",PGT:"UTC+10",PHOT:"UTC+13",PHT:"UTC+08",PKT:"UTC+05",PMDT:"UTC-02",PMST:"UTC-03",PONT:"UTC+11",PWT:"UTC+09",PYST:"UTC-03",PYT:"UTC-04",RET:"UTC+04",ROTT:"UTC-03",SAKT:"UTC+11",SAMT:"UTC+04",SAST:"UTC+02",SBT:"UTC+11",SCT:"UTC+04",SDT:"UTC-10",SGT:"UTC+08",SLST:"UTC+05:30",SRET:"UTC+11",SRT:"UTC-03",SYOT:"UTC+03",TAHT:"UTC-10",THA:"UTC+07",TFT:"UTC+05",TJT:"UTC+05",TKT:"UTC+13",TLT:"UTC+09",TMT:"UTC+05",TRT:"UTC+03",TOT:"UTC+13",TVT:"UTC+12",ULAST:"UTC+09",ULAT:"UTC+08",UYST:"UTC-02",UYT:"UTC-03",UZT:"UTC+05",VET:"UTC-04",VLAT:"UTC+10",VOLT:"UTC+04",VOST:"UTC+06",VUT:"UTC+11",WAKT:"UTC+12",WAST:"UTC+02",WAT:"UTC+01",WEST:"UTC+01",WET:"GMT",WIB:"UTC+07",WIT:"UTC+09",WITA:"UTC+08",WGST:"UTC-02",WGT:"UTC-03",WST:"UTC+08",YAKT:"UTC+09",YEKT:"UTC+05"};function Ae(e){const t=Tt(e),a=new Date(t);return Is(a,t)}function _s(e){return`${Ss(e)}T00:00:00`}function Jn(e,t,a){const s=Ae(e);return new Intl.DateTimeFormat(t,{year:"numeric",month:"long",day:"numeric",weekday:"long",hour:"numeric",minute:"numeric"}).format(s)}function Es(e,t){return new Intl.DateTimeFormat(t,{hour:"numeric",minute:"numeric"}).format(e)}function je(e,t){const a=Ae(e);return Es(a,t)}function eo(e,t,a){const s=Ae(e);return new Intl.DateTimeFormat(t,{year:"numeric",month:"long",day:"numeric",weekday:"long"}).format(s)}function to(e,t){return e.map(s=>`${je(s.start,t)} - ${je(s.stop,t)}`).join(", ")}function Tt(e){return e.substr(0,19)}function Ss(e){return e.substr(0,10)}function Is(e,t){try{const a=typeof navigator<"u"&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent),s=ys(),r=Cs(t)-e.getTimezoneOffset(),i=s+r;if(i&&(S.increment("timezone_mismatch",{is_safari:String(a)}),h.info({message:"[Safari TimeZone Bug] TimeZone mismatch found",dateTimeZoneOffset:e.getTimezoneOffset(),intlDateTimeZoneOffset:ft(),intlDateTimeFormatTimeZone:ae(we.short),intlDateTimeFormatTimeZoneLong:ae(we.long),timeZoneOffsetDifference:i,userAgent:As()??"[No UserAgent]",isSafari:a}),a))return new Date(e.getTime()-i*60*1e3)}catch(a){h.warn({message:"[Safari TimeZone Bug] Error occurred",error:a})}return e}function ys(){const t=-new Date().getTimezoneOffset(),a=ft();return a?a-t:0}function Cs(e){return(new Date(e).getTime()-new Date(e+"Z").getTime())/(60*1e3)}function As(){return typeof navigator<"u"?navigator.userAgent:null}var vs=(e=>(e.GIFT_CODE="giftCode",e.ACCOUNT="account",e))(vs||{}),bs=(e=>(e.LOWER_PRICE="lower_price",e.SAME_PRICE="same_price",e.HIGHER_PRICE="higher_price",e.DIFFERENT_SUPPLIER_CURRENCY="different_supplier_currency",e.UNDEFINED="undefined",e))(bs||{}),Rs=(e=>(e.meetingPoint="meetingPoint",e.meetingPointPickUp="meetingPointPickUp",e.pickUp="pickUp",e))(Rs||{}),Ls=(e=>(e.sameAsPickUp="sameAsPickUp",e.sameAsMeetingPoint="sameAsMeetingPoint",e.separateLocation="separateLocation",e.none="none",e))(Ls||{}),Os=(e=>(e.emailAfterBooking="emailAfterBooking",e.exchangeForTicket="exchangeForTicket",e.inSeparateEmail="inSeparateEmail",e))(Os||{}),Us=(e=>(e.DONE="done",e))(Us||{}),fe=(e=>(e.active="active",e.cancelled="cancelled",e.deleted="deleted",e))(fe||{}),_t=(e=>(e.unconfirmed="unconfirmed",e.confirmed="confirmed",e.cancelled="cancelled",e))(_t||{}),Et=(e=>(e.date="date",e.datetime="datetime",e))(Et||{}),Ds=(e=>(e.timeSelected="timeSelected",e.timeBooked="timeBooked",e.timeActivated="timeActivated",e))(Ds||{});const b=10*1e3;class ve{constructor(t){w(this,"_httpClient");this._httpClient=t}createShoppingCart(t,a){return this._httpClient.post(new d("travelers-api.carts-create"),{},{needsAuth:a,headers:{"partner-hash":t.partnerHash??"","partner-cmp":t.cmp??"","partner-visitor-id":t.partnerVisitorId??""}}).then(s=>s.data.shoppingCart).catch(this.createErrorHandler("Error creating shopping cart"))}getShoppingCart(t,a){return this._httpClient.get(new d("travelers-api.shopping-cart-page",{pathParams:{shoppingCartHash:t}}),{needsAuth:a,timeout:b}).then(s=>s.data.shoppingCart).catch(this.createErrorHandler(`Error fetching shopping cart ${t}`))}getShoppingCartMeta(t,a){return this._httpClient.get(new d("travelers-api.carts-get-meta",{pathParams:{shoppingCartHash:t}}),{needsAuth:a}).then(s=>s.data.shoppingCartMeta)}addItemToCart(t,a,s,r){return this._httpClient.post(new d("travelers-api.carts-items",{pathParams:{shoppingCartHash:t}}),a,{needsAuth:r,headers:{"partner-hash":s.partnerHash??"","partner-cmp":s.cmp??"","partner-visitor-id":s.partnerVisitorId??""},timeout:b}).then(i=>i.data.shoppingCart).catch(this.createErrorHandler(`Error adding shopping cart item to cart ${t}`))}deleteShoppingCartItem(t,a,s,r,i){return this._httpClient.delete(new d("travelers-api.carts-item",{pathParams:{shoppingCartHash:t,shoppingCartItemId:a},searchString:i||""}),{needsAuth:r,headers:{"partner-hash":s.partnerHash??"","partner-cmp":s.cmp??"","partner-visitor-id":s.partnerVisitorId??""},timeout:b}).then(n=>n.data.shoppingCart).catch(this.createErrorHandler(`Error deleting shopping cart item ${a} from cart ${t}`))}editShoppingCartItem(t,a,s,r,i){return this._httpClient.put(new d("travelers-api.carts-item",{pathParams:{shoppingCartHash:t,shoppingCartItemId:a}}),s,{needsAuth:i,headers:{"partner-hash":r.partnerHash??"","partner-cmp":r.cmp??"","partner-visitor-id":r.partnerVisitorId??""},timeout:b}).then(n=>n.data.shoppingCart).catch(this.createErrorHandler(`Error editing shopping cart item ${a} of cart ${t}`))}deleteShoppingCartItemAddon(t,a,s,r,i){return this._httpClient.delete(new d("travelers-api.carts-addon",{pathParams:{shoppingCartHash:t,shoppingCartItemId:a,addonId:s}}),{needsAuth:i,headers:{"partner-hash":r.partnerHash??"","partner-cmp":r.cmp??"","partner-visitor-id":r.partnerVisitorId??""},timeout:b}).then(n=>n.data.shoppingCart).catch(this.createErrorHandler(`Error deleting addon ${s} for item ${a} from cart ${t}`))}bookShoppingCartItemAddon(t,a,s,r,i,n){return this._httpClient.post(new d("travelers-api.carts-addons",{pathParams:{shoppingCartHash:t,shoppingCartItemId:a}}),{count:r,addonId:s},{needsAuth:n,headers:{"partner-hash":i.partnerHash??"","partner-cmp":i.cmp??"","partner-visitor-id":i.partnerVisitorId??""},timeout:b}).then(o=>o.data.shoppingCart).catch(this.createErrorHandler(`Error booking addon ${s} for item ${a} from cart ${t}`))}redeemCodeForShoppingCart(t,a,s,r){return this._httpClient.post(new d("travelers-api.carts-redeemable-codes",{pathParams:{shoppingCartHash:t}}),{redeemableCode:a},{needsAuth:r,headers:{"partner-hash":s.partnerHash??"","partner-cmp":s.cmp??"","partner-visitor-id":s.partnerVisitorId??""},timeout:b}).then(i=>i.data.shoppingCart).catch(this.createErrorHandler(`Error redeeming code ${a} for shopping cart ${t}`))}deleteRedeemableCodeFromShoppingCart(t,a,s,r){return this._httpClient.delete(new d("travelers-api.carts-redeemable-code",{pathParams:{shoppingCartHash:t,redeemableCode:a}}),{headers:{"partner-hash":s.partnerHash??"","partner-cmp":s.cmp??"","partner-visitor-id":s.partnerVisitorId??""},needsAuth:r,timeout:b}).then(i=>i.data.shoppingCart).catch(this.createErrorHandler(`Error deleting redeemable code ${a} from shopping cart ${t}`))}switchShoppingCartCurrency(t,a,s,r,i){return this._httpClient.post(new d("travelers-api.carts-currency",{pathParams:{shoppingCartHash:t}}),{currencyIsoCode:a,enforceGiftCardRemoval:s},{needsAuth:i,headers:{"partner-hash":r.partnerHash??"","partner-cmp":r.cmp??"","partner-visitor-id":r.partnerVisitorId??""},timeout:b}).then(n=>n.data.shoppingCart).catch(this.createErrorHandler(`Error switching currency for shopping cart ${t}`))}fetchAvailabilities(t){return this._httpClient.get(new d("travelers-api.aggregator-activities-availabilities",{pathParams:{activityId:t}})).then(a=>a.data)}fetchAvailableOptions(t){const a=`${t.activityId}`,s=`${t.activityOptionId}`,r=new URLSearchParams;return r.append("date",t.date),t.localeCode&&r.append("language",`${t.localeCode}`),Ce(r,"categories",t.categories),r.append("activityId",a),r.append("optionId",s),this._httpClient.get(new d("travelers-api.sadp-available-options",{pathParams:{activityId:a}}),{params:r}).then(i=>i.data)}getCustomerBillingInformation(t,a){return this._httpClient.get(new d("travelers-api.carts-customer-billing-information",{pathParams:{shoppingCartHash:t}}),{needsAuth:a}).then(s=>s.data.customerBillingInformation).catch(this.createErrorHandler(`Error getting customer billing information for shopping cart ${t}`))}getTourOptionVacancies(t,a){let s=a.startTime;a.startTimeType===Et.date&&(s=_s(s));const r=Tt(s),i=new d("inventory.tour-option-time-slots",{pathParams:{tourOptionId:t.toString()},searchString:`?start=${r}&end=${r}`});return this._httpClient.get(i,{timeout:500}).then(n=>n.data.time_slots?.[0]?.vacancies??0).catch(()=>null)}expireShoppingCart(t,a){return this._httpClient.post(new d("travelers-api.carts-expire",{pathParams:{shoppingCartHash:t}}),void 0,{needsAuth:a}).then(s=>s.data.cartExpiredData).catch(this.createErrorHandler(`Error trying to expire the shopping cart ${t}`))}createErrorHandler(t){return a=>{throw(a?.response?.status??null)===404&&t&&h.error({error:a},t),a?.response?.data?a?.response?.data:a}}}class St{constructor(t,a){w(this,"_httpClient");w(this,"_cookieManager");this._httpClient=t,this._cookieManager=a}async getShoppingCartHashAndCreateIfNotExists(t,a){return this.getShoppingCartHash()||await this.createAndPersistShoppingCart(t,a)||""}getShoppingCartHash(){return this._cookieManager.get("shoppingCartId")}deleteShoppingCartHashAndExpiryCookie(){this._cookieManager.expire("shoppingCartId"),this._cookieManager.expire("shoppingCartExpiration")}persistShoppingCartHash(t){this._cookieManager.set("shoppingCartId",t,{httpOnly:!1})}async createAndPersistShoppingCart(t,a){const i=(await new ve(this._httpClient).createShoppingCart(t,a)).shoppingCartHash;return this.persistShoppingCartHash(i),i}}const ks={currencies:e=>e.currencies,topCurrencies:e=>e.topCurrencies,currency:e=>e.currency,domainLocaleUrls:e=>e.domainLocaleUrls,isMobileDevice:e=>e.isMobileDevice,isTabletDevice:e=>e.isTabletDevice,isMobileOrTabletDevice:e=>e.isMobileDevice||e.isTabletDevice,isWebView:e=>e.isWebView,anonymizedIp:e=>e.anonymizedIp,languageSwitcherPath:e=>e.languageSwitcherPath,locale:e=>e.locale,defaultLocale:e=>e.locale,shoppingCartMeta:e=>e.shoppingCartMeta,firebaseConfiguration:e=>e.firebaseConfiguration,locales:e=>e.locales,localePath:e=>e.localePath,visitorId:e=>e.visitorId,partnerSession:e=>e.partnerSession,partnerHash:e=>e.partnerSession.partnerHash,gettexts:e=>e.gettexts,assetsCdnUrl:e=>e.assetsCdnUrl,designSystemCdnUrl:e=>e.designSystemCdnUrl,compiledAssetsUrl:e=>e.compiledAssetsUrl,hasAppBanner:e=>e.hasAppBanner,isDevelopment:e=>e.isDevelopment,isProduction:e=>e.isProduction,getCollectorHost:e=>e.collectorHost,topPaymentMethods:e=>e.topPaymentMethods,eventDataSource:e=>e.eventDataSource,geoIpData:e=>e.geoIpData,canonical:e=>e.currentUrl,currentUrl:e=>e.currentUrl,host:e=>e.host,customUtm:e=>e.customUtm,sessionMessage:e=>e.sessionMessage,brandedDomain:e=>e.brandedDomain,debugGettextKeys:e=>e.debugGettextKeys,isRobot:e=>e.isRobot,isSeoPageExperience:e=>e.isSeoPageExperience,userAgent:e=>e.userAgent,doNotTrackBrowserSignal:e=>e.doNotTrackBrowserSignal,shoppingCartExpiration:e=>e.shoppingCartExpiration,currentCurrencyItem:e=>{const{currencies:t=[],currency:a}=e;return t.filter(r=>r.iso===a)[0]||{iso:a}},htmlDir:e=>e.htmlDir,currentLocaleItem:e=>{const{locales:t=[],locale:a}=e;return t.filter(r=>r.iso===a)[0]||{iso:a}},httpRequest:e=>({currency:e.currency,locale:e.locale,geoIpCountry:e.geoIpData.country,partnerId:e.eventDataSource.partnerId,defaultLocale:e.defaultLocale,httpReferer:e.httpReferer}),mobileDeviceOS:e=>/windows phone/i.test(e.userAgent)?"Windows Phone":/android|Android/i.test(e.userAgent)?"android":/iPad|iPhone|iPod/.test(e.userAgent)?"ios":"unknown",isUserInteractingWithBookingAssistant:e=>e.isUserInteractingWithBookingAssistant};var _=(e=>(e.creditcard="creditcard",e.paypal="paypal",e.ideal="ideal",e.sofort="sofort",e.applepay="applepay",e.googlepay="googlepay",e.dotpay="dotpay",e.klarna="klarna",e.bancontact="bancontact",e.storedcreditcard="storedcreditcard",e.none="none",e.masterbill="masterbill",e.rnpl="reserve",e.rnpl_stored_cc="reserve_with_stored_credit_card_v2",e.vipps="vipps",e.bizum="bizum",e.blik="blik",e.pix="pix",e.paybybank="paybybank",e.twint="twint",e.mbway="mbway",e.mobilepay="mobilepay",e))(_||{}),y=(e=>(e.visa="visa",e.mastercard="mastercard",e.mastercardmc="mc",e.maestro="maestro",e.cartebancaire="cartebancaire",e.bancontact="bcmc",e.bijcard="bijcard",e.amex="amex",e.bcmc="bcmc",e.jcb="jcb",e.discover="discover",e.visadankort="visadankort",e.visaalphabankbonus="visaalphabankbonus",e))(y||{});const ao="paymentError",so="selectedPaymentMethodIdentifier";class Ps{constructor(){w(this,"paymentMethods");const t=[{id:y.mastercard,name:"Mastercard",iconImgSrc:"mastercard.svg",isTop:!0},{id:y.mastercardmc,name:"Mastercard",iconImgSrc:"mastercard.svg",isTop:!1},{id:y.visa,name:"Visa",iconImgSrc:"visa.svg",isTop:!0},{id:y.maestro,name:"Maestro",iconImgSrc:"maestro.svg",isTop:!0},{id:y.amex,name:"American Express",iconImgSrc:"amex.svg",isTop:!0},{id:y.jcb,name:"Jcb",iconImgSrc:"jcb.svg",isTop:!0},{id:y.discover,name:"Discover",iconImgSrc:"discover.svg",isTop:!0},{id:y.cartebancaire,name:"Cartes Bancaires",iconImgSrc:"cartebancaire.svg",isTop:!1},{id:y.bancontact,name:"Bancontact",iconImgSrc:"bancontact.svg",isTop:!1},{id:y.visadankort,name:"Visa Dankort",iconImgSrc:"visadankort.svg",isTop:!1},{id:y.visaalphabankbonus,name:"Visa",iconImgSrc:"visa.svg",isTop:!1}];this.paymentMethods=[{id:_.paypal,name:"Paypal",iconImgSrc:"paypal_border.svg",isTop:!0},{id:_.creditcard,name:"CreditCard",isTop:!0,brands:t},{id:_.rnpl,name:"ReserveNowPayLater",isTop:!1,brands:t},{id:_.rnpl_stored_cc,name:"ReserveNowPayLater With Stored Card",isTop:!1,brands:t},{id:_.sofort,name:"Sofort",iconImgSrc:"sofort.svg",isTop:!0},{id:_.klarna,name:"Klarna",iconImgSrc:"klarna.svg",isTop:!0},{id:_.googlepay,name:"Google Pay",iconImgSrc:"googlepay.svg",isTop:!0},{id:_.applepay,name:"Apple Pay",iconImgSrc:"applepay.svg",isTop:!0},{id:_.ideal,name:"Ideal",iconImgSrc:"ideal.svg",isTop:!1},{id:_.dotpay,name:"DotPay",iconImgSrc:"dotpay.svg",isTop:!1},{id:_.bancontact,name:"Bancontact",isTop:!0,brands:[{id:y.bancontact,name:"Bancontact",iconImgSrc:"bancontact.svg",isTop:!0}]},{id:_.vipps,name:"Vipps",iconImgSrc:"vipps.svg",isTop:!1},{id:_.bizum,name:"Bizum",iconImgSrc:"bizum.svg",isTop:!1},{id:_.blik,name:"Blik",iconImgSrc:"blik.svg",isTop:!1},{id:_.pix,name:"Pix",iconImgSrc:"pix.svg",isTop:!1},{id:_.paybybank,name:"Pay by Bank",iconImgSrc:"paybybank.svg",isTop:!1},{id:_.twint,name:"Twint",iconImgSrc:"twint.svg",isTop:!1},{id:_.mbway,name:"Mbway",iconImgSrc:"mb-way.svg",isTop:!1},{id:_.mobilepay,name:"Mobilepay",iconImgSrc:"mobilepay.svg",isTop:!1}]}getPaymentMethods(){return this.paymentMethods}getTopPaymentMethods(){return this.paymentMethods.filter(t=>t.isTop).map(t=>({...t,brands:t.brands?.filter(a=>a.isTop)}))}}const Ns={setFirebaseConfiguration:(e,t)=>{e.firebaseConfiguration=Object.freeze(t)},setExternalApiUrls:(e,t)=>{e.externalApiUrls=t},setCurrencies:(e,t)=>{e.currencies=t.sort((a,s)=>a.iso<s.iso?-1:1)},setTopCurrencies:(e,t)=>{e.topCurrencies=t},setCurrentCurrency:(e,t)=>{e.currency=t},setCurrentLocale:(e,t)=>{e.locale=t},setDefaultLocale:(e,t)=>{e.defaultLocale=t},setDomainLocaleUrls:(e,t)=>{e.domainLocaleUrls=Object.freeze(t)},setEventDataSource:(e,{containerName:t,rawEventDataSource:a,opts:s={}})=>{const r={containerName:t,...a,...s};e.eventDataSource=Object.freeze(r)},setAllowLoginOnFishfarm:(e,t)=>{e.allowLoginOnFishfarm=t},setAppBannerStatus:(e,t)=>{e.hasAppBanner=t},setDevelopmentEnvironment:(e,t)=>{e.isDevelopment=t},setProductionEnvironment:(e,t)=>{e.isProduction=t},setShouldUseProductionApiOnTestingEnv:(e,t)=>{e.shouldUseProductionApiOnTestingEnv=t},setLanguageSwitcherPath:(e,t)=>{e.languageSwitcherPath=t},setLocales:(e,t)=>{const s=t.filter(r=>r.enabled).sort(r=>r.iso===e.locale?-1:1);e.locales=s},setLocalePath:(e,t)=>{e.localePath=t},setGettexts:(e,t)=>{e.gettexts={...t}},setPlatform:(e,t)=>{e.platform=t},setMobileDevice:(e,t)=>{e.isMobileDevice=t},setHttpReferer:(e,t)=>{e.httpReferer=t},setTabletDevice:(e,t)=>{e.isTabletDevice=t},setWebView:(e,t)=>{e.isWebView=t},setDesktopDevice:(e,t)=>{e.isDesktopDevice=t},setIsOfficeIp:(e,t)=>{e.isOfficeIp=t},setIsSyntheticRequest:(e,t)=>{e.isSyntheticRequest=t},setIsRobot:(e,t)=>{e.isRobot=t},setIsSeoPageExperience:(e,t)=>{e.isSeoPageExperience=t},setAnonymizedIp:(e,t)=>{e.anonymizedIp=t},setUserAgent:(e,t)=>{e.userAgent=t},setDoNotTrackBrowserSignal:(e,t)=>{e.doNotTrackBrowserSignal=t},setAssetsCdnUrl:(e,t)=>{e.assetsCdnUrl=t},setDesignSystemCdnUrl:(e,t)=>{e.designSystemCdnUrl=t},setCompiledAssetsUrl:(e,t)=>{e.compiledAssetsUrl=t},setVisitorId:(e,t)=>{e.visitorId=t},setPartnerSession:(e,t)=>{e.partnerSession=t},setOs:(e,t)=>{e.os=t},setCustomUtm:(e,t)=>{e.customUtm=t},setCollectorHost:(e,t)=>{e.collectorHost=t},setExperimentationHost:(e,t)=>{e.experimentationHost=t},setExperimentationImpressions:(e,t)=>{e.experimentationImpressions=t},setRecaptchaSiteId:(e,t)=>{e.recaptchaSiteId=t},setTurnstileSiteId:(e,t)=>{e.turnstileSiteId=t},setShoppingCartMeta:(e,t)=>{e.shoppingCartMeta=t},setTopPaymentMethods:e=>{const t=new Ps;e.topPaymentMethods=t.getTopPaymentMethods()},setGeoIpData:(e,t)=>{e.geoIpData=Object.freeze(t)},setCurrentUrl:(e,t)=>{e.currentUrl=t},setHost:(e,t)=>{e.host=t},setSessionMessage:(e,t)=>{e.sessionMessage=t},setShoppingCartExpiration:(e,t)=>{t&&new Date(t).getTime()>new Date().getTime()?e.shoppingCartExpiration=t:e.shoppingCartExpiration=null},setDismissedBroadcast:(e,t)=>{e.dismissBroadcast=t},setBrandedDomain:(e,t)=>{e.brandedDomain=t},setDebugGettextKeys:(e,t)=>{e.debugGettextKeys=t},setHtmlDir:(e,t)=>{e.htmlDir=t},setCSPNonce:(e,t)=>{e.cspNonce=t},setIsUserInteractingWithBookingAssistant(e,t){e.isUserInteractingWithBookingAssistant=t}};class Ms{constructor(t){w(this,"httpClient");this.httpClient=t}createErrorHandler(t,a){h.error({error:t},a)}async getCustomerConsent(t){try{return await this.httpClient.get(new d("traveler-profile.traveler-data",{searchString:`?customerIds=${t}&features=customer_consents_v0`})).then(a=>a.data)}catch(a){return this.createErrorHandler(a,`Error ${a} on getting consent for customer: ${t}`),null}}}const Hs=()=>({httpReferer:void 0,allowLoginOnFishfarm:!0,externalApiUrls:null,assetsCdnUrl:"",designSystemCdnUrl:"",containerName:"",compiledAssetsUrl:"",currencies:[],currency:"",domainLocaleUrls:{},eventDataSource:{},firebaseConfiguration:{apiKey:"",authDomain:"",databaseURL:"",projectId:"",messagingSenderId:"",appId:""},recaptchaSiteId:"",turnstileSiteId:"",hasAppBanner:!1,isDevelopment:!1,isProduction:!0,shouldUseProductionApiOnTestingEnv:!1,isMobileDevice:!1,isTabletDevice:!1,isDesktopDevice:!0,isWebView:!1,anonymizedIp:"",platform:"desktop",isOfficeIp:!1,isSyntheticRequest:!1,languageSwitcherPath:"",locales:[],locale:"",localePath:void 0,defaultLocale:"",gettexts:{},userAgent:"",doNotTrackBrowserSignal:!1,visitorId:"",partnerSession:{},partnerHash:"",collectorHost:"",experimentationHost:"",experimentationImpressions:!1,topCurrencies:[],topPaymentMethods:[],geoIpData:{},currentUrl:"",host:"",os:"",customUtm:[],sessionMessage:void 0,dismissBroadcast:"",shoppingCartMeta:{},brandedDomain:void 0,debugGettextKeys:!1,isRobot:!1,isSeoPageExperience:!1,shoppingCartExpiration:null,cspNonce:"",isUserInteractingWithBookingAssistant:!1,htmlDir:"ltr"});function ro(e,t){return{namespaced:!0,state:Hs,getters:ks,mutations:Ns,actions:ls(new ds(e),new ps(t),new St(e,t),new ve(e),new Ms(e))}}function io(e){return{partnerHash:e.partnerHash,cmp:e.campaign,partnerVisitorId:e.partnerVisitorId,partnerSourceId:e.partnerSourceId,showTaBanner:!!e.showTaBanner}}const ue={"en-US":"https://www.getyourguide.com","en-AU":"https://www.getyourguide.com/en-au","en-GB":"https://www.getyourguide.co.uk","ar-EG":"https://www.getyourguide.com/ar-eg","bg-BG":"https://www.getyourguide.com/bg-bg","ca-ES":"https://www.getyourguide.com/ca-es","cs-CZ":"https://www.getyourguide.com/cs-cz","da-DK":"https://www.getyourguide.dk","de-DE":"https://www.getyourguide.de","de-AT":"https://www.getyourguide.com/de-at","de-CH":"https://www.getyourguide.com/de-ch","el-GR":"https://www.getyourguide.com/el-gr","es-ES":"https://www.getyourguide.es","es-MX":"https://www.getyourguide.com/es-mx","et-EE":"https://www.getyourguide.com/et-ee","fi-FI":"https://www.getyourguide.com/fi-fi","fr-FR":"https://www.getyourguide.com/fr-fr","he-IL":"https://www.getyourguide.com/he-il","hr-HR":"https://www.getyourguide.com/hr-hr","hu-HU":"https://www.getyourguide.com/hu-hu","id-ID":"https://www.getyourguide.com/id-id","it-IT":"https://www.getyourguide.it","ja-JP":"https://www.getyourguide.jp","ko-KR":"https://www.getyourguide.com/ko-kr","lt-LT":"https://www.getyourguide.com/lt-lt","lv-LV":"https://www.getyourguide.com/lv-lv","ms-MY":"https://www.getyourguide.com/ms-my","nl-NL":"https://www.getyourguide.nl","no-NO":"https://www.getyourguide.com/no-no","pl-PL":"https://www.getyourguide.pl","pt-BR":"https://www.getyourguide.com/pt-br","pt-PT":"https://www.getyourguide.com/pt-pt","ro-RO":"https://www.getyourguide.com/ro-ro","ru-RU":"https://www.getyourguide.ru","sk-SK":"https://www.getyourguide.com/sk-sk","sl-SI":"https://www.getyourguide.com/sl-si","sr-RS":"https://www.getyourguide.com/sr-rs","sv-SE":"https://www.getyourguide.se","th-TH":"https://www.getyourguide.com/th-th","tr-TR":"https://www.getyourguide.com/tr-tr","uk-UA":"https://www.getyourguide.com/uk-ua","zh-CN":"https://www.getyourguide.com/zh-cn","zh-HK":"https://www.getyourguide.com/zh-hk","zh-TW":"https://www.getyourguide.com/zh-tw"},Gs="en-US",It=e=>{const t=ue[e];if(t)return t;const s=Object.entries(ue).find(([r])=>r.substring(0,2)===e)?.[1];return s||ue[Gs]},be=(...e)=>e.filter(Boolean).join("/").replace(/(:\/)|(\/)+/g,"$1$2"),no=(e,t)=>{if(!t.startsWith("/"))return t;const a=It(e);return be(a,t)},oo=e=>{const t=It(e);return be(t,"/contact/")},xs=(e={})=>Object.keys(e).filter(t=>!R(e[t])).map(t=>t+"="+e[t]).join("&"),Ws=/^\/[a-z]{2}-[a-z]{2}(\/.*)?$/i;function Fs(e,t){return!e||!t||!t.startsWith("/")?t??"":t.match(Ws)?t:be("/",e.toLowerCase(),t)}const Bs=/&(nbsp|amp|quot|lt|gt);/g,$s={nbsp:" ",amp:"&",quot:'"',lt:"<",gt:">"},Vs=(e="")=>e?.toString().replace(Bs,(t,a)=>$s[a]).replace(/&#(\d+);/gi,(t,a)=>{const s=parseInt(a,10);return String.fromCharCode(s)}),Ks=e=>JSON.stringify(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),co=e=>e?['window["dataLayer"] = window["dataLayer"] || [];',`window["dataLayer"] = window["dataLayer"].filter(function (item) {        var oneTrustEmptyValue = ",,";        if (!item.OnetrustActiveGroups && !item.OptanonActiveGroups) return item;        if (item.OnetrustActiveGroups === oneTrustEmptyValue || item.OptanonActiveGroups === oneTrustEmptyValue) return;
        return item;      });`,`window.dataLayer.push(${Ks(e)});`].map(s=>s).join(""):null,Qe=e=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)};var yt=(e=>(e.SET_TRANSLATION_DATA="SET_TRANSLATION_DATA",e))(yt||{});function zs(e){return{fetchTranslations:async({commit:t},{keys:a,locale:s})=>{const r={};return a.forEach(i=>{e?.[s]&&(r[i]=e[s][i])}),t("SET_TRANSLATION_DATA",{locale:s,values:r}),Promise.resolve(r)}}}const Ys={getByLocale:e=>(t,a)=>e.translations[t]?.[a]??""},Zs={[yt.SET_TRANSLATION_DATA](e,t){const{locale:a,values:s}=t;e.translations[a]={...e.translations[a],...s}}},js=()=>({translations:{}});function lo(e){return{namespaced:!0,state:js,actions:zs(e),getters:Ys,mutations:Zs}}var Re=(e=>(e.SET_REDEEM_CODE="SET_REDEEM_CODE",e))(Re||{}),H=(e=>(e[e.None=0]="None",e[e.CustomerEngagementPromotion=1]="CustomerEngagementPromotion",e[e.PartnerPromotion=2]="PartnerPromotion",e))(H||{});const Le="redeemed_codes",Oe="redeemed_codes_last_updated",Ue="promotion_type",Ct="partner_promotion_params",Qs=e=>e.toJSON(),Xs=e=>new Date(e),Xe=e=>{if(!e.redeemedCodes||e.redeemedCodes.length===0)return;const t=JSON.stringify(e.redeemedCodes);window.localStorage.setItem(Le,t),window.localStorage.setItem(Oe,Qs(new Date))},uo=()=>{const e=window.localStorage.getItem(Le);return e?JSON.parse(e):[]},qe=()=>{window.localStorage.removeItem(Le),window.localStorage.removeItem(Oe)},po=e=>{const t=window.localStorage.getItem(Oe)||"",a=Xs(t);return a?(new Date().getTime()-a.getTime())/1e3>e:!1},Je=e=>{e&&window.localStorage.setItem(Ue,e.toString())},mo=()=>{const e=window.localStorage.getItem(Ue);return e?Number.parseInt(e):H.None},qs=()=>{window.localStorage.removeItem(Ue)},Js=e=>{e&&window.localStorage.setItem(Ct,JSON.stringify(e))},er=()=>{window.localStorage.removeItem(Ct)};function tr(e,t,a){const{SET_REDEEM_CODE:s}=Re,r=(i,n)=>{h.error({error:n},`Missing promotions section: ${i}`)};return{applyPromotion:async({dispatch:i},{promoCode:n,partnerHash:o,cmp:c})=>{try{let l=!1;return n&&(l=await i("validateAndApplyCEPromotion",n)),o&&!l&&(l=await i("validateAndApplyPartnerPromotion",{partnerHash:o,cmp:c})),l}catch(l){return r("RedeemCodeValidationFailed",l),await i("resetPromotionsState"),!1}},validateAndApplyCEPromotion:async({dispatch:i},n)=>{const o=n.replace("?partner_id=3F441","");return await i("applyRedeemCode",{promotionType:H.CustomerEngagementPromotion,promotionCode:o})},validateAndApplyPartnerPromotion:async({dispatch:i},{partnerHash:n,cmp:o})=>{const c=await a.getPartnerPromotion(n,o);if(c){const{promoCode:l,promoMessage:p}=c,m=await i("applyRedeemCode",{promotionType:H.PartnerPromotion,promotionCode:l,cmp:o,promotionMessage:p});return Js({partnerHash:n,cmp:o}),m}return!1},applyRedeemCode:async({commit:i,dispatch:n,rootGetters:o},{promotionCode:c,promotionMessage:l,promotionType:p})=>{try{const m=o["context/partnerSession"],g=await e.getShoppingCartHashAndCreateIfNotExists(m,o["auth/isLoggedInRealtime"]),f=await t.getShoppingCart(g,o["auth/isLoggedInRealtime"]),E=f.redeemedCodes?.find(T=>T.giftCardHash===c||T.giftCardHashFormatted===c);if(E)Xe(f),Je(p),i(s,{isRedeemedCodeApplied:!0,isRedeemedCodeInvalid:!1,redeemCodeExpiryDate:E.dateOfExpiry,promotionMessage:l,promotionType:p});else{Je(p);const T=await t.redeemCodeForShoppingCart(g,c,m,o["auth/isLoggedInRealtime"]),L=T.redeemedCodes?.find(I=>I.giftCardHash===c||I.giftCardHashFormatted===c);i(s,{isRedeemedCodeApplied:!0,isRedeemedCodeInvalid:!1,redeemCodeExpiryDate:L?.dateOfExpiry,promotionMessage:l,promotionType:p}),L?Xe(T):qe()}return!0}catch(m){return r("RedeemCodeApplyFailed",m),await n("resetPromotionsState"),!1}},resetPromotionsState:async({commit:i})=>{i(s,{isRedeemedCodeApplied:!1,isRedeemedCodeInvalid:!0,redeemCodeExpiryDate:null,promotionMessage:null,promotionType:H.None}),qe(),qs(),er()}}}const ar={isRedeemedCodeApplied:e=>e.isRedeemedCodeApplied,isRedeemedCodeInvalid:e=>e.isRedeemedCodeInvalid,redeemCodeExpiryDate:e=>e.redeemCodeExpiryDate,promotionType:e=>e.promotionType,promotionMessage:e=>e.promotionMessage},{SET_REDEEM_CODE:sr}=Re,rr={[sr](e,t){const{isRedeemedCodeApplied:a,redeemCodeExpiryDate:s,isRedeemedCodeInvalid:r,promotionMessage:i,promotionType:n}=t;e.isRedeemedCodeInvalid=r,e.isRedeemedCodeApplied=a,e.redeemCodeExpiryDate=s,e.promotionMessage=i,e.promotionType=n}},ir=["CD951","DEF9D","C0B32","3F441","6E5C6"];function nr(e){return Array.isArray(e)?e[e.length-1]:e}class or{constructor(t){w(this,"_httpClient");w(this,"_cache");this._httpClient=t,this._cache=new Map}getCacheKey(t,a){return`${t}-${a||""}`}getPartnerPromotion(t,a){const s=this.getCacheKey(t,a),r=this._cache.get(s);if(r)return r;const i=new d("travelers-api.partner-promotion",{pathParams:{partnerHash:nr(t)||""}});if(a){const c=new URLSearchParams;c.set("cmp",a),i.searchString=`?${c.toString()}`}const n=Object.keys(this._httpClient.defaultClientHeaders).filter(c=>c!=="accept-language"),o=this._httpClient.get(i,{headers:Object.fromEntries(n.map(c=>[c,void 0]))}).then(c=>c.data).catch(c=>{if(c.response?.status===404)return null;throw c});return o&&this._cache.set(s,o),o}}const cr=()=>({isRedeemedCodeApplied:!1,isRedeemedCodeInvalid:!1,redeemCodeExpiryDate:null,promotionType:H.None,promotionMessage:null});function ho(e,t){return{namespaced:!0,state:cr,actions:tr(new St(e,t),new ve(e),new or(e)),getters:ar,mutations:rr}}const go={PRICE:"price",COLLECTION:"collection",RATING:"reviewRatingRanges",ACTIVITY_TYPE:"activityType"},A={price:{parameter:"price_range",delimiter:"|",title:"Price",getTextKey:"pTour_search Price",searchParameter:"price"},timeRanges:{parameter:"time_range",delimiter:",",title:"time",getTextKey:"pSearch Time facet title",searchParameter:"timeRanges"},categories:{parameter:"ct",searchParameter:"categories",delimiter:"-",title:"Categories",getTextKey:"pTour_search Filter By Category"},locations:{parameter:"lc",searchParameter:{locations:"locations",countries:"countries"},delimiter:"-",title:"Destinations",getTextKey:"pTour_search Filter By Location",prefix:{location:"l",country:"c"}},departsFrom:{parameter:"departsFrom",searchParameter:"departsFrom",delimiter:"-",title:"Destinations",getTextKey:"pSearch filters destinations subfacet departsfrom",prefix:{location:"l",country:"c"}},languages:{parameter:"lng",searchParameter:"languages",delimiter:"|",title:"Languages",getTextKey:"pTour_search Language"},durationRanges:{parameter:"dur",searchParameter:"durationRanges",delimiter:"|",title:"Duration",getTextKey:"pTour_search Filter By Duration"},services:{parameter:"srv",searchParameter:"services",delimiter:"|",title:"Services",getTextKey:"pTour_search Filter By Services"},deals:{parameter:"deals",searchParameter:"deals",delimiter:"|",title:"Deals",getTextKey:"pTour_search Filter By Deals"},dealsFirst:{parameter:"dealsFirst",searchParameter:"dealsFirst",delimiter:"|",title:"",getTextKey:""},id:{parameter:"id",searchParameter:"activityId",delimiter:"-",title:"ActivityId",filter:e=>!Number.isNaN(+e),getTextKey:""},themes:{parameter:"themes",searchParameter:"themes",delimiter:"-",title:"Themes",getTextKey:""},poiTypes:{parameter:"poi_types",searchParameter:"poiTypes",delimiter:"-",title:"PoiTypes",getTextKey:""},audiences:{parameter:"audiences",searchParameter:"audiences",delimiter:"-",title:"Audiences",getTextKey:""},transportationTypes:{parameter:"transportation_types",searchParameter:"transportationTypes",delimiter:"-",title:"TransportationTypes",getTextKey:""},activityType:{parameter:"activity_type",searchParameter:"activityType",delimiter:"-",title:"ActivityType",getTextKey:""},collection:{parameter:"collectionId",searchParameter:"collectionId",delimiter:",",title:"CollectionId",getTextKey:""},latitude:{parameter:"latitude",searchParameter:"latitude",delimiter:"|",title:"latitude",getTextKey:""},longitude:{parameter:"longitude",searchParameter:"longitude",delimiter:"|",title:"longitude",getTextKey:""},radius:{parameter:"radius",searchParameter:"radius",delimiter:"|",title:"radius",getTextKey:""},reviewRatingRanges:{parameter:"reviewRatingRanges",searchParameter:"reviewRatingRanges",delimiter:",",title:"ReviewRatings",getTextKey:""}};function wo(e){return e.type==="locations"||e.type==="departsFrom"?`${A.locations?.prefix?.location}${e.id}`:e.id}const lr=[A.departsFrom?.searchParameter],et=20,de={date_from:"dateFrom",date_to:"dateTo",time_range:"timeRanges",q:"q"},ur={"8-12":"08:00-12:00","12-17":"12:00-17:00","17-0":"17:00-00:00"},Te=",";function dr(){return Object.entries(A).reduce((t,[a,s])=>({[s?.parameter]:{filterType:a,...s},...t}),{})}const fo=e=>e.replace("?","").split("&").reduce((t,a)=>{const s=a.split("=")[0],r=a.split("=")[1];return t[s]=r,t},{});function pr(e,t,a){const{searchParameter:s,prefix:r,delimiter:i}=A[t==="lc"?"locations":t],n=s.countries,o=s.locations,c=s,l={[n]:[],[o]:[],[c]:[]},p=/^(l|c)?([0-9]+)$/g;return e.split(i).filter(m=>m.match(p)).reduce((m,g)=>{if(r===void 0)return m;if(a&&s===t&&g.includes(r.location)){const f=new RegExp(r.location,"i");m[s].push(g.replace(f,""))}else if(g.includes(r.country)){const f=new RegExp(r.country,"i");m[n].push(g.replace(f,""))}else{const f=new RegExp(r.location,"i");m[o].push(g.replace(f,""))}return m},l)}function mr(e){return decodeURIComponent(e).split(Te).map(t=>ur[t]).join(Te)}function tt(e){const t=dr(),s=e.replace("?","").split("&").map(i=>i.split("=")).reduce((i,[n,o])=>{const c=lr.includes(n);if(n===A.locations?.parameter||c)return{...i,...pr(o,n,c)};if(de[n]){const m=de[n];return i[m]=m===de.time_range?mr(o):o,i}if(!t[n])return i[n]=o,i;const l=t[n],p=decodeURI(o).split(l.delimiter).filter(l.filter?l.filter:()=>!0).join(Te);return i[l.searchParameter]=p,i},{});return`?${xs(s)}`}function To(e){const t="today",a="tomorrow",s={today:We(new Date,"yyyy-MM-dd"),tomorrow:We(aa(new Date,1),"yyyy-MM-dd")},r=o=>o===t||o===a;if(r(e.date_from)&&(e.date_from=s[e.date_from]),r(e.date_to)&&(e.date_to=s[e.date_to]),sa(Fe(e.date_to??"","yyyy-MM-dd",new Date),Fe(e.date_from??"","yyyy-MM-dd",new Date)))return{from:"",to:""};e.date_to&&!Be(new Date(e.date_to))&&(e.date_to=""),e.date_from&&!Be(new Date(e.date_from))&&(e.date_from="");const i=e.date_from?e.date_from.replace(/['"]+/g,""):"",n=e.date_to?e.date_to.replace(/['"]+/g,""):i;return{from:i,to:n}}function _o(e){const t={};return Object.keys(e).forEach(s=>{if(A[s]){const{delimiter:r,parameter:i}=A[s],n=e[s]?.join(r);t[i]=n}}),t}function Eo(e){const t=A.locations.prefix.location;return e.map(a=>a.replace(new RegExp(t),""))}function hr({activities:e,isGygOffice:t,customerId:a,isLoggedIn:s,isStaff:r}){return{event:"gyg.search.getResults",topActivities:e.slice(0,3).map(n=>n.id),user:{customer_id:a,gyg_office:t,is_logged_in:s,is_staff:r}}}class At extends Error{constructor({message:a,apiEndpoint:s}={}){super(a);w(this,"apiEndpoint");this.name="MissingPageDataError",this.apiEndpoint=s}}class vt{constructor(t){w(this,"_httpClient");this._httpClient=t}createErrorHandler(t,a={}){return s=>{const r=s?.response?.status,i=s?.response?.data?.title,n=`${t} - ${i}`;throw h.error({error:s,status:r,...a},n),r===404?new At({message:n,apiEndpoint:s?.request?.path}):s}}fetchSearchResults(t,a){const s={"request-id":a.requestId},r=tt(t);return this._httpClient.get(new d("travelers-api.search-v2-search",{searchString:r}),{headers:s}).then(({data:i})=>i).catch(this.createErrorHandler("search/fetchSearchResults",{searchQuery:t,...a}))}fetchFilters(t){const a=tt(t);return this._httpClient.get(new d("travelers-api.search-v3-search-facets",{searchString:a})).then(({data:s})=>{const{facets:r,metadata:i}=s;return{facets:r.reduce((n,o)=>(n[o.type]=o,n),{}),metadata:i}}).catch(this.createErrorHandler("search/fetchFilters",{query:t}))}fetchAiBasedFilters(t){const a=new URLSearchParams;a.append("query",t);const s="?"+a.toString();return this._httpClient.get(new d("travelers-api.ai-text-to-filters",{searchString:s})).then(r=>r.data.filters).catch(this.createErrorHandler("search/fetchAiBasedFilters",{query:t}))}fetchLocationData(t){return this._httpClient.get(new d("travelers-api.locations",{pathParams:{locationId:t}})).then(({data:a})=>a).catch(this.createErrorHandler("search/fetchLocationData",{locationId:t}))}fetchLocationMetaData(t){return this._httpClient.get(new d("travelers-api.locations-metadata",{pathParams:{locationId:t}}),{headers:{"x-allow-cache":!0}}).then(({data:a})=>a).catch(this.createErrorHandler("search/fetchLocationMetaData",{locationId:t}))}fetchSuggestions(t,a,s,r){let i="";return r&&r?.length>0&&(i="?suggestEntities="+r.join("&suggestEntities=")),this._httpClient.get(new d("travelers-api.search-v2-suggest",{searchString:i}),{params:{q:t,...a&&{size:a},...s&&{autocompleteContext:s}}}).then(({data:n})=>n).catch(n=>{const o=n?.response?.status,l=`search/fetchSuggestions - ${n?.response?.data?.title}`;return h.error({error:n,status:o,searchParam:t},l),{suggestions:[]}})}}const at=(e,t)=>{if(t.length===0)return{};const a=t[0],s=e.getItem(a);return s===null?at(e,t.slice(1)):{[a]:s,...at(e,t.slice(1))}},gr="Failed to read the 'localStorage'",wr="The operation is insecure",fr="SecurityError",Tr="QuotaExceededError",_r=e=>e.name===fr&&(e.message.includes(gr)||e.message.includes(wr)),bt=e=>e.name===Tr,j=e=>{try{localStorage&&localStorage.setItem(te,JSON.stringify(e))}catch(t){if(bt(t))h.error("Error saving item to local storage",t);else throw t}};function Er(e){return{fetchSuggestions:async({commit:t},a)=>e.fetchSuggestions(a.searchTerm,a.size,a.autocompleteContext,a.suggestEntities).then(s=>{let r=s?.suggestions?s?.suggestions:[];a?.locationType&&(r=r.filter(o=>o.locationType===a.locationType));const n={suggestions:r.slice(0,10).map((o,c)=>({...o,position:c+1})),searchAction:s.searchAction,seeAll:s.seeAll};return t("setSuggestions",n),n}),addToHistory:({commit:t,state:a},s)=>{let r=a.history;r.unshift({suggestion:s.suggestion,suggestionId:s.suggestionId,picture:s.picture,subTypeGroup:s.subTypeGroup,locationType:s.locationType,locationId:s.locationId,countryId:s.countryId,onClickLink:s.onClickLink,attributes:s.attributes});const i=[];r=r.reduce((o,c)=>i.includes(c.suggestion)?o:(i.push(c.suggestion),[...o,c]),[]);const n=r.slice(0,10);j(n),t("setHistory",n)},updateHistoryItem:({commit:t,state:a},{newSuggestion:s,index:r})=>{const{history:i}=a;let n=[...i];n[r]={...i[r],...s},j(n),t("setHistory",n)},removeHistoryByIndex:({commit:t,state:a},s)=>{const{history:r}=a;r.splice(s,1),j(r),t("setHistory",r)},clearHistory:({commit:t})=>{j([]),t("clearHistory")}}}const Sr={history:e=>e.history,suggestions:e=>e.suggestions},Ir={setSuggestions:(e,t)=>{e.suggestions=t},initialiseHistory:e=>{try{if(localStorage&&localStorage.getItem(te)){const t=JSON.parse(localStorage.getItem(te)),a=[],s=t.reduce((r,i)=>{if(i?.locationType&&(i?.locationId||i?.countryId)){const n=i?.suggestion;if(!a.includes(n))return a.push(n),[...r,i]}return r},[]);t.length!==s.length&&localStorage.setItem(te,JSON.stringify(s)),e.history=s}}catch(t){if(_r(t))h.error("Error accessing local storage",t);else if(bt(t))h.error("Error saving item to local storage",t);else throw t}},setHistory:(e,t)=>{e.history=t},clearHistory:e=>{e.history=[]}},te="gyg-search-history",yr=()=>({suggestions:{suggestions:[],searchAction:{onSearchLink:{}},seeAll:{onClickLink:{}}},history:[]});function So(e){return{namespaced:!0,state:yr,actions:Er(new vt(e)),getters:Sr,mutations:Ir}}const Io=!0;function G(e){return(...t)=>typeof t[0]=="string"?e(t[0],t[1]||null,{root:!0}):e(t[0],{root:!0})}const Cr=()=>({dates:{timeRange:"",multiTimeRange:[],from:"",to:"",searchUrl:""}}),Ar={dates:e=>e.dates},vr={setDates:(e,t)=>{e.dates={...e.dates,...t}},setSearchUrl:(e,t)=>{e.dates={...e.dates,searchUrl:t}},setTimeRange:(e,t)=>{e.dates={...e.dates,timeRange:t}},setMultiTimeRange:(e,t)=>{e.dates={...e.dates,multiTimeRange:t}}};function yo(){return{namespaced:!0,state:Cr,getters:Ar,mutations:vr}}const br={wishlist:e=>e.wishlist,wishlistGroups:e=>e.visitorWishlistGroup?[e.visitorWishlistGroup,...e.wishlistGroups]:e.wishlistGroups,publicListGroup:e=>e.publicListGroup,visitorWishlistGroup:e=>e.visitorWishlistGroup,isOwner:e=>e.isOwner,recommendedActivities:e=>e.recommendedActivities,loadWishlistModals:e=>e.loadWishlistModals,modalVariantOpen:e=>e.modalVariantOpen,showWishlistNotification:e=>window&&window.localStorage&&window.localStorage.getItem("showWishlistNotification")||e.showWishlistNotification},u={ADD_ITEM_TO_WISHLIST:"ADD_ITEM_TO_WISHLIST",ADD_ITEMS_TO_WISHLIST:"ADD_ITEMS_TO_WISHLIST",ADD_ITEM_TO_WISHLIST_GROUP:"ADD_ITEM_TO_WISHLIST_GROUP",ADD_GROUP_TO_WISHLIST:"ADD_GROUP_TO_WISHLIST",UPDATE_WISHLIST_GROUP:"UPDATE_WISHLIST_GROUP",SET_GROUPS_TO_WISHLIST:"SET_GROUPS_TO_WISHLIST",DROP_ITEM_FROM_WISHLIST:"DROP_ITEM_FROM_WISHLIST",SET_LOADING_TRUE:"SET_LOADING_TRUE",SET_LOADING_FALSE:"SET_LOADING_FALSE",SET_ACTIVITY_RECOMMENDATIONS:"SET_ACTIVITY_RECOMMENDATIONS",SET_RECOMMENDATIONS_UUID:"SET_RECOMMENDATIONS_UUID",SET_PLANNER_MODAL_ERROR_REQUEST_TRUE:"SET_PLANNER_MODAL_ERROR_REQUEST_TRUE",SET_PLANNER_MODAL_ERROR_REQUEST_FALSE:"SET_PLANNER_MODAL_ERROR_REQUEST_FALSE",SET_PLANNER_GENERIC_ERROR_REQUEST_TRUE:"SET_PLANNER_GENERIC_ERROR_REQUEST_TRUE",SET_PLANNER_GENERIC_ERROR_REQUEST_FALSE:"SET_PLANNER_GENERIC_ERROR_REQUEST_FALSE",DROP_ITEM_FROM_MANUAL_WISHLIST_GROUP:"DROP_ITEM_FROM_MANUAL_WISHLIST_GROUP",CLEAR_ALL_WISHLIST_ITEMS:"CLEAR_ALL_WISHLIST_ITEMS",SET_SHOW_NOTIFICATION_BADGE:"SET_SHOW_NOTIFICATION_BADGE",SET_PUBLIC_LIST:"SET_PUBLIC_LIST",LOAD_WISHLIST_MODALS:"LOAD_WISHLIST_MODALS",SET_MODAL_VARIATION_SUCCESS:"SET_MODAL_VARIATION_SUCCESS",SET_MODAL_VARIATION_SELECT:"SET_MODAL_VARIATION_SELECT",SET_MODAL_VARIATION_DELETE:"SET_MODAL_VARIATION_DELETE",RESET_MODAL_VARIATION:"RESET_MODAL_VARIATION",SET_VISITOR_WISHLIST_GROUP:"SET_VISITOR_WISHLIST_GROUP",UPDATE_VISITOR_WISHLIST_GROUP:"UPDATE_VISITOR_WISHLIST_GROUP",DROP_ITEM_FROM_VISITOR_WISHLIST_GROUP:"DROP_ITEM_FROM_VISITOR_WISHLIST_GROUP"},Rr={[u.ADD_ITEM_TO_WISHLIST](e,t){e.wishlist.push(t)},[u.ADD_GROUP_TO_WISHLIST](e,t){e.wishlistGroups.push(t)},[u.SET_GROUPS_TO_WISHLIST](e,t){e.wishlistGroups=t},[u.SET_VISITOR_WISHLIST_GROUP](e,t){e.visitorWishlistGroup=t},[u.ADD_ITEMS_TO_WISHLIST](e,t){e.wishlist.push(...t)},[u.DROP_ITEM_FROM_WISHLIST](e,t){e.wishlist.indexOf(t)!==-1&&e.wishlist.splice(e.wishlist.indexOf(t),1)},[u.DROP_ITEM_FROM_MANUAL_WISHLIST_GROUP](e,{listUuid:t,activityId:a}){const s=e.wishlistGroups.find(r=>r.id===t);if(s){const r=s.activities.findIndex(i=>i.id&&i.id.toString()===a.toString());s.activities.splice(r,1)}},[u.DROP_ITEM_FROM_VISITOR_WISHLIST_GROUP](e,t){const a=e.visitorWishlistGroup;if(!a)return;const s=a.activities.findIndex(i=>i.id===t);s>-1&&a.activities.splice(s,1);const r=a.activityIds.indexOf(t);r>-1&&a.activityIds.splice(r,1)},[u.ADD_ITEM_TO_WISHLIST_GROUP](e,{listUuid:t,activity:a}){const s=e.wishlistGroups.find(r=>r.id===t);s&&s.activities.push(a)},[u.UPDATE_WISHLIST_GROUP](e,{listUuid:t,group:a}){const s=e.wishlistGroups.findIndex(r=>r.id===t);s>=0&&e.wishlistGroups.splice(s,1,a),e.wishlistGroups=e.wishlistGroups.sort((r,i)=>{if(r.updateDate&&i.updateDate){const n=new Date(r.updateDate),o=new Date(i.updateDate);return Math.abs(o?.getTime())-n?.getTime()}return 0})},[u.UPDATE_VISITOR_WISHLIST_GROUP](e,t){const a=e.visitorWishlistGroup;e.visitorWishlistGroup={...a||{},...t}},[u.CLEAR_ALL_WISHLIST_ITEMS](e){e.wishlist=[]},[u.SET_SHOW_NOTIFICATION_BADGE](e,t){e.showWishlistNotification=t},[u.SET_LOADING_TRUE](e){e.isLoading=!0},[u.SET_LOADING_FALSE](e){e.isLoading=!1},[u.SET_PLANNER_MODAL_ERROR_REQUEST_TRUE](e){e.wishlistModalError=!0},[u.SET_PLANNER_MODAL_ERROR_REQUEST_FALSE](e){e.wishlistModalError=!1},[u.SET_PLANNER_GENERIC_ERROR_REQUEST_TRUE](e){e.genericError=!0},[u.SET_PLANNER_GENERIC_ERROR_REQUEST_FALSE](e){e.genericError=!1},[u.SET_PUBLIC_LIST](e,{group:t,isOwner:a}){e.publicListGroup=t,e.isOwner=a},[u.SET_ACTIVITY_RECOMMENDATIONS](e,t){e.recommendedActivities=t},[u.SET_RECOMMENDATIONS_UUID](e,t){e.recommendationsUuid=t},[u.LOAD_WISHLIST_MODALS](e){e.loadWishlistModals=!0},[u.SET_MODAL_VARIATION_SUCCESS](e,t){e.activityId=t,e.modalVariantOpen=me.SUCCESS_MODAL},[u.SET_MODAL_VARIATION_SELECT](e,{activityId:t,locationId:a,locationName:s}){e.activityId=t,e.locationId=a,e.locationName=s,e.modalVariantOpen=me.SELECT_MODAL},[u.SET_MODAL_VARIATION_DELETE](e,{activityId:t,activityTitle:a,listUuid:s,itemUuid:r}){e.activityId=t,e.activityTitle=a,e.listUuid=s,e.itemUuid=r,e.modalVariantOpen=me.DELETE_MODAL},[u.RESET_MODAL_VARIATION](e){e.modalVariantOpen=""}},Lr={id:0,type:"",title:"",abstract:"",url:"",category:"",price:{startingPrice:0,formattedStartingPrice:"0",basePrice:0,formattedBasePrice:"0",currency:"",currencySymbol:"",priceCategory:"",priceCategoryLabel:""},photos:[],attributes:[],activityType:void 0,availability:void 0};var Rt=(e=>(e.THUMB_SQUARED="thumbSquared",e.THUMB="thumb",e.THUMB_PANORAMIC="thumbPanoramic",e.THUMB_LANDSCAPE="thumbLandscape",e.SMALL="small",e.REGULAR="regular",e.REGULAR_60="regular60",e.MEDIUM="medium",e.MEDIUM_LARGE="mediumLarge",e.LARGE="large",e.LARGER="larger",e.REGULAR_ENHANCED="regularEnhanced",e.EMBEDDED="embedded",e.MOBILE="mobile",e.SQUARE="square",e.RECTANGLE="rectangle",e.THUMB_PORTRAIT="thumbPortrait",e.THREE="three",e.webpImage="webpImage",e.ONE_THIRTY="oneThirty",e))(Rt||{});const st={thumbSquared:"53",thumb:"102",thumbPanoramic:"26",thumbLandscape:"46",rectangle:"49",small:"87",regular60:"60",regular:"68",regularEnhanced:"132",medium:"68",mediumLarge:"145",large:"90",larger:"76",embedded:"91",mobile:"147",thumbPortrait:"150",square:"161",three:"3",webpImage:"webp",oneThirty:"130"},Or="[format_id]",Ur="{format_id}",Dr="%s",kr=Rt.REGULAR,rt=/\d+.jpg$/,it=/\d+.webp$/,Lt=(e="",t)=>e&&t?e.replace(Or,t).replace(Ur,t).replace(Dr,t):e;function Co(e,t,a){if(e){const s=t&&t in st,r=s?t:kr,i=s&&a?Pr(e):e;return Lt(i,st[r])}return""}function Pr(e){return e.match(rt)?e.replace(rt,"%s.jpg"):e.match(it)?e.replace(it,"%s.webp"):e}const Ot=e=>{const{activity:t}=e;return Ut(t,e.uuid)},Ut=(e,t)=>({uuid:t,id:e.id,abstract:e.abstract,activityType:e.activityType,url:e.url,category:e.category,attributes:e.attributes,title:e.title??"",availability:e.availability?{message:"",nextAvailableDateTime:"",type:"",metadata:{key:"",spots:"",pattern:""}}:null,flags:{},photos:[{urls:[{size:"medium",url:Lt(e.pictureUrl,"68")}],verticalAlignment:"",copyright:null}],reviewStatistics:{quantity:e.reviewCount,rating:e.overallRating},reviews:{totalCount:e.reviewCount??0,averageRating:e.overallRating??0},price:{priceCategoryLabel:e.price?.priceCategoryLabel??"",basePrice:e.price?.currentPrice??0,currency:e.price?.currency??"",priceCategory:e.price?.currency??"",startingPrice:e.price?.originalPrice??0,formattedStartingPrice:e.price?.displayCurrentPrice??"",formattedBasePrice:e.price?.displayOriginalPrice??"",currencySymbol:e.price?.currency??"",discountPercentage:e.price?.discountPercentageValue??""},basePrice:e.basePrice,actualPrice:e.actualPrice,type:"",duration:{},validity:{},categoryLabel:e.categoryLabel}),v=({lists:e})=>e.map(a=>Dt(a)).sort((a,s)=>a.updateDate&&s.updateDate?Math.abs(s.updateDate.getTime())-a.updateDate?.getTime():0),Dt=e=>({id:e.uuid,title:e.name,updateDate:new Date(e.updateTimestamp),startingDate:e.fromDate?new Date(e.fromDate).getTime():0,endingDate:e.toDate?new Date(e.toDate).getTime():0,images:e.pictureUrls?e.pictureUrls.filter(a=>!a.includes("location//")).slice(0,3):[],locationIds:e.locations&&e.locations.length>0?e.locations.map(a=>a.id):[],activities:e.items.map(a=>Ot(a)),...e}),C=e=>e.isLoggedIn&&(e?.customer?.id??null);class B extends Error{constructor(a,s){super(a);w(this,"name");w(this,"url");this.url=s,this.name="UnauthorizedUser",Error.captureStackTrace(this)}}function Nr(e,{allowedTags:t=void 0,allowInline:a=!0,allowBlock:s=!0}={}){return ea(e,{whiteList:t||{...a&&{em:[],span:[],strong:[],del:[],a:["href","title","target"],li:[],i:[],b:[]},...s&&{br:[],ol:[],ul:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],p:[],img:["src"],figure:["style"]}},safeAttrValue(c,l,p){return p}})}const Z="localWishlist",kt="gw";function nt(e){return kt===e}function z(){const e=Wr(Z);try{return e?JSON.parse(e):null}catch{return null}}function pe(){Fr(Z)}function ot(e){const t=z();return t?Gr(e,t):null}function Mr(e,t){const a=z();return a&&a?xr(t,a):null}function ct(e,t){if(!oe())return null;const a=z();try{return a||(!C(e.auth)&&N(e,mt,"B")?Hr(t):null)}catch{return null}}function Hr(e){const t={id:kt,title:e,activityIds:[],images:[],isLocal:!0};return De(Z,JSON.stringify(t)),t}function Gr(e,t){return t.activityIds.indexOf(e)===-1&&(t.activityIds.push(e),De(Z,JSON.stringify(t))),t}function xr(e,t){const a=t.activityIds.indexOf(e);return a>-1&&(t.activityIds.splice(a,1),De(Z,JSON.stringify(t))),t}function Wr(e){return oe()?localStorage.getItem(e):null}function De(e,t){oe()&&localStorage.setItem(e,t)}function Fr(e){oe()&&localStorage.removeItem(e)}function oe(){return typeof window<"u"&&localStorage!==null&&localStorage!==void 0}function Q(e,t,a){const s={location_id:a,tour_id:t,target:"wishlist-add"};e.log("TravelerWebAddToWishlistConfirm",s).catch()}const W=e=>Nr(e,{allowBlock:!1,allowInline:!1});function Br(e){const t="showWishlistNotification";return{fetchWishlist:async({commit:a,dispatch:s,rootState:r},i)=>{const{containerName:n,withActivityDetails:o=!1}=i,c=new Set;let l=[],p=!0,m=!0;try{if(C(r.auth)){const g=r.auth.customer.id;p=!1,l=await e.fetchAllWishlists(g,o),m=!1}for(const g of l){g.title=W(g.title),g.isLocal=!1;for(const f of g.activities)f.id&&c.add(f.id)}}catch(g){throw h.error({customerId:r.auth?.customer?.id,isLoggedIn:r.auth?.isLoggedIn,containerName:n,activityIds:Array.from(c),errorsDuringUserVerification:p,errorsDuringHittingRequestOrParsingGroups:m,error:g},"FetchWishlist for customer failed"),l=[],c.clear(),a(u.SET_PLANNER_GENERIC_ERROR_REQUEST_TRUE),g}a(u.CLEAR_ALL_WISHLIST_ITEMS),a(u.ADD_ITEMS_TO_WISHLIST,Array.from(c)),a(u.SET_GROUPS_TO_WISHLIST,l),s("fetchVisitorWishlist",{withActivityDetails:o})},fetchWishlistGroup:async({commit:a,rootState:s},r)=>{if(nt(r))return;const{id:i}=s.auth?.customer??{};if(!i)throw new B("Unauthorized user for this endpoint.",s.route.fullPath);try{const n=await e.fetchWishlist(r);n.title=W(n.title),a(u.SET_GROUPS_TO_WISHLIST,[n]);const o=n.activities.map(c=>c.id);a(u.ADD_ITEMS_TO_WISHLIST,o)}catch(n){throw h.error({customerId:i,error:n},"FetchSelectedWishlist for customer failed"),a(u.SET_PLANNER_GENERIC_ERROR_REQUEST_TRUE),n}},fetchVisitorWishlist:async({commit:a,state:s,rootState:r},i)=>{const{listUuid:n,withActivityDetails:o}=i||{},c=s.visitorWishlistGroup;if(!N(r,P,"B")||c&&!o||n&&!nt(n))return;const l=z();if(l){const p=l.activityIds,m=o?await e.enrichActivities(p):p.map(T=>({...Lr,id:T,uuid:T.toString()})),g=o?m[0]?.photos[0]?.urls[0]?.url:"",E={...l,activities:m,isLocal:!0,images:g?[g]:[]};a(u.SET_VISITOR_WISHLIST_GROUP,E),a(u.ADD_ITEMS_TO_WISHLIST,p)}},fetchSharedWishlist:async({commit:a,rootState:s},r)=>{try{let i;C(s.auth)&&(i=s.auth.customer.id);const n=await e.fetchSharedWishlist(i,r),{isOwner:o}=n.data,c=await v({lists:[n.data.planList]})[0];c.title=W(c.title),c.activities.forEach(l=>l.availability={message:"",nextAvailableDateTime:"",type:"",metadata:{key:"",spots:"",pattern:""}}),a(u.SET_PUBLIC_LIST,{group:c,isOwner:o})}catch{a(u.SET_PLANNER_GENERIC_ERROR_REQUEST_TRUE)}},toggleNotificationBadge:({commit:a},s)=>{window&&window.localStorage&&window.localStorage.setItem(t,s),a(u.SET_SHOW_NOTIFICATION_BADGE,s)},createWishlist:async({commit:a,rootState:s},r)=>{let i;try{if(C(s.auth)){a(u.SET_PLANNER_MODAL_ERROR_REQUEST_FALSE),a(u.SET_LOADING_TRUE);const n=await e.createWishlist(W(r));i={id:n.data.uuid,title:n.data.name,images:[],activities:[]},a(u.ADD_GROUP_TO_WISHLIST,i),a(u.SET_LOADING_FALSE)}}catch{a(u.SET_LOADING_FALSE),a(u.SET_PLANNER_MODAL_ERROR_REQUEST_TRUE)}},createVisitorWishlist:async({commit:a,rootState:s},r)=>{if(!N(s,P,"B"))return;const i=ct(s,r);if(i){const n={...i,activities:[]};a(u.SET_VISITOR_WISHLIST_GROUP,n)}},renameWishlist:async({commit:a,rootState:s},{listUuid:r,wishlistName:i})=>{try{if(C(s.auth)){a(u.SET_PLANNER_MODAL_ERROR_REQUEST_FALSE),a(u.SET_LOADING_TRUE);const n=await e.updateWishlist(r,W(i)),o=v({lists:[n.data]})[0];a(u.UPDATE_WISHLIST_GROUP,{listUuid:r,group:o}),a(u.SET_LOADING_FALSE)}}catch{a(u.SET_LOADING_FALSE),a(u.SET_PLANNER_MODAL_ERROR_REQUEST_TRUE)}},updateWishlistDates:async({commit:a,rootState:s},{listUuid:r,fromDate:i,toDate:n,name:o})=>{try{if(C(s.auth)){a(u.SET_PLANNER_MODAL_ERROR_REQUEST_FALSE),a(u.SET_LOADING_TRUE);const c=await e.updateWishlist(r,o,i,n),l=v({lists:[c.data]})[0];a(u.UPDATE_WISHLIST_GROUP,{listUuid:r,group:l}),a(u.SET_LOADING_FALSE)}}catch{a(u.SET_LOADING_FALSE),a(u.SET_PLANNER_MODAL_ERROR_REQUEST_TRUE)}},clearWishlistDates:async({commit:a,rootState:s},{listUuid:r})=>{try{if(C(s.auth)){a(u.SET_PLANNER_MODAL_ERROR_REQUEST_FALSE),a(u.SET_LOADING_TRUE);const i=await e.clearWishlistDates(r),n=v({lists:[i.data]})[0];a(u.UPDATE_WISHLIST_GROUP,{listUuid:r,group:n}),a(u.SET_LOADING_FALSE)}}catch{a(u.SET_LOADING_FALSE),a(u.SET_PLANNER_MODAL_ERROR_REQUEST_TRUE)}},addToWishlist:async({dispatch:a,commit:s,rootState:r,state:i},{activityId:n,listUuid:o,trackingProps:c})=>{try{if(i.visitorWishlistGroup?.id===o){if(!N(r,P,"B")){s(u.SET_VISITOR_WISHLIST_GROUP,void 0),pe();return}const l=ot(n);if(l){const p=i.visitorWishlistGroup.activities,m=p.length===0?l.activityIds:[n],g={...l,activities:[...p,...await e.enrichActivities(m)]};s(u.ADD_ITEM_TO_WISHLIST,n),s(u.UPDATE_VISITOR_WISHLIST_GROUP,g),Q(c.analyticsLogger,n,c.locationId)}}if(C(r.auth)){s(u.ADD_ITEM_TO_WISHLIST,n);const l=await e.addToWishlist(o,n),p=v({lists:[l.data]})[0];s(u.UPDATE_WISHLIST_GROUP,{listUuid:o,group:p}),Q(c.analyticsLogger,n,c.locationId)}}catch{s(u.DROP_ITEM_FROM_WISHLIST,n),s(u.DROP_ITEM_FROM_MANUAL_WISHLIST_GROUP,{listUuid:o,activityId:n}),G(a)("notifications/setMessage","genericPlannerError")}},removeFromWishlist:async({dispatch:a,commit:s,rootState:r,state:i},{itemUuid:n,listUuid:o,activityId:c})=>{try{if(i.visitorWishlistGroup?.id===o){if(s(u.DROP_ITEM_FROM_WISHLIST,c),!N(r,P,"B")){s(u.SET_VISITOR_WISHLIST_GROUP,void 0),pe();return}if(Mr(r,c)){s(u.DROP_ITEM_FROM_VISITOR_WISHLIST_GROUP,c);return}else s(u.SET_VISITOR_WISHLIST_GROUP,void 0)}if(o&&C(r.auth)){s(u.DROP_ITEM_FROM_WISHLIST,c),s(u.DROP_ITEM_FROM_MANUAL_WISHLIST_GROUP,{listUuid:o,activityId:c});const l=await e.removeFromWishlist(o,n),p=v({lists:[l.data]})[0];s(u.UPDATE_WISHLIST_GROUP,{listUuid:o,group:p})}}catch{s(u.ADD_ITEM_TO_WISHLIST,c),G(a)("notifications/setMessage","genericPlannerError")}},moveToWishlist:async({commit:a,rootState:s},{activityId:r,sourceListUuid:i,targetListUuid:n,targetListName:o})=>{const c=new Set;let l=[];try{C(s.auth)&&(l=await e.moveToWishlist(i,n,o,r));for(const p of l)for(const m of p.activities)m.id&&c.add(m.id)}catch{l=[],c.clear()}a(u.CLEAR_ALL_WISHLIST_ITEMS),a(u.ADD_ITEMS_TO_WISHLIST,Array.from(c)),a(u.SET_GROUPS_TO_WISHLIST,l)},addAfterCreate:async({commit:a,rootState:s},{wishlistName:r,activityId:i,trackingProps:n})=>{let o;try{if(C(s.auth)){a(u.SET_PLANNER_MODAL_ERROR_REQUEST_FALSE),a(u.SET_LOADING_TRUE);const c=await e.createWishlist(r);o={id:c.data.uuid,title:c.data.name,images:[""],activities:[]},a(u.ADD_GROUP_TO_WISHLIST,o);const l=await e.addToWishlist(c.data.uuid,i),p=v({lists:[l.data]})[0];a(u.ADD_ITEM_TO_WISHLIST,i),a(u.UPDATE_WISHLIST_GROUP,{listUuid:c.data.uuid,group:p}),Q(n.analyticsLogger,i,n.locationId)}else{if(!N(s,P,"B"))return;if(a(u.SET_LOADING_TRUE),ct(s,r)){const l=ot(i);if(l){const p=await e.enrichActivities(l?.activityIds??[]);a(u.SET_VISITOR_WISHLIST_GROUP,{...l,activities:p}),a(u.ADD_ITEM_TO_WISHLIST,i),Q(n.analyticsLogger,i,n.locationId)}}}}catch{a(u.SET_PLANNER_MODAL_ERROR_REQUEST_TRUE)}a(u.SET_LOADING_FALSE)},deleteWishlist:async({commit:a,rootState:s},r)=>{a(u.SET_LOADING_TRUE);try{C(s.auth)&&(a(u.SET_PLANNER_GENERIC_ERROR_REQUEST_FALSE),await e.deleteWishlist(r))}catch{a(u.SET_PLANNER_GENERIC_ERROR_REQUEST_TRUE)}z()?.id===r&&(pe(),a(u.SET_VISITOR_WISHLIST_GROUP,void 0)),a(u.SET_LOADING_FALSE)},fetchRecommendations:async({commit:a,rootState:s},{listUuid:r,itemUuid:i})=>{let n={recommendedActivities:[],recommendationsUuid:""};try{C(s.auth)&&(n=await e.fetchRecommendations(r,i),a(u.SET_ACTIVITY_RECOMMENDATIONS,n.recommendedActivities),a(u.SET_RECOMMENDATIONS_UUID,n.recommendationsUuid))}catch{a(u.SET_ACTIVITY_RECOMMENDATIONS,[]),a(u.SET_RECOMMENDATIONS_UUID,"")}},lazyLoadWishlistModals:({commit:a})=>{a(u.LOAD_WISHLIST_MODALS)},showSuccessNotification:({commit:a},s)=>{a(u.SET_MODAL_VARIATION_SUCCESS,s)},showSelectModal:({commit:a},{activityId:s,locationId:r,locationName:i})=>{a(u.SET_MODAL_VARIATION_SELECT,{activityId:s,locationId:r,locationName:i})},showDeleteModal({commit:a},{activityId:s,activityTitle:r,listUuid:i,itemUuid:n}){a(u.SET_MODAL_VARIATION_DELETE,{activityId:s,activityTitle:r,listUuid:i,itemUuid:n})},resetModalVariation({commit:a}){a(u.RESET_MODAL_VARIATION)}}}class $r{constructor(t){w(this,"_httpClient");this._httpClient=t}async fetchAllWishlists(t,a){let s=!0,r=!0;try{const i=new d("travelers-api.planner-lists",{searchString:`?withActivityDetails=${a}`}),n=await this._httpClient.get(i,{needsAuth:!0});s=!1;const o=v(n.data);return r=!1,o}catch(i){throw h.error({customerId:t,errorsDuringRequestAtServiceLevel:s,errorsDuringParsingAtServiceLevel:r,error:i},"FetchWishlist for customer failed At Service Level"),i}}async fetchWishlist(t){try{const a=await this._httpClient.get(new d("travelers-api.planner-list",{pathParams:{listUuid:t}}),{needsAuth:!0});return Dt(a.data)}catch(a){throw h.error({listUuid:t,error:a},"FetchWishlist in WishlistItems failed At Service Level"),a}}async fetchSharedWishlist(t,a){const s=new d("travelers-api.planner-list-public",{pathParams:{listUuid:a}});return await this._httpClient.get(s,{needsAuth:t!==void 0})}async createWishlist(t){return this._httpClient.post(new d("travelers-api.planner-lists"),{name:t},{needsAuth:!0})}async fetchRecommendations(t,a){const s=await this._httpClient.get(new d("travelers-api.planner-lists-item-recommendations",{pathParams:{listUuid:t,itemUuid:a}}),{needsAuth:!0});return{recommendedActivities:s.data.recommendationItems.map(r=>{const i={...r};return i.activity.availability={},Ot(i)}),recommendationsUuid:s.data.uuid}}async deleteWishlist(t){const a=await this._httpClient.delete(new d("travelers-api.planner-list",{pathParams:{listUuid:t}}),{needsAuth:!0});return v(a.data)}async addToWishlist(t,a){return this._httpClient.post(new d("travelers-api.planner-lists-items",{pathParams:{listUuid:t}}),{referenceType:"activity",activity:{id:a}},{needsAuth:!0})}updateWishlist(t,a,s,r){const i=a?{name:a}:{},n=s&&r?{fromDate:s,toDate:r}:{};return this._httpClient.put(new d("travelers-api.planner-list",{pathParams:{listUuid:t}}),{...i,...n},{needsAuth:!0})}clearWishlistDates(t){return this._httpClient.put(new d("travelers-api.planner-list-clear"),{listUuid:t,action:"clearDates"},{needsAuth:!0})}async removeFromWishlist(t,a){return this._httpClient.delete(new d("travelers-api.planner-lists-item",{pathParams:{listUuid:t,itemUuid:a}}),{needsAuth:!0})}async moveToWishlist(t,a,s,r){const i=await this._httpClient.put(new d("travelers-api.planner-lists-items-relocate"),{targetList:{name:s,uuid:a},sourceList:{uuid:t},item:{referenceType:"activity",activity:{id:r}}},{needsAuth:!0});return v(i.data)}async enrichActivities(t){return t.length===0?[]:(await this._httpClient.post(new d("travelers-api.planner-activities"),{ids:t})).data?.activities?.map(s=>Ut(s,s.id.toString()))}}const me={DELETE_MODAL:"deleteModal",SUCCESS_MODAL:"successModal",SELECT_MODAL:"selectModal"},Vr=()=>({wishlist:[],wishlistGroups:[],publicListGroup:{id:"",updateDate:void 0,title:"",locationIds:[],activities:[],images:[""],startingDate:0,endingDate:0,sharing:{imageUrl:"",sharingUrl:""}},visitorWishlistGroup:void 0,isOwner:!1,showWishlistNotification:"false",isLoading:!1,wishlistModalError:!1,genericError:!1,recommendedActivities:[],recommendationsUuid:"",loadWishlistModals:!1,modalVariantOpen:"",activityId:void 0,locationId:-1,locationName:"",activityTitle:"",listUuid:"",itemUuid:""});function Ao(e){return{namespaced:!0,state:Vr,getters:br,mutations:Rr,actions:Br(new $r(e))}}var ke=(e=>(e.SET_MESSAGE="SET_MESSAGE",e.UNSET_MESSAGE="UNSET_MESSAGE",e))(ke||{});function Kr(){const{SET_MESSAGE:e,UNSET_MESSAGE:t}=ke;return{setMessage:({commit:a},s)=>{a(e,s)},unsetMessage:({commit:a})=>{a(t)}}}const zr={message:e=>e.message},{SET_MESSAGE:Yr,UNSET_MESSAGE:Zr}=ke,jr={[Yr](e,t){e.message=t},[Zr](e){e.message=""}},Qr=()=>({message:""});function vo(){return{namespaced:!0,state:Qr,actions:Kr(),getters:zr,mutations:jr}}var Pe=(e=>(e.SET_NOTIFICATION_MESSAGE="SET_NOTIFICATION_MESSAGE",e.HIDE_NOTIFICATION_MESSAGE="HIDE_NOTIFICATION_MESSAGE",e))(Pe||{});function Xr(){const{SET_NOTIFICATION_MESSAGE:e,HIDE_NOTIFICATION_MESSAGE:t}=Pe;return{setNotificationMessage:({commit:a},s)=>{a(e,s)},hideNotificationMessage:({commit:a})=>{a(t)}}}const{SET_NOTIFICATION_MESSAGE:qr,HIDE_NOTIFICATION_MESSAGE:Jr}=Pe,ei={[qr](e,t){e.notificationMessage=t},[Jr](e){e.notificationMessage=Pt.NONE}},ti={message:e=>e.notificationMessage},ai=()=>({notificationMessage:"NONE"});function bo(){return{namespaced:!0,state:ai,actions:Xr(),getters:ti,mutations:ei}}var Pt=(e=>(e.NONE="NONE",e.PROFILE_SAVED_SUCCESSFULLY="PROFILE_SAVED_SUCCESSFULLY",e.SAVED_SUCCESSFULLY="SAVED_SUCCESSFULLY",e.SAVED_ERROR="SAVED_ERROR",e.VALIDATION_EMAIL_SENT="VALIDATION_EMAIL_SENT",e.VALIDATION_EMAIL_FAILED="VALIDATION_EMAIL_FAILED",e))(Pt||{}),Ne=(e=>(e.SET_IS_LOADING="SET_IS_LOADING",e.SET_IS_SUCCESSFUL="SET_IS_SUCCESSFUL",e.SET_MARKETING_ENABLED="SET_MARKETING_ENABLED",e.SET_MARKETING_ENABLED_FETCHED="SET_MARKETING_ENABLED_FETCHED",e.SET_IS_PREVIOUSLY_SUBSCRIBED="SET_IS_PREVIOUSLY_SUBSCRIBED",e))(Ne||{}),_e=(e=>(e[e.Any=0]="Any",e[e.All=1]="All",e))(_e||{});class Me{constructor(t){w(this,"_httpClient");this._httpClient=t}async getPreferences(t,a){const s={"X-Customer-Hash":a};try{return await this._httpClient.get(new d("travelers-api.customer-communication-preferences",{pathParams:{customerId:t}}),{headers:s,timeout:1e3}).then(r=>r.data)}catch(r){throw this.logError(r,{customerId:t,customerHash:a,message:"Failed to subscribe customer"}),r}}async setPreferences(t,a,s,r){const i=this.authenticatedHeaders(a,r);try{return(await this._httpClient.put(new d("travelers-api.customer-communication-preferences",{pathParams:{customerId:t}}),s,{headers:i,sendEmpty:!0})).status===204}catch(n){throw this.logError(n,{customerId:t,customerHash:a,...i}),n}}async getAuthenticatedPreferences(t){return(await this._httpClient.get(new d("travelers-api.customers-permissions",{pathParams:{customerId:t}}),{needsAuth:!0,optOutOfForcedLogin:!0})).data}async setAuthenticatedPreferences(t,a,s){const r={needsAuth:!0,optOutOfForcedLogin:!0,sendEmpty:!0},i=s?this.toContextHeaders(s):void 0,n=i?{...r,headers:i}:r;await this._httpClient.put(new d("travelers-api.authenticated-customers-communication-preferences",{pathParams:{customerId:t}}),a,n)}async marketingEmailsSubscribe(t,a,s){const r={"X-Gyg-Container-Name":s.containerName??"","Subscription-Source":s.source??"","Subscription-Widget":s.widget??""};try{return await this._httpClient.put(new d("travelers-api.marketing-emails-subscribe"),{email:t},{headers:r,needsAuth:!!a})}catch(i){throw this.logError(i,{customerId:a??"",...r}),i}}async isMarketingEnabled(t,a,s){const i={categories:a===0?"any":"all",activeConsent:s};return this._httpClient.get(new d("travelers-api.customer-communication-preferences-marketing-enabled",{pathParams:{customerId:t}}),{params:i,needsAuth:!0,optOutOfForcedLogin:!0}).then(n=>n.data.marketingCommunication.enabled).catch(this.createErrorHandler(`Error marketing preferences for customer: ${t}`))}async isVisitorSoftinEligible(t,a){return this._httpClient.get(new d("travelers-api.visitors-email-soft-optin-eligible",{pathParams:{visitorId:a},searchString:`?email=${t}`})).then(s=>s?.data?.marketingCommunication?.isSoftOptInEligible??!1).catch(this.createErrorHandler(`Error checking customer is softin eligible: ${a}`))}async isCustomerSoftinEligible(t){return this._httpClient.get(new d("travelers-api.customer-email-soft-optin-eligible",{pathParams:{customerId:t}}),{needsAuth:!0}).then(a=>a?.data?.marketingCommunication?.isSoftOptInEligible??!1).catch(this.createErrorHandler(`Error checking customer is softin eligible: ${t}`))}logError(t,a={}){h.error({...a,request:qa("CommunicationPreferencesRequestFailure",t)})}authenticatedHeaders(t,a){const s={"X-Customer-Hash":t,"Content-Type":"application/json"};return a?{...s,...this.toContextHeaders(a)}:s}toContextHeaders({source:t,campaign:a,widget:s,containerName:r,platform:i}){return{"context-source":t?encodeURIComponent(t):"","context-campaign":a?encodeURIComponent(a):"","context-widget":s?encodeURIComponent(s):"","context-platform":i?encodeURIComponent(i):"","context-container-name":r?encodeURIComponent(r):"","Content-Type":"application/json"}}createErrorHandler(t){return a=>{throw(a?.response?.status??null)===404&&t&&h.error({error:a},t),a?.response?.data?a?.response?.data:a}}}function si(e){const{SET_IS_LOADING:t,SET_IS_SUCCESSFUL:a,SET_MARKETING_ENABLED:s,SET_MARKETING_ENABLED_FETCHED:r,SET_IS_PREVIOUSLY_SUBSCRIBED:i}=Ne;return{postNewsletterSignup:async({commit:n,rootState:o},c)=>{const{email:l,containerName:p,widget:m}=c,{customer:g}=o.auth,f=g.id??null;n(t,!0);let E={};try{E=await e.marketingEmailsSubscribe(l,f,{containerName:p,widget:m,source:"NewsletterComponent"}),E.data?.activeConsent&&n(i,!0),n(a,!0)}catch(T){throw n(a,!1),n(t,!1),T}return n(t,!1),E},setMarketingEnabled:async({commit:n,rootState:o},{categories:c,activeConsent:l,setState:p}={})=>{try{typeof c>"u"&&(c=_e.All),typeof l>"u"&&(l=!0),typeof p>"u"&&(p=!0);const{isLoggedIn:m,customer:g}=o.auth,f=g.id??null;if(!m||!f)return!1;const E=await e.isMarketingEnabled(f,c,l);return p&&(n(s,E),n(r,!0)),E}catch{return p&&(n(s,!1),n(r,!0)),!1}},getMarketingEnabled:async({commit:n,rootState:o},{categories:c,activeConsent:l}={})=>{try{typeof c>"u"&&(c=_e.All),typeof l>"u"&&(l=!0);const{isLoggedIn:p,customer:m}=o.auth,g=m.id??null;if(!p||!g)return!1;const f=await e.isMarketingEnabled(g,c,l);return n(s,f),n(r,!0),f}catch{return n(s,!1),n(r,!1),!1}}}}const ri={isLoading:e=>e.isLoading,isSuccessful:e=>e.isSuccessful,marketingEnabled:e=>e.marketingEnabled,marketingEnabledFetched:e=>e.marketingEnabledFetched,isPreviouslySubscribed:e=>e.isPreviouslySubscribed},{SET_IS_LOADING:ii,SET_IS_SUCCESSFUL:ni,SET_MARKETING_ENABLED:oi,SET_MARKETING_ENABLED_FETCHED:ci,SET_IS_PREVIOUSLY_SUBSCRIBED:li}=Ne,ui={[ii](e,t){e.isLoading=t},[ni](e,t){e.isSuccessful=t},[oi](e,t){e.marketingEnabled=t},[ci](e,t){e.marketingEnabledFetched=t},[li](e,t){e.isPreviouslySubscribed=t}},di=()=>({isLoading:!1,isSuccessful:!1,marketingEnabled:!1,marketingEnabledFetched:!1,isPreviouslySubscribed:!1});function Ro(e){return{namespaced:!0,state:di,actions:si(new Me(e)),getters:ri,mutations:ui}}var Nt=(e=>(e[e.SUCCESS=200]="SUCCESS",e[e.WRONG_PARAMS=400]="WRONG_PARAMS",e[e.SERVICE_UNAVAILABLE=500]="SERVICE_UNAVAILABLE",e))(Nt||{});const pi=()=>({customerId:null,marketingStatusCode:null,marketingEnabled:null}),mi={customerId:e=>e.customerId,marketingStatusCode:e=>e.marketingStatusCode,marketingEnabled:e=>e.marketingEnabled};function hi(e){return{subscribeUser:async({commit:t},a)=>{const{email:s,customerId:r,containerName:i,source:n}=a,o=await e.marketingEmailsSubscribe(s,r,{containerName:i,source:n});o?.data?.customerId?(t("SET_CUSTOMER_ID",o?.data?.customerId),t("SET_MARKETING_STATUS_CODE",Nt.SUCCESS)):t("SET_MARKETING_STATUS_CODE",o?.status??null)},marketingEnabled:async({commit:t},a)=>{if(a.customerId){const s=await e.isMarketingEnabled(a.customerId,a.categories,a.activeConsent);t("SET_MARKETING_ENABLED",s)}}}}const gi={SET_CUSTOMER_ID(e,t){e.customerId=t},SET_MARKETING_STATUS_CODE(e,t){e.marketingStatusCode=t},SET_MARKETING_ENABLED(e,t){e.marketingEnabled=t}};function Lo(e){return{namespaced:!0,state:pi,getters:mi,actions:hi(new Me(e)),mutations:gi}}class wi{constructor(t){w(this,"_httpClient");this._httpClient=t}async downloadAppLink(t){const a=new FormData;for(const[s,r]of Object.entries(t))r!==void 0&&a.append(s,r);try{return(await this._httpClient.post(new d("travelers-api.send-app-link"),a))?.data}catch(s){return h.error({error:s},"Send App Link failed at service level"),s?.response?.data}}}const Mt="CONFIRMATION_MESSAGE",Ht="SET_SUCCESS";function fi(e){return{async sendDownloadAppLink({commit:t},{type:a,sendTo:s,utmCampaign:r,shoppingCartHash:i,deepLink:n,sendLinkErrorMessage:o}){const c=await e.downloadAppLink({type:a,sendTo:s,utmCampaign:r,shoppingCartHash:i,deepLink:n});t(Mt,c?.message??o),t(Ht,c?.success??!1)}}}const Ti={confirmationMessage:e=>e.confirmationMessage,success:e=>e.success},_i={[Mt](e,t){e.confirmationMessage=t},[Ht](e,t){e.success=t}},Oo=e=>({namespaced:!0,state:()=>({confirmationMessage:"",success:!1}),actions:fi(new wi(e)),getters:Ti,mutations:_i});var U=(e=>(e.poi="poi",e.area="area",e.city="city",e.country="country",e.category="category",e.neighborhood="neighborhood",e.subcontinent="subcontinent",e))(U||{});const X=(e,t)=>{if(e)return t?.find(a=>a.type===e)},Uo=(e=[],t)=>e?.find(({type:a})=>a===t)??{type:"",url:""},Gt=e=>{const t=X(U.poi,e.parentLocations),a=X(U.city,e.parentLocations),s=X(U.area,e.parentLocations),r=X(U.country,e.parentLocations);return{locationId:e.id,locationType:e.type,productArea:s?.name??null,productAreaId:s?.id??null,productCity:a?.name??null,productCityId:a?.id??null,productCountry:r?.name??null,productCountryId:r?.id??null,productPoi:t?.name??null,productPoiId:t?.id??null,...e.category&&{categoryId:e.category.id,categoryType:e.category.type}}};class se{constructor(t){w(this,"_httpClient");this._httpClient=t}static createSearchString(t){return $({...t.categoryId&&{category:t.categoryId},...t.locationToId&&{locationToId:t.locationToId},...t.collectionId&&{collectionId:t.collectionId},...t.pageType&&{page_type:t.pageType}})}fetchCategoryResults(t,a,s){const r={};s&&(r["x-allow-cache"]=!0);const i=a?`?category=${a}`:"";return this._httpClient.get(new d("travelers-api.locations",{pathParams:{locationId:t},searchString:i}),{headers:r}).catch(n=>this.logApiError("fetchCategoryResults",n))}logApiError(t,a){const s=a?.response?.status;(a?.response?.data?.title==="Invalid location ID provided"||s===404)&&h.error("Missing location data",{callName:t}),h.error(`Error calling the endpoint ${t}`,{callName:t})}fetchSeoLinks(t,a){return this._httpClient.get(new d(a?"travelers-api.countries-seo-links":"travelers-api.locations-seo-links",{pathParams:{locationId:t}}),{headers:{"x-allow-cache":!0}}).then(s=>s.data).catch(s=>this.logApiError("fetchSeoLinks",s))}fetchLocationData(t,a,s,r){const i={};return s&&(i["x-allow-cache"]=!0),this._httpClient.get(new d("travelers-api.locations",{pathParams:{locationId:t},searchString:"?"+se.createSearchString({categoryId:a,locationToId:r})}),{headers:i})}fetchLocationMetaData(t){const{locationId:a,categoryId:s,locationToId:r,pageType:i}=t,n="?"+se.createSearchString({categoryId:s,locationToId:r,pageType:i});return this._httpClient.get(new d("travelers-api.locations-metadata",{pathParams:{locationId:a},searchString:n}),{headers:{"x-allow-cache":!0}}).catch(o=>this.logApiError("fetchLocationMetaData",o))}fetchNearbyLocations(t){const{locationId:a,visitorId:s,locale:r,limit:i=8,locationType:n}=t,o={};s&&(o["Visitor-Id"]=s),r&&(o["Accept-Language"]=r);const c=$({...i&&{limit:i},...n&&{locationType:n}}),l=c?`?${c}`:"";return this._httpClient.get(new d("travelers-api.locations-nearest-locations",{pathParams:{locationId:a},searchString:l}),{headers:o})}fetchNearbyActivities(t){const{locationId:a,visitorId:s,locale:r,fromDate:i,toDate:n,limit:o=8,page:c=1}=t,l={};s&&(l["Visitor-Id"]=s),r&&(l["Accept-Language"]=r);const p=$({...o&&{limit:o},...c&&{page:c},...i&&{fromDate:i},...n&&{toDate:n}}),m=p?`?${p}`:"";return this._httpClient.get(new d("travelers-api.locations-nearest-activities",{pathParams:{locationId:a},searchString:m}),{headers:l})}}function Ei(e){return{fetchCategoryResults:async({commit:t},{locationId:a,categoryId:s,allowCache:r})=>{const i=G(t);t("setIsLoading",!0);try{const o=(await e.fetchCategoryResults(a,s,r))?.data?.info;if(!o)return i("setHasError",!0),{};t("setData",o);const c={...o,abstract:"",images:[]};return i("setTrackingData",Gt(c)),t("setIsLoading",!1),o}catch(n){throw i("setHasError",!0),n}}}}const Si={collection:e=>e.category,isLoading:e=>e.isLoading},Ii={setData:(e,t)=>{e.category=t},setIsLoading:(e,t)=>{e.isLoading=t}},yi=()=>({category:{},isLoading:!1});function Do(e){return{namespaced:!0,state:yi,actions:Ei(new se(e)),getters:Si,mutations:Ii}}class Ci extends Error{constructor(a,s){super();w(this,"url");w(this,"statusCode");this.name="RedirectionError",this.url=a,s&&(this.statusCode=s)}}var Ai=(e=>(e.bookingLevel="bookingLevel",e.travelerLevel="travelerLevel",e.fallback="fallback",e))(Ai||{}),He=(e=>(e.pickupLocation="booking_pickup_location",e.flightDetails="booking_flight_details",e))(He||{}),vi=(e=>(e.names="traveler_names",e.datesOfBirth="traveler_dates_of_birth",e.weights="traveler_weights",e.passportNumbers="traveler_passport_numbers",e.dietaryRestrictions="traveler_dietary_restrictions",e))(vi||{}),bi=(e=>(e.dayFromPurchase="dayFromPurchase",e.dayBeforePickUp="dayBeforePickUp",e.activityStart="activityStart",e.travelerContactsSupplier="travelerContactsSupplier",e))(bi||{}),Ri=(e=>(e.NOW="now",e.LATER="later",e))(Ri||{});function Ge(e){return Li(e?.shoppingCartItems??null)}function Li(e){return Oi(e,ye.activity)}function Oi(e,t){return e?.filter(a=>a?.itemType===t)??[]}function Ui(e){return"itemType"in e?e.itemType===ye.activity:!1}function ko(e){return Ui(e)?e.activityParticipants.reduce((t,a)=>{const s=a.quantity??1,r=a.count+(a.extraCount??0);return t+s*r},0):0}function Po(e){return Ge(e).filter(t=>!!t.bookingId).map(t=>t.bookingId)}function Di(e){return Ge(e).filter(t=>t.isBundled)}function ki(e){return Ge(e).filter(t=>!t.isBundled)}class Pi{constructor(t){w(this,"_httpClient");this._httpClient=t}getDataLayer(t,a){return this._httpClient.get(new d("travelers-api.data-layer",{pathParams:{shoppingCartHash:t}}),{needsAuth:a}).then(s=>s.data.dataLayer).catch(this.createErrorHandler(`Error fetching data layer for cart ${t}`))}createErrorHandler(t){return a=>{throw(a?.response?.status??null)===404&&t&&h.error({error:a},t),a?.response?.data?a?.response?.data:a}}}const lt=e=>{const t=e.message||"unknown";return $e(e)&&e.response?.status===404&&e.response?.data?.title?.match(/Can't find customer/i)?"customer-not-found":$e(e)&&e.request?.path?.match("/_invalid_path")?"invalid-path":t.match(/timeout/i)?"timeout":t.match(/network error/i)?"network-error":t.match(/request aborted/i)?"request-aborted":t.toLowerCase()},Ni=(e,t)=>e.map(a=>a.name===t.categoryName?{...a,channels:a.channels.map(s=>s.name===t.channelName?{...s,isEnabled:s.isReadOnly?s.isEnabled:t.isEnabled}:s)}:a),ut=e=>e.permissions.map(t=>{const a=t.category.channels.map(s=>({description:s.description,name:s.name,title:s.title,isEnabled:s.permission.is_enabled,isReadOnly:s.is_read_only}));return{description:t.category.description,name:t.category.name,title:t.category.title,channels:a}});function Mi(e){return{getAppInstalled:async({commit:t,rootState:a})=>{const{id:s}=a.auth.customer;try{const r=await e.getAuthenticatedPreferences(s),n=ut(r).some(o=>o.channels.some(c=>c.name==="app_push"));return t("setHasAppInstalled",n),n}catch(r){const i=r?.response?.status||r?.statusCode,n=lt(r);return i===302&&n==="session-cookie-expired"||i===401||r.name==="UnauthorizedUser"||r.type==="UnauthorizedUserError"||(h.error({error:r,customerId:s,reason:n,status:i},"App permissions couldn't be fetched"),S.increment("communication_preferences.get_app_permissions_failure",{status:i,reason:n})),!1}},getPermissionsSigned:async({commit:t,rootState:a})=>{const{id:s}=a.auth.customer;try{const r=await e.getAuthenticatedPreferences(s),i=ut(r);t("setPermissions",i)}catch(r){const i=r?.response?.status||r?.statusCode,n=lt(r);if(i===302&&n==="session-cookie-expired")throw r;h.error({error:r,customerId:s,reason:n,status:i},"Signed in customer communication permissions couldn't be fetched"),S.increment("communication_preferences.get_permissions_signed_failure",{status:i,reason:n})}},setPermission:async({commit:t,state:a},s)=>{const{permissions:r}=a,i=Ni(r,s);t("setPermissions",i)},sendPermissions:async({state:t,rootState:a})=>{try{const{permissions:s}=t,r=[];s.forEach(n=>n.channels.forEach(o=>r.push({categoryName:n.name,channelName:o.name,isEnabled:o.isEnabled})));const{id:i}=a.auth.customer;return await e.setAuthenticatedPreferences(i,r),S.increment("communication_preferences.send_permissions_success"),!0}catch(s){const r=s?.response?.status;return h.error({error:s},"Customer communication permissions failed to be sent."),S.increment("communication_preferences.send_permissions_failure",{status:r}),!1}},subscribe:async({rootState:t},{source:a,containerName:s})=>{const r={source:a,containerName:s};try{const{id:i}=t.auth.customer;return await e.setAuthenticatedPreferences(i,[{categoryName:"newsletter",channelName:"email",isEnabled:!0},{categoryName:"action_based",channelName:"email",isEnabled:!0}],r),S.increment("communication_preferences.subscribe_success"),!0}catch(i){h.error({error:i},"Customer couldn't be subscribed to marketing emails");const n=i?.response?.status;return S.increment("communication_preferences.subscribe_failure",{status:n,...r}),!1}},getEmailSoftOptinEligible:async({rootState:t},a)=>{const{visitorId:s}=t.context,r=encodeURIComponent(a),i=await e.isVisitorSoftinEligible(r,s);return S.increment("soft_opt_in_check",{isEligible:String(i),type:"email"}),i},getCustomerSoftOptinEligible:async({rootState:t})=>{const a=t?.auth?.customer?.id;if(!a)return!1;const s=await e.isCustomerSoftinEligible(a);return S.increment("soft_opt_in_check",{isEligible:String(s),type:"customer"}),s}}}const Hi={setEmail:(e,t)=>{e.email=t},setPermissions:(e,t)=>{e.permissions=t},setHasAppInstalled:(e,t)=>{e.hasAppInstalled=t}},Gi={email:e=>e.email,permissions:e=>e.permissions,hasAppInstalled:e=>e.hasAppInstalled},xi=()=>({email:"",permissions:[],hasAppInstalled:null});function No(e){return{namespaced:!0,state:xi,actions:Mi(new Me(e)),getters:Gi,mutations:Hi}}var Ee=(e=>(e.Location="location",e.LocationCategory="location_category",e.GiftCard="gift_card",e.Unknown="unknown",e.Activity="activity",e.SyntheticTripItem="synthetic_trip_item",e.TripItemGroup="trip_item_group",e))(Ee||{}),Se=(e=>(e.Country="country",e.Area="area",e.City="city",e.Poi="poi",e))(Se||{});const Wi=["q","lc","tl","ct","alsoVisits","departsFrom","accessArea","partner_id","cmp","bct","lng","dur","srv","time_range","et","date_to","date_from","p","searchSource","price_range","reassurance","offset","size","sortBy","sortOrder","id","themes","poi_types","audiences","transportation_types","traveler_category","activity_type","eCategories","eTours","adGroupId","keywordId","tcId","searchContext","collectionId","collectionUids","debugCollectionUid","queryMatch","deals","dealsFirst","latitude","longitude","radius","reviewRatingRanges","enterLocationIds","notEnterLocationIds"];var Fi=(e=>(e[e.SEE_ALL=4]="SEE_ALL",e[e.DESTINATION_QUERY_CHANGE=3]="DESTINATION_QUERY_CHANGE",e[e.SEARCH_BOX=7]="SEARCH_BOX",e[e.DATEPICKER=1]="DATEPICKER",e[e.DEALS=5]="DEALS",e[e.HOME=2]="HOME",e))(Fi||{});const dt={q:Vs,lc:e=>e.toString().includes("l")||e.toString().includes("c")?e:`l${e}`,departsFrom:e=>e.toString().includes("l")?e:`l${e}`},Ie=(e,t,a,s)=>{const r={...e,date_from:t?.from,date_to:t?.to,searchSource:a},i=Object.keys(r).reduce((n,o)=>{const c=o,l=r[c];if(!Wi.includes(c)||l==="undefined")return n;const p=l&&dt[c]?dt[c]?.(l):l;return{...n,...p?{[c]:p}:{}}},{});return!R(Object.keys(i))||s?`?${$({...s,...i})}`:""},Mo=(e,t,a,s,r)=>{r&&(e.departsFrom=e?.lc,e.lc=r.toString());const i=Fs(s,"/s/"),n=Ie(e,t,a);return`${i}${n}`},Ho=e=>{const t={};return e===void 0||(e.type===Ee.Location&&e.countryId&&e.locationType===Se.Country&&(t.lc=`${A.locations?.prefix?.country}${e.countryId}`),e.type===Ee.Location&&e.locationId&&e.locationType!==Se.Country&&(t.lc=`${A.locations?.prefix?.location}${e.locationId}`)),t};function Bi(e){if(typeof e?.isAxiosError=="boolean")return e;const t=e.metadata?.rankUuid,a=e.items.map(s=>({...s,...t&&{rankUuid:t}}));return{...e,items:a}}const $i={handler:Bi};function Vi(e){const t=(a,s,r={})=>{h.error({error:s,...r},`${a}
 failed`)};return{fetchSearchResults:async({commit:a,dispatch:s,rootGetters:r},{query:i,size:n,offset:o,searchParams:c})=>{const l=ta();s("setRequestId",{requestId:l});const p=G(a),m=Number(i.searchSource),g=r["availability/dates"],f=r["context/currency"],E=r["context/locale"];let T;i?.reviewRatingRanges&&typeof i?.reviewRatingRanges=="string"&&(T=Number.parseFloat(i?.reviewRatingRanges)),Number.isNaN(T)&&(T=void 0);const L=Ie({...i,size:n,offset:o,sortOrder:i.order,sortBy:i.sort,reviewRatingRanges:T},g,m,c);return e.fetchSearchResults(L,{currency:f,locale:E,requestId:l}).then(I=>$i.handler(I)).catch(I=>{throw p("setHasError",!0),a("setIsLoading",!1),I})},setSearchContext:async({commit:a},s)=>{a("setSearchContext",s)},fetchResultsCountOnly:async({commit:a,dispatch:s},r)=>{try{a("setIsLoading",!0);const i=await s("fetchSearchResults",r);a("setIsLoading",!1),a("setResultsCount",i.total)}catch(i){t("search/fetchResultsCountOnly",i),a("setIsLoading",!1)}},setVisibleResults:async({commit:a,state:s,dispatch:r},{query:i,size:n=et,offset:o=0,cacheSize:c=et,reset:l=!0,containerName:p,dataLayerInfo:m,isMobileDevice:g,fetchCacheSize:f=!0})=>{try{a("setIsLoading",!0),l&&r("resetResults",s.cachedResults.metadata);const E={query:i,size:n,offset:o,containerName:p,dataLayerInfo:m};if(!s.cachedResults.total){const O=await r("fetchSearchResults",E);if(a("setSrpTitles",{title:O.metadata?.title}),O.total===0){a("setResults",O),a("setIsLoading",!1);return}a("setCachedResults",O)}const T=s.cachedResults.items.length;if(!g&&T<n&&f){const O=await r("fetchSearchResults",{...E,size:c,offset:T});a("setCachedResults",{total:O.total,items:[...s.cachedResults.items,...O.items],metadata:s.cachedResults.metadata,sandbox:O.sandbox})}const{items:L,total:I,suggestions:Yt,metadata:xe,sandbox:Zt}=s.cachedResults,jt=xe?.title,Qt=L.slice(0,n);a("setResults",{total:I,items:Qt,suggestions:Yt,metadata:xe,sandbox:Zt}),a("setIsLoading",!1),s.srpTitles.title||a("setSrpTitles",{title:jt})}catch(E){t("search/setVisibleResults",E),a("setIsLoading",!1);return}},fetchFilters:async({commit:a,rootGetters:s,state:r},{query:i})=>{try{const n=r.filtersPerformance,o=s["availability/dates"],c=Number(i?.searchSource),l=Ie(i,o,c);n.startFetch=typeof window<"u"?performance.now():Date.now();const p=await e.fetchFilters(l);n.dataReceived=typeof window<"u"?performance.now():Date.now();const m=p?.facets&&{...p.facets}||{};return m?.activityType?delete m.travelerCategory:delete m?.activityType,a("setFilters",m),a("setFiltersPerformance",n),a("setFiltersMetadata",p?.metadata),p?.facets}catch(n){return t("Actions search/fetchFilters",n),{}}},fetchAiBasedFilters:async({commit:a},s)=>{try{const r=await e.fetchAiBasedFilters(s);return a("setAiBasedResults",r),r}catch(r){return t("Actions search/fetchAiBasedFilters",r),[]}},fetchLocationData:async({commit:a},s)=>e.fetchLocationData(s).then(r=>{a("setLocationData",r);const{info:i}=r;return Qe(Gt(i)),r}),fetchLocationMetaData:async({commit:a},s)=>{try{const r=await e.fetchLocationMetaData(s);return a("setLocationMetadata",r?.metadata??{}),r}catch{return Promise.resolve()}},setFilterValues:(a,s)=>{const{filter:r,values:i}=s,n={...a.state.selectedFilters};if(i&&i.length){const o=r==="locations"?i.filter(c=>!c.includes(A.locations?.prefix?.country)):i;n[r]=Array.from(new Set(o))}else delete n[r];a.commit("setSelectedFilters",n)},setSelectedFilters:({commit:a},s)=>{a("setSelectedFilters",s)},setCollections:({commit:a},s)=>{a("setCollections",s)},setActiveCollection:({commit:a},s)=>{a("setActiveCollection",s)},setConsistentFilters:({commit:a},s)=>{a("setConsistentFilters",s)},setSrpTitles:({commit:a},s)=>{a("setSrpTitles",s)},resetResults:({commit:a},s)=>{a("setCachedResults",{total:0,items:[],metadata:s,sandbox:{}}),a("setResults",{total:0,items:[],metadata:s,sandbox:{}}),a("setResultsCount",0)},pushToDataLayer({state:a},s){Qe(hr({...s,activities:a.results.items}))},setRequestId({state:a,commit:s},{requestId:r}){s("setRequestId",r||a.requestId)},clearFilter:({commit:a},s)=>{a("clearFilter",s)}}}const Ki={requestId:e=>e.requestId,results:e=>e.results,resultsCount:e=>e.resultsCount,searchContext:e=>e.searchContext,filters:e=>e.filters,exposedFilters:e=>e.exposedFilters,filtersMetadata:e=>e.filtersMetadata,selectedFilters:e=>e.selectedFilters,isLoading:e=>e.isLoading,srpTitles:e=>e.srpTitles,locationMetadata:e=>e.locationMetadata,locationData:e=>e.locationData,filtersCount(e){return Object.keys(e.selectedFilters).reduce((a,s)=>a+=e.selectedFilters[s]?.length??0,0)},sorting:e=>e.sorting,collections:e=>e.collections,activeCollection:e=>e.activeCollection,consistentFilters:e=>e.consistentFilters,filtersPerformance:e=>e.filtersPerformance,searchId:e=>e.results.metadata?.searchId??""},zi={setSearchContext:(e,t)=>{e.searchContext=t},setExposedFilters:(e,t)=>{e.exposedFilters=t},setFilters:(e,t)=>{e.filters=t},setAiBasedResults:(e,t)=>{e.aiBasedFilters=t},setFiltersMetadata:(e,t)=>{e.filtersMetadata=t},setLocationData:(e,t)=>{e.locationData=t},setLocationMetadata:(e,t)=>{e.locationMetadata=t},setSelectedFilters:(e,t)=>{e.selectedFilters=t},setIsLoading:(e,t)=>{e.isLoading=t},setCachedResults:(e,t)=>{e.cachedResults=t},setResults:(e,t)=>{e.results=t,e.resultsCount=t.total},setResultsCount:(e,t)=>{e.resultsCount=t},setSorting:(e,t)=>{e.sorting=t},setRequestId:(e,t)=>{e.requestId=t},setCollections:(e,t)=>{e.collections=t},setActiveCollection:(e,t)=>{e.activeCollection=t},setConsistentFilters:(e,t)=>{e.consistentFilters=t},setSrpTitles:(e,t)=>{e.srpTitles=t},setFiltersPerformance:(e,t)=>{e.filtersPerformance=t},clearFilter:(e,t)=>{const a=e.selectedFilters;delete a[t],e.selectedFilters=a}},Yi=()=>({requestId:void 0,results:{total:0,items:[],suggestions:[]},resultsCount:0,cachedResults:{total:0,items:[]},isLoading:!1,srpTitles:{},searchContext:void 0,filters:{},exposedFilters:{},filtersMetadata:{},selectedFilters:{},aiBasedFilters:[],sorting:{sortBy:"popularity",sortOrder:null},locationData:[],locationMetadata:{},collections:{},activeCollection:"",consistentFilters:{locations:[]},filtersPerformance:{startFetch:0,dataReceived:0,rendered:0}});function Go(e){return{namespaced:!0,state:Yi,actions:Vi(new vt(e)),getters:Ki,mutations:zi}}class Zi{constructor(t){w(this,"_httpClient");this._httpClient=t}async sendPasswordReset(t){await this._httpClient.post(new d("travelers-api.customer-password-reset"),{email:t})}resetPassword(t,a,s){return this._httpClient.post(new d("travelers-api.customer-password-reset-submit"),{customerId:t,code:a,password:s})}async getPasswordInfo(t){const{data:a}=await this._httpClient.get(new d("travelers-api.customers-password-info",{pathParams:{customerId:t}}),{needsAuth:!0});return a}async setPassword(t,a,s){await this._httpClient.put(new d("travelers-api.customers-password",{pathParams:{customerId:t}}),{oldPassword:a,newPassword:s},{needsAuth:!0})}async getPaymentInfos(t){const{data:a}=await this._httpClient.get(new d("travelers-api.customers-payment-info",{pathParams:{customerId:t}}),{needsAuth:!0});return a.paymentCards.cards}async deletePaymentInfo(t,a){await this._httpClient.delete(new d("travelers-api.customers-payment-info-delete",{pathParams:{customerId:t,paymentCardId:a}}),{needsAuth:!0}).then(s=>s).catch(()=>h.error(`Error deleting payment cart info ${a} from customer ${t}`))}async getProfile(t){const{data:a}=await this._httpClient.get(new d("travelers-api.customers",{pathParams:{customerId:t}}),{needsAuth:!0}),s=a.customer.dateOfBirth,r=s?s.split("-").map(i=>parseInt(i,10)):[0,0,0];return{...a.customer,birthDate:r}}async saveProfile(t,a){let s=null;!a.birthDate.includes(0)&&!a.birthDate.includes("")&&(s=a.birthDate.map(r=>r.toString().padStart(2,"0")).join("-")),await this._httpClient.patch(new d("travelers-api.customers",{pathParams:{customerId:t}}),{...a,dateOfBirth:s},{needsAuth:!0})}async resendValidationEmail(t){await this._httpClient.post(new d("travelers-api.customers-resend-validation-email",{pathParams:{customerId:t}}),null,{needsAuth:!0})}async getCountries(){const{data:t}=await this._httpClient.get(new d("travelers-api.addresses-countries"));return t.countries}async getAddress(t){const{data:a}=await this._httpClient.get(new d("travelers-api.customers-address",{pathParams:{customerId:t}}),{needsAuth:!0});return a.address}async saveAddress(t,a){await this._httpClient.patch(new d("travelers-api.customers-address",{pathParams:{customerId:t}}),a,{needsAuth:!0})}}const ji={firstName:"",lastName:"",email:"",phone:"",hash:"",birthDate:[0,0,0]},Qi={street:"",addressSuffix:"",zip:"",city:"",state:"",country:null,phone:""},Xi=()=>({customer:ji,address:Qi,passwordIsSet:!1,countries:[],paymentInfos:[]}),qi=e=>({sendPasswordReset:async(t,{email:a})=>await e.sendPasswordReset(a),resetPassword:async(t,{cid:a,code:s,password:r})=>{await e.resetPassword(a,s,r)},getPasswordInfo:async({commit:t,rootState:a})=>{const{id:s}=a.auth.customer,{isSet:r}=await e.getPasswordInfo(s);t("setPasswordIsSet",r)},setPassword:async({rootState:t},{oldPassword:a,newPassword:s})=>{const{id:r}=t.auth.customer;return await e.setPassword(r,a,s)},getProfile:async({commit:t,rootState:a})=>{const{id:s}=a.auth.customer;if(!s)throw new B("Unauthorized user for this endpoint.",a.route.fullPath);const r=await e.getProfile(s),{phone:i}=await e.getAddress(s);t("setCustomer",{...r,phone:i})},saveProfile:async({state:t,rootState:a})=>{const{id:s}=a.auth.customer;await e.saveProfile(s,t.customer),await e.saveAddress(s,{phone:t.customer.phone})},resendValidationEmail:async({rootState:t})=>{const{id:a}=t.auth.customer;await e.resendValidationEmail(a)},getPaymentInfos:async({commit:t,rootState:a})=>{const{id:s}=a.auth.customer;if(!s)throw new B("Unauthorized user for this endpoint.",a.route.fullPath);const r=await e.getPaymentInfos(s);t("setPaymentInfos",r)},getAddress:async({commit:t,rootState:a})=>{const{id:s}=a.auth.customer;if(!s)throw new B("Unauthorized user for this endpoint.",a.route.fullPath);const r=await e.getAddress(s);t("setAddress",r)},getCountries:async({commit:t})=>{const a=await e.getCountries();t("setCountries",a)},deletePaymentInfo:async({commit:t,rootState:a},{paymentCardId:s})=>{const{id:r}=a.auth.customer;if(!r)throw new B("Unauthorized user for this endpoint.",a.route.fullPath);await e.deletePaymentInfo(r,s),t("deletePaymentInfo",s)},saveAddress:async({state:t,rootState:a})=>{const{id:s}=a.auth.customer;return await e.saveAddress(s,t.address)}}),Ji={paymentInfos:e=>e.paymentInfos,customerEmail:e=>e.customer?.email,customerPhone:e=>e.customer?.phone,customerProfile:e=>e.customer},en={setCustomer:(e,t)=>{e.customer=t},setPasswordIsSet:(e,t)=>{e.passwordIsSet=t},setCountries:(e,t)=>{e.countries=t},setAddress:(e,t)=>{e.address=t},setPaymentInfos:(e,t)=>{e.paymentInfos=t},deletePaymentInfo:(e,t)=>{const a=e.paymentInfos.filter(s=>s.paymentCardId!==t);e.paymentInfos=a}};function xo(e){return{namespaced:!0,state:Xi,actions:qi(new Zi(e)),getters:Ji,mutations:en}}class tn{constructor(t){w(this,"_httpClient");this._httpClient=t}async createAppLink(t){try{return(await this._httpClient.post(new d("travelers-api.create-app-link"),t))?.data}catch(a){return h.error({error:a},"Send App Link failed at service level"),a?.response?.data}}async getAttributionLinks({component:t,pageType:a,platform:s,partnerId:r,activityId:i,locationId:n}){try{return(await this._httpClient.get(new d("travelers-api.get-attribution-links",{searchString:`?component=${t}&pageType=${a}&platform=${s}&partnerId=${r||""}${i?`&activityId=${i}`:""}${n?`&locationId=${n}`:""}`}))).data}catch(o){return h.error({error:o},"Fetch attribution links for app stores failed"),{android:"https://play.google.com/store/apps/details?id=com.getyourguide.android&hl=en&gl=US",ios:"https://apps.apple.com/us/app/getyourguide-tours-tickets/id705079381"}}}async getAppRating(){return(await this._httpClient.get(new d("travelers-api.get-app-rating"))).data}}const xt="SET_SUCCESS",Wt="CONFIRMATION_MESSAGE",Ft="SET_IOS_RATING",Bt="SET_ANDROID_RATING";function an(e){return{async sendAppLink({commit:t},a){const s=Object.fromEntries(Object.entries(a).filter(i=>i[1])),r=await e.createAppLink(s);t(Wt,r.message),t(xt,r.status===200)},async getAttributionLinks(t,a){return await e.getAttributionLinks(a)},async getAppsRating({commit:t}){const a=await e.getAppRating();t(Bt,a.android),t(Ft,a.ios)}}}const sn={success:e=>e.success,message:e=>e.message,iosRating:e=>e.iosRating,androidRating:e=>e.androidRating},rn={[xt](e,t){e.success=t},[Wt](e,t){e.message=t},[Bt](e,t){e.androidRating=t},[Ft](e,t){e.iosRating=t}},Wo=e=>({namespaced:!0,state:()=>({success:!1,message:"",iosRating:{averageRating:0,totalCount:0},androidRating:{averageRating:0,totalCount:0}}),actions:an(new tn(e)),getters:sn,mutations:rn});var Y=(e=>(e.SET_GLOBAL_NAVIGATION="SET_GLOBAL_NAVIGATION",e.SET_GLOBAL_NAVIGATION_PARAMS="SET_GLOBAL_NAVIGATION_PARAMS",e))(Y||{});function $t(e){return e?e.locationId!==void 0:!1}class nn{constructor(t){this.httpClient=t}async getLocationGlobalNavigation(t){const a=new d("travelers-api.locations-global-navigation",{pathParams:{locationId:t.locationId},searchString:`?originPath=${t.originPath}`}),s=await this.httpClient.get(a);if(!s.status||s.status>=400)throw new Error(`Failed to fetch location global navigation. ${JSON.stringify(s)}`);return s}async getGlobalNavigation(t){const a=new d("travelers-api.global-navigation",{searchString:`?originPath=${t.originPath}`}),s=await this.httpClient.get(a);if(!s.status||s.status>=400)throw new Error(`Failed to fetch global navigation. ${JSON.stringify(s)}`);return s}}const on=e=>({async setGlobalNavigationParams({commit:t},a){return t(Y.SET_GLOBAL_NAVIGATION_PARAMS,a)},async fetchGlobalNavigation({commit:t,state:a}){const s=a.globalNavigationParams;if(s)try{const r=await($t(s)?e.getLocationGlobalNavigation(s):e.getGlobalNavigation(s));t(Y.SET_GLOBAL_NAVIGATION,r.data)}catch(r){h.error("Failed to fetch global navigation content",r)}}}),cn=e=>on(e),ln={globalNavigation:e=>e.globalNavigation,locationId:e=>$t(e.globalNavigationParams)?e.globalNavigationParams.locationId:null},un={[Y.SET_GLOBAL_NAVIGATION](e,t){e.globalNavigation=t},[Y.SET_GLOBAL_NAVIGATION_PARAMS](e,t){e.globalNavigationParams=t}},dn=()=>({globalNavigation:null,globalNavigationParams:null});function Fo(e){return{namespaced:!0,state:dn,actions:cn(new nn(e)),getters:ln,mutations:un}}var k=(e=>(e[e.NO_BUNDLES=0]="NO_BUNDLES",e[e.DEFAULT=5]="DEFAULT",e[e.EXTENDED_DEALS=6]="EXTENDED_DEALS",e))(k||{}),pn=(e=>(e.INCENTIVE_HASH="incentiveHash",e.CONDUCTION_DATE="conductionDate",e.LOCATION_NAME="locationName",e.SELECTED_ACTIVITY="selectedActivity",e))(pn||{});const Bo="bundlesExtendedDealsExpirationTime",$o="bundlesDealsParams",Vo="bundlesShowNotificationDot",he="passesBundlesQualificationChecks",Ko="/checkout/additions",Vt=[{id:7,type:"city"},{id:10,type:"city"},{id:16,type:"city"},{id:17,type:"city"},{id:23,type:"city"},{id:29,type:"city"},{id:30,type:"city"},{id:32,type:"city"},{id:33,type:"city"},{id:35,type:"city"},{id:36,type:"city"},{id:42,type:"city"},{id:44,type:"city"},{id:45,type:"city"},{id:46,type:"city"},{id:48,type:"city"},{id:57,type:"city"},{id:58,type:"city"},{id:59,type:"city"},{id:61,type:"city"},{id:85,type:"area"},{id:91,type:"city"},{id:139,type:"city"},{id:151,type:"city"},{id:173,type:"city"},{id:225,type:"city"},{id:260,type:"city"},{id:416,type:"area"},{id:625,type:"area"}],mn=[U.poi,U.city,U.area];var Kt=(e=>(e[e.TopCities=0]="TopCities",e))(Kt||{});function hn(e,t){return e.find(a=>t[a.type]?.id===a.id)}function gn(e,t){return Object.values(t).find(a=>a.id===e)}function wn(e){const t=hn(Vt,e);return t?.id?{featureType:0,...gn(t.id,e)}:null}function fn(e,t){return e.find(a=>a.type===t.type&&t.id===a.id)}function Tn(e){for(const t of e)if(mn.includes(t.type)&&fn(Vt,t)?.id)return{id:t.id,name:t.name||"",featureType:0,urlPath:""};return null}const _n=[390959,223122,447729,112684,618668,223134,390956,391156,391013];function zt(){return{locationId:-1,featureVersion:k.NO_BUNDLES}}function En(e,t,a){const s=zt(),r=t?wn(t):a?Tn(a):null;return r&&(s.locationId=r.id,r.featureType===Kt.TopCities&&(s.featureVersion=k.DEFAULT)),s}function Sn(e){return{setCookie:({commit:t,rootState:a,rootGetters:s},r)=>{const i=s["context/partnerSession"],n=!!i?.partnerHash&&!ir.includes(i?.partnerHash),o=Di(r.shoppingCart),c=ki(r.shoppingCart),l=(c.length===1||o.length>0)&&!n&&!_n.includes(c[0].activityId),p=l?En(a,r.activityLocation,r.activityCategories):zt(),m=r.forceExtendedDealsVersion?k.EXTENDED_DEALS:k.NO_BUNDLES;e.set(he,Number(m).toString()),t("SET_BUNDLES_COOKIE",!!(l&&m)),t("SET_FEATURE_VERSION",m);const g={partnerHash:i?.partnerHash||"",itemsInShoppingCart:c.length,itemsInCurrentBundlesSession:o.length,locationId:p.locationId,passesBundlesChecks:!!m};return h.info(g,"Bundle assignment parameters"),g},getCookie:({commit:t})=>{const a=Number(e.get(he)),s=a>k.NO_BUNDLES;return t("SET_BUNDLES_COOKIE",s),t("SET_FEATURE_VERSION",a),s},removeCookie:()=>{e.expire(he)}}}const In={SET_BUNDLES_COOKIE(e,t){e.hasBundlesCookie=t},SET_FEATURE_VERSION(e,t){e.featureVersion=t}},yn=()=>({hasBundlesCookie:!1,featureVersion:k.NO_BUNDLES}),Cn={hasBundlesCookie:e=>e.hasBundlesCookie,featureVersion:e=>e.featureVersion};function zo(e){return{namespaced:!0,state:yn,getters:Cn,mutations:In,actions:Sn(e)}}const Yo={setHasError:(e,t)=>{e.hasError=t},setShowModal:(e,t)=>{e.showModal=t},setTrackingData:(e,t)=>{e.trackingData=t},setGoogleTagManagerId:(e,t)=>{e.googleTagManagerId=t},setGoogleTagManagerOptout:(e,t)=>{e.googleTagManagerOptout=t},setGoogleMapsAPIKey:(e,t)=>{e.googleMapsAPIKey=t},setGoogleOneTapID:(e,t)=>{e.googleOneTapID=t}};function An(e){return{getBookingSummary:async({commit:t,rootState:a,rootGetters:s})=>{const{bookingHash:r=""}=a.route.params,i=G(t);return e.getBookingSummary(r,s["auth/isLoggedInRealtime"]).then(n=>(t("SET_BOOKING_SUMMARY",n),Promise.resolve(!0))).catch(n=>{if(n.status===404)throw new At({message:n?.message,apiEndpoint:n?.path});return i("setHasError",!0),h.error({error:n},"BookingSummary get data failed"),Promise.resolve(!1)})},getCancellationReasons:async()=>e.getCancellationReasons(),cancelBooking:async({commit:t},a)=>e.cancelBooking(a.bookingHash,a.cancelBookingRequest).then(s=>(t("SET_BOOKING",s),s)),rescheduleBooking:async({commit:t},a)=>e.rescheduleBooking(a.bookingHash,a.rescheduleBookingRequest).then(s=>(t("SET_BOOKING",s),s)),updateParticipants:async({commit:t},a)=>e.updateBookingParticipants(a.bookingHash,a.updateBookingParticipantsRequest).then(s=>(t("SET_BOOKING",s),s)),modifyBooking:async(t,a)=>{await e.modifyBooking(a.bookingHash,a.modifyBookingRequest)},fetchAvailabilities:async(t,a)=>e.fetchAvailabilities(a),fetchRescheduleAvailabilities:async(t,a)=>e.fetchRescheduleAvailability(a.bookingHash),fetchRescheduleAvailableOptions:async(t,a)=>e.fetchRescheduleAvailableOptions(a.bookingHash,a.startDate),fetchPreviewModifications:async(t,a)=>e.fetchPreviewModifications(a.bookingHash,a.previewModificationsRequest),submitPickUpLocation:async({commit:t},a)=>e.submitSupplierRequestedInformation(a.bookingHash,He.pickupLocation,a.answer).then(()=>{t("SET_PICKUP_LOCATION",a.answer)}).catch(s=>{throw s}),setCancellationData:async({commit:t},a)=>{t("SET_CANCELLATION_DATA",a)},sendEmailWithProofOfPayment:async(t,a)=>e.sendEmailWithProofOfPayment(a)}}const vn={SET_BOOKING_SUMMARY(e,t){e.bookingSummary=t},SET_RESCHEDULE_ERROR(e,t){e.rescheduleError=t},SET_BOOKING(e,t){e.bookingSummary&&(e.bookingSummary.booking=t)},SET_PICKUP_LOCATION(e,t){const a=e.bookingSummary?.supplierRequestedInformation?.bookingLevel??[],s=a.findIndex(i=>i.identifier===He.pickupLocation),r=a[s];s!==-1&&r&&(r.answer=t,a.splice(s,1,r))},SET_CANCELLATION_DATA(e,t){e.cancellationData=t}};var K;(e=>{e.PaymentStatusEnum={Scheduled:"scheduled",Captured:"captured",FailedRetry:"failed_retry",FailedPermanently:"failed_permanently"},e.PaymentProcessorEnum={Adyen:"ADYEN",Primer:"PRIMER"}})(K||(K={}));const bn={bookingSummary:e=>e.bookingSummary,rescheduleError:e=>e.rescheduleError,booking:e=>e.bookingSummary?.booking,startingTime:e=>e.bookingSummary?.booking?.startingTime,recommendations:e=>e.bookingSummary?.recommendations,paymentStatus(e){return e.bookingSummary?.booking?.reserveNowPayLater?.paymentStatus},isReserveNowPayLaterScheduled(e,t){return t.paymentStatus===K.PaymentStatusEnum.Scheduled},isReserveNowPayLaterFailed(e,t){return[K.PaymentStatusEnum.FailedRetry,K.PaymentStatusEnum.FailedPermanently].includes(t.paymentStatus??"")},isReserveNowPayLaterFlow(e,t){return e.bookingSummary?.booking?.status!==fe.cancelled&&(t.isReserveNowPayLaterScheduled||t.isReserveNowPayLaterFailed)},isVoucherAvailable:(e,t)=>!t.isReserveNowPayLaterFlow&&e.bookingSummary?.booking?.status===fe.active&&e.bookingSummary.booking.guideStatus===_t.confirmed,flexibilityUpgrades:e=>e.bookingSummary?.booking?.bookedFlexibilityUpgrades,cancellationData:e=>e.cancellationData};class Rn{constructor(t){w(this,"_httpClient");this._httpClient=t}createErrorHandler(t){return a=>{throw(a?.response?.status??null)===404&&t&&h.error({error:a},t),a?.response?.data?a?.response?.data:a}}getBookingSummary(t,a){return this._httpClient.get(new d("travelers-api.booking-summary",{pathParams:{bookingHash:t}}),{timeout:5e3,headers:{container:"BookingSummary"},needsAuth:a}).then(s=>{if(R(s?.data?.bookingSummaryPage))throw new Error("BookingSummary is empty");return s.data.bookingSummaryPage}).catch(this.createErrorHandler(`Error fetching booking summary page for booking ${t}`))}getCancellationReasons(){return this._httpClient.get(new d("travelers-api.cancellation-reasons")).then(t=>{if(R(t?.data?.cancellationReasons?.reasons))throw new Error("Cancellation reasons is empty");return t.data.cancellationReasons.reasons}).catch(this.createErrorHandler("Error fetching cancellation reasons"))}cancelBooking(t,a){return this._httpClient.post(new d("travelers-api.booking-cancel",{pathParams:{bookingHash:t}}),a).then(s=>{if(R(s?.data?.booking))throw new Error("Booking is empty");return s.data.booking}).catch(this.createErrorHandler(`Error fetching booking summary page for booking ${t}`))}modifyBooking(t,a){return this._httpClient.post(new d("travelers-api.booking-modify",{pathParams:{bookingHash:t}}),a,{timeout:2e4}).then(()=>{}).catch(this.createErrorHandler(`Error modifying booking ${t}`))}rescheduleBooking(t,a){return this._httpClient.post(new d("travelers-api.booking-reschedule",{pathParams:{bookingHash:t}}),a,{timeout:2e4}).then(s=>{if(R(s?.data?.booking))throw new Error("Booking is empty");return s.data.booking}).catch(this.createErrorHandler(`Error fetching booking summary page for booking ${t}`))}updateBookingParticipants(t,a){return this._httpClient.post(new d("travelers-api.booking-update-participants",{pathParams:{bookingHash:t}}),a,{timeout:2e4}).then(s=>{if(R(s?.data?.booking))throw new Error("Booking is empty");return s.data.booking}).catch(this.createErrorHandler(`Error fetching booking summary page for booking ${t}`))}fetchRescheduleAvailability(t){return this._httpClient.get(new d("travelers-api.booking-reschedule-availability",{pathParams:{bookingHash:t}})).then(a=>a.data)}fetchRescheduleAvailableOptions(t,a){return this._httpClient.get(new d("travelers-api.booking-reschedule-available-options",{pathParams:{bookingHash:t},searchString:`?date=${a}`})).then(s=>s.data)}fetchPreviewModifications(t,a){return this._httpClient.post(new d("travelers-api.booking-preview-modifications",{pathParams:{bookingHash:t}}),a,{timeout:2e4}).then(s=>s.data)}fetchAvailabilities(t){return this._httpClient.get(new d("travelers-api.aggregator-activities-availabilities",{pathParams:{activityId:t}})).then(a=>a.data)}submitSupplierRequestedInformation(t,a,s){return this._httpClient.post(new d("travelers-api.booking-supplier-requested-information-answer",{pathParams:{bookingHash:t,questionIdentifier:a}}),s).then(()=>{}).catch(this.createErrorHandler(`Error submitting answer of type ${a} for booking ${t}`))}getBookingByPin(t,a){const s=new d("travelers-api.booking-pin",{pathParams:{bookingReference:t},searchString:`?pin=${encodeURIComponent(a)}`});return this._httpClient.get(s).then(r=>r.data.booking).catch(this.createErrorHandler(`Error Getting booking with reference ${t} and pin ${a}`))}getRefundsByBookingHash(t){const a=new d("travelers-api.booking-refunds",{pathParams:{bookingHash:t}});return this._httpClient.get(a).then(s=>s.data.refunds).catch(this.createErrorHandler(`Error getting refunds for booking with booking hash ${t}`))}sendEmailWithProofOfPayment(t){return this._httpClient.post(new d("travelers-api.send-customer-email-with-proof-of-payment",{pathParams:{bookingHash:t}})).then(()=>{}).catch(this.createErrorHandler(`Error sending email to customer with proof of payment for booking ${t}`))}}const Ln=()=>({bookingSummary:null,rescheduleError:"",cancellationData:null});function Zo(e){return{namespaced:!0,state:Ln,getters:bn,mutations:vn,actions:An(new Rn(e))}}function ge(e){return e.route.params?.shoppingCartHash??e.route.query?.token??""}function On(e,t,a,s,r){return{shareTicket:async(i,{emails:n,bookingHash:o})=>e.ticketsShare(o,n).catch(c=>null),getConfirmationPage:async({commit:i,rootState:n,rootGetters:o})=>{const c=G(i),l=ge(n);return l?t.getConfirmationPageData(l,o["auth/isLoggedInRealtime"]).then(p=>{const m=p.shoppingCart;return gt(m.status)?(c("setHasError",!1),i("SET_CONFIRMATION_DATA",p),Promise.resolve(!0)):(c("setHasError",!0),h.error({shoppingCartHash:l},"Confirmation page access with unprocessed cart"),Promise.resolve(!1))}).catch(p=>(c("setHasError",!0),h.error({error:p},"ConfirmationPage get data failed"),Promise.resolve(!1))):(c("setHasError",!0),Promise.resolve(!1))},getDataLayer:async({commit:i,rootGetters:n,rootState:o})=>{const c=ge(o);return c?s.getDataLayer(c,n["auth/isLoggedInRealtime"]).then(l=>(i("SET_DATA_LAYER",l),!0)).catch(()=>(i("SET_DATA_LAYER",null),!1)):!1},checkForPartnerTicketing:async({commit:i,getters:n})=>{if(a.getTicketingBackUrl()&&n.confirmationData){const c=n.confirmationData.shoppingCart?.status??null,l=n.confirmationData.shoppingCart.shoppingCartHash??null,p=a.buildTicketingRedirectionBackUrl(c,l);p&&(a.deleteTicketingBackUrlCookie(),i("SET_TICKETING_REDIRECTION_BACK_URL",p))}},resendVoucher:async({commit:i,rootGetters:n},o)=>{i("SET_RESEND_VOUCHER_ERROR",void 0),i("SET_RESEND_VOUCHER_SENT_STATUS",!1),i("SET_RESEND_VOUCHER_LOADING",!0);try{await e.resendVoucher(o,n["context/partnerSession"]),i("SET_RESEND_VOUCHER_SENT_STATUS",!0)}catch(c){h.error({bookingReference:o,err:c},"Error resending voucher"),i("SET_RESEND_VOUCHER_ERROR",c)}i("SET_RESEND_VOUCHER_LOADING",!1)},editContactDetails:async({rootState:i},n)=>{const o=ge(i);await t.editBookingContactDetails(o,n)},getEsim:async({commit:i})=>{try{const n=await r.getEsim();n&&n.claimCampaign&&new Date(n.expiryDate)>new Date&&i("SET_ESIM",n)}catch(n){h.error("Error fetching esim",n)}},claimEsim:async()=>{try{await r.claimEsim()}catch(i){h.error("Error claiming esim",i)}}}}const Un={confirmationData:e=>e.confirmationData,isLoading:e=>e.isLoading,dataLayer:e=>e.dataLayer,ticketingRedirectionBackUrl:e=>e.ticketingRedirectionBackUrl,shoppingCartHash:e=>e.confirmationData?.shoppingCart?.shoppingCartHash,incentiveHash:e=>e.confirmationData?.shoppingCart?.incentiveGiftCode?.incentiveHash||e.confirmationData?.shoppingCart?.claimableIncentive?.incentiveHash,resendVoucherState:e=>e.resendVoucher,esim:e=>e.esim},Dn={SET_CONFIRMATION_DATA(e,t){e.confirmationData=t},SET_IS_LOADING(e,t){e.isLoading=t},SET_DATA_LAYER(e,t){e.dataLayer=t},SET_TICKETING_REDIRECTION_BACK_URL(e,t){e.ticketingRedirectionBackUrl=t},SET_RESEND_VOUCHER_ERROR(e,t){e.resendVoucher={...e.resendVoucher,error:t}},SET_RESEND_VOUCHER_LOADING(e,t){e.resendVoucher={...e.resendVoucher,loading:t}},SET_RESEND_VOUCHER_SENT_STATUS(e,t){e.resendVoucher={...e.resendVoucher,voucherSent:t}},SET_ESIM(e,t){e.esim=t}};class kn{constructor(t){this._httpClient=t}async ticketsShare(t,a){const s=new d("travelers-api.tickets-share",{pathParams:{bookingHash:t}}),r={emailAddresses:a};try{return(await this._httpClient.post(s,r)).data}catch(i){throw h.error({error:i},"ticketsShare for customer failed at service level"),i}}async resendVoucher(t,a){await this._httpClient.post(new d("travelers-api.resend-voucher",{pathParams:{bookingReference:t}}),{},{headers:{"partner-hash":a.partnerHash??"","partner-cmp":a.cmp??"","partner-visitor-id":a.partnerVisitorId??""}})}}class Pn{constructor(t){w(this,"_httpClient");this._httpClient=t}handleError(t,a){throw(t?.response?.status??null)===404&&a&&h.error({error:t},a),t?.response?.data?t?.response?.data:t}createErrorHandler(t){return a=>this.handleError(a,t)}getConfirmationPageData(t,a){return this._httpClient.get(new d("travelers-api.confirmation-page",{pathParams:{shoppingCartHash:t}}),{timeout:1e4,needsAuth:a}).then(s=>{if(R(s?.data?.confirmationPage))throw new Error("ConfirmationPageData is empty");return s.data.confirmationPage}).catch(this.createErrorHandler(`Error fetching confirmation page for cart ${t}`))}async editBookingContactDetails(t,a){try{await this._httpClient.patch(new d("travelers-api.carts-customer-billing-information",{pathParams:{shoppingCartHash:t}}),{travelerDetails:a},{timeout:1e4}).then(s=>{if(R(s?.data?.customerBillingInformation))throw new Error("Response is empty")})}catch(s){this.handleError(s,`Error editing contact details for cart ${t}`)}}}const q="ticketing_set_shopping_cart_hash",Nn="ticketing_redirection_back_to_merchant",Mn=[/(www\.)?africamuseum\.be/,/(www\.)?leonardointeractivemuseum\.com/,/(www\.)?mostradileonardo\.com/,/(www\.)?davincimuseum\.it/,/(www\.)?infomountbatur\.com/,/(www\.)?brokenships\.com/,/(www\.)?fernsehturm-stuttgart\.de/,/(www\.)?mgst\.net/,/(www\.)?mgs\.hr/,/(www\.)?cuevasdelshams\.com/,/(www\.)?alboreaflamenco\.com/,/(www\.)?berlinstory\.de/,/(www\.)?casadelamemoria\.es/,/obando\.mimundosocial\.com/,/(www\.)?elephantretirementpark\.com/,/(www\.)?elephantretirementparkphuket\.com/,/(www\.)?strawberryfieldliverpool\.com/,/(www\.)?kamigata\.jp/,/(www\.)?guggenheim-venice\.it/,/(www\.)?escherinhetpaleis\.nl/,/(www\.)?torredeilamberti\.it/,/(www\.)?funicolarediverona\.it/,/(www\.)?archaeology-travel\.com/,/(www\.)?lovingnewyork\.de/,/(www\.)?loving-newyork\.com/,/(www\.)?museodemedici\.com/,/(www\.)?myspecialvenice\.com/,/(www\.)?davincimuseum\.it/,/(www\.)?museodellamusica\.com/,/(www\.)?artemusicavenezia\.it/,/(www\.)?vivilerive\.com/,/(www\.)?positanoscooter\.com/,/(www\.)?flamencomalaga\.com/,/(www\.)?isolelagomaggiore\.com/,/(www\.)?tucsonbotanical\.org/,/(www\.)?picoverde\.it/,/(www\.)?museonicolis\.com/,/(www\.)?villafoscarini\.it/,/(www\.)?museodellacalzatura\.it/,/(www\.)?tucsonbotanical\.org/,/(www\.)?ceronudos\.com/,/(www\.)?biketaxi\.de/,/(www\.)?picoverde\.it/,/(www\.)?flamencocultural\.com/,/(www\.)?flamencolacantaora\.com/,/(www\.)?barakasalaflamenca\.com/,/(tsb\.)?.clickfunnels\.com\/museo-nicolis-interazione1656062823051/,/(www\.)?museopadovaebraica\.it/,/(www\.)?streaming\.myaudi\.it/,/(www\.)?ambrosiana\.it/,/(www\.)?scuolasangiovanni\.it/,/(www\.)?ilsoave\.com/,/(www\.)?soavemultiverso\.com/,/(www\.)?soaveversus\.com/,/(www\.)?hartiescableway\.co\.za/,/(www\.)?theredbicycle\.org/,/(www\.)?ccvalg\.pt/,/(www\.)?hurghadaexcursionsonline\.com/,/(www\.)?creaturedigomma\.com/,/(www\.)?micaseta\.com/,/(www\.)?psmuseum\.it/,/(www\.)?dunacruises\.com/,/(www\.)?dunacruises\.test/,/(www\.)?ivirtuositaliani\.eu/,/(www\.)?flamenqueria\.es/,/(www\.)?bubbleslice\.pt/,/(www\.)?linternaeventos\.com/,/(www\.)?charismaticmountain\.com/,/(www\.)?museomaschere\.it/,/(www\.)?museodellemaschere\.it/,/(www\.)?vasamuseet\.se/,/(www\.)?vrak\.se/,/(www\.)?vrakmuseum\.se/,/(www\.)?staging\.vrakmuseum\.se/,/(www\.)?fuerteventurafullexperience\.com/,/(www\.)?gametour\.es/,/(www\.)?igattipiubellidelmondo\.it/,/(www\.)?fuerteventuraquad\.com/,/(www\.)?scotlandscanyons\.com/,/(www\.)?pickeringsgin\.com/,/(www\.)?sharkcagediving\.co\.za/,/(www\.)?thamesriversightseeing\.com/,/(www\.)?cairoexcursionsonline\.com/,/(www\.)?hurghadaexcursionsonline\.com/,/(www\.)?sharmexcursionsonline\.com/,/(www\.)?tesorosangennaro\.it/,/(www\.)?knysnacharters\.com/,/(www\.)?aventuratoursalou\.com/,/(www\.)?montilessini\.com/,/(www\.)?pozzodellacava\.it/,/(www\.)?indigotickets\.com/,/(www\.)?quickcultureinsider\.com/,/(www\.)?quickculture\.com/,/(www\.)?dezerlandpark\.com/,/(www\.)?waxmuseumudaipur\.com/,/(www\.)?onlocationtours\.com/,/(www\.)?sevillafood\.com/,/(www\.)?naturaxtremetenerife\.com/,/(www\.)?telefericojardimbotanico\.com/,/(www\.)?querinistampalia\.org/,/(www\.)?museitreviso\.it/,/(www\.)?techsalt\.pt/,/(www\.)?flamencopalaudalmases\.com/,/(www\.)?salsamia\.com/,/(www\.)?mangos\.com/,/(www\.)?nuraghelosa\.net/,/(www\.)?internationaldriveorlando\.smtusa\.com/,/(www\.)?internationaldriveorlando\.com/,/(www\.)?iridetrolley\.com/,/(www\.)?viajesparejatours\.com/,/(www\.)?jardinalbarda\.com/,/(www\.)?museonivola\.it/,/(www\.)?zico-tours\.com/,/(www\.)?skyoftenerife\.com/,/(www\.)?ojovolador\.com/,/(www\.)?tossasub\.com/,/(www\.)?barmanonline\.it/,/(www\.)?bosphorustour\.com/,/(www\.)?myaudi\.it/,/(www\.)?touristtram\.nl/,/(www\.)?chocolatekingdom\.com/,/(www\.)?sirilaktours\.com/,/(www\.)?urlaub-sr-lanka\.info/,/(www\.)?split\.muzejiluzija\.com/,/(www\.)?myloveitaly\.com/,/(www\.)?rome-shorexcursions\.com/,/(www\.)?mymaremma\.com/,/(www\.)?frenchriviera-services\.com/,/(www\.)?sirilaktours\.com/,/(www\.)?seerendipitytours\.com/,/(www\.)?seaadventureexcursions\.com/,/(www\.)?redhistorymuseum\.com/,/(www\.)?tmnt\.hr/,/(www\.)?ranchito\.com/,/(www\.)?cuevasdegenova\.com/,/(www\.)?teatroflamencotriana\.com/,/(www\.)?lyonbiketour\.com/,/(www\.)?salaflamenca-almoraima\.com/,/(www\.)?sunsetbosphorus\.com/,/(www\.)?sunsetcruiseistanbul\.com/,/(www\.)?lunchcruiseistanbul\.com/,/(www\.)?cowgirl\.net/,/(www\.)?mangos\.com/,/(www\.)?naplesgrandtour\.com/,/(www\.)?torciano\.com/,/(www\.)?glaesernemanufaktur\.de/,/(www\.)?arnoboat\.com/,/(www\.)?hopon\.no/,/(www\.)?haciendalarekompensa\.es/,/(www\.)?tourstoniagarafalls\.com/,/(www\.)?tangoporteno\.com.ar/,/(www\.)?hptravel\.it/,/(www\.)?hvarboating\.com/,/(www\.)?balidiving\.com/,/(www\.)?fadonabaixa\.com/,/(www\.)?babusafaris\.com/,/(www\.)?montenegrosubmarine\.me/,/(www\.)?mfk-berlin\.de/,/(www\.)?mfk-frankfurt\.de/,/(www\.)?graylineorlando\.com/,/(www\.)?palazzoprigionivenezia\.com/,/(www\.)?piazza-sanmarco\.eu/,/(www\.)?authenticvenice\.tours/,/(www\.)?gondola-ride\.com/,/(www\.)?senegal-shuttle\.com/,/(www\.)?palmetumtenerife\.es/,/(www\.)?kornatiexcursion\.com/,/(www\.)?myoldtownusa\.com/,/(www\.)?niagarafallshilton\.com/,/(www\.)?tinoboats\.com/,/(www\.)?maxactionarena\.com/,/(www\.)?venicecitytours\.it/,/(www\.)?golfoparadiso\.it/,/(www\.)?adventurezone\.co\.za/,/(www\.)?hovm\.nl/,/(www\.)?madboatparty\.es/,/(www\.)?acasadofado\.pt/,/(www\.)?americanwritersmuseum\.org/,/(www\.)?navitremiti\.com/,/(www\.)?maderotango\.com/,/(www\.)?maggiorleggerotour\.com/,/(www\.)?gostilje\.com/,/maggiorleggero\.sitengo\.it/,/(www\.)?maderotangoiguazu\.com/,/(www\.)?maderotango\.com\.ar/,/(www\.)?adventurezone\.co\.za/,/(www\.)?mongolfiereitalia\.com/,/(www\.)?mongolfierefirenze\.com/,/(www\.)?ballooninginitaly\.it/,/(www\.)?balloontuscany\.com/,/(www\.)?hornblowermalta\.com/,/(www\.)?himalayastrek\.com/,/(www\.)?rentalcarpositano\.com/,/(www\.)?alpineairadventures\.com/,/(www\.)?portodefados\.com/,/(www\.)?famaraiso\.es/,/(www\.)?acasadofado\.com/,/(www\.)?acasadofado\.pt/,/(www\.)?zuramaltaparty\.com/,/(www\.)?audievents.volkswagengroup\.it/,/(www\.)?mongolfiereitalia\.com/,/(www\.)?mongolfierefirenze\.com/,/(www\.)?ballooninginitaly\.it/,/(www\.)?balloontuscany\.com/,/(www\.)?egadinavigazione\.it/,/(www\.)?scubacarolina\.com/,/(www\.)?flamencolacantaora\.com/,/(www\.)?toursguatape\.com/,/(www\.)?blisschapel\.com/,/(www\.)?top10toursinmedellin\.com/,/(www\.)?talvi-tours\.hr/,/(www\.)?mirjana-rastoke\.com/,/(www\.)?rastoke-active\.com/,/(www\.)?palapa\.tours/,/(www\.)?lapiedradelpenol\.com/,/(www\.)?nauticajasminepalau\.com/,/(www\.)?bottegatorciano\.com/,/(www\.)?flytowine\.com/,/(www\.)?rudasbistro\.hu/,/(www\.)?insula360\.com/,/(www\.)?eltemplodelflamenco\.com/,/(www\.)?tablaoalvarezquintero\.com/,/(www\.)?911memorial\.org/,/(www\.)?teatroastorpiazzolla\.com/,/(www\.)?tangocarlosgardel\.com/,/(www\.)?ninnaji\.jp/,/(www\.)?midway\.org/,/(www\.)?discoveringmedellin\.com/,/(www\.)?ecoterranicaragua\.com/,/(www\.)?ceresrail\.co\.za/,/(www\.)?tenikwa\.com/,/(www\.)?maltauncovered\.com/,/(www\.)?sienawards\.com/,/(festival\.)?sienawards\.com/,/(app-festival\.)?sienawards\.com/,/(www\.)?kurtsafari\.com/,/(www\.)?teaceremonykyoto\.com/,/(www\.)?teaceremonyjuan\.com/,/(www\.)?drum-tao\.com/,/(www\.)?south-tours\.com/,/(www\.)?7travel\.at/,/(www\.)?palazzoboncompagni\.it/,/(www\.)?grandcanyonwesternranch\.com/,/(www\.)?cityoflondontour\.com/,/(www\.)?jacktheripperlondontours\.com/,/(www\.)?xtremeninjachallenge\.com/,/(www\.)?sentirflamenco\.com/,/(www\.)?lanzafly\.es/,/(www\.)?timetravel-vienna\.at/,/(www\.)?amazing-sisi\.at/,/(www\.)?casadaguitarra\.pt/,/(www\.)?mostraprimamonnalisa\.com/,/(www\.)?orlandoautomuseum\.com/,/(www\.)?pinballatdezerland\.com/,/(www\.)?andesecotours\.com/,/(www\.)?gamrzdelight\.com/,/(www\.)?aroundbudapest\.com/,/(www\.)?portofado\.com/,/(www\.)?mak\.at/,/(www\.)?kunstmuseum-stuttgart\.de/,/(www\.)?visitgroningen\.nl/,/(www\.)?splitboatparty\.com/,/(www\.)?balloonturca\.com/,/(www\.)?ennetours\.com/,/(www\.)?gocretesafari\.gr/,/(www\.)?gocretetour\.gr/,/(www\.)?lagavitella\.it/,/(www\.)?praianonline\.com/,/(www\.)?seapositano\.com/,/(www\.)?maanoadventures\.com/,/(www\.)?perfectsafarisafrica\.com/,/(www\.)?miromonza\.com/,/(www\.)?en-desarrollo\.eu/,/(www\.)?paellalegacy\.com/,/(www\.)?bluegrotto\.tours/,/(www\.)?lubrenseboats\.com/,/(www\.)?santorinifreespirit\.com/,/(www\.)?holidaysinmalta\.net/,/(www\.)?seakayakgreece\.com/,/(www\.)?rentaboatmalta\.com/,/(www\.)?bluelagoon\.com\.mt/,/(www\.)?brothersballoon\.com/,/(www\.)?blueriversafari\.com/,/(www\.)?boats-santorini\.com/,/(www\.)?santorinirentboat\.com/,/(www\.)?centralgallery\.cz/,/(www\.)?elsalobrehr\.es/,/(www\.)?zakynthosboatrentals\.eu/,/(www\.)?harrypottertourslondon\.com/,/(www\.)?ocean-jet-ski-tenerife\.com/,/(www\.)?petag\.it/,/(www\.)?zadarinandout\.hr/,/(www\.)?agoutitours\.com/,/(www\.)?museasculpta\.be/,/(www\.)?masf\.pt/,/(www\.)?tourofamsterdam\.com/,/(www\.)?lisboaemfado\.pt/,/(www\.)?madametussaudsprague\.cz/,/(www\.)?marvelustravel\.com/,/(www\.)?rijotours\.com/,/(www\.)?rojotango\.com/,/(www\.)?fuerteventuraboat\.com/,/(www\.)?islandexperiencestt\.com/,/(www\.)?peruandestop\.com/,/(www\.)?furanai\.pt/,/(www\.)?paraglidingmedellin\.com/,/(www\.)?flycartagena\.com/,/(www\.)?manurevatours\.com/,/(www\.)?audievents\.volkswagengroup\.com/,/(www\.)?sibariatours\.com/,/(www\.)?destinycaribbeantours\.com/,/(www\.)?cafedelosangelitos\.com/,/(www\.)?ijenauthentictour\.com/,/(www\.)?balijavaadventure\.com/,/(www\.)?nomadascolombiatravel\.com/,/(www\.)?ijenminertour\.com/,/(www\.)?revyjets\.com/,/(www\.)?istanbultourstudio\.com/,/(www\.)?ja\.kyoto\.travel/,/(www\.)?cenotexcajum\.com\.mx/,/(www\.)?riocopter\.com\.br/,/(www\.)?exploravalle\.com/,/(www\.)?museorobertbrady\.com/,/(www\.)?strawberryfield\.salvationarmy\.org\.uk/,/(www\.)?colorsofzanzibar\.com/,/(www\.)?tourfortheday\.com/,/(www\.)?chilam-balam\.com/,/(www\.)?ticketing.getyourguide\.com/,/(www\.)?getyourguide\.tickets/,/(www\.)?orlandobeachtours\.com/,/(www\.)?orlandoticketsandtours\.com/,/new-ticketing-attraction\.000webhostapp\.com/,/demo\.gyg\.ticketing\.run/,/gyg\.datadoghq\.com/,/localhost:8080/,/localhost:3400/],Hn="paymentResult",Gn="shopping_cart_hash";class xn{constructor(t){w(this,"_cookieManager");this._cookieManager=t}getTicketingBackUrl(){return this._cookieManager.get("ticketingBackUrl")||null}deleteTicketingBackUrlCookie(){return this._cookieManager.expire("ticketingBackUrl")}persistTicketingBackUrl(t){t&&this.isUrlAllowedForTicketing(t)&&this._cookieManager.set("ticketingBackUrl",t,{httpOnly:!1})}buildTicketingRedirectionBackUrl(t,a){const s=this.getTicketingBackUrl();if(!s||!this.isUrlAllowedForTicketing(s))return null;if(t===V.processed){const r=new URL(s);return r.searchParams.set(Hn,"success"),r.searchParams.set(Gn,a),r.toString()}return null}getShoppingCartHashWithOverrideFromUrl(t,a,s){return t&&this.isRefererAllowedToSetShoppingCartHash(a)?(s.persistShoppingCartHash(t),t):s.getShoppingCartHash()}isUrlAllowedForTicketing(t){if(!t)return!1;try{const a=new URL(t);return a.protocol!=="http:"&&a.protocol!=="https:"?!1:Mn.some(s=>s.test(a.host))}catch{return!1}}isRefererAllowedToSetShoppingCartHash(t){if(!t)return S.increment(q,{reason:"refererUndefined",allowed:"false"}),!1;try{new URL(t)}catch{return S.increment(q,{referer:t,reason:"parseException",allowed:"false"}),!1}const a=new URL(t);return this.isUrlAllowedForTicketing(t)?(S.increment(q,{referer:a.origin,path:a.pathname,allowed:"true"}),!0):(S.increment(q,{referer:a.origin,path:a.pathname,reason:"refererNotInAllowList",allowed:"false"}),!1)}static redirectBackWithPaymentStatus(t){return S.increment(Nn,{url:t}),Promise.reject(new Ci(t,302))}}class Wn{constructor(t){w(this,"_httpClient");this._httpClient=t}getEsim(){return this._httpClient.get(new d("travelers-api.esim"),{needsAuth:!0,validateStatus:t=>t===200||t===404}).then(t=>t.data).catch(this.createErrorHandler())}claimEsim(){const t={status:"claimed"};return this._httpClient.put(new d("travelers-api.esim"),t,{needsAuth:!0,validateStatus:a=>a===200}).then(a=>a.data).catch(this.createErrorHandler())}createErrorHandler(){return t=>{throw t?.response?.data?t?.response?.data:t}}}const Fn=()=>({confirmationData:null,isLoading:!1,dataLayer:null,ticketingRedirectionBackUrl:null,resendVoucher:{loading:!1,voucherSent:!1},esim:null});function jo(e,t){return{namespaced:!0,state:Fn,getters:Un,mutations:Dn,actions:On(new kn(e),new Pn(e),new xn(t),new Pi(e),new Wn(e))}}export{So as $,us as A,He as B,Xa as C,Ai as D,d as E,Pi as F,St as G,ve as H,bo as I,yo as J,zo as K,U as L,At as M,Do as N,No as O,ba as P,Lo as Q,Ci as R,V as S,ro as T,xo as U,Oo as V,lo as W,Ro as X,vo as Y,ho as Z,Go as _,Xn as a,Lt as a$,Wo as a0,Ao as a1,Fo as a2,Rn as a3,B as a4,fe as a5,Yo as a6,Zo as a7,jo as a8,ga as a9,vi as aA,Ds as aB,Ja as aC,Ss as aD,vs as aE,jn as aF,Qn as aG,bi as aH,Rs as aI,Ls as aJ,pa as aK,Ri as aL,$ as aM,Ca as aN,Qe as aO,Bo as aP,$o as aQ,Vo as aR,os as aS,Ee as aT,Fi as aU,Ho as aV,Mo as aW,fa as aX,To as aY,X as aZ,_r as a_,Ea as aa,Yn as ab,D as ac,ao as ad,oo as ae,ts as af,Ae as ag,Es as ah,Rt as ai,ye as aj,N as ak,Ta as al,Et as am,eo as an,Jn as ao,je as ap,to as aq,as as ar,is as as,ko as at,ss as au,_t as av,Os as aw,es as ax,Co as ay,K as az,io as b,Ia as b0,H as b1,qe as b2,mo as b3,uo as b4,po as b5,ya as b6,at as b7,ca as b8,wa as b9,ir as ba,fo as bb,Qa as bc,la as bd,_e as be,pn as bf,Ko as bg,rs as bh,Us as bi,bs as bj,me as bk,Nt as bl,Nr as bm,go as bn,A as bo,wo as bp,_o as bq,Eo as br,Ha as c,qa as d,Fs as e,Vs as f,no as g,co as h,Io as i,G as j,ds as k,h as l,S as m,Zn as n,Ra as o,Uo as p,Gt as q,zn as r,ie as s,se as t,_ as u,ne as v,Po as w,Li as x,qn as y,so as z};
//# sourceMappingURL=commons-store-C88H32BD-v01.js.map
