{"version":3,"mappings":"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","names":["redeemCoverImg","HomeTitle","jsx","styles","jsxs","Trans","HomeTitleAloy","t","useTranslation","RedeemGiftTitle","lazy","CoverTopGeneric","planConfig","usePlan","isNationalPlan","isAloyPlan","getSelectedPlan","isRedeemingAGift","useAppSelector","state","Picture","IMAGES","Suspense","CoverTopPromo","__vitePreload","CoverTopHome","selectedPlanId","promoIsActive","globalCountdown","dispatch","useAppDispatch","i18n","showPromoCover","checkIfPromoIsActive","setLandingActive","resetLandingStates","useEffect","SvgNewTag","props","React.createElement","itemList","plans","a","b","plan","PlanSelector","isActive","setIsActive","useState","selectorRef","useRef","currentPathname","experiencesInfoRoutes","isHomePage","routes","useRoutes","navigate","useNavigate","resetGlobalStates","useResetStates","isPlanInfoPage","onSelectorClick","onItemClick","aloyPlanIsSelected","setCurrentPlan","destinationUrl","resetBookingStates","setFunnelType","FunnelType","resetBookingOriginDestination","resetTravellersStates","useClickOutside","itemListToShow","plansWithAloy","plansToShow","root","planSelectorZIndex","planGradient","Fragment","arrowDown","SelectorOptions","ReactDOM","itemsList","selectorOptionsRef","addButtonsAnimation","buttons","time","button","item","index","NewTagIcon","SvgWorld","FunnelTypeSelector","currentFunnelType","isAloyHome","onFunnelTypeSelect","newFunnelType","routeToNavigate","WorldIcon","GiftIcon","_templateObject","BorderRadiusElement","styled","_taggedTemplateLiteral","BORDER_RADIUS_1","BORDER_RADIUS_SQUARE","BORDER_RADIUS_SEMI_SQUARE","BORDER_RADIUS_SEMI_ROUNDED","StyledHeader","StyledTitle","attachThemeAttrs","Header","_ref","title","id","React","PropTypes","CloseIcon","className","style","isContentHidden","element","zeroSize","tabbableNode","isVisible","parentElement","isFocusable","isTabIndexNotNaN","nodeName","res","tabbable","tabIndex","isTabIndexNaN","findTabbableElements","manageTab","node","event","shiftKey","head","tail","target","checkSafari","isSafariDesktop","elem","CounterManager","_classCallCheck","_createClass","CounterManager$1","StyledBackDrop","replaceAlpha","ZINDEX_MODAL","StyledModalContainer","StyledCloseButton","ButtonIcon","StyledContent","StyledFooter","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","result","NewTarget","_possibleConstructorReturn","Modal","_Component","_inherits","_super","_this","uniqueId","_assertThisInitialized","isOpen","disableBodyScroll","prevProps","_this$props","onOpened","prevIsOpen","wasOpened","wasClosed","enableBodyScroll","clearAllBodyScrollLocks","ESCAPE_KEY","TAB_KEY","isClickOutsideModal","onRequestClose","_this$props2","children","footer","size","hideCloseButton","borderRadius","createPortal","RenderIf","Component","_templateObject2","_templateObject3","_templateObject4","StyledModal","StyledCalendar","Calendar","HeaderTitle","FONT_SIZE_HEADING_LARGE","DatePickerModal","locale","minDate","maxDate","selectionType","variant","value","onChange","disabledDays","calendarId","formatDateToSelector","date","formatDateToGlobalState","datesToString","dates","startDay","endDay","DateSelector","from","to","calendarValues","setCalendarValues","getInitialValues","setMaxDate","oneDayFromNow","DateTime","width","useResize","isDesktop","calendarRef","setDefaultValues","defaultStartDate","defaultEndDate","setFrom","setTo","onDateChange","newDates","maxAvailableDate","_a","newFromDate","newToDate","onClose","datesString","showCalendarModal","showCalendarBox","PlanSVG","CalendarIcon","ReactCalendar","isObject","type","isObject_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","_root","now","now_1","reWhitespace","trimmedEndIndex","string","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","Symbol","_Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","e","_getRawTag","objectToString","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","adaptCities","cities","city","_b","normalizeString","CitySelector","location","origin","destination","availableCities","setAvailableCities","inputRef","isOrigin","APIKit","setOrigin","setDestination","currentTarget","inputElement","eventOutsideInput","eventWasTriggerByKeyboard","getNewCities","inputValue","onInputChange","selectedCity","showCitiesList","labelText","countryName","selectorText","selectorTextClassName","selectorClassName","containerStyles","citiesToShow","LocationIcon","hasCities","inputIsEmpty","lang","citiesByCountryName","citiesOrderedByLanguage","selectedLanguageCities","otherCities","SelectorsContainer","errorMessage","setErrorMessage","currentPlanId","isGetawayPlan","days","currency","getPlanFromPrice","planBasePrice","locationState","useLocation","isFromLandingCard","showPlanSelector","hasFlightHotel","buttonDisabled","setButtonDisabled","trackStartFunnelEvent","useTracking","getPriceCurrency","usePriceCurrency","basePrice","getCalendarPrices","response","setCalendarPrices","error","errorMsg","handleError","setCalendarEurPrices","getInsurancesData","insurancesData","adaptInsurances","addAvailableExtras","onStartClick","setDiscardedCities","resetExtrasStates","FlightHotel","AccommodationTravel","getTitle","getSubtitle","OriginSelector","DaysSelector","PeopleSelector","GlobalButton","Cover","isChristmas","landingInfoIsLoading","slug","getPromoInfo","promoData","setHomeData"],"ignoreList":[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"sources":["../../src/assets/images/gift-header.jpg","../../src/components/pages/home/cover/coverTopGeneric/homeTitle/HomeTitle.tsx","../../src/components/pages/home/cover/coverTopGeneric/CoverTopGeneric.tsx","../../src/components/pages/home/cover/coverTopHome/CoverTopHome.tsx","../../src/assets/icons/new-tag.svg?react","../../src/components/globals/selectors/PlanSelector.tsx","../../src/assets/icons/world.svg?react","../../src/components/pages/home/cover/selectorsContainer/funnelTypeSelector/FunnelTypeSelector.tsx","../../node_modules/react-rainbow-components/esm/components/Structural/borderRadiusElement.js","../../node_modules/react-rainbow-components/esm/components/Modal/styled/header.js","../../node_modules/react-rainbow-components/esm/components/Modal/styled/title.js","../../node_modules/react-rainbow-components/esm/components/Modal/header.js","../../node_modules/react-rainbow-components/esm/components/Modal/closeIcon.js","../../node_modules/react-rainbow-components/esm/libs/manageTab/isContentHidden.js","../../node_modules/react-rainbow-components/esm/libs/manageTab/findTabbableElements.js","../../node_modules/react-rainbow-components/esm/libs/manageTab/index.js","../../node_modules/react-rainbow-components/esm/libs/counterManager/index.js","../../node_modules/react-rainbow-components/esm/components/Modal/styled/backDrop.js","../../node_modules/react-rainbow-components/esm/components/Modal/styled/modalContainer.js","../../node_modules/react-rainbow-components/esm/components/Modal/styled/closeButton.js","../../node_modules/react-rainbow-components/esm/components/Modal/styled/content.js","../../node_modules/react-rainbow-components/esm/components/Modal/styled/footer.js","../../node_modules/react-rainbow-components/esm/components/Modal/index.js","../../node_modules/react-rainbow-components/esm/components/DatePickerModal/styled/index.js","../../node_modules/react-rainbow-components/esm/components/DatePickerModal/index.js","../../src/components/globals/selectors/DateSelector.tsx","../../node_modules/lodash/isObject.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../src/utils/adapters/citiesAdapter.ts","../../src/components/globals/selectors/CitySelector.tsx","../../src/components/pages/home/cover/selectorsContainer/SelectorsContainer.tsx","../../src/components/pages/home/cover/Cover.tsx"],"sourcesContent":["export default \"__VITE_ASSET__DUtARvgQ__\"","import { Trans, useTranslation } from 'react-i18next';\nimport Stars1Icon from '@/assets/icons/stars1.svg?react';\nimport Stars2Icon from '@/assets/icons/stars2.svg?react';\nimport PlaneIcon from '@/assets/icons/plane.svg?react';\nimport HotelIcon from '@/assets/icons/building.svg?react';\nimport PlanSVG from '@/components/globals/planSVG/PlanSVG';\nimport styles from './HomeTitle.module.scss';\n\nconst HomeTitle = () => {\n return (\n
\n
\n {/* } className={styles.hideMobileImg1} /> */}\n {/* } className={styles.hideMobileImg2} /> */}\n

\n \n The magic of\n Surprise trips\n \n

\n
\n
\n );\n};\n\nexport const HomeTitleAloy = () => {\n const { t } = useTranslation();\n\n return (\n
\n

{t('travelYourWay')}

\n {/*
\n \n +\n \n
*/}\n
\n );\n};\n\nexport default HomeTitle;\n","/* eslint-disable no-nested-ternary */\nimport { Suspense, lazy } from 'react';\nimport redeemCoverImg from '@/assets/images/gift-header.jpg';\nimport Picture from '@/components/globals/picture/Picture';\nimport IMAGES from '@/database/plansImages';\nimport usePlan from '@/hooks/usePlan';\nimport { useAppSelector } from '@/hooks/useRedux';\nimport getSelectedPlan from '@/utils/getSelectedPlan';\nimport styles from './CoverTopGeneric.module.scss';\nimport HomeTitle, { HomeTitleAloy } from './homeTitle/HomeTitle';\n\nconst RedeemGiftTitle = lazy(() => import('./redeemGiftTitle/RedeemGiftTitle'));\n\nconst CoverTopGeneric = () => {\n const { planConfig } = usePlan();\n const { isNationalPlan, isAloyPlan } = getSelectedPlan(planConfig.id);\n const isRedeemingAGift = useAppSelector((state) => state.gift.isRedeemingAGift);\n\n return (\n
\n {isRedeemingAGift ? (\n \n ) : (\n \n )}\n\n {!isAloyPlan &&
}\n {isNationalPlan && (\n
\n
\n
\n )}\n {isRedeemingAGift ? (\n \n \n \n ) : isAloyPlan ? (\n \n ) : (\n \n )}\n
\n );\n};\n\nexport default CoverTopGeneric;\n","import { Suspense, lazy, useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAppDispatch, useAppSelector } from '../../../../../hooks/useRedux';\nimport { IPromoData, resetLandingStates, setHomeData, setLandingActive } from '../../../../../redux/landingSlice';\nimport APIKit from '../../../../../utils/APIKit';\nimport CoverTopGeneric from '../coverTopGeneric/CoverTopGeneric';\nimport getSelectedPlan from '@/utils/getSelectedPlan';\n\nconst CoverTopPromo = lazy(() => import('../coverTopPromo/generic/CoverTopPromo'));\n\nconst CoverTopHome = () => {\n const selectedPlanId = useAppSelector((state) => state.plan.currentPlan);\n const promoIsActive = useAppSelector((state) => state.landing.isActive);\n const globalCountdown = useAppSelector((state) => state.landing.homeCoverPromoData.countdown);\n const { isAloyPlan } = getSelectedPlan(selectedPlanId);\n const dispatch = useAppDispatch();\n const { i18n } = useTranslation();\n // const landingInfoIsLoading = useRef(false);\n const showPromoCover = promoIsActive && !isAloyPlan;\n\n // const getPromoInfo = () => {\n // if (landingInfoIsLoading.current) return;\n // landingInfoIsLoading.current = true;\n // APIKit.get('landing/page/valentine/')\n // .then((res) => {\n // const promoData: IPromoData = res.data;\n // dispatch(setHomeData(promoData));\n // })\n // .catch(() => {\n // if (promoIsActive) dispatch(resetLandingStates());\n // })\n // .finally(() => {\n // landingInfoIsLoading.current = false;\n // });\n // };\n\n const checkIfPromoIsActive = () => {\n if (globalCountdown) return dispatch(setLandingActive(true));\n if (promoIsActive) return dispatch(resetLandingStates());\n return false;\n };\n\n useEffect(() => {\n checkIfPromoIsActive();\n }, [globalCountdown]);\n\n // useEffect(() => {\n // getPromoInfo();\n // }, [i18n.language]);\n\n return showPromoCover ? (\n }>\n \n \n ) : (\n \n );\n};\n\nexport default CoverTopHome;\n","import * as React from \"react\";\nconst SvgNewTag = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 23, height: 23, viewBox: \"0 0 23 23\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.756 18.8262C19.9242 18.6371 19.9792 18.3882 19.9306 18.1581L19.9381 18.1557L18.9696 15.2331L21.8835 14.2675L21.8817 14.2618C21.9908 14.2121 22.0866 14.1375 22.1614 14.044C22.2363 13.9504 22.288 13.8405 22.3124 13.7232C22.3364 13.6057 22.3324 13.4842 22.3006 13.3685C22.2689 13.2528 22.2103 13.1463 22.1296 13.0575L22.1346 13.052L19.8342 11.0048L21.8755 8.71108L21.8708 8.70689C21.9404 8.60939 21.9861 8.49685 22.0041 8.3784C22.0221 8.25995 22.012 8.13893 21.9745 8.02513C21.9366 7.91122 21.8723 7.80788 21.7869 7.72355C21.7015 7.63922 21.5974 7.57628 21.483 7.53987L21.4846 7.53248L18.4185 6.8994L19.0258 3.95857L19.0197 3.95731C19.0312 3.83806 19.0145 3.71777 18.9708 3.60619C18.9272 3.49461 18.8579 3.39487 18.7686 3.31504C18.5795 3.14679 18.3304 3.09162 18.1005 3.14046L18.098 3.1329L15.2005 4.09304L14.246 1.21237L14.24 1.21434C14.1904 1.10529 14.1158 1.00946 14.0222 0.934639C13.9287 0.859814 13.8188 0.808094 13.7015 0.783675C13.5839 0.759566 13.4624 0.763538 13.3467 0.795267C13.231 0.826995 13.1244 0.885584 13.0356 0.966271L13.0298 0.961137L11.0005 3.2414L8.73351 1.2239L8.72952 1.22839C8.63201 1.15877 8.51947 1.1131 8.40103 1.09508C8.28258 1.07706 8.16155 1.08721 8.04775 1.12468C7.934 1.16261 7.83079 1.22683 7.74651 1.31212C7.66222 1.39741 7.59923 1.50138 7.56266 1.61557L7.55508 1.61419L6.9482 4.55277L3.9102 3.92555L3.90894 3.9317C3.78969 3.92019 3.6694 3.93692 3.55782 3.98054C3.44624 4.02417 3.3465 4.09346 3.26667 4.1828C3.09842 4.37186 3.04325 4.62097 3.09209 4.85087L3.08453 4.85333L4.05301 7.77592L1.13916 8.74146L1.14111 8.74701C1.03205 8.79663 0.936232 8.87125 0.861406 8.96482C0.786582 9.05839 0.734861 9.16828 0.710441 9.28558C0.686416 9.40309 0.690449 9.52462 0.722209 9.64028C0.753968 9.75595 0.812561 9.86249 0.893228 9.95126L0.888095 9.95703L3.18822 12.004L1.14715 14.2975L1.15185 14.3017C1.01637 14.4935 0.968752 14.7436 1.04815 14.9835C1.08607 15.0973 1.15036 15.2006 1.23577 15.285C1.32118 15.3693 1.4253 15.4322 1.53965 15.4687L1.53806 15.4761L4.60415 16.1092L3.99679 19.05L4.00294 19.0513C3.99143 19.1705 4.00817 19.2908 4.05179 19.4024C4.09541 19.514 4.1647 19.6137 4.25404 19.6935C4.4431 19.8618 4.69222 19.917 4.92192 19.8683L4.92436 19.8755L7.82192 18.9154L8.77662 21.7962L8.78258 21.7942C8.8322 21.9033 8.90682 21.9991 9.00039 22.0739C9.09396 22.1488 9.20385 22.2005 9.32114 22.2249C9.43867 22.249 9.56024 22.245 9.67595 22.2133C9.79166 22.1816 9.89825 22.123 9.98704 22.0423L9.99281 22.0474L12.0219 19.7674L14.2891 21.7851L14.2931 21.7806C14.3906 21.8502 14.5032 21.8959 14.6216 21.9139C14.7401 21.9319 14.8611 21.9218 14.9749 21.8843C15.0887 21.8463 15.1919 21.7821 15.2762 21.6967C15.3605 21.6114 15.4236 21.5074 15.4602 21.3932L15.4676 21.3948L16.0744 18.4562L19.1124 19.0834L19.1137 19.0773C19.233 19.0888 19.3533 19.0721 19.4649 19.0285C19.5764 18.9849 19.6762 18.9156 19.756 18.8262ZM8.00991 12.7352L6.73353 9.93401L6.23113 12.3676L5.43688 12.2036L6.20704 8.47244L7.02383 8.6408L8.26844 11.3417L8.75236 8.99771L9.54683 9.1619L8.77624 12.8927L8.00991 12.7352ZM9.51435 13.0458L10.2849 9.31458L12.9252 9.86004L12.7808 10.5592L10.9348 10.1777L10.7729 10.9609L12.5796 11.3341L12.4356 12.0328L10.6285 11.66L10.453 12.5102L12.299 12.8917L12.1546 13.5908L9.51435 13.0458ZM15.6283 14.3083L15.5028 11.6111L14.325 14.0389L13.4805 13.8646L13.1823 9.91313L14.0717 10.0967L14.1697 12.928L15.4367 10.3786L16.0575 10.5069L16.2056 13.3486L17.4168 10.7875L18.3062 10.971L16.4728 14.483L15.6283 14.3083Z\", fill: \"url(#paint0_linear_6982_255)\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_6982_255\", x1: -3.75762, y1: 12.5637, x2: 13.0847, y2: 26.9309, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#FFCF01\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#FAB514\" }))));\nexport default SvgNewTag;\n","import ReactDOM from 'react-dom';\nimport { useEffect, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useAppDispatch } from '@/hooks/useRedux';\nimport { setCurrentPlan } from '@/redux/planSlice';\nimport useClickOutside from '@/hooks/useClickOutside';\nimport arrowDown from '@/assets/icons/arrow-down.svg';\nimport NewTagIcon from '@/assets/icons/new-tag.svg?react';\nimport useResetStates from '@/hooks/useResetStates';\nimport useRoutes from '@/hooks/useRoutes';\nimport usePlan from '@/hooks/usePlan';\nimport plans from '@/database/plans';\nimport styles from './selectors.module.scss';\nimport { resetBookingOriginDestination, resetBookingStates, setFunnelType } from '@/redux/bookingSlice';\nimport { resetTravellersStates } from '@/redux/travellersSlice';\nimport { FunnelType } from '@/types/types';\n\nconst itemList = plans\n .toSorted((a, b) => a.order - b.order)\n .filter((plan) => plan.active)\n .map((plan) => {\n return {\n id: plan.id,\n title: plan.title,\n icon: plan.planIcon,\n };\n });\n\nconst aloyPlan = plans\n .filter((plan) => plan.id === 9)!\n .map((plan) => {\n return {\n id: plan.id,\n title: plan.title,\n icon: plan.planIcon,\n };\n });\n\nconst PlanSelector = () => {\n const [isActive, setIsActive] = useState(false);\n const selectorRef = useRef(null);\n const { currentPathname, experiencesInfoRoutes, isHomePage, routes } = useRoutes();\n const { planConfig } = usePlan();\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n const { resetGlobalStates } = useResetStates();\n const { t } = useTranslation();\n\n const isPlanInfoPage = experiencesInfoRoutes.includes(currentPathname);\n\n const onSelectorClick = () => {\n setIsActive(!isActive);\n };\n\n const onItemClick = (plan: number) => {\n const aloyPlanIsSelected = plan === 9;\n resetGlobalStates();\n dispatch(setCurrentPlan(plan));\n setIsActive(false);\n\n if (isPlanInfoPage) {\n const destinationUrl = experiencesInfoRoutes[plan];\n navigate(destinationUrl);\n }\n\n if (aloyPlanIsSelected) {\n dispatch(resetBookingStates());\n dispatch(setFunnelType(FunnelType.explore));\n dispatch(resetBookingOriginDestination());\n dispatch(resetTravellersStates());\n navigate(routes.aloyHome);\n }\n };\n\n useClickOutside(selectorRef, () => {\n if (isActive) setIsActive(false);\n });\n\n const itemListToShow = itemList.filter((plan) => plan.id !== planConfig.id);\n // const plansWithAloy = [...itemListToShow, ...aloyPlan]; Desactivar ALOY del selector\n const plansWithAloy = [...itemListToShow];\n const plansToShow = isHomePage ? plansWithAloy : itemListToShow;\n const root = document.getElementById('root')!;\n\n const planSelectorZIndex = isActive ? { zIndex: 99999 } : {};\n const planGradient = `linear-gradient(220deg, ${planConfig.colors.dark}, ${planConfig.colors.light})`;\n\n return (\n <>\n \n

{t('experience')}

\n \n {isActive && }\n
\n\n {isActive && ReactDOM.createPortal(
, root)}\n \n );\n};\n\ninterface IOptionsProps {\n itemsList: any;\n onItemClick: any;\n}\n\nconst SelectorOptions = ({ itemsList, onItemClick }: IOptionsProps) => {\n const selectorOptionsRef = useRef(null);\n const { t } = useTranslation();\n\n useEffect(() => {\n addButtonsAnimation();\n }, []);\n\n const addButtonsAnimation = () => {\n const buttons = selectorOptionsRef.current.getElementsByTagName('button');\n let time = 50;\n Array.from(buttons).forEach((button: any) => {\n setTimeout(() => {\n button.classList.add(styles.appearAnimation);\n }, time);\n time += 50;\n });\n };\n\n return (\n
\n
    \n {itemsList?.map((item: any, index: number) => {\n const isAloyPlan = item.id === 9;\n return (\n
  • \n \n
  • \n );\n })}\n
\n
\n );\n};\n\nexport default PlanSelector;\n","import * as React from \"react\";\nconst SvgWorld = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 16, height: 16, viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.8751 6.89847C3.94281 6.89847 4.01833 6.90888 4.10166 6.92971C4.18499 6.95055 4.26832 6.97919 4.35165 7.01565C4.43499 7.05211 4.51832 7.08596 4.60165 7.11721C4.68498 7.14846 4.7605 7.17971 4.8282 7.21096L4.70321 7.22658C4.66154 7.23179 4.61727 7.23439 4.5704 7.23439C4.48186 7.23439 4.40113 7.22137 4.32822 7.19533C4.2553 7.16929 4.1876 7.13544 4.1251 7.09377C4.0626 7.05211 4.0001 7.02086 3.9376 7.00002C3.8751 6.97919 3.81781 6.96357 3.76573 6.95315C3.71365 6.95315 3.66678 6.96357 3.62511 6.9844C3.58344 7.00523 3.54178 7.02867 3.50011 7.05471C3.50011 7.03388 3.48188 7.02346 3.44543 7.02346C3.48188 6.987 3.54959 6.95836 3.64855 6.93753C3.7475 6.91669 3.82302 6.90367 3.8751 6.89847ZM4.92976 7.25002C5.1433 7.25002 5.33861 7.28648 5.51569 7.35939C5.44277 7.38543 5.36986 7.40626 5.29694 7.42189C5.22403 7.43751 5.14851 7.44793 5.07039 7.45314C4.96622 7.45314 4.87247 7.44272 4.78914 7.42189C4.81518 7.38022 4.84122 7.35418 4.86727 7.34377C4.89331 7.33335 4.91414 7.3021 4.92976 7.25002ZM8 0.000200316C8.73436 0.000200316 9.44007 0.0965521 10.1171 0.289256C10.7942 0.481959 11.4296 0.750181 12.0233 1.09392C12.6171 1.43766 13.1587 1.85692 13.6483 2.3517C14.1379 2.84648 14.5545 3.38553 14.8983 3.96885C15.242 4.55217 15.5128 5.18757 15.7107 5.87505C15.9087 6.56254 16.005 7.27085 15.9998 8C15.9998 8.73436 15.9034 9.44007 15.7107 10.1171C15.518 10.7942 15.2498 11.4296 14.9061 12.0233C14.5623 12.6171 14.1431 13.1587 13.6483 13.6483C13.1535 14.1379 12.6145 14.5545 12.0311 14.8983C11.4478 15.242 10.8124 15.5128 10.1249 15.7107C9.43746 15.9087 8.72915 16.005 8 15.9998C7.26564 15.9998 6.55993 15.9034 5.88287 15.7107C5.2058 15.518 4.5704 15.2498 3.97666 14.9061C3.38293 14.5623 2.84127 14.1431 2.3517 13.6483C1.86213 13.1535 1.44548 12.6145 1.10174 12.0311C0.757994 11.4478 0.487167 10.8124 0.289256 10.1249C0.0913439 9.43746 -0.00500789 8.72915 0.000200316 8C0.000200316 7.26564 0.0965521 6.55993 0.289256 5.88287C0.481959 5.2058 0.750181 4.5704 1.09392 3.97666C1.43766 3.38293 1.85692 2.84127 2.3517 2.3517C2.84648 1.86213 3.38553 1.44548 3.96885 1.10174C4.55217 0.757994 5.18757 0.487167 5.87505 0.289256C6.56254 0.0913439 7.27085 -0.00500789 8 0.000200316ZM13.953 4.33603C13.8801 4.22145 13.8071 4.11208 13.7342 4.00791C13.6613 3.90375 13.5858 3.79698 13.5077 3.68761C13.4973 3.73448 13.4842 3.76834 13.4686 3.78917C13.453 3.81 13.4426 3.85687 13.4374 3.92979C13.4374 3.97666 13.4556 4.02093 13.4921 4.0626C13.5285 4.10426 13.5754 4.14593 13.6327 4.1876C13.69 4.22926 13.7473 4.26051 13.8045 4.28134C13.8618 4.30218 13.9113 4.3204 13.953 4.33603ZM13.4139 3.57042C13.4139 3.61209 13.4061 3.64073 13.3905 3.65636H13.4374C13.4582 3.65636 13.4738 3.65896 13.4842 3.66417L13.4139 3.57042ZM8 14.9998C8.59373 14.9998 9.17445 14.9243 9.74214 14.7733C10.3098 14.6222 10.8463 14.4087 11.3515 14.1327C11.8567 13.8566 12.3254 13.5181 12.7577 13.1171C13.19 12.716 13.5676 12.2681 13.8905 11.7733C13.8228 11.6171 13.7577 11.4582 13.6952 11.2968C13.6327 11.1353 13.6014 10.9687 13.6014 10.7968C13.6014 10.6093 13.6092 10.4583 13.6249 10.3437C13.6405 10.2291 13.6587 10.1276 13.6795 10.039C13.7004 9.95047 13.7108 9.87495 13.7108 9.81245C13.7108 9.74996 13.703 9.66923 13.6874 9.57027C13.6717 9.47132 13.6275 9.36455 13.5545 9.24997C13.4816 9.13539 13.3853 8.97393 13.2655 8.76561C13.2707 8.72915 13.2785 8.67967 13.2889 8.61717C13.2993 8.55467 13.3098 8.48957 13.3202 8.42186C13.3306 8.35416 13.3332 8.29166 13.328 8.23437C13.3228 8.17708 13.3098 8.1276 13.2889 8.08594C13.1535 8.07031 13.0129 8.04167 12.8671 8C12.7212 7.95833 12.591 7.89584 12.4764 7.8125L12.5233 7.77344C12.4556 7.78907 12.3879 7.8099 12.3202 7.83594C12.2525 7.86198 12.1874 7.89063 12.1249 7.92188C12.0624 7.95313 11.9947 7.97396 11.9218 7.98438C11.8489 7.99479 11.7786 8.00521 11.7108 8.01562L11.5858 8L11.6093 7.94531C11.5364 7.96615 11.4582 7.99219 11.3749 8.02344C11.2916 8.05469 11.2109 8.07031 11.1327 8.07031C11.0807 8.07031 11.0051 8.05208 10.9062 8.01562C10.8072 7.97917 10.7083 7.9349 10.6093 7.88282C10.5104 7.83073 10.4218 7.77344 10.3437 7.71094C10.2656 7.64845 10.2265 7.58855 10.2265 7.53126L10.2421 7.50782C10.2161 7.47658 10.1822 7.44793 10.1406 7.42189C10.0989 7.39585 10.0598 7.36981 10.0234 7.34377C9.98693 7.31773 9.95308 7.28908 9.92183 7.25783C9.89058 7.22658 9.87756 7.19012 9.88277 7.14846L9.9687 7.07815L9.78902 7.05471L9.72652 6.82034C9.73694 6.84638 9.76037 6.8568 9.79683 6.85159C9.83329 6.84638 9.86193 6.83597 9.88277 6.82034L9.60152 6.67191L9.79683 6.17192C9.72392 5.90109 9.70569 5.69277 9.74214 5.54694C9.7786 5.40111 9.84891 5.28132 9.95308 5.18757C10.0572 5.09382 10.1718 5.00007 10.2968 4.90633C10.4218 4.81258 10.5494 4.68498 10.6796 4.52352L10.6562 4.42978L11.1718 3.80479L11.289 3.78917C11.4348 3.78917 11.5989 3.78396 11.7812 3.77354C11.9634 3.76313 12.1483 3.7449 12.3358 3.71886C12.5233 3.69282 12.7082 3.66678 12.8905 3.64073C13.0728 3.61469 13.2395 3.58084 13.3905 3.53917C13.2238 3.34126 13.0494 3.15377 12.8671 2.97669C12.6848 2.79961 12.4895 2.63034 12.2811 2.46889C12.2239 2.48972 12.1535 2.51837 12.0702 2.55482C11.9869 2.59128 11.9035 2.63815 11.8202 2.69545C11.7369 2.75274 11.6718 2.81523 11.6249 2.88294C11.578 2.95065 11.5494 3.02096 11.539 3.09387L11.5858 3.24231C11.4921 3.39334 11.3879 3.48709 11.2734 3.52355C11.1588 3.56001 11.0416 3.58084 10.9218 3.58605C10.802 3.59126 10.677 3.59126 10.5468 3.58605C10.4166 3.58084 10.2916 3.60428 10.1718 3.65636L10.0468 3.39074L10.164 2.93763L10.0312 2.74232L11.3827 2.32045C11.3254 2.17462 11.2317 2.06525 11.1015 1.99234C10.9713 1.91942 10.8281 1.88297 10.6718 1.88297V1.80484L11.1093 1.73453C10.6249 1.49495 10.1223 1.31267 9.60152 1.18767C9.0807 1.06267 8.54686 1.00018 8 1.00018C7.54689 1.00018 7.09898 1.04444 6.65628 1.13298C6.21359 1.22152 5.78651 1.34912 5.37507 1.51579C4.96362 1.68245 4.56519 1.89078 4.17978 2.14077C3.79438 2.39077 3.44282 2.67201 3.12512 2.9845C3.26054 2.9845 3.3647 3.01835 3.43761 3.08606C3.51053 3.15377 3.57824 3.22929 3.64073 3.31262C3.70323 3.39595 3.76834 3.47147 3.83604 3.53917C3.90375 3.60688 3.99489 3.64334 4.10947 3.64855L4.23447 3.5548L4.21884 3.38293L4.47665 3.01575L4.27353 2.43764C4.29957 2.42201 4.33863 2.39597 4.39072 2.35952C4.4428 2.32306 4.48707 2.30483 4.52352 2.30483C4.67977 2.30483 4.79956 2.31264 4.88289 2.32827C4.96622 2.34389 5.03914 2.37254 5.10163 2.4142C5.16413 2.45587 5.21882 2.51576 5.26569 2.59389C5.31257 2.67201 5.38548 2.77096 5.48444 2.89075L5.76568 2.67201C5.81776 2.69284 5.90109 2.72669 6.01567 2.77357C6.13026 2.82044 6.24744 2.87773 6.36723 2.94544C6.48702 3.01315 6.58858 3.08346 6.67191 3.15637C6.75524 3.22929 6.79951 3.29699 6.80472 3.35949C6.80472 3.43761 6.77607 3.50011 6.71878 3.54699C6.66149 3.59386 6.58597 3.63292 6.49223 3.66417C6.39848 3.69542 6.30213 3.71886 6.20317 3.73448C6.10421 3.75011 6.00526 3.77094 5.9063 3.79698C5.80735 3.82302 5.73183 3.84906 5.67975 3.8751C5.62766 3.90114 5.59641 3.94541 5.586 4.00791L6.03911 4.15635C5.93495 4.24489 5.82297 4.32561 5.70318 4.39853C5.58339 4.47144 5.4584 4.53915 5.32819 4.60165L5.35944 4.73446L4.64071 5.0157V5.23444L4.58602 5.25788L4.62508 4.98445L4.59384 4.97664C4.55738 4.97664 4.53654 4.98445 4.53134 5.00007C4.52613 5.0157 4.52352 5.03393 4.52352 5.05476C4.52352 5.07559 4.52873 5.09643 4.53915 5.11726C4.54957 5.13809 4.55217 5.15372 4.54696 5.16413L4.4454 5.10945L4.46103 5.1407C4.46103 5.15632 4.46884 5.17976 4.48446 5.21101C4.50009 5.24226 4.52092 5.2709 4.54696 5.29694C4.573 5.32298 4.59384 5.34902 4.60946 5.37507C4.62508 5.40111 4.6355 5.41413 4.64071 5.41413C4.64071 5.42975 4.63029 5.44538 4.60946 5.461C4.58863 5.47663 4.56259 5.48704 4.53134 5.49225C4.50009 5.49746 4.47925 5.50527 4.46884 5.51569C4.45842 5.5261 4.45842 5.52871 4.46884 5.5235C4.54175 5.5235 4.55738 5.52871 4.51571 5.53912C4.47405 5.54954 4.40894 5.57558 4.3204 5.61725C4.23186 5.65891 4.15114 5.71881 4.07822 5.79693C4.00531 5.87505 3.96364 5.98963 3.95323 6.14067C3.95323 6.22921 3.95583 6.31515 3.96104 6.39848C3.96625 6.48181 3.96364 6.56774 3.95323 6.65628C3.88031 6.45837 3.77094 6.30733 3.62511 6.20317C3.47928 6.09901 3.3022 6.04692 3.09387 6.04692L2.75794 6.07817L2.922 6.18755C2.83346 6.17713 2.74232 6.16671 2.64857 6.1563C2.55482 6.14588 2.45847 6.14328 2.35952 6.14848C2.26056 6.15369 2.17202 6.17452 2.0939 6.21098C2.01577 6.24744 1.93765 6.30213 1.85953 6.37504L1.81265 6.72659C1.81265 6.89326 1.84911 7.02867 1.92203 7.13283C1.99494 7.237 2.12254 7.29168 2.30483 7.29689C2.46108 7.29689 2.61472 7.27346 2.76576 7.22658C2.91679 7.17971 3.06523 7.12502 3.21106 7.06252C3.16418 7.1771 3.1121 7.28648 3.05481 7.39064C2.99752 7.4948 2.95586 7.60938 2.92981 7.73438L3.03137 7.78126C3.15637 7.69792 3.27095 7.6849 3.37512 7.74219C3.47928 7.79948 3.58084 7.88282 3.6798 7.99219C3.77875 8.10156 3.88031 8.21354 3.98448 8.32812C4.08864 8.4427 4.20062 8.52603 4.3204 8.57811L4.05479 8.71873L3.4298 8.36718C3.43501 8.37759 3.44022 8.40103 3.44543 8.43749C3.45063 8.47395 3.44803 8.48176 3.43761 8.46093L3.15637 7.98438C2.98971 7.97917 2.81263 7.95313 2.62513 7.90625C2.43764 7.85938 2.24754 7.79688 2.05484 7.71876C1.86213 7.64063 1.68245 7.5547 1.51579 7.46095C1.34912 7.3672 1.19548 7.26825 1.05486 7.16408L1.00018 8C1.00018 8.6354 1.08611 9.25518 1.25798 9.85933C1.42985 10.4635 1.67203 11.0312 1.98453 11.5624C2.29702 12.0936 2.67982 12.578 3.13293 13.0155C3.58605 13.453 4.08864 13.8254 4.64071 14.1327C4.61467 14.0233 4.61206 13.9139 4.6329 13.8045C4.65373 13.6952 4.67977 13.5858 4.71102 13.4764C4.74227 13.3671 4.77612 13.2577 4.81258 13.1483C4.84904 13.0389 4.86727 12.927 4.86727 12.8124C4.86727 12.6457 4.84122 12.4712 4.78914 12.289C4.73706 12.1067 4.67456 11.9218 4.60165 11.7343C4.52873 11.5468 4.44801 11.3619 4.35947 11.1796C4.27093 10.9973 4.20062 10.8254 4.14853 10.664C4.09645 10.5025 4.05479 10.3515 4.02354 10.2109C3.99229 10.0703 4.00791 9.94787 4.07041 9.8437L3.95323 9.78902C3.98448 9.7161 4.02614 9.64579 4.07822 9.57809C4.13031 9.51038 4.18499 9.44267 4.24228 9.37497C4.29957 9.30726 4.34384 9.23434 4.37509 9.15622C4.40634 9.0781 4.42457 8.99998 4.42978 8.92185C4.42978 8.86977 4.41936 8.81508 4.39853 8.75779C4.37769 8.7005 4.35947 8.64582 4.34384 8.59373L4.5079 8.6328C4.59644 8.42968 4.71623 8.29166 4.86727 8.21874C5.0183 8.14583 5.2084 8.10677 5.43756 8.10156C5.4636 8.10156 5.51829 8.11198 5.60162 8.13281C5.68495 8.15364 5.77349 8.18229 5.86724 8.21874C5.96099 8.2552 6.04953 8.28385 6.13286 8.30468C6.21619 8.32551 6.27869 8.34635 6.32035 8.36718C6.32035 8.40364 6.34119 8.42707 6.38285 8.43749C6.42452 8.44791 6.44796 8.46613 6.45316 8.49218L6.43754 8.55467C6.45316 8.55988 6.48962 8.57811 6.54691 8.60936C6.6042 8.64061 6.6667 8.67967 6.73441 8.72654C6.80211 8.77342 6.86201 8.81508 6.91409 8.85154C6.96617 8.888 7.00263 8.91664 7.02346 8.93748C7.11721 8.93748 7.24481 8.96873 7.40626 9.03122C7.56772 9.09372 7.7448 9.17185 7.9375 9.26559C8.13021 9.35934 8.3203 9.47132 8.5078 9.60152C8.6953 9.73173 8.87237 9.86193 9.03904 9.99214C9.2057 10.1223 9.3333 10.2525 9.42184 10.3828C9.51038 10.513 9.56246 10.6275 9.57809 10.7265L9.31247 11.0077C9.3333 11.2734 9.31507 11.4765 9.25778 11.6171C9.20049 11.7577 9.11195 11.8749 8.99216 11.9687C8.87237 12.0624 8.73436 12.1405 8.57811 12.203C8.42186 12.2655 8.2526 12.3541 8.07031 12.4686C8.07031 12.5728 8.04427 12.6848 7.99219 12.8046C7.94011 12.9244 7.875 13.0389 7.79688 13.1483C7.71876 13.2577 7.62501 13.3488 7.51564 13.4217C7.40626 13.4947 7.29689 13.5311 7.18752 13.5311L6.8594 13.2811C6.86982 13.2915 6.86982 13.3098 6.8594 13.3358C6.84899 13.3618 6.83597 13.3671 6.82034 13.3514C6.87242 13.4504 6.88544 13.565 6.8594 13.6952C6.83336 13.8254 6.78909 13.9582 6.72659 14.0936C6.6641 14.229 6.59379 14.3566 6.51566 14.4764C6.43754 14.5962 6.36723 14.6977 6.30473 14.7811C6.58597 14.854 6.86722 14.9087 7.14846 14.9451C7.4297 14.9816 7.71355 14.9998 8 14.9998Z\", fill: \"#0464a9\" }));\nexport default SvgWorld;\n","import { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useRedux';\nimport { FunnelType } from '@/types/types';\nimport { resetBookingOriginDestination, resetBookingStates, setFunnelType } from '@/redux/bookingSlice';\nimport { resetTravellersStates } from '@/redux/travellersSlice';\nimport GiftIcon from '@/assets/icons/gift.svg?react';\nimport WorldIcon from '@/assets/icons/world.svg?react';\nimport NewTagIcon from '@/assets/icons/new-tag.svg?react';\nimport useRoutes from '@/hooks/useRoutes';\nimport styles from './FunnelTypeSelector.module.scss';\n\nconst FunnelTypeSelector = () => {\n const currentFunnelType = useAppSelector((state) => state.booking.funnelType);\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { currentPathname, routes } = useRoutes();\n const isAloyHome = currentPathname === routes.aloyHome;\n\n const onFunnelTypeSelect = (newFunnelType: FunnelType) => {\n if (newFunnelType === currentFunnelType) return;\n\n let routeToNavigate = routes.home;\n\n if (newFunnelType === FunnelType.explore) {\n routeToNavigate = routes.aloyHome;\n }\n\n dispatch(resetBookingStates());\n dispatch(setFunnelType(newFunnelType));\n dispatch(resetBookingOriginDestination());\n dispatch(resetTravellersStates());\n navigate(routeToNavigate);\n };\n\n return (\n
\n onFunnelTypeSelect(FunnelType.explore)}\n className={`${styles.funnelTypeOption} ${styles.funnelTypeExplore} ${isAloyHome && styles.selected}`}\n >\n \n {t('flightsPlusHotel')}\n \n \n onFunnelTypeSelect(FunnelType.surprise)}\n className={`${styles.funnelTypeOption} ${styles.funnelTypeSurprise} ${!isAloyHome && styles.selected}`}\n >\n \n {t('surpriseTrips')}\n \n
\n );\n};\n\nexport default FunnelTypeSelector;\n","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nimport { BORDER_RADIUS_1, BORDER_RADIUS_SQUARE, BORDER_RADIUS_SEMI_SQUARE, BORDER_RADIUS_SEMI_ROUNDED } from '../../styles/borderRadius';\nvar BorderRadiusElement = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n border-radius: \", \";\\n \", \";\\n \", \";\\n \", \";\\n\"])), BORDER_RADIUS_1, function (props) {\n return props.borderRadius === 'square' && \"\\n border-radius: \".concat(BORDER_RADIUS_SQUARE, \";\\n \");\n}, function (props) {\n return props.borderRadius === 'semi-square' && \"\\n border-radius: \".concat(BORDER_RADIUS_SEMI_SQUARE, \";\\n \");\n}, function (props) {\n return props.borderRadius === 'semi-rounded' && \"\\n border-radius: \".concat(BORDER_RADIUS_SEMI_ROUNDED, \";\\n \");\n});\nexport default BorderRadiusElement;","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nvar StyledHeader = styled.header(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n position: relative;\\n padding: 1rem 2.5rem;\\n display: block;\\n box-sizing: border-box;\\n\"])));\nexport default StyledHeader;","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nimport attachThemeAttrs from '../../../styles/helpers/attachThemeAttrs';\nvar StyledTitle = attachThemeAttrs(styled.h1)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n font-family: 'Lato Light', Arial, sans-serif;\\n padding: 0;\\n text-align: center;\\n font-size: 1.5rem;\\n color: \", \";\\n margin: 0;\\n font-weight: inherit;\\n\"])), function (props) {\n return props.palette.text.title;\n});\nexport default StyledTitle;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport StyledHeader from './styled/header';\nimport StyledTitle from './styled/title';\nexport default function Header(_ref) {\n var title = _ref.title,\n id = _ref.id;\n\n if (typeof title === 'string') {\n return React.createElement(StyledHeader, null, React.createElement(StyledTitle, {\n id: id\n }, title));\n }\n\n return title;\n}\nHeader.propTypes = {\n id: PropTypes.string,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node])\n};\nHeader.defaultProps = {\n id: undefined,\n title: undefined\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nexport default function CloseIcon(props) {\n var className = props.className,\n style = props.style;\n return React.createElement(\"svg\", {\n className: className,\n style: style,\n fill: \"currentColor\",\n width: \"1rem\",\n height: \"1rem\",\n viewBox: \"0 0 16 16\"\n }, React.createElement(\"path\", {\n d: \"M9.40933333,7.99533333 L15.6973333,1.70733333 C16.088,1.317 16.088,0.683666667 15.6973333,0.293333333 C15.3066667,-0.0973333333 14.674,-0.0973333333 14.2833333,0.293333333 L7.99533333,6.58133333 L1.707,0.293333333 C1.31633333,-0.0973333333 0.683666667,-0.0973333333 0.293,0.293333333 C-0.0976666667,0.683666667 -0.0976666667,1.317 0.293,1.70733333 L6.58133333,7.99533333 L0.293,14.2833333 C-0.0976666667,14.6736667 -0.0976666667,15.307 0.293,15.6973333 C0.488333333,15.8923333 0.744333333,15.99 1,15.99 C1.25566667,15.99 1.51166667,15.8923333 1.707,15.697 L7.99533333,9.409 L14.2833333,15.697 C14.4786667,15.8923333 14.7346667,15.99 14.9903333,15.99 C15.246,15.99 15.502,15.8923333 15.6973333,15.697 C16.088,15.3066667 16.088,14.6733333 15.6973333,14.283 L9.40933333,7.99533333 Z\"\n }));\n}\nCloseIcon.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object\n};\nCloseIcon.defaultProps = {\n className: undefined,\n style: undefined\n};","export default function isContentHidden(element) {\n var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n if (zeroSize && !element.innerHTML) return true;\n var style = window.getComputedStyle(element);\n return zeroSize ? style.getPropertyValue('overflow') !== 'visible' : style.getPropertyValue('display') === 'none';\n}","import isContentHidden from './isContentHidden';\nvar tabbableNode = /input|select|textarea|button|object/;\n\nfunction isVisible(element) {\n var parentElement = element;\n\n while (parentElement) {\n if (parentElement === document.body) break;\n if (isContentHidden(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n\n return true;\n}\n\nfunction isFocusable(element, isTabIndexNotNaN) {\n var nodeName = element.nodeName.toLowerCase();\n var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === 'a' ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && isVisible(element);\n}\n\nfunction tabbable(element) {\n var tabIndex = element.getAttribute('tabindex');\n if (tabIndex === null) tabIndex = undefined;\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && isFocusable(element, !isTabIndexNaN);\n}\n\nexport default function findTabbableElements(element) {\n return [].slice.call(element.querySelectorAll('*'), 0).filter(tabbable);\n}","import findTabbableElements from './findTabbableElements';\nexport default function manageTab(node, event) {\n var tabbable = findTabbableElements(node);\n\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n\n var shiftKey = event.shiftKey;\n var head = tabbable[0];\n var tail = tabbable[tabbable.length - 1];\n var target;\n\n if (node === document.activeElement) {\n if (!shiftKey) return;\n target = tail;\n }\n\n if (tail === document.activeElement && !shiftKey) {\n target = head;\n }\n\n if (head === document.activeElement && shiftKey) {\n target = tail;\n }\n\n if (target) {\n event.preventDefault();\n target.focus();\n return;\n }\n\n var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n var isSafariDesktop = checkSafari != null && checkSafari[1] !== 'Chrome' && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n if (!isSafariDesktop) return;\n var elem = tabbable.indexOf(document.activeElement);\n\n if (elem > -1) {\n elem += shiftKey ? -1 : 1;\n }\n\n event.preventDefault();\n tabbable[elem].focus();\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\nvar CounterManager = function () {\n function CounterManager() {\n _classCallCheck(this, CounterManager);\n\n this.counter = 0;\n }\n\n _createClass(CounterManager, [{\n key: \"increment\",\n value: function increment() {\n this.counter += 1;\n }\n }, {\n key: \"decrement\",\n value: function decrement() {\n if (this.counter > 0) {\n this.counter -= 1;\n }\n }\n }, {\n key: \"hasModalsOpen\",\n value: function hasModalsOpen() {\n return this.counter > 0;\n }\n }]);\n\n return CounterManager;\n}();\n\nexport default new CounterManager();","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nimport attachThemeAttrs from '../../../styles/helpers/attachThemeAttrs';\nimport { replaceAlpha } from '../../../styles/helpers/color';\nimport { ZINDEX_MODAL } from '../../../styles/zIndex';\nvar StyledBackDrop = attachThemeAttrs(styled.div)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n z-index: -1;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n opacity: 0;\\n background: \", \";\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n position: fixed;\\n transition: opacity 0.3s linear, z-index 0.3s linear;\\n\\n \", \";\\n\"])), function (props) {\n return replaceAlpha(props.palette.background.highlight, 0.64);\n}, function (props) {\n return props.isOpen && \"\\n visibility: visible;\\n z-index: \".concat(ZINDEX_MODAL, \";\\n opacity: 1;\\n backdrop-filter: blur(5px);\\n \");\n});\nexport default StyledBackDrop;","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nimport attachThemeAttrs from '../../../styles/helpers/attachThemeAttrs';\nimport { BorderRadiusElement } from '../../Structural';\nvar StyledModalContainer = attachThemeAttrs(styled(BorderRadiusElement))(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n width: 55%;\\n min-width: 18rem;\\n max-height: 80vh;\\n min-height: 4rem;\\n background-color: \", \";\\n color: \", \";\\n box-shadow: \", \";\\n flex-direction: column;\\n box-sizing: border-box;\\n display: flex;\\n justify-content: center;\\n align-items: normal;\\n position: relative;\\n\\n &:focus {\\n outline: 0;\\n }\\n\\n \", \";\\n \", \";\\n \", \"\\n \", \"\\n\\n @media (min-width: 1240px) {\\n width: 520px;\\n \", \"\\n \", \"\\n }\\n\\n @media (max-width: 800px) {\\n width: 95%;\\n }\\n\\n @keyframes slide-up-in {\\n 0% {\\n opacity: 0;\\n transform: scale(0.8, 0.8) translateY(70%);\\n }\\n\\n 100% {\\n opacity: 1;\\n transform: scale(1, 1) translateY(0);\\n }\\n }\\n\\n @keyframes slide-down-out {\\n 0% {\\n opacity: 1;\\n transform: translateY(0);\\n }\\n\\n 100% {\\n opacity: 0;\\n transform: translateY(50%);\\n }\\n }\\n\"])), function (props) {\n return props.palette.background.main;\n}, function (props) {\n return props.palette.text.main;\n}, function (props) {\n return props.shadows.shadow_2;\n}, function (props) {\n return props.isOpen && \"\\n animation: slide-up-in 0.2s linear;\\n opacity: 1;\\n transform: scale(1, 1) translateY(0);\\n \";\n}, function (props) {\n return !props.isOpen && \"\\n animation: slide-down-out 0.2s linear;\\n opacity: 0;\\n transform: translateY(50%);\\n \";\n}, function (props) {\n return props.size === 'large' && 'width: 85%;';\n}, function (props) {\n return props.size === 'medium' && 'width: 70%;';\n}, function (props) {\n return props.size === 'large' && 'width: 920px;';\n}, function (props) {\n return props.size === 'medium' && 'width: 720px;';\n});\nexport default StyledModalContainer;","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nimport ButtonIcon from '../../ButtonIcon';\nimport attachThemeAttrs from '../../../styles/helpers/attachThemeAttrs';\nvar StyledCloseButton = attachThemeAttrs(styled(ButtonIcon))(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n position: absolute;\\n top: 0.5rem;\\n right: 0.5rem;\\n z-index: 1;\\n color: \", \";\\n\"])), function (props) {\n return props.palette.text.header;\n});\nexport default StyledCloseButton;","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nvar StyledContent = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n padding: 1rem;\\n overflow: hidden;\\n overflow-y: auto;\\n -webkit-overflow-scrolling: touch;\\n box-sizing: border-box;\\n\"])));\nexport default StyledContent;","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject;\n\nimport styled from 'styled-components';\nimport attachThemeAttrs from '../../../styles/helpers/attachThemeAttrs';\nvar StyledFooter = attachThemeAttrs(styled.footer)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n border-top: 0.0625px solid \", \";\\n padding: 0.75rem 1rem;\\n flex-shrink: 0;\\n display: block;\\n box-sizing: border-box;\\n\"])), function (props) {\n return props.palette.border.divider;\n});\nexport default StyledFooter;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport RenderIf from '../RenderIf';\nimport { uniqueId } from '../../libs/utils';\nimport { ESCAPE_KEY, TAB_KEY } from '../../libs/constants';\nimport Header from './header';\nimport CloseIcon from './closeIcon';\nimport manageTab from '../../libs/manageTab';\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from '../../libs/scrollController';\nimport CounterManager from '../../libs/counterManager';\nimport StyledBackDrop from './styled/backDrop';\nimport StyledModalContainer from './styled/modalContainer';\nimport StyledCloseButton from './styled/closeButton';\nimport StyledContent from './styled/content';\nimport StyledFooter from './styled/footer';\n\nvar Modal = function (_Component) {\n _inherits(Modal, _Component);\n\n var _super = _createSuper(Modal);\n\n function Modal(props) {\n var _this;\n\n _classCallCheck(this, Modal);\n\n _this = _super.call(this, props);\n _this.containerRef = React.createRef();\n _this.buttonRef = React.createRef();\n _this.modalRef = React.createRef();\n _this.contentRef = React.createRef();\n _this.modalHeadingId = uniqueId('modal-heading');\n _this.modalContentId = uniqueId('modal-content');\n _this.handleKeyPressed = _this.handleKeyPressed.bind(_assertThisInitialized(_this));\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));\n _this.closeModal = _this.closeModal.bind(_assertThisInitialized(_this));\n _this.addBackdropClickListener = _this.addBackdropClickListener.bind(_assertThisInitialized(_this));\n _this.removeBackdropClickListener = _this.removeBackdropClickListener.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Modal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var isOpen = this.props.isOpen;\n\n if (isOpen) {\n this.contentElement = this.contentRef.current;\n CounterManager.increment();\n disableBodyScroll(this.contentRef.current);\n this.modalTriggerElement = document.activeElement;\n this.modalRef.current.focus();\n this.addBackdropClickListener();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n isOpen = _this$props.isOpen,\n onOpened = _this$props.onOpened;\n var prevIsOpen = prevProps.isOpen;\n var wasOpened = isOpen && !prevIsOpen;\n var wasClosed = !isOpen && prevIsOpen;\n\n if (wasOpened) {\n CounterManager.increment();\n this.contentElement = this.contentRef.current;\n disableBodyScroll(this.contentRef.current);\n this.modalTriggerElement = document.activeElement;\n this.modalRef.current.focus();\n this.addBackdropClickListener();\n onOpened();\n }\n\n if (wasClosed) {\n this.removeBackdropClickListener();\n CounterManager.decrement();\n\n if (this.modalTriggerElement) {\n this.modalTriggerElement.focus();\n }\n\n if (!CounterManager.hasModalsOpen()) {\n enableBodyScroll(this.contentElement);\n clearAllBodyScrollLocks();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var isOpen = this.props.isOpen;\n\n if (isOpen) {\n CounterManager.decrement();\n }\n\n if (!CounterManager.hasModalsOpen()) {\n enableBodyScroll(this.contentElement);\n clearAllBodyScrollLocks();\n }\n\n this.removeBackdropClickListener();\n }\n }, {\n key: \"handleKeyPressed\",\n value: function handleKeyPressed(event) {\n event.stopPropagation();\n var isOpen = this.props.isOpen;\n\n if (isOpen && event.keyCode === ESCAPE_KEY && this.containerRef.current.contains(event.target)) {\n this.closeModal();\n }\n\n if (event.keyCode === TAB_KEY) {\n manageTab(this.modalRef.current, event);\n }\n\n return null;\n }\n }, {\n key: \"handleClick\",\n value: function handleClick(event) {\n var isOpen = this.props.isOpen;\n\n if (isOpen) {\n var isClickOutsideModal = !this.modalRef.current.contains(event.target);\n\n if (isClickOutsideModal) {\n return this.closeModal();\n }\n }\n\n return null;\n }\n }, {\n key: \"closeModal\",\n value: function closeModal() {\n var onRequestClose = this.props.onRequestClose;\n return onRequestClose();\n }\n }, {\n key: \"addBackdropClickListener\",\n value: function addBackdropClickListener() {\n var node = this.containerRef.current;\n\n if (node) {\n node.addEventListener('click', this.handleClick);\n }\n }\n }, {\n key: \"removeBackdropClickListener\",\n value: function removeBackdropClickListener() {\n var node = this.containerRef.current;\n\n if (node) {\n node.removeEventListener('click', this.handleClick);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n title = _this$props2.title,\n style = _this$props2.style,\n className = _this$props2.className,\n children = _this$props2.children,\n footer = _this$props2.footer,\n isOpen = _this$props2.isOpen,\n id = _this$props2.id,\n size = _this$props2.size,\n hideCloseButton = _this$props2.hideCloseButton,\n borderRadius = _this$props2.borderRadius;\n\n if (isOpen) {\n return createPortal(React.createElement(StyledBackDrop, {\n role: \"presentation\",\n isOpen: isOpen,\n id: id,\n ref: this.containerRef,\n onKeyDown: this.handleKeyPressed\n }, React.createElement(StyledModalContainer, {\n role: \"dialog\",\n tabIndex: -1,\n \"aria-labelledby\": this.modalHeadingId,\n \"aria-modal\": true,\n \"aria-hidden\": !isOpen,\n \"aria-describedby\": this.modalContentId,\n style: style,\n ref: this.modalRef,\n isOpen: isOpen,\n className: className,\n size: size,\n as: \"section\",\n borderRadius: borderRadius\n }, React.createElement(RenderIf, {\n isTrue: !hideCloseButton\n }, React.createElement(StyledCloseButton, {\n id: \"modal-close-button\",\n icon: React.createElement(CloseIcon, null),\n title: \"Close\",\n onClick: this.closeModal,\n ref: this.buttonRef\n })), React.createElement(Header, {\n id: this.modalHeadingId,\n title: title\n }), React.createElement(StyledContent, {\n id: this.modalContentId,\n ref: this.contentRef\n }, children), React.createElement(RenderIf, {\n isTrue: footer\n }, React.createElement(StyledFooter, null, footer)))), document.body);\n }\n\n return null;\n }\n }]);\n\n return Modal;\n}(Component);\n\nexport { Modal as default };\nModal.propTypes = {\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n footer: PropTypes.node,\n isOpen: PropTypes.bool,\n onRequestClose: PropTypes.func,\n onOpened: PropTypes.func,\n id: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.node,\n hideCloseButton: PropTypes.bool,\n borderRadius: PropTypes.oneOf(['square', 'semi-square', 'semi-rounded', 'rounded'])\n};\nModal.defaultProps = {\n isOpen: false,\n title: null,\n size: 'small',\n children: null,\n className: undefined,\n style: undefined,\n footer: null,\n onRequestClose: function onRequestClose() {},\n onOpened: function onOpened() {},\n id: undefined,\n hideCloseButton: false,\n borderRadius: 'rounded'\n};","import _taggedTemplateLiteral from \"@babel/runtime/helpers/taggedTemplateLiteral\";\n\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4;\n\nimport styled from 'styled-components';\nimport { FONT_SIZE_HEADING_LARGE } from '../../../styles/fontSizes';\nimport attachThemeAttrs from '../../../styles/helpers/attachThemeAttrs';\nimport Modal from '../../Modal';\nimport Calendar from '../../Calendar';\nexport var StyledModal = styled(Modal)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n width: auto !important;\\n height: fit-content !important;\\n\\n @media (max-width: 600px) {\\n border-radius: 0 0 0.975rem 0.975rem !important;\\n align-self: flex-start;\\n width: 100% !important;\\n max-width: 100% !important;\\n }\\n\"])));\nexport var StyledCalendar = styled(Calendar)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n width: 420px;\\n padding: 0 8px;\\n margin: 20px 0 0 0;\\n \", \";\\n\\n @media (max-width: 600px) {\\n width: 100%;\\n padding: 0;\\n }\\n\"])), function (props) {\n return props.variant === 'double' && \"\\n width: 800px;\\n \";\n});\nexport var Header = styled.header(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n display: flex;\\n align-items: stretch;\\n padding: 4px 48px 8px 20px;\\n \", \";\\n \", \";\\n\"])), function (props) {\n return props.variant === 'single' && \"\\n width: 350px;\\n \";\n}, function (props) {\n return props.variant === 'double' && \"\\n width: 730px;\\n \";\n});\nexport var HeaderTitle = attachThemeAttrs(styled.h1)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n display: flex;\\n color: \", \";\\n font-size: \", \";\\n font-weight: 500;\\n margin: 0;\\n padding: 0;\\n\"])), function (props) {\n return props.palette.brand.main;\n}, FONT_SIZE_HEADING_LARGE);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport RenderIf from '../RenderIf';\nimport { Header, HeaderTitle, StyledModal, StyledCalendar } from './styled';\nexport default function DatePickerModal(props) {\n var id = props.id,\n className = props.className,\n style = props.style,\n locale = props.locale,\n minDate = props.minDate,\n maxDate = props.maxDate,\n selectionType = props.selectionType,\n variant = props.variant,\n value = props.value,\n onChange = props.onChange,\n onRequestClose = props.onRequestClose,\n isOpen = props.isOpen,\n title = props.title,\n disabledDays = props.disabledDays,\n borderRadius = props.borderRadius;\n var calendarId = id && \"\".concat(id, \"_calendar\");\n return React.createElement(StyledModal, {\n id: id,\n className: className,\n style: style,\n isOpen: isOpen,\n onRequestClose: onRequestClose,\n borderRadius: borderRadius\n }, React.createElement(RenderIf, {\n isTrue: title\n }, React.createElement(Header, {\n variant: variant\n }, React.createElement(HeaderTitle, null, title))), React.createElement(StyledCalendar, {\n id: calendarId,\n locale: locale,\n minDate: minDate,\n maxDate: maxDate,\n selectionType: selectionType,\n variant: variant,\n value: value,\n onChange: onChange,\n disabledDays: disabledDays\n }));\n}\nDatePickerModal.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n style: PropTypes.object,\n locale: PropTypes.string,\n maxDate: PropTypes.instanceOf(Date),\n minDate: PropTypes.instanceOf(Date),\n selectionType: PropTypes.oneOf(['single', 'range']),\n variant: PropTypes.oneOf(['single', 'double']),\n onChange: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]))]),\n isOpen: PropTypes.bool,\n onRequestClose: PropTypes.func,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n disabledDays: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.instanceOf(Date)])),\n borderRadius: PropTypes.oneOf(['square', 'semi-square', 'semi-rounded', 'rounded'])\n};\nDatePickerModal.defaultProps = {\n id: undefined,\n className: undefined,\n style: undefined,\n locale: undefined,\n maxDate: undefined,\n minDate: undefined,\n selectionType: 'single',\n variant: 'single',\n value: undefined,\n isOpen: false,\n onChange: function onChange() {},\n onRequestClose: function onRequestClose() {},\n title: undefined,\n disabledDays: [],\n borderRadius: 'rounded'\n};","import { useTranslation } from 'react-i18next';\nimport { useEffect, useRef, useState } from 'react';\nimport { DateTime } from 'luxon';\nimport { DatePickerModal } from 'react-rainbow-components';\nimport { Value } from 'react-rainbow-components/components/DatePicker';\nimport ReactCalendar from 'react-rainbow-components/components/Calendar/index.js';\nimport CalendarIcon from '@/assets/icons/calendar.svg?react';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useRedux';\nimport { setFrom, setTo } from '@/redux/bookingSlice';\nimport useClickOutside from '@/hooks/useClickOutside';\nimport arrowDown from '@/assets/icons/arrow-down.svg';\nimport PlanSVG from '../planSVG/PlanSVG';\nimport useResize from '@/hooks/useResize';\nimport styles from './selectors.module.scss';\n\nfunction formatDateToSelector(date: string, locale: string = 'default') {\n if (date === '') return '';\n return new Intl.DateTimeFormat(locale, { day: '2-digit', month: 'short' }).format(new Date(date));\n}\n\nfunction formatDateToGlobalState(date: Date) {\n return new Intl.DateTimeFormat('en-CA', { year: 'numeric', month: '2-digit', day: '2-digit' }).format(date);\n}\n\nfunction datesToString(dates: any, locale: string = 'default') {\n if (dates) {\n const startDay = formatDateToSelector(dates[0], locale);\n\n if (dates.length > 1) {\n const endDay = formatDateToSelector(dates[1], locale);\n return `${startDay} - ${endDay}`;\n }\n return startDay;\n }\n return '';\n}\n\nconst DateSelector = () => {\n const { from, to } = useAppSelector((state) => state.booking);\n const [calendarValues, setCalendarValues] = useState(getInitialValues());\n const [isActive, setIsActive] = useState(false);\n const [maxDate, setMaxDate] = useState(undefined);\n const oneDayFromNow = DateTime.local().plus({ days: 1 });\n const { width } = useResize();\n const isDesktop = width > 1150;\n const calendarRef = useRef(null);\n const dispatch = useAppDispatch();\n const { t, i18n } = useTranslation();\n\n useClickOutside(calendarRef, () => {\n if (isActive) {\n setCalendarValues([new Date(from), new Date(to)]);\n setIsActive(false);\n }\n });\n\n useEffect(() => {\n if (from === '' && to === '') {\n setDefaultValues();\n }\n }, []);\n\n function getInitialValues() {\n if (from !== '' && to !== '') {\n return [new Date(from), new Date(to)];\n }\n return [];\n }\n\n const setDefaultValues = () => {\n const defaultStartDate = formatDateToGlobalState(oneDayFromNow.toJSDate());\n const defaultEndDate = formatDateToGlobalState(oneDayFromNow.plus({ days: 3 }).toJSDate());\n dispatch(setFrom(defaultStartDate));\n dispatch(setTo(defaultEndDate));\n setCalendarValues([new Date(defaultStartDate), new Date(defaultEndDate)]);\n };\n\n const onSelectorClick = () => {\n setIsActive(!isActive);\n };\n\n const onDateChange = (newDates: Value) => {\n setCalendarValues(newDates);\n\n if (Array.isArray(newDates)) {\n const maxAvailableDate = DateTime.fromJSDate(newDates[0]).plus({ days: 27 });\n setMaxDate(maxAvailableDate.toJSDate() ?? undefined);\n }\n\n if (Array.isArray(newDates) && newDates.length > 1) {\n const newFromDate = formatDateToGlobalState(newDates[0]);\n const newToDate = formatDateToGlobalState(newDates[1]);\n dispatch(setFrom(newFromDate));\n dispatch(setTo(newToDate));\n setMaxDate(undefined);\n\n setTimeout(() => {\n setIsActive(false);\n }, 300);\n }\n };\n\n const onClose = () => {\n if (from !== '' && to !== '') {\n setCalendarValues([new Date(from), new Date(to)]);\n }\n setIsActive(false);\n };\n\n const datesString = datesToString([from, to], i18n.language);\n const showCalendarModal = isActive && !isDesktop;\n const showCalendarBox = isActive && isDesktop;\n\n return (\n
\n {/*

{t('days')}

*/}\n \n {showCalendarBox && (\n
\n \n
\n )}\n {showCalendarModal && (\n \n )}\n
\n );\n};\n\nexport default DateSelector;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","import { ICity } from '@/types/types';\n\nexport interface CitySearchResponse {\n count: number;\n next: null;\n previous: null;\n results: CitiesResult[];\n}\n\ninterface CitiesResult {\n id: number;\n url: string;\n sks_code: string;\n iata_code: string;\n timezone: string;\n latitude: string;\n longitude: string;\n sort_order: number;\n name: string;\n state_province_name: string | null;\n country: CityCountry;\n image: string | null;\n}\n\ninterface CityCountry {\n id: number;\n name: string;\n url: string;\n sks_code: string;\n iata_code: string | null;\n timezone: string | null;\n currency: string;\n}\n\nconst adaptCities = (cities: CitiesResult[]): ICity[] => {\n return cities.map((city) => {\n return {\n id: city.id,\n name: city.name,\n countryCode: city.country.sks_code,\n countryName: city.country.name ?? '',\n iataCode: city.iata_code ?? '',\n };\n });\n};\n\nexport default adaptCities;\n","import { useEffect, useRef, useState, ChangeEvent, MouseEvent } from 'react';\nimport debounce from 'lodash/debounce';\nimport { useTranslation } from 'react-i18next';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useRedux';\nimport { setDestination, setOrigin } from '@/redux/bookingSlice';\nimport { ICity } from '@/types/types';\nimport LocationIcon from '@/assets/icons/location.svg?react';\nimport useClickOutside from '@/hooks/useClickOutside';\nimport arrowDown from '@/assets/icons/arrow-down.svg';\nimport PlanSVG from '../planSVG/PlanSVG';\nimport styles from './selectors.module.scss';\nimport APIKit from '@/utils/APIKit';\nimport adaptCities from '@/utils/adapters/citiesAdapter';\n\ninterface IProps {\n type: 'origin' | 'destination';\n location?: string;\n}\n\nconst normalizeString = (string: string) => {\n const normalizedString = string\n .toLowerCase()\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n\n return normalizedString;\n};\n\nconst CitySelector = ({ location = 'home', type }: IProps) => {\n const origin = useAppSelector((state) => state.booking.origin);\n const destination = useAppSelector((state) => state.booking.destination);\n const [availableCities, setAvailableCities] = useState([]);\n const [isActive, setIsActive] = useState(false);\n const selectorRef = useRef(null);\n const inputRef = useRef(null);\n const isHomePage = location === 'home';\n const dispatch = useAppDispatch();\n const { t, i18n } = useTranslation();\n const isOrigin = type === 'origin';\n\n useEffect(() => {\n if (isActive) inputRef.current?.focus();\n }, [isActive]);\n\n useClickOutside(selectorRef, () => {\n if (isActive) {\n setIsActive(false);\n }\n });\n\n useEffect(() => {\n if (origin.id) {\n APIKit.get(`/places/cities/${origin.id}`).then((res) => {\n const cities = adaptCities([res.data]);\n dispatch(setOrigin(cities[0]));\n });\n }\n\n if (destination.id) {\n APIKit.get(`/places/cities/${destination.id}`).then((res) => {\n const cities = adaptCities([res.data]);\n dispatch(setDestination(cities[0]));\n });\n }\n }, [i18n.language]);\n\n const onSelectorClick = (e: MouseEvent) => {\n const currentTarget = e.target;\n const inputElement = inputRef?.current;\n const eventOutsideInput = currentTarget !== inputElement;\n const eventWasTriggerByKeyboard = e.detail === 0;\n\n if (eventOutsideInput && !eventWasTriggerByKeyboard) {\n return setIsActive(!isActive);\n }\n if (isActive) return false;\n\n return setIsActive(true);\n };\n\n const onItemClick = (city: ICity) => {\n if (isOrigin) {\n dispatch(setOrigin(city));\n } else {\n dispatch(setDestination(city));\n }\n setIsActive(false);\n setAvailableCities([]);\n };\n\n const getNewCities = (inputValue: string) => {\n APIKit.get(`/places/cities/?translations__name__icontains=${inputValue}`).then((res) => {\n const cities = adaptCities(res.data.results);\n setAvailableCities(cities);\n });\n };\n\n const onInputChange = debounce((e: ChangeEvent) => {\n e.persist();\n const inputValue = normalizeString(e.target.value);\n\n if (inputValue === '') return setAvailableCities([]);\n\n return getNewCities(inputValue);\n }, 300);\n\n const selectedCity = isOrigin ? origin : destination;\n const showCitiesList = isActive && availableCities.length > 0;\n\n const labelText = isOrigin ? t('departure') : t('destination');\n const countryName = selectedCity.countryName !== '' ? `, ${selectedCity.countryName}` : '';\n const selectorText = selectedCity.id !== 0 ? `${selectedCity.name}${countryName}` : labelText;\n\n const selectorTextClassName = selectedCity.id !== 0 ? styles.text : `${styles.text} ${styles.placeholder}`;\n const selectorClassName =\n isActive && showCitiesList ? `${styles.selector} ${styles.selectorActive}` : styles.selector;\n const containerStyles = isHomePage\n ? `${styles.selectorContainer} ${styles.originSelector}`\n : `${styles.selectorContainer} ${styles.originSelector} ${styles.fullWidth}`;\n\n const citiesToShow = availableCities;\n\n return (\n
\n \n {showCitiesList && (\n \n )}\n
\n );\n};\n\ninterface IOptionsProps {\n cities: ICity[];\n onItemClick: any;\n inputValue: string | undefined;\n}\n\nconst SelectorOptions = ({ cities, onItemClick, inputValue }: IOptionsProps) => {\n const hasCities = cities.length > 0;\n const inputIsEmpty = inputValue === '' || inputValue === undefined;\n const { t, i18n } = useTranslation();\n const lang = i18n.language;\n\n const citiesByCountryName = [...cities].sort(\n (a, b) =>\n a.countryName.charCodeAt(0) - b.countryName.charCodeAt(0) || a.name.charCodeAt(0) - b.name.charCodeAt(0),\n );\n\n const putFirstTheLanguageCities = () => {\n const selectedLanguageCities = citiesByCountryName.filter((city) => city.countryCode.toLowerCase() === lang);\n const otherCities = citiesByCountryName.filter((city) => city.countryCode.toLowerCase() !== lang);\n\n const newCitiesList = [...selectedLanguageCities, ...otherCities];\n return newCitiesList;\n };\n\n const citiesOrderedByLanguage = putFirstTheLanguageCities();\n\n return (\n
\n
    \n {hasCities &&\n citiesOrderedByLanguage.map((city: ICity, index: number) => {\n const countryName = city.countryName !== '' ? `, ${city.countryName}` : '';\n\n return (\n // eslint-disable-next-line react/no-array-index-key\n
  • \n \n
  • \n );\n })}\n\n {!hasCities && !inputIsEmpty && {t('cityNotFound')}}\n\n {/* {!hasCities && inputIsEmpty && Escribe una ciudad} */}\n
\n
\n );\n};\n\nexport default CitySelector;\n","/* eslint-disable react/no-unstable-nested-components */\nimport { useEffect, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useRedux';\nimport { setCalendarPrices, setCalendarEurPrices, setDiscardedCities, setFrom, setTo } from '@/redux/bookingSlice';\nimport { resetExtrasStates } from '@/redux/extrasSlice';\nimport { addAvailableExtras, setAvailableCities } from '@/redux/planSlice';\nimport GlobalButton from '@/components/globals/globalButton/GlobalButton';\nimport OriginSelector from '@/components/globals/selectors/OriginSelector';\nimport PeopleSelector from '@/components/globals/selectors/PeopleSelector';\nimport DaysSelector from '@/components/globals/selectors/DaysSelector';\nimport PlanSelector from '@/components/globals/selectors/PlanSelector';\nimport FunnelTypeSelector from './funnelTypeSelector/FunnelTypeSelector';\nimport BudgetSelector from './budgetSelector/BudgetSelector';\nimport useTracking from '@/hooks/useTracking';\nimport handleError from '@/utils/handleError';\nimport DateSelector from '@/components/globals/selectors/DateSelector';\nimport CitySelector from '@/components/globals/selectors/CitySelector';\nimport getSelectedPlan from '@/utils/getSelectedPlan';\nimport useRoutes from '@/hooks/useRoutes';\nimport APIKit from '@/utils/APIKit';\nimport styles from './SelectorsContainer.module.scss';\nimport usePriceCurrency from '@/hooks/usePriceCurrency';\nimport usePlan from '@/hooks/usePlan';\nimport { adaptInsurances } from '@/utils/adapters/insurancesAdapter';\n\ninterface CustomState {\n from: string;\n}\n\nconst SelectorsContainer = () => {\n const [errorMessage, setErrorMessage] = useState({ visible: false, message: '' });\n const currentPlanId = useAppSelector((state) => state.plan.currentPlan);\n const { isAloyPlan, isGetawayPlan } = getSelectedPlan(currentPlanId);\n const { origin, destination, days, currency, from, to } = useAppSelector((state) => state.booking);\n const { planConfig, getPlanFromPrice } = usePlan();\n const planBasePrice = getPlanFromPrice({ showMinPrice: false });\n const locationState = useLocation().state as CustomState;\n const isRedeemingAGift = useAppSelector((state) => state.gift.isRedeemingAGift);\n const isFromLandingCard = locationState?.from === 'landing';\n const showPlanSelector = !isRedeemingAGift && !isFromLandingCard;\n const hasFlightHotel = !isGetawayPlan;\n const [buttonDisabled, setButtonDisabled] = useState(false);\n const { routes, currentPathname, isHomePage } = useRoutes();\n const { trackStartFunnelEvent } = useTracking();\n const { getPriceCurrency } = usePriceCurrency();\n const basePrice = getPriceCurrency(planBasePrice);\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const { t } = useTranslation();\n\n useEffect(() => {\n if (!errorMessage.visible) return;\n setErrorMessage({ visible: false, message: '' });\n }, [isAloyPlan, origin.id, destination?.id]);\n\n useEffect(() => {\n if (isAloyPlan) {\n dispatch(setAvailableCities([]));\n }\n }, [currentPlanId]);\n\n const getCalendarPrices = async () => {\n await APIKit.get(`/calendar/${currentPlanId}/${days}/${origin.id}/?target_currency=${currency.name}`)\n .then((response) => {\n dispatch(setCalendarPrices(response.data));\n })\n .catch((error) => {\n const errorMsg = handleError(error);\n setErrorMessage({ visible: true, message: errorMsg });\n setButtonDisabled(false);\n });\n\n if (currency.name !== 'EUR') {\n await APIKit.get(`/calendar/${currentPlanId}/${days}/${origin.id}/?target_currency=EUR`)\n .then((response) => {\n dispatch(setCalendarEurPrices(response.data));\n })\n .catch((error) => {\n const errorMsg = handleError(error);\n setErrorMessage({ visible: true, message: errorMsg });\n setButtonDisabled(false);\n });\n }\n };\n\n const getInsurancesData = async () => {\n await APIKit.get(`/travels/insurance/${days}/${currentPlanId}/?target_currency=${currency.name}`)\n .then((res) => {\n const insurancesData = adaptInsurances(res.data);\n dispatch(addAvailableExtras(insurancesData));\n })\n .catch((error) => {\n const errorMsg = handleError(error);\n console.log(errorMsg);\n });\n };\n\n const onStartClick = async () => {\n setButtonDisabled(true);\n if (!isAloyPlan) {\n dispatch(setDiscardedCities([]));\n dispatch(resetExtrasStates());\n dispatch(setTo(''));\n dispatch(setFrom(''));\n getInsurancesData();\n await getCalendarPrices();\n trackStartFunnelEvent(from);\n navigate(routes.calendar);\n } else {\n if (!from || !to) {\n setErrorMessage({ visible: true, message: 'Please select travel dates' });\n setButtonDisabled(false);\n return;\n }\n if (origin.id === 0 || destination.id === 0) {\n setErrorMessage({ visible: true, message: 'Please select origin and destination' });\n setButtonDisabled(false);\n return;\n }\n navigate(routes.bestResult);\n }\n };\n\n const FlightHotel = () => (\n \n Flights + Hotel\n from\n \n {/* @ts-ignore <-- Hasta que i18next solucione problema con el componente Trans */}\n {{ basePrice }}\n \n \n );\n\n const AccommodationTravel = () => (\n \n Accommodation + Travel route\n from\n \n {/* @ts-ignore <-- Hasta que i18next solucione problema con el componente Trans */}\n {{ basePrice }}\n \n \n );\n\n const getTitle = () => {\n if (isAloyPlan) return {t('flightsPlusHotel')};\n if (isRedeemingAGift) return {t('startBookingRedeem')};\n if (hasFlightHotel) return ;\n return ;\n };\n\n const getSubtitle = () => {\n if (isAloyPlan) return {t('travelWhereverYouWant')};\n\n return (\n \n Discover your destination 2 days before leaving!\n \n );\n };\n\n return (\n
\n {isHomePage && isAloyPlan && }\n

{getTitle()}

\n

{getSubtitle()}

\n
\n {!isAloyPlan && showPlanSelector && }\n {isAloyPlan ? : }\n {isAloyPlan && }\n {isAloyPlan ? : }\n \n
\n \n {t('start')}\n \n
\n
\n\n {errorMessage.visible &&

{errorMessage.message}

}\n
\n );\n};\n\nexport default SelectorsContainer;\n","import { useEffect, useRef } from 'react';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useRedux';\nimport i18n from '@/i18n/config';\nimport { IPromoData, setHomeData } from '@/redux/landingSlice';\nimport APIKit from '@/utils/APIKit';\nimport useRoutes from '../../../../hooks/useRoutes';\nimport styles from './Cover.module.scss';\nimport CoverTopHome from './coverTopHome/CoverTopHome';\nimport SelectorsContainer from './selectorsContainer/SelectorsContainer';\n\nconst Cover = ({ isChristmas }: { isChristmas?: boolean }) => {\n const { routes, currentPathname } = useRoutes();\n const isHomePage =\n currentPathname === routes.home ||\n currentPathname === routes.homeLocale ||\n currentPathname === routes.aloyHome ||\n currentPathname === routes.flykubeHome;\n const landingInfoIsLoading = useRef(false);\n const dispatch = useAppDispatch();\n const lang = i18n.language ?? 'en';\n const { slug }: IPromoData = useAppSelector((state) => state.landing.homeCoverPromoData);\n\n const getPromoInfo = () => {\n if (landingInfoIsLoading.current) return;\n landingInfoIsLoading.current = true;\n APIKit.get(`landing/page/${slug}/`)\n .then((res) => {\n const promoData: IPromoData = res.data;\n dispatch(setHomeData(promoData));\n })\n .catch(() => {})\n .finally(() => {\n landingInfoIsLoading.current = false;\n });\n };\n\n useEffect(() => {\n if (lang) {\n getPromoInfo();\n }\n }, [lang]);\n\n return (\n
\n \n\n \n
\n );\n};\n\nexport default Cover;\n"],"file":"assets/chunk.DSsU7FSg.js"}