{"version":3,"file":"chunk.Cfq8dAcD.js","sources":["../../src/assets/icons/location.svg?react","../../src/components/globals/selectors/OriginSelector.tsx","../../src/assets/icons/person.svg?react","../../src/assets/icons/minus.svg","../../src/assets/icons/plus.svg","../../src/components/globals/selectors/PeopleSelector.tsx","../../src/assets/icons/calendar.svg?react","../../src/components/globals/selectors/DaysSelector.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgLocation = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 58, height: 68, viewBox: \"0 0 58 68\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M23.7559 55.0863C22.3068 56.4919 20.9612 57.8975 19.305 59.5039C12.4735 51.7731 3.26136 45.8496 0.777172 35.1069C-2.8456 19.2439 6.47009 3.98325 23.0313 0.569682C38.5575 -2.64308 54.1871 8.0996 56.6713 23.561C58.2239 33.2997 55.4292 41.7332 48.3907 48.7612C42.6978 54.3835 37.0048 59.9055 31.3119 65.5278C30.0698 66.7326 28.5172 67.7366 27.0681 66.331C26.24 65.5278 25.826 63.9214 25.826 62.7166C25.826 62.0138 26.8611 61.311 27.4821 60.6082C33.3821 54.6847 39.5925 48.962 45.1819 42.7372C56.8783 29.7858 49.6328 9.80638 32.14 6.59362C19.7191 4.28444 6.7806 14.2239 6.26306 26.573C5.95254 33.5005 8.12621 39.3237 13.0946 44.2432C16.6138 47.7572 20.1331 51.4719 23.7559 55.0863Z\", fill: \"url(#paint0_linear_663_494)\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M28.5439 39.7128C21.0415 39.7128 14.7895 33.4044 14.8937 25.9585C14.9979 18.6161 21.2499 12.4112 28.4397 12.4112C35.8378 12.3078 42.194 18.6161 42.194 26.062C42.2982 33.5079 36.0462 39.7128 28.5439 39.7128ZM28.5439 18.9263C24.3759 18.9263 21.3541 21.9254 21.3541 26.062C21.2499 30.1986 24.4801 33.5079 28.6481 33.5079C32.8161 33.5079 35.942 30.1986 35.8378 26.062C35.7336 21.9254 32.7119 18.9263 28.5439 18.9263Z\", fill: \"url(#paint1_linear_663_494)\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_663_494\", x1: 56.5385, y1: -2.11126, x2: 6.6253, y2: 43.11, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#FD3874\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#FF7854\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint1_linear_663_494\", x1: 41.9326, y1: 11.5498, x2: 21.5372, y2: 33.2416, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#FD3874\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#FF7854\" }))));\nexport default SvgLocation;\n","import { useEffect, useRef, useState, ChangeEvent, MouseEvent } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useRedux';\nimport { setExchangeRate, setOrigin } from '@/redux/bookingSlice';\nimport { FunnelType, 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, { getPlanAvailableOrigins } from '@/utils/APIKit';\nimport { setAvailableCities, setPlansInfo } from '@/redux/planSlice';\n\ninterface IProps {\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 OriginSelector = ({ location = 'home' }: IProps) => {\n const currentPlanId = useAppSelector((state) => state.plan.currentPlan);\n const origin = useAppSelector((state) => state.booking.origin);\n const currency = useAppSelector((state) => state.booking.currency);\n const destination = useAppSelector((state) => state.booking.destination);\n const funnelType = useAppSelector((state) => state.booking.funnelType);\n const globalAvailableCities = useAppSelector((state) => state.plan.availableCities) ?? [];\n const isSurpriseFunnel = funnelType === FunnelType.surprise;\n const [citiesList, setCitiesList] = useState([origin]);\n const [isActive, setIsActive] = useState(false);\n const selectorRef = useRef(null);\n const inputRef = useRef(null);\n const isHomePage = location === 'home';\n const citiesAreLoading = useRef(false);\n const plansInfoAreLoading = useRef(false);\n const dispatch = useAppDispatch();\n const { t, i18n } = useTranslation();\n\n useEffect(() => {\n if (origin.id === 0) return;\n if (plansInfoAreLoading.current) return;\n\n plansInfoAreLoading.current = true;\n APIKit.get(`/packages/origin/${origin.id}/?target_currency=${currency.name}`)\n .then((res) => {\n dispatch(setPlansInfo(res.data));\n dispatch(setExchangeRate(res.data[0]?.exchange_rate ?? 1));\n })\n .catch((error) => console.log(error))\n .finally(() => {\n plansInfoAreLoading.current = false;\n });\n }, [origin.id, currency.name]);\n\n useEffect(() => {\n if (citiesAreLoading.current) return;\n citiesAreLoading.current = true;\n getCitiesToShow();\n }, [i18n.language, currentPlanId]);\n\n const getCitiesToShow = async () => {\n let availableCities: ICity[] = [];\n\n availableCities = await getPlanAvailableOrigins(currentPlanId);\n citiesAreLoading.current = false;\n\n dispatch(setAvailableCities(availableCities));\n };\n\n useEffect(() => {\n setAvailableCities(globalAvailableCities);\n setCitiesList(globalAvailableCities);\n }, [globalAvailableCities?.length]);\n\n useEffect(() => {\n setCurrentOrigin();\n }, [globalAvailableCities]);\n\n useEffect(() => {\n if (isActive) inputRef.current?.focus();\n }, [isActive]);\n\n useClickOutside(selectorRef, () => {\n if (isActive) {\n setCitiesList(globalAvailableCities);\n setIsActive(false);\n }\n });\n\n const setCurrentOrigin = () => {\n const originInList = globalAvailableCities?.find((city) => origin.id === city.id);\n if (originInList) {\n dispatch(setOrigin(originInList));\n return;\n }\n\n if (globalAvailableCities?.length > 0 && isSurpriseFunnel) {\n const barcelonaID = 2314;\n const defaultCity = globalAvailableCities.find((city) => city.id === barcelonaID);\n const originToSet = defaultCity ?? globalAvailableCities[0];\n dispatch(setOrigin(originToSet));\n }\n };\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 dispatch(setOrigin(city));\n setIsActive(false);\n setCitiesList(globalAvailableCities);\n };\n\n const onInputChange = (e: ChangeEvent) => {\n const inputValue = normalizeString(e.target.value);\n\n if (inputValue === '') return setCitiesList(globalAvailableCities);\n\n const newCitiesList = globalAvailableCities.filter((city: ICity) => {\n const cityName = normalizeString(city.name);\n const cityCountry = normalizeString(city.countryName);\n\n const cityMatchInput = cityName.includes(inputValue) || cityCountry.includes(inputValue);\n\n return cityMatchInput;\n });\n\n return setCitiesList(newCitiesList);\n };\n\n const labelText = isHomePage ? t('origin') : t('whereFrom');\n const countryName = origin.countryName !== '' ? `, ${origin.countryName}` : '';\n const selectorText = `${origin.name}${countryName}`;\n const selectorClassName = isActive ? `${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 = isSurpriseFunnel ? citiesList : citiesList.filter((city) => city.id !== destination?.id);\n\n return (\n
\n

{labelText}

\n \n {isActive && }\n
\n );\n};\n\ninterface IOptionsProps {\n cities: ICity[];\n onItemClick: any;\n}\n\nconst SelectorOptions = ({ cities, onItemClick }: IOptionsProps) => {\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 {cities.length > 0 ? (\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 {t('cityNotFound')}\n )}\n
\n
\n );\n};\n\nexport default OriginSelector;\n","import * as React from \"react\";\nconst SvgPerson = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 42, height: 56, viewBox: \"0 0 42 56\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M42 55.4981H36.75V50.2599C36.75 48.1761 35.9203 46.1776 34.4435 44.7041C32.9666 43.2306 30.9636 42.4028 28.875 42.4028H13.125C11.0364 42.4028 9.03338 43.2306 7.55653 44.7041C6.07969 46.1776 5.25 48.1761 5.25 50.2599V55.4981H0V50.2599C0 46.7869 1.38281 43.4561 3.84422 41.0002C6.30564 38.5444 9.64403 37.1647 13.125 37.1647H28.875C32.356 37.1647 35.6944 38.5444 38.1558 41.0002C40.6172 43.4561 42 46.7869 42 50.2599V55.4981ZM21 31.9266C18.9317 31.9266 16.8836 31.5202 14.9727 30.7304C13.0619 29.9407 11.3256 28.7832 9.86307 27.324C8.40054 25.8648 7.24041 24.1325 6.4489 22.2259C5.65739 20.3194 5.25 18.276 5.25 16.2123C5.25 14.1487 5.65739 12.1053 6.4489 10.1987C7.24041 8.29219 8.40054 6.55986 9.86307 5.10066C11.3256 3.64145 13.0619 2.48394 14.9727 1.69423C16.8836 0.904509 18.9317 0.498047 21 0.498047C25.1772 0.498047 29.1832 2.15365 32.1369 5.10066C35.0906 8.04766 36.75 12.0446 36.75 16.2123C36.75 20.38 35.0906 24.377 32.1369 27.324C29.1832 30.271 25.1772 31.9266 21 31.9266ZM21 26.6885C23.7848 26.6885 26.4555 25.5848 28.4246 23.6201C30.3938 21.6555 31.5 18.9908 31.5 16.2123C31.5 13.4339 30.3938 10.7692 28.4246 8.80455C26.4555 6.83988 23.7848 5.73614 21 5.73614C18.2152 5.73614 15.5445 6.83988 13.5754 8.80455C11.6062 10.7692 10.5 13.4339 10.5 16.2123C10.5 18.9908 11.6062 21.6555 13.5754 23.6201C15.5445 25.5848 18.2152 26.6885 21 26.6885Z\", fill: \"url(#paint0_linear_663_593)\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_663_593\", x1: 41.5959, y1: -1.23466, x2: 1.30744, y2: 31.4866, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#FD3874\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#FF7854\" }))));\nexport default SvgPerson;\n","export default \"data:image/svg+xml,%3csvg%20width='16'%20height='4'%20viewBox='0%200%2016%204'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.00619%203.99432C6.08435%203.99432%204.16251%204.01059%202.24211%203.98806C1.12509%203.97555%200.250099%203.29343%200.0381522%202.34973C-0.155177%201.47987%200.401898%200.561204%201.35422%200.184475C1.68933%200.0518064%202.04018%200.000490963%202.40679%200.000490963C6.1359%200.00174255%209.86501%20-0.00326396%2013.5927%200.00424558C14.9904%200.00674877%2015.9986%200.856579%2016%201.99678C16.0014%203.13448%2014.9918%203.98681%2013.5984%203.99432C11.7339%204.00433%209.86931%203.99682%208.00476%203.99682C8.00619%203.99557%208.00619%203.99432%208.00619%203.99432Z'%20fill='white'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='17'%20height='18'%20viewBox='0%200%2017%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12.9542%2011.5719C12.4077%2011.5719%2011.8598%2011.5944%2011.3164%2011.5638C10.9801%2011.5445%2010.9192%2011.6815%2010.9237%2012.0005C10.9405%2013.0705%2010.9344%2014.1421%2010.9283%2015.2138C10.9192%2016.8445%209.92072%2017.9919%208.51435%2018C7.10645%2018.008%206.08363%2016.8607%206.07298%2015.2428C6.06537%2014.1712%206.05776%2013.1012%206.07907%2012.0295C6.08668%2011.6766%206.00601%2011.5542%205.65137%2011.5622C4.62094%2011.588%203.58747%2011.5799%202.55704%2011.5687C1.07152%2011.5525%200%2010.4664%200%208.9984C0%207.53037%201.07305%206.44586%202.55857%206.42975C3.56921%206.41847%204.58289%206.40396%205.59201%206.43941C6.00753%206.45392%206.0882%206.30567%206.07907%205.9028C6.05319%204.8747%206.06689%203.84659%206.07146%202.81849C6.07907%201.14741%207.08666%20-0.00960856%208.51587%206.0142e-05C9.92376%200.00972884%2010.9192%201.15708%2010.9283%202.78948C10.9344%203.83853%2010.9466%204.8892%2010.9207%205.93825C10.9116%206.32339%2010.9907%206.45231%2011.3804%206.43941C12.391%206.40557%2013.4032%206.42008%2014.4138%206.42975C15.9343%206.44425%2017.018%207.54165%2016.9998%209.03385C16.9815%2010.4987%2015.9085%2011.5542%2014.4108%2011.5719C13.9252%2011.5767%2013.4397%2011.5719%2012.9542%2011.5719Z'%20fill='white'/%3e%3c/svg%3e\"","import { useRef, useState, Fragment } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useAppDispatch, useAppSelector } from '../../../hooks/useRedux';\nimport { addTraveller, removeTraveller } from '../../../redux/travellersSlice';\nimport { TravellerGroup } from '@/types/types';\nimport PersonIcon from '../../../assets/icons/person.svg?react';\nimport useClickOutside from '../../../hooks/useClickOutside';\nimport arrowDown from '../../../assets/icons/arrow-down.svg';\nimport minusIcon from '../../../assets/icons/minus.svg';\nimport plusIcon from '../../../assets/icons/plus.svg';\nimport styles from './selectors.module.scss';\nimport getSelectedPlan from '../../../utils/getSelectedPlan';\nimport usePlan from '@/hooks/usePlan';\nimport PlanSVG from '../planSVG/PlanSVG';\nimport usePriceCurrency from '@/hooks/usePriceCurrency';\nimport usePrices from '@/hooks/usePrices';\n\ninterface IProps {\n location?: string;\n mode?: 'standard' | 'compact';\n}\n\nconst PeopleSelector = ({ location = 'home', mode = 'standard' }: IProps) => {\n const currentPlanId = useAppSelector((state) => state.plan.currentPlan);\n const adults = useAppSelector((state) => state.travellers.adults.length);\n const children = useAppSelector((state) => state.travellers.children.length);\n const babies = useAppSelector((state) => state.travellers.babies.length);\n const totalTravellers = adults + children + babies;\n const selectorRef = useRef(null);\n const [isActive, setIsActive] = useState(false);\n const { isAloyPlan } = getSelectedPlan(currentPlanId);\n const { t } = useTranslation();\n const isHomePage = location === 'home';\n const isCompact = mode === 'compact';\n\n const onSelectorClick = () => {\n setIsActive(!isActive);\n };\n\n useClickOutside(selectorRef, () => {\n if (isActive) setIsActive(false);\n });\n\n const getSelectorText = () => {\n const adultsText = `${adults} ${adults > 1 ? t('adults') : t('adult')}`;\n const childrenText = `, ${children} ${children > 1 ? t('children') : t('child')}`;\n const babiesText = `, ${babies} ${babies > 1 ? t('babies') : t('baby')}`;\n\n const selectorText = `${adultsText}${children > 0 ? childrenText : ''}${babies > 0 ? babiesText : ''}`;\n\n return selectorText.toLowerCase();\n };\n\n const labelText = isHomePage ? t('selectorTraveler') : t('howManyPersons');\n const selectorText = isHomePage && `${totalTravellers}`;\n const containerStyles = isHomePage\n ? `${styles.selectorContainer} ${styles.peopleSelector} ${styles.peopleSelectorFlykube} ${\n isAloyPlan && styles.peopleSelectorAloy\n }`\n : `${styles.selectorContainer} ${styles.peopleSelector} ${styles.fullWidth}`;\n\n return (\n
\n {!isCompact &&

{labelText}

}\n \n {isActive && }\n
\n );\n};\n\nconst AdultsText = () => (\n \n Passengers aged\n 12 years\n and over are charged the standard\n adult fare.\n \n);\n\nconst ChildrenText = () => (\n \n There is a5%\n discount for passengers aged\n 2 to 11.\n \n);\n\nconst BabiesText = () => {\n const { getBookingPricePerBaby } = usePrices();\n const { getPriceCurrency } = usePriceCurrency();\n\n const pricePerBaby = getBookingPricePerBaby();\n const babyPriceCurrency = getPriceCurrency(pricePerBaby);\n\n return (\n \n Passengers\n \n under 2 only pay\n {/* @ts-ignore <-- Hasta que i18next solucione problema con el componente Trans */}\n {{ babyPriceCurrency }}\n \n for the FlyKube trip.\n \n );\n};\n\nconst SelectorOptions = () => {\n const adultsNumber = useAppSelector((state) => state.travellers.adults.length);\n const childrenNumber = useAppSelector((state) => state.travellers.children.length);\n const babiesNumber = useAppSelector((state) => state.travellers.babies.length);\n const totalTravellers = adultsNumber + childrenNumber + babiesNumber;\n const { planConfig } = usePlan();\n const { isAllSurprisePlan, isAloyPlan } = getSelectedPlan(planConfig.id);\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n\n const options = [\n {\n type: TravellerGroup.adults,\n title: t('adults'),\n text: ,\n number: adultsNumber,\n ariaLabelAdd: t('addAdult'),\n ariaLabelSubstract: t('substractAdult'),\n years: `+ 18 ${t('years')}`,\n },\n {\n type: TravellerGroup.children,\n title: t('children'),\n text: ,\n number: childrenNumber,\n ariaLabelAdd: t('addChild'),\n ariaLabelSubstract: t('substractChild'),\n years: `2 - 17 ${t('years')}`,\n },\n {\n type: TravellerGroup.babies,\n title: t('babies'),\n text: ,\n number: babiesNumber,\n ariaLabelAdd: t('addBaby'),\n ariaLabelSubstract: t('substractBaby'),\n years: `0 - 2 ${t('years')}`,\n },\n ];\n\n const onPlusButtonClick = (type: string) => {\n if (isAloyPlan) {\n if (totalTravellers >= 10) return;\n if (type === TravellerGroup.babies && babiesNumber >= adultsNumber) return;\n }\n dispatch(addTraveller(type));\n };\n\n const onMinusButtonClick = (type: string) => {\n if (type === TravellerGroup.adults) {\n if (adultsNumber <= 1) return;\n dispatch(removeTraveller(type));\n }\n if (type === TravellerGroup.children) {\n if (childrenNumber <= 0) return;\n dispatch(removeTraveller(type));\n }\n if (type === TravellerGroup.babies) {\n if (babiesNumber <= 0) return;\n dispatch(removeTraveller(type));\n }\n };\n\n const planGradient = `linear-gradient(220deg, ${planConfig.colors.dark}, ${planConfig.colors.light})`;\n\n return isAloyPlan ? (\n
\n {options.map((option) => {\n let isActive = option.number > 0;\n const onlyOneAdultLeft = option.type === TravellerGroup.adults && option.number <= 1;\n if (onlyOneAdultLeft) isActive = false;\n\n const activeStyle = isActive ? { background: '#0464A9' } : {};\n\n return (\n \n
\n
\n

{option.title}

\n

{option.years}

\n
\n\n
\n onMinusButtonClick(option.type)}\n aria-label={option.ariaLabelSubstract}\n >\n \"\"\n \n \n {option.number}\n \n onPlusButtonClick(option.type)}\n aria-label={option.ariaLabelAdd}\n >\n \"\"\n \n
\n
\n
\n );\n })}\n
\n ) : (\n \n {options.map((option) => {\n let isActive = option.number > 0;\n const onlyOneAdultLeft = option.type === TravellerGroup.adults && option.number <= 1;\n if (onlyOneAdultLeft) isActive = false;\n\n const activeStyle = isActive ? { background: planGradient } : {};\n\n return (\n \n

{option.title}

\n
\n
\n onMinusButtonClick(option.type)}\n aria-label={option.ariaLabelSubstract}\n >\n \"\"\n \n {option.number}\n onPlusButtonClick(option.type)}\n aria-label={option.ariaLabelAdd}\n >\n \"\"\n \n
\n

{option.text}

\n
\n
\n );\n })}\n \n );\n};\n\nexport default PeopleSelector;\n","import * as React from \"react\";\nconst SvgCalendar = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 66, height: 68, viewBox: \"0 0 66 68\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M46.4049 8.85994H57.1606C57.8737 8.85994 58.5577 9.15413 59.0619 9.6778C59.5662 10.2015 59.8495 10.9117 59.8495 11.6523V56.3297C59.8495 57.0702 59.5662 57.7805 59.0619 58.3041C58.5577 58.8278 57.8737 59.122 57.1606 59.122H8.76008C8.04694 59.122 7.363 58.8278 6.85873 58.3041C6.35446 57.7805 6.07117 57.0702 6.07117 56.3297V11.6523C6.07117 10.9117 6.35446 10.2015 6.85873 9.6778C7.363 9.15413 8.04694 8.85994 8.76008 8.85994H19.5158V3.27527H24.8936V8.85994H41.0271V3.27527H46.4049V8.85994ZM41.0271 14.4446H24.8936V20.0293H19.5158V14.4446H11.449V25.614H54.4717V14.4446H46.4049V20.0293H41.0271V14.4446ZM54.4717 31.1986H11.449V53.5373H54.4717V31.1986Z\", fill: \"url(#paint0_linear_663_476)\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_663_476\", x1: 59.3321, y1: 1.51588, x2: 17.5468, y2: 44.3111, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#FD3874\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#FF7854\" }))));\nexport default SvgCalendar;\n","import { useLayoutEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useAppDispatch, useAppSelector } from '@/hooks/useRedux';\nimport { setDays } from '@/redux/bookingSlice';\nimport CalendarIcon from '@/assets/icons/calendar.svg?react';\nimport arrowDown from '@/assets/icons/arrow-down.svg';\nimport useClickOutside from '@/hooks/useClickOutside';\nimport getSelectedPlan from '@/utils/getSelectedPlan';\nimport usePlan from '@/hooks/usePlan';\nimport styles from './selectors.module.scss';\nimport PlanSVG from '../planSVG/PlanSVG';\n\ninterface IProps {\n location?: string;\n}\n\nconst DaysSelector = ({ location = 'home' }: IProps) => {\n const [isActive, setIsActive] = useState(false);\n const days = useAppSelector((state) => state.booking.days);\n const isRedeemingAGift = useAppSelector((state) => state.gift.isRedeemingAGift);\n const isOfferDiscount = useAppSelector((state) => state.discount.isOfferDiscount);\n const { planConfig, planAdminData, planMinDays } = usePlan();\n const { isMultiDestinationPlan, isAllSurprisePlan, isAloyPlan } = getSelectedPlan(planConfig.id);\n const multiDestinationFlights = (days - 1) / 2;\n const selectorRef = useRef(null);\n const isHomePage = location === 'home';\n const isGiftTravelPage = location === 'giftTravel';\n\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n\n useLayoutEffect(() => {\n if (isRedeemingAGift) return;\n dispatch(setDays(Number(planMinDays)));\n }, [planConfig.id, planMinDays]);\n\n const onSelectorClick = () => {\n setIsActive(!isActive);\n };\n\n const onItemClick = (item: any) => {\n dispatch(setDays(Number(item)));\n setIsActive(false);\n };\n\n const getContainerStyles = () => {\n if (isHomePage) return `${styles.daysSelectorMulti}`;\n if (!isHomePage) return styles.fullWidth;\n return null;\n };\n\n const getDaysArray = () => {\n const daysToShow = planAdminData?.days ?? [];\n if (isOfferDiscount || isGiftTravelPage) return daysToShow.filter((day) => day >= 3);\n return daysToShow;\n };\n\n useClickOutside(selectorRef, () => {\n if (isActive) setIsActive(false);\n });\n\n const daysArray = getDaysArray();\n const selectorClassName = isActive ? `${styles.selector} ${styles.selectorActive}` : styles.selector;\n const labelText = isHomePage ? t('days') : t('howManyDays');\n const normalDays = isHomePage ? days : `${days} ${t('days')}`;\n const multidestinationDays = isHomePage\n ? `${days}/${multiDestinationFlights}`\n : `${days} ${t('days')} / ${multiDestinationFlights} ${t('destinations').toLowerCase()}`;\n\n return (\n \n

