{"version":3,"file":"index.3a918f35.js","sources":["../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/context/useContextState.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/service.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/utils/utils.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/context/useSideEffects.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/context/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/button/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/hooks/useSearcherTouDefaultValues.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/date-input/useDateInput.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/date-input/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/hooks/useKeydown.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/components/agrupation-panel/views/desktop/styled.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/components/agrupation-panel/views/desktop/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/utils.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/components/agrupation-panel/views/mobile/styled.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/components/agrupation-panel/views/mobile/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/components/agrupation-panel/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/services/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/hooks/useAutocompletePanel.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/views/desktop/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/views/mobile/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/autocomplete-panel/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/destination-input/useDestinationInput.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/destination-input/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/duration-input/useDurationInput.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/duration-input/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/flexibility/views/desktop/styled.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/flexibility/views/desktop/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-forms/esm/components/inputs/flexibility/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/flexibility-input/useFlexibilityInput.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/flexibility-input/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/origin-input/useOriginInput.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/origin-input/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/passengers-input/usePassengersInput.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/passengers-input/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/utils/url.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/hooks/useSearcherTouForm.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/components/searcher-form/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/views/desktop/index.mjs","../../../../../../../node_modules/@babylon/ui-kit-searchers/esm/components/searchers/searcher-tou/views/mobile/index.mjs"],"sourcesContent":["import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport useLoading from '../../../../hooks/useLoading.mjs';\nimport { useState, useRef, useMemo } from 'react';\n\nconst useSearcherTouContextState = () => {\n const [originOptions, setOriginOptions] = useState([]);\n const [durationOptions, setDurationOptions] = useState([]);\n const [calendarData, setCalendarData] = useState([]);\n const allCallLock = useRef(false);\n const originsCallLock = useRef(false);\n const nightsCallLock = useRef(false);\n const datesCallLock = useRef(false);\n const destinationValue = useValue({ name: \"destination\" });\n const { isLoading, doFetchLoading } = useLoading(\n [allCallLock, originsCallLock, nightsCallLock, datesCallLock],\n !!destinationValue?.code\n );\n const { state, actions } = useMemo(\n () => ({\n state: {\n originOptions,\n durationOptions,\n calendarData,\n isLoading,\n callLocks: {\n allCallLock,\n originsCallLock,\n nightsCallLock,\n datesCallLock\n }\n },\n actions: {\n setOriginOptions,\n setDurationOptions,\n setCalendarData,\n doFetchLoading\n }\n }),\n [calendarData, doFetchLoading, durationOptions, isLoading, originOptions]\n );\n return { state, actions };\n};\n\nexport { useSearcherTouContextState as default };\n","const getOrigins = async (url = \"\", { destination } = {}, { BaseUrl, Language, Market } = {}) => {\n if (!url || !BaseUrl || !Language || !Market || !destination)\n return void 0;\n let finalUrl = url;\n if (!url.startsWith(\"http\"))\n finalUrl = `${BaseUrl}${url}`;\n if (process.env.NODE_ENV !== \"production\") {\n const fetchMockData = await import('./mock.mjs').then((m) => m.getOriginsMock);\n return fetchMockData;\n }\n const response = await fetch(`${finalUrl}&destination=${destination?.code}&destinationType=${destination?.type}`);\n if (!response.ok || response.status === 204)\n return [];\n const data = await response.json().catch(() => []);\n return data;\n};\nconst getNights = async (url = \"\", { origin, destination } = {}, { BaseUrl, Language, Market } = {}) => {\n if (!url || !BaseUrl || !Language || !Market || !origin || !destination)\n return void 0;\n let finalUrl = url;\n if (!url.startsWith(\"http\"))\n finalUrl = `${BaseUrl}${url}`;\n if (process.env.NODE_ENV !== \"production\") {\n const fetchMockData = await import('./mock.mjs').then((m) => m.getNightsMock);\n return fetchMockData;\n }\n const response = await fetch(\n `${finalUrl}&destination=${destination?.code}&destinationType=${destination?.type}&origin=${origin?.value}`\n );\n if (!response.ok || response.status === 204)\n return [];\n const data = await response.json().catch(() => []);\n return data;\n};\nconst getCalendar = async (url = \"\", { origin, destination, duration } = {}, { BaseUrl, Language, Market } = {}) => {\n if (!url || !BaseUrl || !Language || !Market || !origin || !destination || !duration)\n return void 0;\n const durationParsed = duration?.reduce((finalValue, currentValue) => `${finalValue}@${currentValue.value}`, \"\").substring(1);\n let finalUrl = url;\n if (!url.startsWith(\"http\"))\n finalUrl = `${BaseUrl}${url}`;\n if (process.env.NODE_ENV !== \"production\") {\n const fetchMockData = await import('./mock.mjs').then((m) => m.getCalendarMock);\n return fetchMockData;\n }\n const response = await fetch(\n `${finalUrl}&destination=${destination?.code}&destinationType=${destination.type}&origin=${origin?.value}&nights=${durationParsed}`\n );\n if (!response.ok || response.status === 204)\n return [];\n const data = await response.json().catch(() => []);\n return data;\n};\n\nexport { getCalendar, getNights, getOrigins };\n","function transformDataOrigins(locations) {\n let transformed = [];\n if (locations && locations.length > 0) {\n locations.forEach((e) => transformed.push({ label: e.name ?? \"\", name: e.name ?? \"\", value: e.code ?? \"\" }));\n }\n return transformed;\n}\nfunction getOriginDefaultValue(options) {\n if (!options?.length)\n return void 0;\n const checked = options.find((e) => e.checked);\n const res = { label: checked?.name ?? \"\", name: checked?.name, value: checked?.code };\n return res;\n}\nfunction parseDates(options) {\n let dates = [];\n options?.map((e) => dates.push(e.date ?? \"\"));\n return dates;\n}\nfunction parseDatesOffers(options, currency) {\n let dates = [];\n options?.map(\n (e) => dates.push({\n date: e.date ?? \"\",\n offer: e.offer ?? false,\n text: e.price ? e.price.toString() : \"\",\n currency\n })\n );\n return dates;\n}\n\nexport { getOriginDefaultValue, parseDates, parseDatesOffers, transformDataOrigins };\n","import contextBabylon from '@babylon/ui-kit-context';\nimport useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { getFirstDayValid } from '@babylon/ui-kit-helpers/date';\nimport useLastValue from '@babylon/ui-kit-hooks/useLastValue';\nimport usePrevValue from '@babylon/ui-kit-hooks/usePrevValue';\nimport fastDeepEqual from 'fast-deep-equal/react.js';\nimport { useEffect, useContext, useCallback } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { getCalendar, getNights, getOrigins } from '../service.mjs';\nimport { getOriginDefaultValue } from '../utils/utils.mjs';\n\nconst useUpdateDates = (contextValue) => {\n const { props, state, actions } = contextValue;\n const { config } = props ?? {};\n const { endpoint } = config ?? {};\n const { calendarData, callLocks } = state ?? {};\n const { originsCallLock, nightsCallLock, datesCallLock } = callLocks ?? {};\n const { doFetchLoading, setCalendarData } = actions ?? {};\n const { setValue } = useFormContext();\n const { BaseUrl, Language, Market } = useContext(contextBabylon);\n const dateValue = useValue({ name: \"date\" });\n const lastCalendarData = useLastValue(calendarData);\n const lastDateValue = useLastValue(dateValue);\n return useCallback(\n async (destination, origin, duration) => {\n if (!originsCallLock || !nightsCallLock || !datesCallLock || !doFetchLoading || !setCalendarData || !destination || !origin || !duration || originsCallLock.current || nightsCallLock.current)\n return;\n const newDates = await doFetchLoading(\n datesCallLock,\n async () => destination?.code && origin?.value && duration && await getCalendar(\n endpoint?.dates,\n {\n origin,\n destination,\n duration\n },\n {\n BaseUrl,\n Language,\n Market\n }\n )\n );\n if (!fastDeepEqual(lastCalendarData.current, newDates)) {\n setCalendarData(newDates || []);\n if (newDates?.length > 0) {\n const dates = newDates.map((e) => e.date ?? \"\").filter((e) => !!e);\n const newDate = [getFirstDayValid(dates, new Date(Date.now() - 864e5), 0)];\n if (!fastDeepEqual(\n lastDateValue.current?.map((date) => date.getTime()),\n newDate?.map((date) => date?.getTime())\n )) {\n setValue(\"date\", newDate, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }\n }\n }\n },\n [\n BaseUrl,\n Language,\n Market,\n datesCallLock,\n doFetchLoading,\n endpoint?.dates,\n lastCalendarData,\n lastDateValue,\n nightsCallLock,\n originsCallLock,\n setCalendarData,\n setValue\n ]\n );\n};\nconst useUpdateNights = (contextValue) => {\n const { props, state, actions } = contextValue;\n const { config, duration } = props ?? {};\n const { endpoint } = config ?? {};\n const { durationOptions, callLocks } = state ?? {};\n const { originsCallLock, nightsCallLock } = callLocks ?? {};\n const { doFetchLoading, setDurationOptions } = actions ?? {};\n const { setValue } = useFormContext();\n const { BaseUrl, Language, Market } = useContext(contextBabylon);\n const durationValue = useValue({ name: \"duration\" });\n const lastDurationOptions = useLastValue(durationOptions);\n const updateDates = useUpdateDates(contextValue);\n return useCallback(\n async (destination, origin) => {\n if (!originsCallLock || !nightsCallLock || !doFetchLoading || !setDurationOptions || !destination || !origin || originsCallLock.current)\n return;\n let currentDurationValue = durationValue;\n const newDurations = await doFetchLoading(\n nightsCallLock,\n async () => destination?.code && origin?.value && await getNights(\n endpoint?.durations,\n { origin, destination },\n {\n BaseUrl,\n Language,\n Market\n }\n )\n );\n if (newDurations && !fastDeepEqual(lastDurationOptions.current, newDurations)) {\n if (newDurations.length === 1)\n newDurations[0].checked = true;\n setDurationOptions(newDurations);\n const newDuration = newDurations.filter(\n (e) => duration?.length ? duration.toString().includes(String(e?.value)) : !!e.checked\n );\n const finalDuration = newDuration.length ? newDuration : newDurations.filter((item) => item.checked);\n if (!fastDeepEqual(currentDurationValue, finalDuration)) {\n setValue(\"duration\", finalDuration, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n currentDurationValue = finalDuration;\n }\n }\n await updateDates(destination, origin, currentDurationValue);\n },\n [\n originsCallLock,\n nightsCallLock,\n doFetchLoading,\n durationValue,\n lastDurationOptions,\n updateDates,\n endpoint?.durations,\n BaseUrl,\n Language,\n Market,\n setDurationOptions,\n duration,\n setValue\n ]\n );\n};\nconst useUpdateOrigins = (contextValue) => {\n const { props, state, actions } = contextValue;\n const { config } = props ?? {};\n const { endpoint } = config ?? {};\n const { originOptions, callLocks } = state ?? {};\n const { originsCallLock } = callLocks ?? {};\n const { doFetchLoading, setOriginOptions } = actions ?? {};\n const { setValue } = useFormContext();\n const { BaseUrl, Language, Market } = useContext(contextBabylon);\n const originValue = useValue({ name: \"origin\" });\n const lastOriginOptions = useLastValue(originOptions);\n const updateNights = useUpdateNights(contextValue);\n return useCallback(\n async (destination) => {\n if (!originsCallLock || !doFetchLoading || !setOriginOptions || !destination?.code)\n return;\n let currentOriginValue = originValue;\n const newOrigins = await doFetchLoading(\n originsCallLock,\n async () => destination?.code && await getOrigins(endpoint?.origins, { destination }, { BaseUrl, Language, Market })\n );\n if (newOrigins && !fastDeepEqual(lastOriginOptions.current, newOrigins)) {\n setOriginOptions(newOrigins);\n const defaultOriginValue = getOriginDefaultValue(newOrigins);\n if (String(currentOriginValue?.value) !== String(defaultOriginValue?.value)) {\n setValue(\"origin\", defaultOriginValue, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n currentOriginValue = defaultOriginValue;\n }\n }\n await updateNights(destination, currentOriginValue);\n },\n [\n originsCallLock,\n doFetchLoading,\n setOriginOptions,\n originValue,\n lastOriginOptions,\n updateNights,\n endpoint?.origins,\n BaseUrl,\n Language,\n Market,\n setValue\n ]\n );\n};\nconst useUpdateStateData = (contextValue) => {\n const { state, actions } = contextValue;\n const { originOptions, durationOptions, calendarData, callLocks } = state ?? {};\n const { allCallLock } = callLocks ?? {};\n const { doFetchLoading } = actions ?? {};\n const originValue = useValue({ name: \"origin\" });\n const destinationValue = useValue({ name: \"destination\" });\n const durationValue = useValue({ name: \"duration\" });\n const lastOriginOptions = useLastValue(originOptions);\n const lastDurationOptions = useLastValue(durationOptions);\n const lastCalendarData = useLastValue(calendarData);\n const updateDates = useUpdateDates(contextValue);\n const updateNights = useUpdateNights(contextValue);\n const updateOrigins = useUpdateOrigins(contextValue);\n const prevDestination = usePrevValue(destinationValue);\n const prevOrigin = usePrevValue(originValue);\n const prevDuration = usePrevValue(durationValue);\n useEffect(() => {\n if (!allCallLock || !doFetchLoading)\n return;\n doFetchLoading(allCallLock, async () => {\n if (!lastOriginOptions.current?.length || String(prevDestination?.code) !== String(destinationValue?.code)) {\n await updateOrigins(destinationValue);\n return;\n }\n if (!lastDurationOptions.current?.length || String(prevOrigin?.value) !== String(originValue?.value)) {\n await updateNights(destinationValue, originValue);\n return;\n }\n if (!lastCalendarData.current?.length || !fastDeepEqual(prevDuration, durationValue)) {\n await updateDates(destinationValue, originValue, durationValue);\n }\n }).catch(console.error);\n }, [\n doFetchLoading,\n lastCalendarData,\n lastDurationOptions,\n lastOriginOptions,\n prevDestination?.code,\n prevDuration,\n prevOrigin?.value,\n updateDates,\n updateNights,\n updateOrigins,\n destinationValue,\n durationValue,\n originValue,\n allCallLock\n ]);\n};\nconst useSearcherTouSideEffects = (contextValue) => {\n useUpdateStateData(contextValue);\n};\n\nexport { useSearcherTouSideEffects as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { createContext, useMemo, useContext } from 'react';\nimport useSearcherTouContextState from './useContextState.mjs';\nimport useSearcherTouSideEffects from './useSideEffects.mjs';\n\nconst SearcherTouContext = createContext({});\nconst SearcherTouProvider = (props) => {\n const { value, children } = props;\n const contextState = useSearcherTouContextState();\n const contextValue = useMemo(\n () => ({\n props: value,\n ...contextState\n }),\n [contextState, value]\n );\n useSearcherTouSideEffects(contextValue);\n return /* @__PURE__ */ jsx(SearcherTouContext.Provider, { value: contextValue, children });\n};\nconst useSearcherTouContext = () => useContext(SearcherTouContext);\nconst useSearcherTouProps = () => useSearcherTouContext().props;\nconst useSearcherTouState = () => useSearcherTouContext().state;\n\nexport { SearcherTouProvider, useSearcherTouProps, useSearcherTouState };\n","import { jsx } from 'react/jsx-runtime';\nimport { SearcherButton } from '../../../../others/searcher/searcher-button/index.mjs';\nimport { useHandleSubmit } from '../../../../../hooks/submit/useHandleSubmit.mjs';\nimport { useHasErrors } from '../../../../../hooks/useHasErrors.mjs';\nimport { useSearcherTouProps, useSearcherTouState } from '../../context/index.mjs';\n\nconst SearcherTouButton = () => {\n const props = useSearcherTouProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { search = \"\" } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading } = state ?? {};\n const hasErrors = useHasErrors();\n const handleSubmit = useHandleSubmit();\n return /* @__PURE__ */ jsx(SearcherButton, { onClick: handleSubmit, disabled: !!isLoading || hasErrors, children: search });\n};\n\nexport { SearcherTouButton as default };\n","import { format } from 'date-fns';\nimport { useMemo } from 'react';\n\nconst useSearcherTouDefaultValues = (props) => {\n const { config, destination, flexibility, accomodation, calendar } = props ?? {};\n const { literals } = config ?? {};\n const { searchPlaceholderValue = \"\", accomodationModalTitle = \"\", agesDescription = \"\" } = literals ?? {};\n const destinationDefaultValue = useMemo(() => {\n if (!destination)\n return;\n return destination;\n }, [destination]);\n const originDefaultValue = useMemo(\n () => ({\n name: searchPlaceholderValue,\n label: searchPlaceholderValue,\n value: \"\"\n }),\n [searchPlaceholderValue]\n );\n const dateDefaultValue = useMemo(() => {\n const nowDate = /* @__PURE__ */ new Date();\n const calendarDate = calendar && new Date(calendar);\n if (calendarDate && format(calendarDate, \"yyyy-MM-dd\") > format(nowDate, \"yyyy-MM-dd\")) {\n return [calendarDate];\n }\n return [nowDate];\n }, [calendar]);\n const flexibilityDefaultValue = useMemo(\n () => flexibility?.[0],\n [flexibility]\n );\n const passengersDefaultValue = useMemo(\n () => ({\n title: accomodationModalTitle,\n adults: {\n description: accomodation?.adults?.personDescription,\n value: accomodation?.rooms?.[0]?.adults?.value ?? 1,\n min: accomodation?.adults?.min ?? 1,\n max: accomodation?.adults?.max ?? 9,\n options: []\n },\n children: {\n description: accomodation?.children?.personDescription,\n value: accomodation?.rooms?.[0]?.children?.value ?? 0,\n min: accomodation?.children?.min ?? 0,\n max: accomodation?.children?.max ?? 9,\n optionsLabel: agesDescription,\n options: accomodation?.children?.options,\n selectedOptions: Array(accomodation?.rooms?.[0]?.children?.value ?? 0).fill(\n accomodation?.children?.options?.find((e) => !!e.selected)?.value,\n 0,\n accomodation?.rooms?.[0]?.children?.value\n )\n }\n }),\n [\n accomodation?.adults?.max,\n accomodation?.adults?.min,\n accomodation?.adults?.personDescription,\n accomodation?.children?.max,\n accomodation?.children?.min,\n accomodation?.children?.options,\n accomodation?.children?.personDescription,\n accomodation?.rooms,\n accomodationModalTitle,\n agesDescription\n ]\n );\n return useMemo(\n () => ({\n destination: destinationDefaultValue,\n origin: originDefaultValue,\n date: dateDefaultValue,\n flexibility: flexibilityDefaultValue,\n passengers: passengersDefaultValue\n }),\n [destinationDefaultValue, originDefaultValue, dateDefaultValue, flexibilityDefaultValue, passengersDefaultValue]\n );\n};\n\nexport { useSearcherTouDefaultValues as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\nimport { useMemo } from 'react';\nimport { useSearcherTouProps, useSearcherTouState } from '../../context/index.mjs';\nimport useSearcherTouDefaultValues from '../../hooks/useSearcherTouDefaultValues.mjs';\nimport { parseDates, parseDatesOffers } from '../../utils/utils.mjs';\n\nconst getPriceLegend = (priceLegend) => {\n if (!priceLegend)\n return \"\";\n if (priceLegend?.indexOf(\"(\") === -1)\n return priceLegend;\n return priceLegend.split(\"(\")[1].split(\")\")[0];\n};\nconst useDateInput = () => {\n const props = useSearcherTouProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { accept = \"\", calendarLabel = \"\", offer = \"\", priceLegend = \"\", calendarModalTitle = \"\" } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading, calendarData } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n const destinationValue = useValue({ name: \"destination\" });\n const isMobile = useIsMobile();\n const calendarInput = useMemo(\n () => ({\n name: \"date\",\n mode: \"single\",\n label: calendarLabel,\n modalConfirm: accept,\n enableDates: calendarData ? parseDates(calendarData) : [],\n value: calendarData && calendarData?.length > 0 ? [new Date(calendarData?.[0]?.date ?? \"\")] : [],\n minDate: \"today\",\n checkIn: calendarData?.map((item) => item.date ?? \"\").filter((item) => !!item),\n defaultValue: defaultValues.date,\n events: [\n {\n legend: {\n text: offer,\n subtitle: priceLegend,\n class: \"flatpickr-day-footer-bargain-price\"\n },\n date: {\n class: \"flatpickr-day--direct-flight\",\n dates: []\n },\n offers: {\n dates: calendarData ? parseDatesOffers(calendarData, getPriceLegend(priceLegend)) : []\n }\n }\n ],\n disabled: !!isLoading || !destinationValue\n }),\n [calendarData, defaultValues.date, isLoading, accept, calendarLabel, offer, priceLegend, destinationValue]\n );\n if (isMobile) {\n return {\n ...calendarInput,\n modalTitle: calendarModalTitle\n };\n }\n return {\n ...calendarInput,\n className: \"calendar-tou\"\n };\n};\n\nexport { useDateInput as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { FormCalendar } from '@babylon/ui-kit-forms/components/inputs/calendar';\nimport useDateInput from './useDateInput.mjs';\n\nconst SearcherTouDateInput = () => {\n const dateInput = useDateInput();\n return /* @__PURE__ */ jsx(FormCalendar, { ...dateInput, className: \"calendar-tou\" });\n};\n\nexport { SearcherTouDateInput as default };\n","import { KEY_CODE } from '@babylon/ui-kit-types/key-code';\nimport { useCallback, useEffect } from 'react';\nimport { useCounter } from 'usehooks-ts';\n\nconst useKeydown = (suggestions, selectSuggestion, closePanel) => {\n const { count, increment, decrement } = useCounter(0);\n const pressHandler = useCallback(\n (event) => {\n switch (event.key) {\n case KEY_CODE.ARROW_UP:\n event.preventDefault();\n if (count > 0)\n decrement();\n break;\n case KEY_CODE.ARROW_DOWN:\n event.preventDefault();\n if (count < suggestions.length - 1)\n increment();\n break;\n case KEY_CODE.ENTER:\n case KEY_CODE.TAB:\n event.preventDefault();\n selectSuggestion(suggestions[count]);\n break;\n case KEY_CODE.ESC:\n closePanel();\n break;\n }\n },\n [count, suggestions, closePanel, decrement, increment, selectSuggestion]\n );\n useEffect(() => {\n window.addEventListener(\"keydown\", pressHandler);\n return () => {\n window.removeEventListener(\"keydown\", pressHandler);\n };\n }, [pressHandler]);\n return { indexSelected: count };\n};\n\nexport { useKeydown as default };\n","import Tooltip from '@babylon/ui-kit-base/components/others/tooltip';\nimport { TooltipContent, TooltipArrow } from '@babylon/ui-kit-base/components/others/tooltip/styled';\nimport { FlexMixin, FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { rgba } from 'polished';\nimport styled from 'styled-components';\n\nconst PanelWrapper = styled(Tooltip)`\n\t${BorderRadius({ all: \"4px\" })}\n\tbackground-color: ${({ theme }) => theme.colors.white.base};\n\tmin-width: 600px;\n\ttop: 2px;\n\tposition: relative;\n\n\t${TooltipContent} {\n\t\tmax-width: 100%;\n\t\tmin-width: 100%;\n\t\tpadding: 0;\n\t}\n\n\t&[data-popper-placement^='bottom'] ${TooltipArrow} {\n\t\tdisplay: none;\n\t}\n\n\t&[data-popper-placement^='top'] ${TooltipArrow} {\n\t\tdisplay: none;\n\t}\n\n\t&[data-popper-placement^='bottom'] {\n\t\tmargin-top: -4px;\n\t\tpadding-top: 0px;\n\t}\n`;\nconst PanelBody = styled.div`\n\t${FlexMixin()}\n\tdisplay: flex;\n\tpadding: 0;\n`;\nconst PanelAgrupations = styled.div`\n\t${BorderRadius({ topLeft: \"4px\", bottomLeft: \"4px\" })}\n\tbackground-color: ${({ theme }) => theme.colors.grays.lightest};\n\tpadding: 16px;\n\twidth: 40%;\n\tflex-shrink: 0;\n`;\nconst PanelSuggestions = styled.div`\n\tflex-grow: 1;\n\tpadding: 16px 16px 16px 0;\n\ttext-align: left;\n\n\t& > p {\n\t\tmargin-left: 32px;\n\t\tcolor: ${({ theme }) => theme.colors.grays.dark};\n\t\t${FontMixin({ size: \"medium\", weight: \"light\", height: \"small\" })}\n\t\tmargin-bottom: 8px;\n\t\tcursor: default;\n\t}\n`;\nconst PanelAgrupationsList = styled.ul`\n\ttext-align: left;\n`;\nconst PanelAgrupationsItem = styled.li`\n\t${FontMixin({ size: \"base\", weight: \"light\", height: \"base\" })}\n\tcolor: ${({ theme }) => theme.colors.grays.darker};\n\tcursor: pointer;\n\tpadding: 8px 0;\n\n\t&:hover {\n\t\tcolor: ${({ theme }) => theme.colors.primary.light};\n\t}\n\n\t&.is-active {\n\t\t${FontMixin({ weight: \"medium\" })}\n\t}\n\n\t&.is-disabled {\n\t\tcolor: ${({ theme }) => rgba(theme.colors.grays.darker, 0.56)}!important;\n\t}\n`;\nconst PanelSuggestionList = styled.ul`\n\tmax-height: 300px;\n\toverflow-y: auto;\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground: ${({ theme }) => theme.colors.grays.light};\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: ${({ theme }) => theme.colors.grays.base};\n\t\tborder-radius: 8px;\n\t}\n\n\t&::-webkit-scrollbar {\n\t\twidth: 6px;\n\t}\n`;\nconst PanelSuggestionItem = styled.li`\n\t${FontMixin({ size: \"base\", weight: \"light\", height: \"base\" })}\n\tmargin-bottom: 4px;\n\tpadding: 8px 8px 8px 32px;\n\tcursor: pointer;\n\n\t&:hover {\n\t\tcolor: ${({ theme }) => theme.colors.primary.light};\n\t}\n\n\t&.is-highlighted {\n\t\t${FontMixin({ size: \"base\", weight: \"regular\", height: \"base\" })}\n\t}\n\n\t&.is-selected {\n\t\tbackground-color: ${({ theme }) => theme.colors.grays.lighter};\n\t}\n\n\t&.is-disabled {\n\t\tcolor: ${({ theme }) => rgba(theme.colors.grays.darker, 0.56)}!important;\n\t}\n`;\n\nexport { PanelAgrupations, PanelAgrupationsItem, PanelAgrupationsList, PanelBody, PanelSuggestionItem, PanelSuggestionList, PanelSuggestions, PanelWrapper };\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport InnerMarkdownHTML from '@babylon/ui-kit-base/components/text/inner-markdown-HTML';\nimport ScrollIntoView from '@babylon/ui-kit-structures/components/others/scroll-into-view';\nimport classNames from 'classnames';\nimport { useState, useMemo, useCallback, Children } from 'react';\nimport useKeydown from '../../../../hooks/useKeydown.mjs';\nimport { PanelWrapper, PanelBody, PanelAgrupations, PanelAgrupationsList, PanelAgrupationsItem, PanelSuggestions, PanelSuggestionList, PanelSuggestionItem } from './styled.mjs';\n\nconst AgrupationPanelDesktop = (props) => {\n const {\n agrupationPanelValue,\n referenceElement,\n literals,\n onSelectAgrupation,\n onSelectSuggestion,\n closePanel,\n disabled\n } = props ?? {};\n const { agrupations = [], filtered } = agrupationPanelValue ?? {};\n const { labelSuggestions = \"\" } = literals ?? {};\n const [suggestions, setSuggestions] = useState([]);\n const suggestionItems = useMemo(() => filtered ?? suggestions, [filtered, suggestions]);\n const { indexSelected } = useKeydown(suggestionItems, onSelectSuggestion, closePanel);\n const handleAgrupation = useCallback(\n (item) => () => {\n if (disabled)\n return;\n onSelectAgrupation(item);\n if (item.children)\n setSuggestions(item.children);\n },\n [disabled, onSelectAgrupation]\n );\n const handleSuggestion = useCallback(\n (item) => () => {\n if (disabled)\n return;\n onSelectSuggestion(item);\n },\n [disabled, onSelectSuggestion]\n );\n return /* @__PURE__ */ jsx(\n PanelWrapper,\n {\n \"data-testid\": \"AgrupationPanel\",\n referenceElement,\n isNegative: false,\n placement: \"bottom-start\",\n children: /* @__PURE__ */ jsxs(PanelBody, { children: [\n /* @__PURE__ */ jsx(PanelAgrupations, { children: /* @__PURE__ */ jsx(PanelAgrupationsList, { children: Children.toArray(\n agrupations.map((item) => /* @__PURE__ */ jsx(\n PanelAgrupationsItem,\n {\n \"data-testid\": \"PanelAgrupationsItem\",\n onClick: handleAgrupation(item),\n className: classNames({ [\"is-active\"]: item.marked, [\"is-disabled\"]: !!disabled }),\n children: item.name\n }\n ))\n ) }) }),\n /* @__PURE__ */ jsxs(PanelSuggestions, { children: [\n /* @__PURE__ */ jsx(\"p\", { children: labelSuggestions }),\n /* @__PURE__ */ jsx(PanelSuggestionList, { children: Children.toArray(\n suggestionItems.map((item, index) => /* @__PURE__ */ jsx(ScrollIntoView, { scrollToView: index === indexSelected, children: /* @__PURE__ */ jsx(\n PanelSuggestionItem,\n {\n onClick: handleSuggestion(item),\n className: classNames({\n \"is-highlighted\": item.priority === 1,\n \"is-selected\": index === indexSelected,\n [\"is-disabled\"]: !!disabled\n }),\n children: /* @__PURE__ */ jsx(InnerMarkdownHTML, { content: item.name })\n }\n ) }))\n ) })\n ] })\n ] })\n }\n );\n};\n\nexport { AgrupationPanelDesktop, AgrupationPanelDesktop as default };\n","import cloneDeep from 'clone-deep';\n\nconst MIN_LENGTH_TO_SEARCH = 3;\nconst agrupationSortByPriority = (agrupation) => {\n const sortByPriority = (a, b) => a.priority > b.priority ? -1 : 1;\n const agrupationSorting = cloneDeep(agrupation);\n return agrupationSorting.sort(sortByPriority);\n};\nconst childrenSortByPriority = (agrupation) => {\n const sortByPriority = (a, b) => a.priority > b.priority ? 1 : -1;\n const agrupationSorting = cloneDeep(agrupation);\n return agrupationSorting.sort(sortByPriority);\n};\nconst autocompletePanelTreeSortByPriority = (autocomplete) => {\n const agrupations = agrupationSortByPriority(autocomplete.agrupations);\n const featured = autocomplete.featured && agrupationSortByPriority(autocomplete.featured);\n const filtered = autocomplete.filtered && agrupationSortByPriority(autocomplete.filtered);\n return {\n agrupations,\n featured,\n filtered\n };\n};\n\nexport { MIN_LENGTH_TO_SEARCH, agrupationSortByPriority, autocompletePanelTreeSortByPriority, childrenSortByPriority };\n","import { Input } from '../../../../../input/index.mjs';\nimport Modal from '@babylon/ui-kit-structures/components/others/modal';\nimport { ModalHeader, ModalHeaderText, ModalContent } from '@babylon/ui-kit-structures/components/others/modal/styled';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport styled from 'styled-components';\n\nconst PanelWrapper = styled(Modal)`\n\t${ModalHeader} {\n\t\tbackground-color: ${({ theme }) => theme.colors.primary.base};\n\t}\n\n\t${ModalHeaderText} {\n\t\tcolor: ${({ theme }) => theme.colors.white.base};\n\t}\n\n\t${ModalContent} {\n\t\tbackground: ${({ theme }) => theme.bodyBgColor};\n\t}\n`;\nconst InputWrapper = styled(Input)`\n\tposition: sticky;\n\ttop: 0px;\n`;\nconst PanelAgrupationHeader = styled.div`\n\tbackground-color: ${({ theme }) => theme.colors.grays.lighter};\n\tcolor: ${({ theme }) => theme.colors.grays.dark};\n\tpadding: 16px;\n\t${FontMixin({ size: \"base\", weight: \"light\", height: \"base\" })}\n`;\nconst PanelAgrupationList = styled.ul`\n\tbackground-color: transparent;\n`;\nconst PanelAgrupationItem = styled.li`\n\tbackground-color: transparent;\n\tcolor: ${({ theme }) => theme.colors.grays.darker};\n\t${FontMixin({ size: \"base\", weight: \"light\", height: \"base\" })}\n\tpadding: 16px;\n\n\t&:not(:last-child) {\n\t\tborder-bottom: solid 1px ${({ theme }) => theme.colors.grays.light};\n\t}\n`;\n\nexport { InputWrapper, PanelAgrupationHeader, PanelAgrupationItem, PanelAgrupationList, PanelWrapper };\n","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport InnerMarkdownHTML from '@babylon/ui-kit-base/components/text/inner-markdown-HTML';\nimport classNames from 'classnames';\nimport { useState, useCallback, Children } from 'react';\nimport { childrenSortByPriority } from '../../../../utils.mjs';\nimport { PanelWrapper, InputWrapper, PanelAgrupationHeader, PanelAgrupationList, PanelAgrupationItem } from './styled.mjs';\n\nconst AgrupationPanelMobile = (props) => {\n const { agrupationPanelValue, literals, isPanelVisible, closePanel, onSelectSuggestion, filterDestination } = props;\n const { agrupations = [], filtered } = agrupationPanelValue;\n const suggestionItems = filtered ?? agrupations;\n const [search, setSearch] = useState(\"\");\n const onSearch = useCallback(\n (event) => {\n event.preventDefault();\n setSearch(event.target.value);\n filterDestination(event.target.value);\n },\n [filterDestination]\n );\n const handleSuggestion = useCallback(\n (item) => () => {\n setSearch(\"\");\n onSelectSuggestion(item);\n },\n [onSelectSuggestion]\n );\n return /* @__PURE__ */ jsx(\n PanelWrapper,\n {\n variant: \"fullScreen\",\n header: literals.modalTitle,\n visible: isPanelVisible,\n hide: closePanel,\n color: \"primary\",\n content: /* @__PURE__ */ jsxs(\"div\", { \"data-testid\": \"AgrupationPanelMobile\", children: [\n /* @__PURE__ */ jsx(InputWrapper, { placeholder: literals.placeHolderAutocomplete, value: search, onChange: onSearch }),\n /* @__PURE__ */ jsxs(\"div\", { children: [\n Children.toArray(\n suggestionItems.map((item) => {\n if (!item.children?.length)\n return null;\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(PanelAgrupationHeader, { children: item.name }),\n /* @__PURE__ */ jsx(PanelAgrupationList, { children: Children.toArray(\n childrenSortByPriority(item.children).map((suggestion) => /* @__PURE__ */ jsx(\n PanelAgrupationItem,\n {\n \"data-testid\": \"PanelAgrupationItem\",\n onClick: handleSuggestion(suggestion),\n className: classNames({\n \"is-highlighted\": item.priority === 1,\n \"is-active\": suggestion.marked\n }),\n children: /* @__PURE__ */ jsx(InnerMarkdownHTML, { content: suggestion.name })\n }\n ))\n ) })\n ] });\n })\n ),\n !suggestionItems.length && /* @__PURE__ */ jsx(PanelAgrupationItem, { children: literals.noResults })\n ] })\n ] })\n }\n );\n};\n\nexport { AgrupationPanelMobile, AgrupationPanelMobile as default };\n","import { generateViewsComponent } from '@babylon/ui-kit-helpers/views';\nimport { AgrupationPanelDesktop } from './views/desktop/index.mjs';\nimport { AgrupationPanelMobile } from './views/mobile/index.mjs';\n\nconst AgrupationPanel = generateViewsComponent(AgrupationPanelDesktop, AgrupationPanelMobile);\n\nexport { AgrupationPanel as default };\n","const getDestinationTree = async (endpoint = \"\", queryParams = {}) => {\n const { language = \"\", market = \"\", BaseUrl = \"\" } = queryParams;\n let finalUrl = endpoint;\n if (!endpoint.startsWith(\"http\"))\n finalUrl = `${BaseUrl}${endpoint}`;\n const url = new URL(finalUrl);\n url.searchParams.set(\"language\", language);\n url.searchParams.set(\"market\", market);\n if (process.env.NODE_ENV !== \"production\") {\n const data = await import('../mock.mjs').then((m) => m.fetchMockResponseDesktop);\n return data;\n }\n const response = await fetch(url);\n if (!response.ok || response.status !== 200 && response.status !== 204)\n throw new Error(response.statusText);\n return response.json();\n};\nconst filterDestinationTree = async (endpoint = \"\", queryParams = {}) => {\n const { language = \"\", market = \"\", text = \"\", BaseUrl = \"\" } = queryParams;\n let finalUrl = endpoint;\n if (!endpoint.startsWith(\"http\"))\n finalUrl = `${BaseUrl}${endpoint}`;\n const url = new URL(finalUrl);\n url.searchParams.set(\"language\", language);\n url.searchParams.set(\"market\", market);\n url.searchParams.set(\"text\", text);\n const response = await fetch(url);\n if (!response.ok || response.status !== 200 && response.status !== 204)\n throw new Error(response.statusText);\n return response.json();\n};\n\nexport { filterDestinationTree, getDestinationTree };\n","import contextBabylon from '@babylon/ui-kit-context';\nimport { useState, useContext, useCallback, useEffect } from 'react';\nimport { useToggle } from 'usehooks-ts';\nimport { getDestinationTree, filterDestinationTree } from '../services/index.mjs';\nimport { autocompletePanelTreeSortByPriority } from '../utils.mjs';\n\nconst useAutocompletePanel = (config, disabled = false) => {\n const { endpoint } = config ?? {};\n const { tree, filter } = endpoint ?? {};\n const initialPanelTree = { agrupations: [] };\n const [autocompletePanelTree, setAutocompletePanelTree] = useState(initialPanelTree);\n const [isPanelVisible, _, setVisible] = useToggle();\n const context = useContext(contextBabylon);\n const language = context?.LanguageValue?.toLocaleLowerCase() ?? \"es\";\n const market = context?.Market?.toLocaleLowerCase() ?? \"es\";\n const BaseUrl = context?.BaseUrl ? context?.BaseUrl : \"\";\n const getInitialData = useCallback(() => {\n getDestinationTree(tree, { language, market, BaseUrl }).then(autocompletePanelTreeSortByPriority).then((response) => {\n setAutocompletePanelTree(response);\n });\n }, [BaseUrl, tree, language, market]);\n const getFilterDestinationTree = useCallback(\n (text) => {\n filterDestinationTree(filter, { language, market, text, BaseUrl }).then((response) => {\n const agrupations = autocompletePanelTree.agrupations.map((agrupation) => {\n const newAgrupation = response.agrupations.find(\n (res) => res.code !== null && res.code === agrupation.code\n );\n if (newAgrupation) {\n const { name, priority, marked } = newAgrupation;\n return { ...agrupation, name, priority, marked };\n }\n return agrupation;\n });\n setAutocompletePanelTree({ ...response, agrupations });\n });\n },\n [BaseUrl, autocompletePanelTree.agrupations, filter, language, market]\n );\n const getFilterDestinationTreeMobile = useCallback(\n (text) => {\n filterDestinationTree(tree, { language, market, text, BaseUrl }).then((response) => {\n setAutocompletePanelTree((prev) => ({ ...prev, filtered: response.agrupations }));\n });\n },\n [BaseUrl, tree, language, market]\n );\n useEffect(() => {\n getInitialData();\n }, [getInitialData]);\n const openPanel = useCallback(() => {\n if (!disabled)\n setVisible(true);\n }, [disabled, setVisible]);\n const closePanel = useCallback(() => {\n setVisible(false);\n }, [setVisible]);\n return {\n autocompletePanelTree,\n isPanelVisible,\n setAutocompletePanelTree,\n openPanel,\n closePanel,\n getFilterDestinationTree,\n getFilterDestinationTreeMobile\n };\n};\n\nexport { useAutocompletePanel as default, useAutocompletePanel };\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { Input } from '../../../input/index.mjs';\nimport { KEY_CODE } from '@babylon/ui-kit-types/key-code';\nimport { forwardRef, useRef, useImperativeHandle, useState, useCallback } from 'react';\nimport { useOnClickOutside } from 'usehooks-ts';\nimport AgrupationPanel from '../../components/agrupation-panel/index.mjs';\nimport { useAutocompletePanel } from '../../hooks/useAutocompletePanel.mjs';\nimport { MIN_LENGTH_TO_SEARCH } from '../../utils.mjs';\n\nconst AutocompletePanelDesktop = forwardRef((props, ref) => {\n const {\n config,\n label,\n value,\n name,\n placeholder,\n icon = \"angle-down\",\n disabled = false,\n hasError = false,\n onChange\n } = props;\n const inputRef = useRef(null);\n useImperativeHandle(ref, () => inputRef.current);\n const panelRef = useRef(null);\n const [inputValue, setInputValue] = useState(value?.name ?? \"\");\n const {\n autocompletePanelTree,\n isPanelVisible,\n setAutocompletePanelTree,\n openPanel,\n closePanel,\n getFilterDestinationTree\n } = useAutocompletePanel(config, disabled);\n const handleOnClosePanel = useCallback(() => {\n setInputValue(value?.name?.replaceAll(\"*\", \"\") ?? \"\");\n closePanel();\n }, [value, closePanel]);\n useOnClickOutside(panelRef, handleOnClosePanel);\n const handleOnChange = useCallback(\n (event) => {\n event.preventDefault();\n const { value: value2 } = event.target;\n setInputValue(value2);\n if (value2.length >= MIN_LENGTH_TO_SEARCH) {\n getFilterDestinationTree(value2);\n }\n },\n [getFilterDestinationTree]\n );\n const selectAgrupation = useCallback(\n (agrupation) => {\n setInputValue(agrupation.name.replaceAll(\"*\", \"\"));\n setAutocompletePanelTree((prev) => ({ ...prev, filtered: void 0 }));\n onChange(agrupation);\n },\n [onChange, setAutocompletePanelTree]\n );\n const selectSuggestion = useCallback(\n (agrupation) => {\n setInputValue(agrupation.name.replaceAll(\"*\", \"\"));\n onChange(agrupation);\n closePanel();\n },\n [closePanel, onChange]\n );\n const pressHandler = useCallback(\n (event) => {\n switch (event.key) {\n case KEY_CODE.ENTER:\n handleOnClosePanel();\n event.preventDefault();\n break;\n case KEY_CODE.ESC:\n break;\n }\n },\n [handleOnClosePanel]\n );\n return /* @__PURE__ */ jsxs(\"div\", { ref: panelRef, \"data-testid\": \"AutocompletePanelDesktop\", onKeyDown: (e) => pressHandler(e), children: [\n /* @__PURE__ */ jsx(\n Input,\n {\n ref: inputRef,\n onChange: handleOnChange,\n label,\n disabled,\n icon,\n onClick: openPanel,\n value: inputValue,\n name,\n placeholder,\n hasError,\n autoComplete: \"off\"\n }\n ),\n isPanelVisible && /* @__PURE__ */ jsx(\n AgrupationPanel,\n {\n referenceElement: inputRef.current,\n literals: config.literals,\n agrupationPanelValue: autocompletePanelTree,\n closePanel: handleOnClosePanel,\n onSelectAgrupation: selectAgrupation,\n onSelectSuggestion: selectSuggestion,\n disabled\n }\n )\n ] });\n});\nAutocompletePanelDesktop.displayName = \"AutocompletePanelDesktop\";\n\nexport { AutocompletePanelDesktop, AutocompletePanelDesktop as default };\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { Input } from '../../../input/index.mjs';\nimport { nullFunction } from '@babylon/ui-kit-helpers/null';\nimport { forwardRef, useRef, useImperativeHandle, useState, useCallback } from 'react';\nimport AgrupationPanel from '../../components/agrupation-panel/index.mjs';\nimport { useAutocompletePanel } from '../../hooks/useAutocompletePanel.mjs';\nimport { MIN_LENGTH_TO_SEARCH } from '../../utils.mjs';\n\nconst AutocompletePanelMobile = forwardRef((props, ref) => {\n const {\n config,\n label,\n value,\n name,\n placeholder,\n icon = \"angle-down\",\n disabled = false,\n hasError = false,\n onChange\n } = props ?? {};\n const { literals } = config ?? {};\n const inputRef = useRef(null);\n useImperativeHandle(ref, () => inputRef.current);\n const [inputValue, setInputValue] = useState(value?.name ?? \"\");\n const {\n autocompletePanelTree,\n isPanelVisible,\n openPanel,\n closePanel,\n getFilterDestinationTreeMobile,\n setAutocompletePanelTree\n } = useAutocompletePanel(config, disabled);\n const selectSuggestion = useCallback(\n (agrupation) => {\n setInputValue(agrupation.name.replaceAll(\"*\", \"\"));\n setAutocompletePanelTree((prev) => ({ ...prev, filtered: void 0 }));\n onChange(agrupation);\n closePanel();\n },\n [closePanel, onChange, setAutocompletePanelTree]\n );\n const handleFilterDestination = useCallback(\n (query) => {\n if (query.length >= MIN_LENGTH_TO_SEARCH)\n getFilterDestinationTreeMobile(query);\n else\n setAutocompletePanelTree((prev) => ({ ...prev, filtered: void 0 }));\n },\n [getFilterDestinationTreeMobile, setAutocompletePanelTree]\n );\n return /* @__PURE__ */ jsxs(\"div\", { \"data-testid\": \"AutocompletePanelMobile\", children: [\n /* @__PURE__ */ jsx(\n Input,\n {\n ref: inputRef,\n type: \"button\",\n onChange: nullFunction,\n label,\n disabled,\n icon,\n onClick: openPanel,\n value: inputValue,\n name,\n placeholder,\n hasError\n }\n ),\n /* @__PURE__ */ jsx(\n AgrupationPanel,\n {\n literals,\n agrupationPanelValue: autocompletePanelTree,\n onSelectSuggestion: selectSuggestion,\n isPanelVisible,\n closePanel,\n filterDestination: handleFilterDestination\n }\n )\n ] });\n});\nAutocompletePanelMobile.displayName = \"AutocompletePanelMobile\";\n\nexport { AutocompletePanelMobile, AutocompletePanelMobile as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { useInput } from '../../../hooks/useInput/index.mjs';\nimport { generateViewsComponent } from '@babylon/ui-kit-helpers/views';\nimport { AutocompletePanelDesktop } from './views/desktop/index.mjs';\nimport { AutocompletePanelMobile } from './views/mobile/index.mjs';\n\nconst AutocompletePanel = generateViewsComponent(AutocompletePanelDesktop, AutocompletePanelMobile);\nconst FormAutocompletePanel = (props) => {\n const { isHiddenRequired: _isHiddenRequired, ...rest } = props;\n const { field, error, hasError, label } = useInput(props);\n return /* @__PURE__ */ jsx(AutocompletePanel, { ...rest, ...field, hasError, label, error });\n};\n\nexport { AutocompletePanel, FormAutocompletePanel, AutocompletePanel as default };\n","import { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport { useMemo } from 'react';\nimport { useSearcherTouProps, useSearcherTouState } from '../../context/index.mjs';\nimport useSearcherTouDefaultValues from '../../hooks/useSearcherTouDefaultValues.mjs';\n\nconst useDestinationInput = () => {\n const props = useSearcherTouProps();\n const { config } = props ?? {};\n const { literals, endpoint } = config ?? {};\n const {\n labelFeatured = \"\",\n labelSuggestions = \"\",\n destinationModalTitle = \"\",\n searchPlaceholderValue = \"\",\n noResultsText = \"\",\n destinationLabel = \"\"\n } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n const requiredValidate = useMemo(() => [required()], []);\n return useMemo(\n () => ({\n name: \"destination\",\n config: {\n literals: {\n labelFeatured,\n labelSuggestions,\n modalTitle: destinationModalTitle,\n placeHolderAutocomplete: searchPlaceholderValue,\n noResults: noResultsText\n },\n endpoint: {\n tree: endpoint?.tree,\n filter: endpoint?.filter\n },\n threshold: 3\n },\n placeholder: \"\",\n label: destinationLabel,\n isHiddenRequired: true,\n defaultValue: defaultValues.destination,\n disabled: isLoading,\n validate: requiredValidate\n }),\n [\n defaultValues.destination,\n isLoading,\n destinationModalTitle,\n labelFeatured,\n labelSuggestions,\n noResultsText,\n searchPlaceholderValue,\n endpoint?.filter,\n endpoint?.tree,\n destinationLabel,\n requiredValidate\n ]\n );\n};\n\nexport { useDestinationInput as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { FormAutocompletePanel } from '@babylon/ui-kit-forms/components/inputs/autocomplete-panel';\nimport useDestinationInput from './useDestinationInput.mjs';\n\nconst SearcherTouDestinationInput = () => {\n const destinationInput = useDestinationInput();\n return /* @__PURE__ */ jsx(FormAutocompletePanel, { ...destinationInput });\n};\n\nexport { SearcherTouDestinationInput as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useMemo } from 'react';\nimport { useSearcherTouProps, useSearcherTouState } from '../../context/index.mjs';\n\nconst useDurationInput = () => {\n const props = useSearcherTouProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { durationLabel = \"\", accept = \"\" } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading, durationOptions } = state ?? {};\n const destinationValue = useValue({ name: \"destination\" });\n return useMemo(\n () => ({\n name: \"duration\",\n label: durationLabel,\n options: durationOptions ?? [],\n modalHeader: durationLabel,\n accept,\n disabled: !!isLoading || !destinationValue\n }),\n [durationOptions, isLoading, accept, durationLabel, destinationValue]\n );\n};\n\nexport { useDurationInput as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { FormCheckboxGroup } from '@babylon/ui-kit-forms/components/inputs/checkbox-group';\nimport useDurationInput from './useDurationInput.mjs';\n\nconst SearcherTouDurationInput = () => {\n const durationInput = useDurationInput();\n return /* @__PURE__ */ jsx(FormCheckboxGroup, { ...durationInput });\n};\n\nexport { SearcherTouDurationInput as default };\n","import { TooltipContent } from '@babylon/ui-kit-base/components/others/tooltip/styled';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport styled from 'styled-components';\nimport { InputComponentWrapper, InputWrapper } from '../../../input/styled.mjs';\n\nconst RadioButtonWrapper = styled.div`\n\t&:not(:last-child) {\n\t\tmargin-bottom: 12px;\n\t}\n`;\nconst InputContainer = styled.div`\n\t&& {\n\t\twidth: 100%;\n\t\tpadding-top: 5px;\n\n\t\t${TooltipContent} {\n\t\t\toverflow-y: auto;\n\t\t\tpadding: 16px;\n\t\t}\n\n\t\tinput {\n\t\t\tbackground-color: transparent;\n\t\t\tborder: 0;\n\t\t\ttext-overflow: unset;\n\t\t\t--input-height: auto;\n\t\t}\n\n\t\t.input-without-label {\n\t\t\tpadding: 0px 42px 0px 16px;\n\t\t}\n\n\t\tspan .input-without-label {\n\t\t\tmin-height: 24px;\n\t\t}\n\n\t\t.icon-without-label {\n\t\t\tcolor: ${({ theme }) => theme.colors.black.base};\n\t\t\t${FontMixin({ size: \"small\", height: \"medium\" })}\n\t\t\tright: 24px;\n\t\t}\n\n\t\t${InputComponentWrapper} {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t${InputWrapper} {\n\t\t\t--outline-width: 0px;\n\t\t}\n\t}\n`;\n\nexport { InputContainer, RadioButtonWrapper };\n","import { jsx } from 'react/jsx-runtime';\nimport InputPanel from '../../../../others/input-panel/index.mjs';\nimport { forwardRef, useCallback, useMemo, Children } from 'react';\nimport { RadioButton } from '../../../radio-button-group/components/radio-button/index.mjs';\nimport { RadioButtonWrapper, InputContainer } from './styled.mjs';\n\nconst FlexibilityDesktop = forwardRef((props, ref) => {\n const { disabled = false, value, options = [], onChange, onBlur } = props;\n const handleRadioButton = useCallback(\n (e) => {\n const value2 = options.find((i) => i.value == e.target.value);\n if (onChange)\n onChange(value2);\n },\n [onChange, options]\n );\n const inputProps = useMemo(\n () => ({\n label: \"\",\n value: value?.label,\n hasError: props.hasError,\n disabled,\n icon: \"angle-down\",\n onBlur\n }),\n [disabled, onBlur, props.hasError, value?.label]\n );\n const panel = useMemo(\n () => ({\n content: Children.toArray(\n options?.map((item) => /* @__PURE__ */ jsx(RadioButtonWrapper, { children: /* @__PURE__ */ jsx(\n RadioButton,\n {\n \"data-testid\": \"FlexibilityRadioButton\",\n label: item.label,\n name: item.label,\n value: item.value,\n checked: item.value == value?.value ? true : false,\n onChange: handleRadioButton\n }\n ) }))\n )\n }),\n [handleRadioButton, options, value?.value]\n );\n return /* @__PURE__ */ jsx(InputContainer, { \"data-testid\": \"Flexibility\", children: /* @__PURE__ */ jsx(InputPanel, { ref, inputProps, panel }) });\n});\nFlexibilityDesktop.displayName = \"FlexibilityDesktop\";\n\nexport { FlexibilityDesktop, FlexibilityDesktop as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { useInput } from '../../../hooks/useInput/index.mjs';\nimport { generateViewsComponent } from '@babylon/ui-kit-helpers/views';\nimport { FlexibilityDesktop } from './views/desktop/index.mjs';\n\nconst Flexibility = generateViewsComponent(FlexibilityDesktop);\nconst FormFlexibility = (props) => {\n const { isHiddenRequired: _isHiddenRequired, ...rest } = props;\n const { field, hasError } = useInput(props);\n return /* @__PURE__ */ jsx(Flexibility, { ...rest, ...field, hasError });\n};\n\nexport { Flexibility, FormFlexibility, Flexibility as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\nimport { useSearcherTouProps, useSearcherTouState } from '../../context/index.mjs';\nimport useSearcherTouDefaultValues from '../../hooks/useSearcherTouDefaultValues.mjs';\n\nconst useFlexibilityInput = () => {\n const props = useSearcherTouProps();\n const { config, flexibility } = props ?? {};\n const { literals } = config ?? {};\n const { flexibilityLabel = \"\" } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n const destinationValue = useValue({ name: \"destination\" });\n const isMobile = useIsMobile();\n const commonProps = {\n name: \"flexibility\",\n options: flexibility ?? [],\n defaultValue: defaultValues.flexibility,\n disabled: !!isLoading || !destinationValue\n };\n if (isMobile)\n return {\n ...commonProps,\n menuVariant: \"floating\",\n enableSearch: false,\n label: flexibilityLabel\n };\n return commonProps;\n};\n\nexport { useFlexibilityInput as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { FormFlexibility } from '@babylon/ui-kit-forms/components/inputs/flexibility';\nimport { FormSelect } from '@babylon/ui-kit-forms/components/inputs/select';\nimport useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\nimport useFlexibilityInput from './useFlexibilityInput.mjs';\n\nconst SearcherTouFlexibilityInput = () => {\n const flexibilityInput = useFlexibilityInput();\n const isMobile = useIsMobile();\n if (isMobile)\n return /* @__PURE__ */ jsx(FormSelect, { ...flexibilityInput });\n return /* @__PURE__ */ jsx(FormFlexibility, { ...flexibilityInput });\n};\n\nexport { SearcherTouFlexibilityInput as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\nimport { useMemo } from 'react';\nimport { useSearcherTouProps, useSearcherTouState } from '../../context/index.mjs';\nimport useSearcherTouDefaultValues from '../../hooks/useSearcherTouDefaultValues.mjs';\nimport { transformDataOrigins } from '../../utils/utils.mjs';\n\nconst useOriginInput = () => {\n const props = useSearcherTouProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { searchPlaceholderValue = \"\", originLabel = \"\", noResults = \"\" } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading, originOptions } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n const destinationValue = useValue({ name: \"destination\" });\n const isMobile = useIsMobile();\n return useMemo(\n () => ({\n name: \"origin\",\n selectName: originLabel,\n noResultsText: noResults,\n searchText: searchPlaceholderValue,\n placeholder: originLabel,\n options: originOptions ? transformDataOrigins(originOptions) : [],\n defaultValue: defaultValues.origin,\n isHiddenRequired: true,\n isDisabled: !!isLoading || !destinationValue,\n enableSearch: !isMobile\n }),\n [\n originLabel,\n noResults,\n searchPlaceholderValue,\n originOptions,\n defaultValues.origin,\n isLoading,\n destinationValue,\n isMobile\n ]\n );\n};\n\nexport { useOriginInput as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { FormSelect } from '@babylon/ui-kit-forms/components/inputs/select';\nimport useOriginInput from './useOriginInput.mjs';\n\nconst SearcherTouOriginInput = () => {\n const originInput = useOriginInput();\n return /* @__PURE__ */ jsx(FormSelect, { ...originInput });\n};\n\nexport { SearcherTouOriginInput as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\nimport { useSearcherTouProps, useSearcherTouState } from '../../context/index.mjs';\nimport useSearcherTouDefaultValues from '../../hooks/useSearcherTouDefaultValues.mjs';\n\nconst usePassengersInput = () => {\n const props = useSearcherTouProps();\n const { config, accomodation } = props ?? {};\n const { literals } = config ?? {};\n const { accept = \"\", accomodationLabel = \"\", accomodationModalTitle = \"\" } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n const destinationValue = useValue({ name: \"destination\" });\n const isMobile = useIsMobile();\n if (isMobile)\n return {\n name: \"passengers\",\n label: accomodationLabel,\n defaultValue: defaultValues.passengers,\n literals: {\n passengersLabel: accomodationLabel,\n adultLabel: accomodation?.adults?.personLabel,\n adultsLabel: accomodation?.adults?.personsLabel,\n childLabel: accomodation?.children?.personLabel,\n childrenLabel: accomodation?.children?.personsLabel,\n passengersTitle: accomodationModalTitle,\n acceptLabel: accept\n },\n disabled: !!isLoading || !destinationValue\n };\n return {\n name: \"passengers\",\n label: accomodationLabel,\n literals: {\n passengerLabel: accomodationLabel,\n adultLabel: accomodation?.adults?.personLabel,\n adultsLabel: accomodation?.adults?.personsLabel,\n childLabel: accomodation?.children?.personLabel,\n childrenLabel: accomodation?.children?.personsLabel,\n passengerTitleLabel: accomodationModalTitle\n },\n defaultValue: defaultValues.passengers,\n disabled: !!isLoading || !destinationValue\n };\n};\n\nexport { usePassengersInput as default };\n","import { jsx } from 'react/jsx-runtime';\nimport { FormPassengers } from '@babylon/ui-kit-forms/components/inputs/passengers/variants/simple';\nimport usePassengersInput from './usePassengersInput.mjs';\n\nconst SearcherTouPassengersInput = () => {\n const passengersInput = usePassengersInput();\n return /* @__PURE__ */ jsx(FormPassengers, { ...passengersInput });\n};\n\nexport { SearcherTouPassengersInput as default };\n","import { addDays } from '@babylon/ui-kit-helpers/date';\nimport { parseFilters } from '@babylon/ui-kit-helpers/url';\nimport { format } from 'date-fns';\n\nfunction getPassengersParam(a) {\n if (!a)\n return \"\";\n let value = \"\";\n const numberAdutls = a.adults?.value;\n for (let n = 0; n < numberAdutls; ++n) {\n value += \"30-\";\n }\n if (value.length > 0)\n value = value.slice(0, -1);\n if (a.children?.selectedOptions && a.children?.selectedOptions.length > 0) {\n for (let n = 0; n < a.children?.selectedOptions?.length; ++n) {\n value += \"-\" + a.children?.selectedOptions[n];\n }\n }\n return value;\n}\nasync function buildUrl(fieldValues, baseUrl, urlSubmit = \"\") {\n const { passengers, date = [], duration = [], destination, origin, flexibility } = fieldValues;\n let finalUrl = urlSubmit;\n if (!finalUrl.startsWith(\"http\"))\n finalUrl = `${baseUrl}${urlSubmit}`;\n const filters = {\n Origin: origin?.value,\n OriginType: \"Airport\",\n Destination: destination?.code,\n DestinationType: destination?.type,\n MinDepartureDate: format(date[0], \"yyyy-MM-dd\"),\n MaxDepartureDate: format(\n addDays(\n date[0],\n duration.reduce((max, item) => item.value > max ? item.value : max, 0)\n ),\n \"yyyy-MM-dd\"\n ),\n Accommodation: getPassengersParam(passengers),\n Duration: duration.map((item) => String(item.value)).join(\"@\"),\n flexibility: flexibility?.value\n };\n return `${finalUrl}?${parseFilters(filters)}`;\n}\n\nexport { buildUrl };\n","import contextBabylon from '@babylon/ui-kit-context';\nimport addGa4Event from '@babylon/ui-kit-helpers/ga4Event';\nimport { useContext, useCallback } from 'react';\nimport { buildUrl } from '../utils/url.mjs';\nimport useSearcherTouDefaultValues from './useSearcherTouDefaultValues.mjs';\n\nconst useSearcherTouForm = (props) => {\n const { config } = props ?? {};\n const { urlSubmit = \"\" } = config ?? {};\n const { BaseUrl } = useContext(contextBabylon);\n const defaultValues = useSearcherTouDefaultValues(props);\n const handleOnSubmit = useCallback(\n async (values) => {\n addGa4Event({ event: \"search\", event_type: \"availability\", event_detail: \"packages/traditional\" });\n const url = await buildUrl(values, BaseUrl, urlSubmit);\n window.location.assign(url);\n },\n [BaseUrl, urlSubmit]\n );\n return {\n onSubmit: handleOnSubmit,\n defaultValues\n };\n};\n\nexport { useSearcherTouForm as default };\n","import { jsx } from 'react/jsx-runtime';\nimport Form from '@babylon/ui-kit-forms/components/others/form';\nimport { SearcherTouProvider } from '../../context/index.mjs';\nimport useSearcherTouForm from '../../hooks/useSearcherTouForm.mjs';\n\nconst SearcherTouForm = ({ children, ...rootProps }) => {\n const props = \"data\" in rootProps ? rootProps.data : rootProps.props;\n const { defaultValues, onSubmit } = useSearcherTouForm(props);\n return /* @__PURE__ */ jsx(Form, { onSubmit, defaultValues, children: /* @__PURE__ */ jsx(SearcherTouProvider, { value: props, children }) });\n};\n\nexport { SearcherTouForm as default };\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { Searcher } from '../../../../others/searcher/index.mjs';\nimport { SearcherItem, SearcherItemWithMaxWidth } from '../../../../others/searcher/styled.mjs';\nimport SearcherTouButton from '../../components/button/index.mjs';\nimport SearcherTouDateInput from '../../components/date-input/index.mjs';\nimport SearcherTouDestinationInput from '../../components/destination-input/index.mjs';\nimport SearcherTouDurationInput from '../../components/duration-input/index.mjs';\nimport SearcherTouFlexibilityInput from '../../components/flexibility-input/index.mjs';\nimport SearcherTouOriginInput from '../../components/origin-input/index.mjs';\nimport SearcherTouPassengersInput from '../../components/passengers-input/index.mjs';\nimport SearcherTouForm from '../../components/searcher-form/index.mjs';\n\nconst SearcherTouDesktopView = () => /* @__PURE__ */ jsxs(Searcher, { \"data-testid\": \"SearcherTou\", children: [\n /* @__PURE__ */ jsx(SearcherItem, { $variant: \"medium\", children: /* @__PURE__ */ jsx(SearcherTouDestinationInput, {}) }),\n /* @__PURE__ */ jsx(SearcherItem, { $variant: \"medium\", children: /* @__PURE__ */ jsx(SearcherTouOriginInput, {}) }),\n /* @__PURE__ */ jsx(SearcherItemWithMaxWidth, { $variant: \"medium\", children: /* @__PURE__ */ jsx(SearcherTouDurationInput, {}) }),\n /* @__PURE__ */ jsxs(SearcherItem, { $variant: \"medium\", $grow: true, children: [\n /* @__PURE__ */ jsx(SearcherTouDateInput, {}),\n /* @__PURE__ */ jsx(SearcherTouFlexibilityInput, {})\n ] }),\n /* @__PURE__ */ jsx(SearcherItemWithMaxWidth, { $variant: \"medium\", children: /* @__PURE__ */ jsx(SearcherTouPassengersInput, {}) }),\n /* @__PURE__ */ jsx(SearcherTouButton, {})\n] });\nconst SearcherTouDesktop = (props) => /* @__PURE__ */ jsx(SearcherTouForm, { ...props, children: /* @__PURE__ */ jsx(SearcherTouDesktopView, {}) });\n\nexport { SearcherTouDesktop as default };\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { Inputs } from '@babylon/ui-kit-forms/components/others/inputs/styled';\nimport { Searcher } from '../../../../others/searcher/index.mjs';\nimport { SearcherItem } from '../../../../others/searcher/styled.mjs';\nimport SearcherTouButton from '../../components/button/index.mjs';\nimport SearcherTouDateInput from '../../components/date-input/index.mjs';\nimport SearcherTouDestinationInput from '../../components/destination-input/index.mjs';\nimport SearcherTouDurationInput from '../../components/duration-input/index.mjs';\nimport SearcherTouFlexibilityInput from '../../components/flexibility-input/index.mjs';\nimport SearcherTouOriginInput from '../../components/origin-input/index.mjs';\nimport SearcherTouPassengersInput from '../../components/passengers-input/index.mjs';\nimport SearcherTouForm from '../../components/searcher-form/index.mjs';\n\nconst SearcherTouMobileView = () => /* @__PURE__ */ jsxs(Searcher, { \"data-testid\": \"SearcherTouMobile\", children: [\n /* @__PURE__ */ jsx(SearcherItem, { children: /* @__PURE__ */ jsxs(Inputs, { children: [\n /* @__PURE__ */ jsx(SearcherTouDestinationInput, {}),\n /* @__PURE__ */ jsx(SearcherTouOriginInput, {})\n ] }) }),\n /* @__PURE__ */ jsx(SearcherItem, { children: /* @__PURE__ */ jsx(SearcherTouDurationInput, {}) }),\n /* @__PURE__ */ jsx(SearcherItem, { children: /* @__PURE__ */ jsxs(Inputs, { children: [\n /* @__PURE__ */ jsx(SearcherTouDateInput, {}),\n /* @__PURE__ */ jsx(SearcherTouFlexibilityInput, {})\n ] }) }),\n /* @__PURE__ */ jsx(SearcherItem, { children: /* @__PURE__ */ jsx(SearcherTouPassengersInput, {}) }),\n /* @__PURE__ */ jsx(SearcherTouButton, {})\n] });\nconst SearcherTouMobile = (props) => /* @__PURE__ */ jsx(SearcherTouForm, { ...props, children: /* @__PURE__ */ jsx(SearcherTouMobileView, {}) });\n\nexport { SearcherTouMobile as default };\n"],"names":["useSearcherTouContextState","originOptions","setOriginOptions","useState","durationOptions","setDurationOptions","calendarData","setCalendarData","allCallLock","useRef","originsCallLock","nightsCallLock","datesCallLock","destinationValue","useValue","isLoading","doFetchLoading","useLoading","state","actions","useMemo","getOrigins","url","destination","BaseUrl","Language","Market","finalUrl","response","getNights","origin","getCalendar","duration","durationParsed","finalValue","currentValue","transformDataOrigins","locations","transformed","e","getOriginDefaultValue","options","checked","parseDates","dates","parseDatesOffers","currency","useUpdateDates","contextValue","props","config","endpoint","callLocks","setValue","useFormContext","useContext","contextBabylon","dateValue","lastCalendarData","useLastValue","lastDateValue","useCallback","newDates","fastDeepEqual","newDate","getFirstDayValid","_a","date","useUpdateNights","durationValue","lastDurationOptions","updateDates","currentDurationValue","newDurations","newDuration","finalDuration","item","useUpdateOrigins","originValue","lastOriginOptions","updateNights","currentOriginValue","newOrigins","defaultOriginValue","useUpdateStateData","updateOrigins","prevDestination","usePrevValue","prevOrigin","prevDuration","useEffect","_b","_c","useSearcherTouSideEffects","SearcherTouContext","createContext","SearcherTouProvider","value","children","contextState","jsx","useSearcherTouContext","useSearcherTouProps","useSearcherTouState","SearcherTouButton","literals","search","hasErrors","useHasErrors","handleSubmit","useHandleSubmit","SearcherButton","useSearcherTouDefaultValues","flexibility","accomodation","calendar","searchPlaceholderValue","accomodationModalTitle","agesDescription","destinationDefaultValue","originDefaultValue","dateDefaultValue","nowDate","calendarDate","format","flexibilityDefaultValue","passengersDefaultValue","_d","_e","_f","_g","_j","_i","_h","_k","_l","_m","_p","_o","_n","_s","_r","_q","_v","_u","_t","getPriceLegend","priceLegend","useDateInput","accept","calendarLabel","offer","calendarModalTitle","defaultValues","isMobile","useIsMobile","calendarInput","SearcherTouDateInput","dateInput","FormCalendar","useKeydown","suggestions","selectSuggestion","closePanel","count","increment","decrement","useCounter","pressHandler","event","KEY_CODE","PanelWrapper","styled","Tooltip","BorderRadius","theme","TooltipContent","TooltipArrow","PanelBody","FlexMixin","PanelAgrupations","PanelSuggestions","FontMixin","PanelAgrupationsList","PanelAgrupationsItem","rgba","PanelSuggestionList","PanelSuggestionItem","AgrupationPanelDesktop","agrupationPanelValue","referenceElement","onSelectAgrupation","onSelectSuggestion","disabled","agrupations","filtered","labelSuggestions","setSuggestions","suggestionItems","indexSelected","handleAgrupation","handleSuggestion","jsxs","Children","classNames","index","ScrollIntoView","InnerMarkdownHTML","MIN_LENGTH_TO_SEARCH","agrupationSortByPriority","agrupation","sortByPriority","b","cloneDeep","childrenSortByPriority","autocompletePanelTreeSortByPriority","autocomplete","featured","Modal","ModalHeader","ModalHeaderText","ModalContent","InputWrapper","Input","PanelAgrupationHeader","PanelAgrupationList","PanelAgrupationItem","AgrupationPanelMobile","isPanelVisible","filterDestination","setSearch","onSearch","Fragment","suggestion","AgrupationPanel","generateViewsComponent","getDestinationTree","queryParams","language","market","filterDestinationTree","text","useAutocompletePanel","tree","filter","initialPanelTree","autocompletePanelTree","setAutocompletePanelTree","_","setVisible","useToggle","context","getInitialData","getFilterDestinationTree","newAgrupation","res","name","priority","marked","getFilterDestinationTreeMobile","prev","openPanel","AutocompletePanelDesktop","forwardRef","ref","label","placeholder","icon","hasError","onChange","inputRef","useImperativeHandle","panelRef","inputValue","setInputValue","handleOnClosePanel","useOnClickOutside","handleOnChange","value2","selectAgrupation","AutocompletePanelMobile","handleFilterDestination","query","nullFunction","AutocompletePanel","FormAutocompletePanel","_isHiddenRequired","rest","field","error","useInput","useDestinationInput","labelFeatured","destinationModalTitle","noResultsText","destinationLabel","requiredValidate","required","SearcherTouDestinationInput","destinationInput","useDurationInput","durationLabel","SearcherTouDurationInput","durationInput","FormCheckboxGroup","RadioButtonWrapper","InputContainer","InputComponentWrapper","FlexibilityDesktop","onBlur","handleRadioButton","i","inputProps","panel","RadioButton","InputPanel","Flexibility","FormFlexibility","useFlexibilityInput","flexibilityLabel","commonProps","SearcherTouFlexibilityInput","flexibilityInput","FormSelect","useOriginInput","originLabel","noResults","SearcherTouOriginInput","originInput","usePassengersInput","accomodationLabel","SearcherTouPassengersInput","passengersInput","FormPassengers","getPassengersParam","a","numberAdutls","n","buildUrl","fieldValues","baseUrl","urlSubmit","passengers","filters","addDays","max","parseFilters","useSearcherTouForm","values","addGa4Event","SearcherTouForm","rootProps","onSubmit","Form","SearcherTouDesktopView","Searcher","SearcherItem","SearcherItemWithMaxWidth","SearcherTouDesktop","SearcherTouMobileView","Inputs","SearcherTouMobile"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]}