{"version":3,"file":"index.DhS03bQ-.js","sources":["../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/context/useContextState.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/service.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/utils/utils.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/context/useSideEffects.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/context/index.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/button/hooks/useButton.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/hooks/useSearcherTouDefaultValues.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/date-input/hooks/useDateInput.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/autocomplete-panel/constants.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/autocomplete-panel/services/index.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/autocomplete-panel/utils.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/autocomplete-panel/hooks/useAutocompletePanel.js","../../../../../../../node_modules/@babylon/ui-kit-forms/components/inputs/autocomplete-panel/hooks/useFormAutocompletePanel.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/destination-input/hooks/useDestinationInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/duration-input/hooks/useDurationInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/flexibility-input/hooks/useFlexibilityInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/origin-input/hooks/useOriginInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/passengers-input/hooks/usePassengersInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/utils/url.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/hooks/useSearcherTouForm.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-tou/components/searcher-form/index.js"],"sourcesContent":["import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport useLoading from '../../../../hooks/useLoading.js';\nimport { useState, useMemo } from 'react';\n\nconst useSearcherTouContextState = ()=>{\n const [originOptions, setOriginOptions] = useState([]);\n const [durationOptions, setDurationOptions] = useState([]);\n const [calendarData, setCalendarData] = useState([]);\n const destinationValue = useValue({\n name: 'destination'\n });\n const { isLoading, doFetchLoading } = useLoading(!!destinationValue?.code);\n const { state, actions } = useMemo(()=>({\n state: {\n originOptions,\n durationOptions,\n calendarData,\n isLoading\n },\n actions: {\n setOriginOptions,\n setDurationOptions,\n setCalendarData,\n doFetchLoading\n }\n }), [\n calendarData,\n doFetchLoading,\n durationOptions,\n isLoading,\n originOptions\n ]);\n return {\n state,\n actions\n };\n};\n\nexport { useSearcherTouContextState as default };\n","const getOrigins = async (url = '', { destination } = {}, { BaseUrl, Language, Market } = {})=>{\n if (!url || !BaseUrl || !Language || !Market || !destination) return undefined;\n let finalUrl = url;\n if (!url.startsWith('http')) finalUrl = `${BaseUrl}${url}`;\n if (process.env.NODE_ENV !== 'production') {\n const fetchMockData = await import('./mock.js').then((m)=>m.getOriginsMock);\n return fetchMockData;\n }\n // not use here language and market because they comes in the model\n const response = await fetch(`${finalUrl}&destination=${destination?.code}&destinationType=${destination?.type}`);\n if (!response.ok || response.status === 204) 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) return undefined;\n let finalUrl = url;\n if (!url.startsWith('http')) finalUrl = `${BaseUrl}${url}`;\n if (process.env.NODE_ENV !== 'production') {\n const fetchMockData = await import('./mock.js').then((m)=>m.getNightsMock);\n return fetchMockData;\n }\n const response = await fetch(`${finalUrl}&destination=${destination?.code}&destinationType=${destination?.type}&origin=${origin?.value}`);\n if (!response.ok || response.status === 204) 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) return undefined;\n const durationParsed = duration?.reduce((finalValue, currentValue)=>`${finalValue}@${currentValue.value}`, '').substring(1);\n let finalUrl = url;\n if (!url.startsWith('http')) finalUrl = `${BaseUrl}${url}`;\n if (process.env.NODE_ENV !== 'production') {\n const fetchMockData = await import('./mock.js').then((m)=>m.getCalendarMock);\n return fetchMockData;\n }\n const response = await fetch(`${finalUrl}&destination=${destination?.code}&destinationType=${destination.type}&origin=${origin?.value}&nights=${durationParsed}`);\n if (!response.ok || response.status === 204) 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({\n label: e.name ?? '',\n name: e.name ?? '',\n value: e.code ?? ''\n }));\n }\n return transformed;\n}\nfunction getOriginDefaultValue(options) {\n if (!options?.length) return undefined;\n const checked = options.find((e)=>e.checked);\n const res = {\n label: checked?.name ?? '',\n name: checked?.name,\n value: checked?.code\n };\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((e)=>dates.push({\n date: e.date ?? '',\n offer: e.offer ?? false,\n text: e.price ? e.price.toString() : '',\n currency: currency\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 { formatDateWithoutLocale, getFirstDayValid } from '@babylon/ui-kit-helpers/date';\nimport isEqual from '@babylon/ui-kit-helpers/is-equal';\nimport useLastValue from '@babylon/ui-kit-hooks/useLastValue';\nimport usePrevValue from '@babylon/ui-kit-hooks/usePrevValue';\nimport { useEffect, useContext, useCallback } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { getCalendar, getNights, getOrigins } from '../service.js';\nimport { getOriginDefaultValue } from '../utils/utils.js';\n\nconst useUpdateDates = (contextValue)=>{\n const { props, state, actions } = contextValue;\n const { config } = props ?? {};\n const { endpoint } = config ?? {};\n const { calendarData } = state ?? {};\n const { setCalendarData } = actions ?? {};\n const { setValue } = useFormContext();\n const { BaseUrl, Language, Market } = useContext(contextBabylon);\n const dateValue = useValue({\n name: 'date'\n });\n const lastCalendarData = useLastValue(calendarData);\n const lastDateValue = useLastValue(dateValue);\n return useCallback(async (destination, origin, duration)=>{\n if (!setCalendarData || !destination || !origin || !duration) return;\n const newDates = await getCalendar(endpoint?.dates, {\n origin,\n destination,\n duration\n }, {\n BaseUrl,\n Language,\n Market\n });\n if (!isEqual(lastCalendarData.current, newDates)) {\n setCalendarData(newDates || []);\n if (newDates?.length > 0 && lastDateValue.current?.[0] && !newDates.map((date)=>date.date).includes(formatDateWithoutLocale(lastDateValue.current[0], 'YYYY-MM-DD'))) {\n const dates = newDates.map((e)=>e.date ?? '').filter((e)=>!!e);\n const newDate = [\n getFirstDayValid(dates, new Date(Date.now() - 86400000), 0)\n ];\n if (!isEqual(lastDateValue.current?.map((date)=>date.getTime()), newDate?.map((date)=>date?.getTime()))) {\n setValue('date', newDate, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }\n }\n }\n }, [\n BaseUrl,\n Language,\n Market,\n endpoint?.dates,\n lastCalendarData,\n lastDateValue,\n setCalendarData,\n setValue\n ]);\n};\nconst useUpdateNights = (contextValue)=>{\n const { props, state, actions } = contextValue;\n const { config, duration } = props ?? {};\n const { endpoint } = config ?? {};\n const { durationOptions } = state ?? {};\n const { setDurationOptions } = actions ?? {};\n const { setValue } = useFormContext();\n const { BaseUrl, Language, Market } = useContext(contextBabylon);\n const durationValue = useValue({\n name: 'duration'\n });\n const lastDurationOptions = useLastValue(durationOptions);\n const updateDates = useUpdateDates(contextValue);\n return useCallback(async (destination, origin)=>{\n if (!setDurationOptions || !destination?.code || !origin?.value) return;\n let currentDurationValue = durationValue;\n const newDurations = await getNights(endpoint?.durations, {\n origin,\n destination\n }, {\n BaseUrl,\n Language,\n Market\n });\n if (newDurations && !isEqual(lastDurationOptions.current, newDurations)) {\n if (newDurations.length === 1) newDurations[0].checked = true;\n setDurationOptions(newDurations);\n const newDuration = newDurations.filter((e)=>duration?.length ? duration.toString().includes(String(e?.value)) : !!e.checked);\n const finalDuration = newDuration.length ? newDuration : newDurations.filter((item)=>item.checked);\n if (!isEqual(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 durationValue,\n lastDurationOptions,\n updateDates,\n endpoint?.durations,\n BaseUrl,\n Language,\n Market,\n setDurationOptions,\n duration,\n setValue\n ]);\n};\nconst useUpdateOrigins = (contextValue)=>{\n const { props, state, actions } = contextValue;\n const { config } = props ?? {};\n const { endpoint } = config ?? {};\n const { originOptions } = state ?? {};\n const { setOriginOptions } = actions ?? {};\n const { setValue } = useFormContext();\n const { BaseUrl, Language, Market } = useContext(contextBabylon);\n const originValue = useValue({\n name: 'origin'\n });\n const lastOriginOptions = useLastValue(originOptions);\n const updateNights = useUpdateNights(contextValue);\n return useCallback(async (destination)=>{\n if (!setOriginOptions || !destination?.code) return;\n let currentOriginValue = originValue;\n const newOrigins = await getOrigins(endpoint?.origins, {\n destination\n }, {\n BaseUrl,\n Language,\n Market\n });\n if (newOrigins && !isEqual(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 setOriginOptions,\n originValue,\n lastOriginOptions,\n updateNights,\n endpoint?.origins,\n BaseUrl,\n Language,\n Market,\n setValue\n ]);\n};\nconst useUpdateStateData = (contextValue)=>{\n const { state, actions } = contextValue;\n const { originOptions, durationOptions, calendarData } = state ?? {};\n const { doFetchLoading } = actions ?? {};\n const originValue = useValue({\n name: 'origin'\n });\n const destinationValue = useValue({\n name: 'destination'\n });\n const durationValue = useValue({\n name: 'duration'\n });\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 doFetchLoading(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 || !isEqual(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 ]);\n};\nconst useSearcherTouSideEffects = (contextValue)=>{\n useUpdateStateData(contextValue);\n};\n\nexport { useSearcherTouSideEffects as default };\n","import { createFullProvider } from '@babylon/ui-kit-helpers/context';\nimport useSearcherTouContextState from './useContextState.js';\nimport useSearcherTouSideEffects from './useSideEffects.js';\n\nconst { Provider: SearcherTouProvider, useContextProps: useSearcherTouProps, useContextState: useSearcherTouState, useContextActions: useSearcherTouActions } = createFullProvider({\n useState: useSearcherTouContextState,\n useSideEffects: useSearcherTouSideEffects\n});\n\nexport { SearcherTouProvider, useSearcherTouActions, useSearcherTouProps, useSearcherTouState };\n","import useHandleSubmit from '../../../../../../hooks/submit/useHandleSubmit.js';\nimport { useSearcherTouProps, useSearcherTouState } from '../../../context/index.js';\n\nconst useButton = ()=>{\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, handleSubmit } = useHandleSubmit();\n return {\n onClick: handleSubmit,\n disabled: !!isLoading || hasErrors,\n children: search\n };\n};\n\nexport { useButton as default };\n","import { getValidDates } from '@babylon/ui-kit-helpers/date';\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) return;\n return destination;\n }, [\n destination\n ]);\n const originDefaultValue = useMemo(()=>({\n name: searchPlaceholderValue,\n label: searchPlaceholderValue,\n value: ''\n }), [\n searchPlaceholderValue\n ]);\n const dateDefaultValue = useMemo(()=>getValidDates(new Date(), new Date(), {\n startDate: calendar\n }).splice(0, 1), [\n calendar\n ]);\n const flexibilityDefaultValue = useMemo(()=>flexibility?.[0], [\n flexibility\n ]);\n const passengersDefaultValue = useMemo(()=>({\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 senior: accomodation?.senior ? {\n description: accomodation?.senior?.personDescription,\n value: accomodation?.rooms?.[0]?.senior?.value ?? 0,\n min: accomodation?.senior?.min ?? 0,\n max: accomodation?.senior?.max ?? 9\n } : undefined,\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(accomodation?.children?.options?.find((e)=>!!e.selected)?.value, 0, accomodation?.rooms?.[0]?.children?.value)\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 accomodation?.senior,\n accomodationModalTitle,\n agesDescription\n ]);\n return useMemo(()=>({\n destination: destinationDefaultValue,\n origin: originDefaultValue,\n date: dateDefaultValue,\n flexibility: flexibilityDefaultValue,\n passengers: passengersDefaultValue\n }), [\n destinationDefaultValue,\n originDefaultValue,\n dateDefaultValue,\n flexibilityDefaultValue,\n passengersDefaultValue\n ]);\n};\n\nexport { useSearcherTouDefaultValues as default };\n","import contextBabylon from '@babylon/ui-kit-context';\nimport useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useContext } from 'react';\nimport { useSearcherTouProps, useSearcherTouState } from '../../../context/index.js';\nimport useSearcherTouDefaultValues from '../../../hooks/useSearcherTouDefaultValues.js';\nimport { parseDates, parseDatesOffers } from '../../../utils/utils.js';\n\nconst getPriceLegend = (priceLegend)=>{\n if (!priceLegend) return '';\n if (priceLegend?.indexOf('(') === -1) return priceLegend;\n return priceLegend.split('(')[1].split(')')[0];\n};\nconst useDateInput = ()=>{\n const { Language } = useContext(contextBabylon);\n const props = useSearcherTouProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { calendarLabel = '', offer = '', priceLegend = '' } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading, calendarData } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n const destinationValue = useValue({\n name: 'destination'\n });\n return {\n name: 'date',\n mode: 'single',\n locale: Language.toLowerCase(),\n label: calendarLabel,\n enableDates: calendarData ? parseDates(calendarData) : [],\n value: calendarData && calendarData?.length > 0 ? [\n new Date(calendarData?.[0]?.date ?? '')\n ] : [],\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 className: 'calendar-tou'\n };\n};\n\nexport { useDateInput as default };\n","const DEFAULT_ENDPOINTS = {\n TREE: '/ttoo-saleprocess/operative/get-destination-tree',\n FILTER: '/ttoo-saleprocess/operative/filter-destination-tree'\n};\n\nexport { DEFAULT_ENDPOINTS };\n","import { DEFAULT_ENDPOINTS } from '../constants.js';\n\nconst getDestinationTree = async (endpoint = DEFAULT_ENDPOINTS.TREE, queryParams = {})=>{\n const { language = '', market = '', BaseUrl = '' } = queryParams;\n let finalUrl = endpoint;\n if (!endpoint.startsWith('http')) finalUrl = `${BaseUrl}${endpoint}`;\n const url = new URL(finalUrl);\n url.searchParams.set('language', language);\n url.searchParams.set('market', market);\n const response = await fetch(url.toString());\n if (!response.ok || response.status !== 200 && response.status !== 204) throw new Error(response.statusText);\n return response.json();\n};\nconst filterDestinationTree = async (endpoint = DEFAULT_ENDPOINTS.FILTER, queryParams = {})=>{\n const { language = '', market = '', text = '', BaseUrl = '' } = queryParams;\n let finalUrl = endpoint;\n if (!endpoint.startsWith('http')) 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.toString());\n if (!response.ok || response.status !== 200 && response.status !== 204) throw new Error(response.statusText);\n return response.json();\n};\n\nexport { filterDestinationTree, getDestinationTree };\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;\n const agrupationSorting = cloneDeep(agrupation);\n return agrupationSorting.sort(sortByPriority);\n};\nconst childrenSortByPriority = (agrupation)=>{\n const sortByPriority = (a, b)=>b.priority - a.priority;\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 contextBabylon from '@babylon/ui-kit-context';\nimport { useState, useContext, useCallback, useEffect } from 'react';\nimport { useToggle } from 'usehooks-ts';\nimport { getDestinationTree, filterDestinationTree } from '../services/index.js';\nimport { autocompletePanelTreeSortByPriority } from '../utils.js';\n\nconst useAutocompletePanel = (config, disabled = false)=>{\n const { endpoint } = config ?? {};\n const { tree, filter } = endpoint ?? {};\n const initialPanelTree = {\n agrupations: []\n };\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, {\n language,\n market,\n BaseUrl\n }).then(autocompletePanelTreeSortByPriority).then((response)=>{\n setAutocompletePanelTree(response);\n });\n }, [\n BaseUrl,\n tree,\n language,\n market\n ]);\n const getFilterDestinationTree = useCallback((text)=>{\n filterDestinationTree(filter, {\n language,\n market,\n text,\n BaseUrl\n }).then((response)=>{\n const agrupations = autocompletePanelTree.agrupations?.map((agrupation)=>{\n const newAgrupation = response.agrupations?.find((res)=>res.code !== null && res.code === agrupation.code);\n if (newAgrupation) {\n const { name, priority, marked } = newAgrupation;\n return {\n ...agrupation,\n name,\n priority,\n marked\n };\n }\n return agrupation;\n });\n setAutocompletePanelTree({\n ...response,\n agrupations\n });\n });\n }, [\n BaseUrl,\n autocompletePanelTree.agrupations,\n filter,\n language,\n market\n ]);\n const getFilterDestinationTreeMobile = useCallback((text)=>{\n filterDestinationTree(tree, {\n language,\n market,\n text,\n BaseUrl\n }).then((response)=>{\n setAutocompletePanelTree((prev)=>({\n ...prev,\n filtered: response.agrupations\n }));\n });\n }, [\n BaseUrl,\n tree,\n language,\n market\n ]);\n useEffect(()=>{\n getInitialData();\n }, [\n getInitialData\n ]);\n const openPanel = useCallback(()=>{\n if (!disabled) setVisible(true);\n }, [\n disabled,\n setVisible\n ]);\n const closePanel = useCallback(()=>{\n setVisible(false);\n }, [\n setVisible\n ]);\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 { useInput } from '../../../../hooks/useInput/index.js';\n\nconst useFormAutocompletePanel = (props)=>{\n const { isHiddenRequired: _isHiddenRequired, ...rest } = props;\n const { field, error, hasError, label } = useInput(props);\n return {\n ...rest,\n ...field,\n hasError,\n label,\n error\n };\n};\n\nexport { useFormAutocompletePanel as default };\n","import { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport { useSearcherTouProps, useSearcherTouState } from '../../../context/index.js';\nimport useSearcherTouDefaultValues from '../../../hooks/useSearcherTouDefaultValues.js';\n\nconst useDestinationInput = ()=>{\n const props = useSearcherTouProps();\n const { config } = props ?? {};\n const { literals, endpoint } = config ?? {};\n const { labelFeatured = '', labelSuggestions = '', destinationModalTitle = '', searchPlaceholderValue = '', noResultsText = '', destinationLabel = '' } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n return {\n name: 'destination',\n config: {\n literals: {\n labelFeatured: labelFeatured,\n labelSuggestions: 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: required()\n };\n};\n\nexport { useDestinationInput as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useSearcherTouProps, useSearcherTouState } from '../../../context/index.js';\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({\n name: 'destination'\n });\n return {\n name: 'duration',\n label: durationLabel,\n options: durationOptions ?? [],\n modalHeader: durationLabel,\n accept: accept,\n disabled: !!isLoading || !destinationValue\n };\n};\n\nexport { useDurationInput as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useSearcherTouProps, useSearcherTouState } from '../../../context/index.js';\nimport useSearcherTouDefaultValues from '../../../hooks/useSearcherTouDefaultValues.js';\n\nconst useFlexibilityInput = ()=>{\n const props = useSearcherTouProps();\n const { flexibility } = props ?? {};\n const state = useSearcherTouState();\n const { isLoading } = state ?? {};\n const defaultValues = useSearcherTouDefaultValues(props);\n const destinationValue = useValue({\n name: 'destination'\n });\n return {\n name: 'flexibility',\n options: flexibility ?? [],\n defaultValue: defaultValues.flexibility,\n disabled: !!isLoading || !destinationValue\n };\n};\n\nexport { useFlexibilityInput as default };\n","import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useSearcherTouProps, useSearcherTouState } from '../../../context/index.js';\nimport useSearcherTouDefaultValues from '../../../hooks/useSearcherTouDefaultValues.js';\nimport { transformDataOrigins } from '../../../utils/utils.js';\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({\n name: 'destination'\n });\n return {\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 };\n};\n\nexport { useOriginInput as default };\n","import { requiredPassengersMinAdults } from '@babylon/ui-kit-forms/helpers/validate';\nimport useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useSearcherTouProps, useSearcherTouState } from '../../../context/index.js';\nimport useSearcherTouDefaultValues from '../../../hooks/useSearcherTouDefaultValues.js';\n\nconst usePassengersInput = ()=>{\n const props = useSearcherTouProps();\n const { config, accomodation } = props ?? {};\n const { literals } = config ?? {};\n const { accomodationLabel = '' } = literals ?? {};\n const state = useSearcherTouState();\n const { isLoading } = state ?? {};\n const defaultValue = useSearcherTouDefaultValues(props);\n const destinationValue = useValue({\n name: 'destination'\n });\n return {\n name: 'passengers',\n label: accomodationLabel,\n defaultValue,\n disabled: !!isLoading || !destinationValue,\n infoText: accomodation?.infoText,\n literals: {\n adultLabel: accomodation?.adults?.personLabel,\n adultsLabel: accomodation?.adults?.personsLabel,\n seniorLabel: accomodation?.senior?.personLabel,\n seniorsLabel: accomodation?.senior?.personsLabel,\n childLabel: accomodation?.children?.personLabel,\n childrenLabel: accomodation?.children?.personsLabel\n },\n validate: requiredPassengersMinAdults(1),\n infoValidate: requiredPassengersMinAdults(1, literals?.errorMinAdults)\n };\n};\n\nexport { usePassengersInput as default };\n","import { formatDateWithoutLocale, addDays } from '@babylon/ui-kit-helpers/date';\nimport { parseFilters } from '@babylon/ui-kit-helpers/url';\n\nfunction getPassengersParam(a) {\n if (!a) return '';\n let value = '';\n const numberAdutls = a.adults?.value;\n for(let n = 0; n < numberAdutls; ++n){\n value += '30-';\n }\n const numberSenior = a.senior?.value;\n for(let n = 0; n < numberSenior; ++n){\n value += '60-';\n }\n if (value.length > 0) 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}\n/* Build url */ async function buildUrl(fieldValues, baseUrl, urlSubmit = '') {\n const { passengers, date = [], duration = [], destination, origin, flexibility } = fieldValues;\n let finalUrl = urlSubmit;\n if (!finalUrl.startsWith('http')) finalUrl = `${baseUrl}${urlSubmit}`;\n const filters = {\n Origin: origin?.value,\n OriginType: 'Airport',\n Destination: destination?.code,\n DestinationType: destination?.type,\n MinDepartureDate: formatDateWithoutLocale(date[0], 'YYYY-MM-DD'),\n MaxDepartureDate: formatDateWithoutLocale(addDays(date[0], duration.reduce((max, item)=>item.value > max ? item.value : max, 0)), 'YYYY-MM-DD'),\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.js';\nimport useSearcherTouDefaultValues from './useSearcherTouDefaultValues.js';\n\nconst useSearcherTouForm = (props)=>{\n const { config } = props ?? {};\n const { urlSubmit = '' } = config ?? {};\n const { BaseUrl } = useContext(contextBabylon);\n const defaultValues = useSearcherTouDefaultValues(props);\n // Form\n const handleOnSubmit = useCallback(async (values)=>{\n addGa4Event({\n event: 'search',\n event_type: 'availability',\n event_detail: 'packages/traditional'\n });\n const url = await buildUrl(values, BaseUrl, urlSubmit);\n window.location.assign(url);\n }, [\n BaseUrl,\n 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.js';\nimport useSearcherTouForm from '../../hooks/useSearcherTouForm.js';\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, {\n onSubmit: onSubmit,\n defaultValues: defaultValues,\n children: /*#__PURE__*/ jsx(SearcherTouProvider, {\n value: props,\n children: children\n })\n });\n};\n\nexport { SearcherTouForm as default };\n"],"names":["useSearcherTouContextState","originOptions","setOriginOptions","useState","durationOptions","setDurationOptions","calendarData","setCalendarData","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","setValue","useFormContext","useContext","contextBabylon","dateValue","lastCalendarData","useLastValue","lastDateValue","useCallback","newDates","isEqual","_a","date","formatDateWithoutLocale","newDate","getFirstDayValid","_b","useUpdateNights","durationValue","lastDurationOptions","updateDates","currentDurationValue","newDurations","newDuration","finalDuration","item","useUpdateOrigins","originValue","lastOriginOptions","updateNights","currentOriginValue","newOrigins","defaultOriginValue","useUpdateStateData","updateOrigins","prevDestination","usePrevValue","prevOrigin","prevDuration","useEffect","_c","useSearcherTouSideEffects","SearcherTouProvider","useSearcherTouProps","useSearcherTouState","useSearcherTouActions","createFullProvider","useButton","literals","search","hasErrors","handleSubmit","useHandleSubmit","useSearcherTouDefaultValues","flexibility","accomodation","calendar","searchPlaceholderValue","accomodationModalTitle","agesDescription","destinationDefaultValue","originDefaultValue","dateDefaultValue","getValidDates","flexibilityDefaultValue","passengersDefaultValue","_d","_e","_f","_g","_j","_i","_h","_k","_l","_m","_p","_o","_n","_q","_r","_s","_v","_u","_t","_y","_x","_w","_B","_A","_z","getPriceLegend","priceLegend","useDateInput","calendarLabel","offer","defaultValues","DEFAULT_ENDPOINTS","getDestinationTree","queryParams","language","market","filterDestinationTree","text","MIN_LENGTH_TO_SEARCH","agrupationSortByPriority","agrupation","sortByPriority","a","b","cloneDeep","childrenSortByPriority","autocompletePanelTreeSortByPriority","autocomplete","agrupations","featured","filtered","useAutocompletePanel","disabled","tree","filter","initialPanelTree","autocompletePanelTree","setAutocompletePanelTree","isPanelVisible","_","setVisible","useToggle","context","getInitialData","getFilterDestinationTree","newAgrupation","res","name","priority","marked","getFilterDestinationTreeMobile","prev","openPanel","closePanel","useFormAutocompletePanel","_isHiddenRequired","rest","field","error","hasError","label","useInput","useDestinationInput","labelFeatured","labelSuggestions","destinationModalTitle","noResultsText","destinationLabel","required","useDurationInput","durationLabel","accept","useFlexibilityInput","useOriginInput","originLabel","noResults","usePassengersInput","accomodationLabel","defaultValue","requiredPassengersMinAdults","getPassengersParam","value","numberAdutls","n","numberSenior","buildUrl","fieldValues","baseUrl","urlSubmit","passengers","filters","addDays","max","parseFilters","useSearcherTouForm","values","addGa4Event","SearcherTouForm","children","rootProps","onSubmit","jsx","Form"],"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]}