{labelText}

\n \n {isActive && }\n \n );\n};\n\ninterface IOptionsProps {\n itemsList: any;\n onItemClick: any;\n isHomePage: boolean;\n}\n\nconst SelectorOptions = ({ itemsList, onItemClick, isHomePage }: IOptionsProps) => {\n const { planConfig } = usePlan();\n const { isMultiDestinationPlan } = getSelectedPlan(planConfig.id);\n const isMultiInHome = isHomePage && isMultiDestinationPlan;\n const { t } = useTranslation();\n\n return (\n \n
    \n {itemsList?.map((item: any, index: number) => {\n const flightsNumber = (item - 1) / 2;\n const nights = item - 1;\n const daysText = `${item} ${t('days')}`;\n const nightsText = `${nights} ${nights > 1 ? t('nights') : t('night')}`;\n const selectorText = `${daysText} / ${nightsText}`;\n const multidestinationText = `${item} ${t('days')} / ${flightsNumber} ${t(\n 'destinations',\n ).toLowerCase()}`;\n\n return (\n
  • \n \n
  • \n );\n })}\n
\n \n );\n};\n\nexport default DaysSelector;\n"],"names":["SvgLocation","props","React.createElement","normalizeString","string","OriginSelector","location","currentPlanId","useAppSelector","state","origin","currency","destination","funnelType","globalAvailableCities","_a","isSurpriseFunnel","FunnelType","citiesList","setCitiesList","useState","isActive","setIsActive","selectorRef","useRef","inputRef","isHomePage","citiesAreLoading","plansInfoAreLoading","dispatch","useAppDispatch","t","i18n","useTranslation","useEffect","APIKit","res","setPlansInfo","setExchangeRate","_b","error","getCitiesToShow","availableCities","getPlanAvailableOrigins","setAvailableCities","setCurrentOrigin","useClickOutside","originInList","city","setOrigin","defaultCity","originToSet","onSelectorClick","e","currentTarget","inputElement","eventOutsideInput","eventWasTriggerByKeyboard","onItemClick","onInputChange","inputValue","newCitiesList","cityName","cityCountry","labelText","countryName","selectorText","selectorClassName","styles","containerStyles","citiesToShow","jsxs","jsx","PlanSVG","LocationIcon","arrowDown","SelectorOptions","cities","lang","citiesByCountryName","a","b","citiesOrderedByLanguage","selectedLanguageCities","otherCities","index","SvgPerson","minusIcon","plusIcon","PeopleSelector","mode","adults","children","babies","totalTravellers","isAloyPlan","getSelectedPlan","isCompact","getSelectorText","adultsText","childrenText","babiesText","PersonIcon","AdultsText","Trans","ChildrenText","BabiesText","getBookingPricePerBaby","usePrices","getPriceCurrency","usePriceCurrency","pricePerBaby","babyPriceCurrency","adultsNumber","childrenNumber","babiesNumber","planConfig","usePlan","isAllSurprisePlan","options","TravellerGroup","onPlusButtonClick","type","addTraveller","onMinusButtonClick","removeTraveller","planGradient","option","activeStyle","Fragment","SvgCalendar","DaysSelector","days","isRedeemingAGift","isOfferDiscount","planAdminData","planMinDays","isMultiDestinationPlan","multiDestinationFlights","isGiftTravelPage","useLayoutEffect","setDays","item","getContainerStyles","getDaysArray","daysToShow","day","daysArray","normalDays","multidestinationDays","CalendarIcon","itemsList","isMultiInHome","flightsNumber","nights","daysText","nightsText","multidestinationText"],"mappings":"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"}