{"version":3,"file":"useZoneInput.DKC67jOf.js","sources":["../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/context/useContextState.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/hooks/useSearcherFerryHotelDefaultValues.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/context/useSideEffects.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/context/index.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/accommodation-input/hooks/useAccommodationInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/button/hooks/useButton.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/utils/utils.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/dates-input/hooks/useDatesInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/destination-input/hooks/useDestinationInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/different-zone-checkbox/hooks/useDifferentZone.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/origin-input/hooks/useOriginInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/constants.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/redirecting-modal/hooks/useRedirectingModal.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/redirecting-modal/index.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/utils/url.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/hooks/useSearcherFerryHotelForm.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/utils/model.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/hooks/useSearcherFerryHotelTransformedProps.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/searcher-form/index.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/vehicle-input/hooks/useVehicleInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-ferry-hotel/components/zone-input/hooks/useZoneInput.js"],"sourcesContent":["import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport useLoading from '../../../../hooks/useLoading.js';\nimport { useState } from 'react';\n\nconst useSearcherFerryHotelContextState = ()=>{\n const [origins, setOrigins] = useState([]);\n const [destinations, setDestinations] = useState([]);\n const [routeData, setRouteData] = useState();\n const { isLoading, doFetchLoading } = useLoading();\n const differentZoneValue = useValue({\n name: 'differentZone'\n });\n return {\n state: {\n origins,\n destinations,\n routeData,\n isLoading,\n differentZoneValue\n },\n actions: {\n setOrigins,\n setDestinations,\n setRouteData,\n doFetchLoading\n }\n };\n};\n\nexport { useSearcherFerryHotelContextState as default };\n","import contextBabylon from '@babylon/ui-kit-context';\nimport { getValidAccommodation } from '@babylon/ui-kit-forms/helpers/accommodation';\nimport { getValidAutocomplete } from '@babylon/ui-kit-forms/helpers/autocomplete';\nimport { getValidDates, addDays } from '@babylon/ui-kit-helpers/date';\nimport { useContext } from 'react';\n\nconst useOriginDefaultValue = (props)=>{\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { originDefault = '' } = literals ?? {};\n return {\n label: originDefault\n };\n};\nconst useDestinationDefaultValue = (props)=>{\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { destinationDefault = '' } = literals ?? {};\n return {\n label: destinationDefault\n };\n};\nconst useCalendarDefaultValue = (props)=>getValidDates(new Date(), addDays(new Date(), 3), props?.dates);\nconst useVehicleDefaultValue = (props)=>{\n const { vehicle } = props ?? {};\n const { items: vehicles } = vehicle ?? {};\n const selectedVehicle = vehicles?.find((vehicle)=>vehicle.selected);\n if (!selectedVehicle) return;\n return {\n label: selectedVehicle?.label,\n value: selectedVehicle?.value,\n caravan: selectedVehicle?.caravan,\n caravanLength: selectedVehicle?.caravanLength,\n caravanHeight: selectedVehicle?.caravanHeight,\n height: selectedVehicle?.height,\n length: selectedVehicle?.length,\n selected: true,\n trailer: selectedVehicle?.trailer\n };\n};\nconst useSearcherFerryHotelDefaultValues = (props)=>({\n originPort: useOriginDefaultValue(props),\n destinationPort: useDestinationDefaultValue(props),\n dates: useCalendarDefaultValue(props),\n accommodation: getValidAccommodation(props?.accommodation),\n vehicle: useVehicleDefaultValue(props),\n isDifferentZone: false,\n zone: getValidAutocomplete(useContext(contextBabylon).Market, props?.zone)\n });\n\nexport { useSearcherFerryHotelDefaultValues as default };\n","import contextBabylon from '@babylon/ui-kit-context';\nimport { getOptionSelected } from '@babylon/ui-kit-forms/helpers/select';\nimport useValueChanged from '@babylon/ui-kit-forms/hooks/useValueChanged';\nimport { getFirstDayValid } from '@babylon/ui-kit-helpers/date';\nimport isEqual from '@babylon/ui-kit-helpers/is-equal';\nimport { getFerryRoute, getFerryPorts } from '../../../../helpers/service/ferries.js';\nimport useConditionalFetchLoading from '../../../../hooks/useConditionalFetchLoading.js';\nimport { useContext, useCallback } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport useSearcherFerryHotelDefaultValues from '../hooks/useSearcherFerryHotelDefaultValues.js';\n\nconst parseDataDiscounts = (items, label = '')=>({\n items: items.map(({ name, type })=>({\n value: type,\n label: name\n })),\n label\n });\n// Update functions\nconst useUpdateDiscounts = ()=>{\n const { getValues, setValue } = useFormContext();\n return useCallback((routeData)=>{\n const discountValue = getValues().discount;\n const residentValue = getValues().resident;\n if (routeData?.discounts) {\n const selectedDiscount = routeData?.discounts?.items?.find((discount)=>String(discount.value) === String(discountValue?.value));\n if (!selectedDiscount) {\n const emptyOption = routeData?.discounts?.items?.find((discount)=>!discount.value || discount.value === '0');\n if (!isEqual(emptyOption, discountValue)) {\n setValue('discount', emptyOption, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }\n }\n }\n if (routeData?.residents) {\n const selectedResident = routeData?.residents?.items?.find((resident)=>String(resident.value) === String(residentValue?.value));\n if (!selectedResident) {\n const emptyOption = routeData?.residents?.items?.find((resident)=>!resident.value || resident.value === '0');\n if (!isEqual(emptyOption, residentValue)) {\n setValue('resident', emptyOption, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }\n }\n }\n }, [\n getValues,\n setValue\n ]);\n};\nconst useUpdateDates = ()=>{\n const { setValue } = useFormContext();\n return useCallback((routeData)=>{\n if (!routeData.outbound_dates?.length || !routeData.return_dates?.length) return;\n const outbound_date = getFirstDayValid(routeData.outbound_dates.map((date)=>date.value), new Date(Date.now() - 86400000), 0 // 0 release days because it's the outbound date\n );\n const return_date = getFirstDayValid(routeData.return_dates.map((date)=>date.value), outbound_date);\n if (!outbound_date || !return_date) return;\n setValue('dates', [\n outbound_date,\n return_date\n ], {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }, [\n setValue\n ]);\n};\nconst useUpdateRouteData = (contextValue)=>{\n const { props: { config }, state: { routeData }, actions: { setRouteData } } = contextValue;\n const { endpoints, literals } = config ?? {};\n const { discountsLabel = '', bonusLabel = '' } = literals ?? {};\n const { BaseUrl, Application } = useContext(contextBabylon);\n const { getValues } = useFormContext();\n const updateDiscounts = useUpdateDiscounts();\n const updateDates = useUpdateDates();\n return useCallback(async ()=>{\n const originValue = getValues().originPort?.value;\n const destinationValue = getValues().destinationPort?.value;\n if (!originValue || !destinationValue) return;\n const newRouteData = await getFerryRoute(endpoints?.route ?? '/packagesalexswc/transportsoperative/ferryroutedata', {\n originValue,\n destinationValue\n }, {\n BaseUrl,\n Application\n });\n if (newRouteData?.result !== 'OK' || !newRouteData?.data) return;\n const newRouteDataParsed = {\n ...newRouteData.data,\n discounts: newRouteData.data.discounts && parseDataDiscounts(newRouteData.data.discounts, discountsLabel),\n residents: newRouteData.data.residents && parseDataDiscounts(newRouteData.data.residents, bonusLabel)\n };\n if (isEqual(newRouteDataParsed, routeData)) return;\n setRouteData(newRouteDataParsed);\n updateDiscounts(newRouteDataParsed);\n updateDates(newRouteDataParsed);\n }, [\n Application,\n BaseUrl,\n bonusLabel,\n discountsLabel,\n endpoints?.route,\n getValues,\n routeData,\n setRouteData,\n updateDates,\n updateDiscounts\n ]);\n};\nconst useUpdateDestinations = (contextValue)=>{\n const { props: { config, destinationPort }, state: { destinations }, actions: { setDestinations } } = contextValue;\n const { endpoints } = config ?? {};\n const { BaseUrl, Application } = useContext(contextBabylon);\n const { getValues, setValue } = useFormContext();\n const updateRouteData = useUpdateRouteData(contextValue);\n const defaultValue = useSearcherFerryHotelDefaultValues(contextValue.props).destinationPort;\n return useCallback(async ()=>{\n const originValue = getValues().originPort?.value;\n if (!originValue) return;\n const destinationValue = getValues().destinationPort?.value;\n const newDestinations = await getFerryPorts(endpoints?.ports, {\n originValue\n }, {\n BaseUrl,\n Application\n });\n if (newDestinations?.locations && !isEqual(newDestinations?.locations, destinations)) {\n setDestinations(newDestinations.locations);\n if (!destinationValue && destinationPort) {\n const newDestination = getOptionSelected(newDestinations.locations, destinationPort);\n if (newDestination?.value) {\n setValue('destinationPort', newDestination, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }\n }\n if (destinationValue && !getOptionSelected(newDestinations.locations, destinationValue)) {\n const newDestination = newDestinations.locations[0] ?? defaultValue;\n setValue('destinationPort', newDestination, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }\n }\n await updateRouteData();\n }, [\n Application,\n BaseUrl,\n defaultValue,\n destinationPort,\n destinations,\n endpoints?.ports,\n getValues,\n setDestinations,\n setValue,\n updateRouteData\n ]);\n};\nconst useUpdateOrigins = (contextValue)=>{\n const { props: { config, originPort }, actions: { setOrigins } } = contextValue;\n const { endpoints } = config ?? {};\n const { BaseUrl, Application } = useContext(contextBabylon);\n const { getValues, setValue } = useFormContext();\n const updateDestinations = useUpdateDestinations(contextValue);\n return useCallback(async ()=>{\n const originValue = getValues().originPort?.value;\n const newOrigins = await getFerryPorts(endpoints?.ports, {}, {\n BaseUrl,\n Application\n });\n if (newOrigins?.locations?.length) {\n setOrigins(newOrigins.locations);\n if (!originValue && originPort) {\n const newOrigin = getOptionSelected(newOrigins.locations, originPort);\n if (newOrigin?.value) setValue('originPort', newOrigin, {\n shouldValidate: true,\n shouldDirty: true,\n shouldTouch: true\n });\n }\n }\n await updateDestinations();\n }, [\n Application,\n BaseUrl,\n endpoints?.ports,\n getValues,\n originPort,\n setOrigins,\n setValue,\n updateDestinations\n ]);\n};\nconst useSearcherFerryHotelSideEffects = (contextValue)=>{\n const { state: { origins, destinations, routeData }, actions: { doFetchLoading } } = contextValue;\n const originChanged = useValueChanged('originPort.value');\n const destinationChanged = useValueChanged('destinationPort.value');\n useConditionalFetchLoading(doFetchLoading, [\n {\n enabled: !origins?.length,\n function: useUpdateOrigins(contextValue)\n },\n {\n enabled: originChanged || !destinations?.length,\n function: useUpdateDestinations(contextValue)\n },\n {\n enabled: destinationChanged || !routeData,\n function: useUpdateRouteData(contextValue)\n }\n ]);\n};\n\nexport { useSearcherFerryHotelSideEffects as default };\n","import { createFullProvider } from '@babylon/ui-kit-helpers/context';\nimport useSearcherFerryHotelContextState from './useContextState.js';\nimport useSearcherFerryHotelSideEffects from './useSideEffects.js';\n\nconst { Provider: SearcherFerryHotelProvider, useContextProps: useSearcherFerryHotelProps, useContextState: useSearcherFerryHotelState, useContextActions: useSearcherFerryHotelActions } = createFullProvider({\n useState: useSearcherFerryHotelContextState,\n useSideEffects: useSearcherFerryHotelSideEffects\n});\n\nexport { SearcherFerryHotelProvider, useSearcherFerryHotelActions, useSearcherFerryHotelProps, useSearcherFerryHotelState };\n","import useSearcherAccommodation from '../../../../../../hooks/inputs/useSearcherAccommodation.js';\nimport { useSearcherFerryHotelProps, useSearcherFerryHotelState } from '../../../context/index.js';\nimport useSearcherFerryHotelDefaultValues from '../../../hooks/useSearcherFerryHotelDefaultValues.js';\n\nconst useAccommodationInput = ()=>{\n const props = useSearcherFerryHotelProps();\n const { config, accommodation } = props;\n const { literals } = config ?? {};\n const { routeData } = useSearcherFerryHotelState();\n return useSearcherAccommodation({\n name: 'accommodation',\n label: literals?.accommodationLabel,\n defaultValue: useSearcherFerryHotelDefaultValues(props).accommodation,\n discounts: routeData?.discounts,\n residents: routeData?.residents,\n literals\n }, accommodation);\n};\n\nexport { useAccommodationInput as default };\n","import { useSearcherFerryHotelProps, useSearcherFerryHotelState } from '../../../context/index.js';\n\nconst useButton = ()=>{\n const { config } = useSearcherFerryHotelProps();\n const { literals } = config ?? {};\n const { isLoading } = useSearcherFerryHotelState();\n return {\n variant: 'adaptive',\n disabled: isLoading,\n literals\n };\n};\n\nexport { useButton as default };\n","// change between outbound and return dates on the calendar\nfunction getEnableDates(calendarDates, outboundDates, returnDates) {\n if (calendarDates?.length == 2 && outboundDates?.length && outboundDates?.length > 0) {\n return outboundDates;\n } else if (returnDates?.length && returnDates?.length > 0) {\n return returnDates;\n }\n return undefined;\n}\n// for outbound date, min date is today\n// for return date, min date is the day selected\nfunction getMinDate(calendarDates) {\n if (calendarDates && calendarDates.length == 2) {\n return new Date(new Date().setDate(new Date().getDate() - 1));\n } else if (calendarDates) {\n return calendarDates[0];\n }\n return new Date();\n}\n\nexport { getEnableDates, getMinDate };\n","import { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useSearcherFerryHotelProps, useSearcherFerryHotelState } from '../../../context/index.js';\nimport useSearcherFerryHotelDefaultValues from '../../../hooks/useSearcherFerryHotelDefaultValues.js';\nimport { getEnableDates } from '../../../utils/utils.js';\n\nconst useDatesInput = ()=>{\n const props = useSearcherFerryHotelProps();\n const { dates } = props;\n const { routeData, isLoading } = useSearcherFerryHotelState();\n const originPortValue = useValue({\n name: 'originPort'\n });\n const destinationPortValue = useValue({\n name: 'destinationPort'\n });\n const datesValue = useValue({\n name: 'dates'\n });\n const datesCheckIn = routeData?.outbound_dates?.map((date)=>date.value);\n const datesCheckOut = routeData?.return_dates?.map((date)=>date.value);\n return {\n name: 'dates',\n disabled: isLoading || !originPortValue?.value || !destinationPortValue?.value,\n defaultValue: useSearcherFerryHotelDefaultValues(props).dates,\n validate: required(),\n minDate: props?.dates?.minDate ?? 'today',\n maxDate: props?.dates?.maxDate,\n enableDates: getEnableDates(datesValue, datesCheckIn, datesCheckOut),\n releaseDays: dates?.releaseDays ?? 1,\n checkIn: datesCheckIn,\n checkOut: datesCheckOut,\n disablePrevDays: true\n };\n};\n\nexport { useDatesInput as default };\n","import { groupByHighlight } from '@babylon/ui-kit-forms/helpers/select';\nimport { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport { useSearcherFerryHotelProps, useSearcherFerryHotelState } from '../../../context/index.js';\nimport useSearcherFerryHotelDefaultValues from '../../../hooks/useSearcherFerryHotelDefaultValues.js';\n\nconst useDestinationInput = ()=>{\n const props = useSearcherFerryHotelProps();\n const { config } = props;\n const { literals } = config ?? {};\n const { isLoading, destinations } = useSearcherFerryHotelState();\n return {\n name: 'destinationPort',\n noResultsText: literals?.noResults,\n searchText: literals?.searchPlaceholderValue,\n placeholder: literals?.destinationLabel,\n options: groupByHighlight({\n values: destinations,\n featuredOptionsText: literals?.frequentPorts ?? '',\n otherOptionsText: literals?.otherPorts ?? ''\n }),\n defaultValue: useSearcherFerryHotelDefaultValues(props).destinationPort,\n enableSearch: true,\n isHiddenRequired: true,\n validate: required(),\n isDisabled: !!isLoading || !destinations?.length\n };\n};\n\nexport { useDestinationInput as default };\n","import { useSearcherFerryHotelProps } from '../../../context/index.js';\nimport useSearcherFerryHotelDefaultValues from '../../../hooks/useSearcherFerryHotelDefaultValues.js';\n\nconst useDifferentZoneCheckbox = ()=>{\n const props = useSearcherFerryHotelProps();\n const { config } = props;\n const { literals } = config ?? {};\n const { differentZoneLabel } = literals ?? {};\n return {\n name: 'differentZone',\n defaultValue: useSearcherFerryHotelDefaultValues(props).isDifferentZone,\n label: differentZoneLabel\n };\n};\n\nexport { useDifferentZoneCheckbox as default };\n","import { groupByHighlight } from '@babylon/ui-kit-forms/helpers/select';\nimport { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport { useSearcherFerryHotelProps, useSearcherFerryHotelState } from '../../../context/index.js';\nimport useSearcherFerryHotelDefaultValues from '../../../hooks/useSearcherFerryHotelDefaultValues.js';\n\nconst useOriginInput = ()=>{\n const props = useSearcherFerryHotelProps();\n const { config } = props;\n const { literals } = config ?? {};\n const { isLoading, origins } = useSearcherFerryHotelState();\n return {\n name: 'originPort',\n noResultsText: literals?.noResults,\n searchText: literals?.searchPlaceholderValue,\n placeholder: literals?.originLabel,\n options: groupByHighlight({\n values: origins,\n featuredOptionsText: literals?.frequentPorts ?? '',\n otherOptionsText: literals?.otherPorts ?? ''\n }),\n defaultValue: useSearcherFerryHotelDefaultValues(props).originPort,\n enableSearch: true,\n isHiddenRequired: true,\n validate: required(),\n isDisabled: isLoading\n };\n};\n\nexport { useOriginInput as default };\n","const DEFAULT_LOADER_IMAGE = '/comun/images/lineas/ferries_800x600.jpg';\n\nexport { DEFAULT_LOADER_IMAGE };\n","import { useFormContext } from 'react-hook-form';\nimport { DEFAULT_LOADER_IMAGE } from '../../../constants.js';\nimport { useSearcherFerryHotelProps } from '../../../context/index.js';\n\nconst useRedirectingModal = ()=>{\n const { config, loadingImage = DEFAULT_LOADER_IMAGE } = useSearcherFerryHotelProps();\n const { literals } = config ?? {};\n const values = useFormContext().getValues();\n return {\n visible: true,\n literals: literals,\n origin: values.originPort,\n destination: values.destinationPort,\n dates: values.dates,\n accommodation: values.accommodation,\n loadingImage: loadingImage\n };\n};\n\nexport { useRedirectingModal as default };\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherRedirectingModal from '../../../../others/searcher/redirecting-modal/index.js';\nimport useRedirectingModal from './hooks/useRedirectingModal.js';\n\nconst SearcherFerryHotelRedirectingModal = ()=>/*#__PURE__*/ jsx(SearcherRedirectingModal, {\n ...useRedirectingModal()\n });\n\nexport { SearcherFerryHotelRedirectingModal as default };\n","import { formatDate } from '@babylon/ui-kit-helpers/date';\nimport { parseFilters } from '@babylon/ui-kit-helpers/url';\nimport { getTypeValue } from '../../../../helpers/model/autocomplete.js';\n\nfunction getVehicleParameters(vehicle) {\n if (!vehicle) return {};\n return {\n tipoVehiculoFER: vehicle.value,\n alturaVehiculoFER: vehicle.height,\n longitudVehiculoFER: vehicle.length,\n tipoRemolqueFER: vehicle.caravan ? 1 : 0,\n alturaRemolqueFER: vehicle.caravanHeight,\n longitudRemolqueFER: vehicle.caravanLength\n };\n}\nfunction buildTotalPeople(accommodation) {\n const { rooms = [] } = accommodation;\n return rooms.map((room)=>(room.adults ?? 0) + (room.children ?? 0)).reduce((a, acc)=>a + acc);\n}\nfunction getRoomAdults(rooms, index) {\n const adultsRooms = rooms.map((room)=>room.adults ?? 0).map((cc)=>[\n ...Array(cc)\n ].fill('30%23').reduce((acc, val)=>acc + val));\n return adultsRooms[index] ?? '';\n}\nfunction getRoomChildren(room, defaultAge = 7) {\n if (!room) return '';\n const { children } = room;\n if (!children || children < 1) return '';\n if (!room.childrenAges?.length) room.childrenAges = [];\n if (room.childrenAges.length > children) {\n room.childrenAges = room.childrenAges.slice(0, children);\n }\n if (room.childrenAges.length < children) {\n room.childrenAges = [\n ...room.childrenAges,\n ...new Array(children - room.childrenAges.length).fill(defaultAge)\n ];\n }\n return room.childrenAges.map((age)=>''.concat(age.toString(), '%23')).join('');\n}\nfunction getEdad(accommodation, index) {\n if (!accommodation.rooms) return '';\n return getRoomAdults(accommodation.rooms, index) + getRoomChildren(accommodation.rooms[index], accommodation.children?.defaultAge);\n}\nfunction getAccommodationParameters(accommodation) {\n if (!accommodation) return {};\n const edad1 = getEdad(accommodation, 0);\n const edad2 = getEdad(accommodation, 1);\n const edad3 = getEdad(accommodation, 2);\n const edad4 = getEdad(accommodation, 3);\n return {\n roomPax: buildTotalPeople(accommodation),\n numPaxFER: buildTotalPeople(accommodation),\n edad1,\n edad2,\n edad3,\n edad4,\n listaPaxEdadesFER: `${edad1}${edad2}${edad3}${edad4}`\n };\n}\n/* Build url */ async function buildUrl(fieldValues, baseUrl, urlSubmit, params) {\n const { accommodation, dates, discount, resident, destinationPort, originPort, vehicle, destinationZone } = fieldValues;\n let finalUrl = urlSubmit;\n if (!finalUrl.startsWith('http')) finalUrl = `${baseUrl}${urlSubmit}`;\n const filters = {\n PuertoOrigenFER: originPort?.value,\n PuertoDestinoFER: destinationPort?.value,\n fechaIdaFER: dates?.[0] ? await formatDate(dates?.[0], 'D/M/YYYY') : '',\n fechaVueltaFER: dates?.[1] ? await formatDate(dates?.[1], 'D/M/YYYY') : '',\n ...getVehicleParameters(vehicle),\n ...getAccommodationParameters(accommodation),\n tipoDescuentoFER: discount?.value ?? 0,\n tipoResidenteFER: resident?.value ?? 0,\n soloIdaFER: 0,\n destinationType: getTypeValue(destinationZone).type,\n destinationCode: getTypeValue(destinationZone).value,\n ...params\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 useSubmitWithRedirect from '../../../../hooks/submit/useSubmitWithRedirect.js';\nimport { useContext } from 'react';\nimport { buildUrl } from '../utils/url.js';\nimport useSearcherFerryHotelDefaultValues from './useSearcherFerryHotelDefaultValues.js';\n\nconst useSearcherFerryHotelForm = (props)=>{\n const { config } = props ?? {};\n const { params, urlSubmit = '' } = config ?? {};\n const { BaseUrl } = useContext(contextBabylon);\n const { onSubmit, isRedirecting, setRedirecting } = useSubmitWithRedirect(async (values)=>{\n addGa4Event({\n event: 'search',\n event_type: 'availability',\n event_detail: 'packages/dynamic/ferry-hotel'\n });\n const url = await buildUrl(values, BaseUrl, urlSubmit, params);\n window.location.assign(url);\n });\n return {\n onSubmit,\n isRedirecting,\n setRedirecting,\n defaultValues: useSearcherFerryHotelDefaultValues(props)\n };\n};\n\nexport { useSearcherFerryHotelForm as default };\n","import { getAccommodation, getAccommodationLiteralsFromOldData } from '../../../../helpers/model/accommodation.js';\nimport { getNewTypeFromOldData } from '../../../../helpers/model/autocomplete.js';\nimport _get from 'lodash/get.js';\n\nconst getConfig = (oldModel)=>{\n const accommodationLiterals = getAccommodationLiteralsFromOldData(oldModel);\n const config = {\n literals: {\n ...accommodationLiterals,\n originLabel: _get(oldModel, 'location.items[0].label.content', ''),\n destinationLabel: _get(oldModel, 'location.items[1].label.content', ''),\n calendarLabel: _get(oldModel, 'calendar.input.label.content', ''),\n loadingTitle: _get(oldModel, 'loading.Body.Loading.title.content', ''),\n loadingMessage: _get(oldModel, 'loading.Body.Loading.message.content', ''),\n submit: _get(oldModel, 'submit.content', ''),\n checkInLabel: _get(oldModel, 'calendar.input.label.content', ''),\n checkIn: _get(oldModel, 'calendar.literals.origin', _get(oldModel, 'calendar.input.label.content', '')),\n checkOut: _get(oldModel, 'calendar.literals.destination', ''),\n vehicleLabel: _get(oldModel, 'vehicle.input.label.content', ''),\n originDefault: _get(oldModel, 'location.items[0].config.data.items[0].label', ''),\n destinationDefault: _get(oldModel, 'location.items[1].config.data.items[0].label', ''),\n frequentPorts: _get(oldModel, 'location.literals.frequentPorts', ''),\n otherPorts: _get(oldModel, 'location.literals.otherPorts', ''),\n searchPlaceholderValue: _get(oldModel, 'location.literals.placeholderSelect', _get(oldModel, 'location.literals.searcherPorts', '')),\n noResults: '',\n vehicleTitle: _get(oldModel, 'vehicle.panel.Body.vehicle.title', ''),\n units: '',\n heightLabel: _get(oldModel, 'vehicle.panel.Body.vehicle.height.label.content', ''),\n lengthLabel: _get(oldModel, 'vehicle.panel.Body.vehicle.length.label.content', ''),\n trailerLabel: _get(oldModel, 'vehicle.panel.Body.vehicle.extra.toggle.label.content', ''),\n trailerInfo: '',\n trailer: '',\n messageInfo: '',\n errorVehicleDimensions: '',\n errorTrailerDimensions: '',\n accept: _get(oldModel, 'calendar.literals.modalFooterSubmit', _get(oldModel, 'location.literals.modalFooterSubmit', _get(oldModel, 'vehicle.panel.Footer.action.items[0].content', accommodationLiterals.accept))),\n noResultsText: '',\n locationLabel: _get(oldModel, 'location.literals.modalHeaderTitle', ''),\n zoneLabel: _get(oldModel, 'zone.config.literals.zoneLabel', ''),\n zoneTitle: _get(oldModel, 'zone.config.literals.zoneTitle', ''),\n differentZoneLabel: _get(oldModel, 'zone.config.literals.differentZoneLabel', '')\n },\n endpoints: {\n route: '/packagesalexswc/transportsoperative/ferryroutedata',\n ports: '/ferriesShowcase/Shima/GetPorts'\n },\n urlSubmit: _get(oldModel, 'submit.url', '/packagesasyncstepssp/AvailabilityMaterial/'),\n onModal: _get(oldModel, 'config.onModal', false),\n hideDestination: _get(oldModel, 'config.hideDestination', false),\n params: {\n ProductType: 'FerryHotel'\n }\n };\n return config;\n};\nconst getDates = (oldModel)=>{\n const defaultDates = _get(oldModel, 'calendar.config.data.defaultDates', []);\n const dates = {\n startDate: defaultDates[0],\n endDate: defaultDates[1],\n minDate: 'today',\n sameDay: true,\n releaseDays: _get(oldModel, 'calendar.config.data.releaseDays', 1)\n };\n return dates;\n};\nconst getVehicle = (oldModel)=>({\n items: _get(oldModel, 'vehicle.panel.Body.vehicle.product.config.data.items', []).map((item)=>{\n const value = item.value ? parseInt(item.value) : item.value ?? 0;\n return {\n value: value,\n label: item.label ?? '',\n length: value ? _get(oldModel, 'vehicle.panel.Body.vehicle.length.config.data.value') : undefined,\n height: value ? _get(oldModel, 'vehicle.panel.Body.vehicle.height.config.data.value') : undefined,\n selected: false,\n trailer: !!value\n };\n })\n });\nconst getOriginPort = (oldModel)=>{\n const items = _get(oldModel, 'location.items[0].config.data.items', []);\n return items[0]?.selected ? items[0].value : items[1]?.choices?.find((item)=>item.selected)?.value ?? items[2]?.choices?.find((item)=>item.selected)?.value ?? -1;\n};\nconst getDestinationPort = (oldModel)=>{\n const items = _get(oldModel, 'location.items[1].config.data.items', []);\n return items[0]?.selected ? items[0].value : items[1]?.choices?.find((item)=>item.selected)?.value ?? items[2]?.choices?.find((item)=>item.selected)?.value ?? -1;\n};\nconst getZonePort = (oldModel)=>{\n const zoneTypes = _get(oldModel, 'zone.value.types', [\n 'island',\n 'city',\n 'zone',\n 'hotel'\n ]);\n const zone = {\n value: _get(oldModel, 'zone.value.value'),\n text: _get(oldModel, 'zone.value.text'),\n type: getNewTypeFromOldData(_get(oldModel, 'zone.value.type', zoneTypes[0])),\n icon: _get(oldModel, 'zone.value.icon'),\n types: zoneTypes ? zoneTypes.map((oldType)=>getNewTypeFromOldData(oldType) ?? oldType) : [\n 'ISL',\n 'CIU',\n 'ZON',\n 'HOT'\n ],\n limit: _get(oldModel, 'zone.value.limit', 20)\n };\n return zone;\n};\nconst transformOldModelToNewModel = (oldModel)=>({\n config: getConfig(oldModel),\n originPort: getOriginPort(oldModel),\n destinationPort: getDestinationPort(oldModel),\n zone: getZonePort(oldModel),\n dates: getDates(oldModel),\n accommodation: getAccommodation(oldModel),\n vehicle: getVehicle(oldModel)\n });\nconst transformOldModelToNewModelDesktop = (oldModel)=>transformOldModelToNewModel(oldModel);\nconst transformOldModelToNewModelMobile = (oldModel)=>transformOldModelToNewModel(oldModel);\nconst getTransformedPropsIfNeeded = (props)=>{\n if (props?.config && 'literals' in props.config) return props;\n return transformOldModelToNewModelDesktop(props);\n};\nconst getTransformedPropsIfNeededMobile = (props)=>{\n if (props?.config && 'literals' in props.config) return props;\n return transformOldModelToNewModelMobile(props);\n};\n\nexport { getDestinationPort, getOriginPort, getTransformedPropsIfNeeded, getTransformedPropsIfNeededMobile, getVehicle, getZonePort, transformOldModelToNewModel, transformOldModelToNewModelDesktop, transformOldModelToNewModelMobile };\n","import useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\nimport { getTransformedPropsIfNeededMobile, getTransformedPropsIfNeeded } from '../utils/model.js';\n\nconst useSearcherFerryHotelTransformedProps = (rootProps)=>{\n const props = 'data' in rootProps ? rootProps.data : rootProps.props;\n if (useIsMobile()) return getTransformedPropsIfNeededMobile(props);\n return getTransformedPropsIfNeeded(props);\n};\n\nexport { useSearcherFerryHotelTransformedProps as default };\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Form from '@babylon/ui-kit-forms/components/others/form';\nimport { Suspense } from 'react';\nimport SearcherFerryHotelRedirectingModal from '../redirecting-modal/index.js';\nimport { SearcherFerryHotelProvider } from '../../context/index.js';\nimport useSearcherFerryHotelForm from '../../hooks/useSearcherFerryHotelForm.js';\nimport useSearcherFerryHotelTransformedProps from '../../hooks/useSearcherFerryHotelTransformedProps.js';\n\nconst SearcherFerryHotelForm = ({ children, ...rootProps })=>{\n const props = useSearcherFerryHotelTransformedProps(rootProps);\n const { isRedirecting, defaultValues, onSubmit } = useSearcherFerryHotelForm(props);\n return /*#__PURE__*/ jsx(Form, {\n onSubmit: onSubmit,\n defaultValues: defaultValues,\n children: /*#__PURE__*/ jsxs(SearcherFerryHotelProvider, {\n value: props,\n children: [\n children,\n /*#__PURE__*/ jsx(Suspense, {\n fallback: null,\n children: isRedirecting && /*#__PURE__*/ jsx(SearcherFerryHotelRedirectingModal, {})\n })\n ]\n })\n });\n};\n\nexport { SearcherFerryHotelForm as default };\n","import { useSearcherFerryHotelProps } from '../../../context/index.js';\nimport useSearcherFerryHotelDefaultValues from '../../../hooks/useSearcherFerryHotelDefaultValues.js';\n\nconst useVehicleInput = ()=>{\n const props = useSearcherFerryHotelProps();\n const { config, vehicle } = props;\n const { literals } = config ?? {};\n return {\n name: 'vehicle',\n defaultValue: useSearcherFerryHotelDefaultValues(props).vehicle,\n data: {\n items: vehicle?.items ?? [],\n config: {\n literals\n },\n title: literals?.vehicleTitle ?? literals?.vehicleLabel\n }\n };\n};\n\nexport { useVehicleInput as default };\n","import { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport { useSearcherAutocompleteDestination } from '../../../../../../hooks/inputs/useSearcherAutocomplete.js';\nimport { useSearcherFerryHotelProps, useSearcherFerryHotelState } from '../../../context/index.js';\nimport useSearcherFerryHotelDefaultValues from '../../../hooks/useSearcherFerryHotelDefaultValues.js';\n\nconst useZoneInput = ()=>{\n const props = useSearcherFerryHotelProps();\n const { zone, config } = props;\n const { literals } = config ?? {};\n const { isLoading, differentZoneValue } = useSearcherFerryHotelState();\n return useSearcherAutocompleteDestination({\n name: 'destinationZone',\n literals: {\n ...literals,\n modalTitle: literals?.zoneTitle\n },\n disabled: isLoading,\n label: literals?.zoneLabel ?? '',\n defaultValue: useSearcherFerryHotelDefaultValues(props).zone,\n queryParams: {\n p: zone?.operator?.toLowerCase() ?? 'or',\n o: zone?.codes?.join(',') ?? 'PAK',\n n: zone?.limit ?? 20\n },\n validate: differentZoneValue ? undefined : required()\n }, {\n types: [\n 'ISL',\n 'CIU',\n 'ZON',\n 'HOT'\n ],\n ...zone\n });\n};\n\nexport { useZoneInput as default };\n"],"names":["useSearcherFerryHotelContextState","origins","setOrigins","useState","destinations","setDestinations","routeData","setRouteData","isLoading","doFetchLoading","useLoading","differentZoneValue","useValue","useOriginDefaultValue","props","config","literals","originDefault","useDestinationDefaultValue","destinationDefault","useCalendarDefaultValue","getValidDates","addDays","useVehicleDefaultValue","vehicle","vehicles","selectedVehicle","useSearcherFerryHotelDefaultValues","getValidAccommodation","getValidAutocomplete","useContext","contextBabylon","parseDataDiscounts","items","label","name","type","useUpdateDiscounts","getValues","setValue","useFormContext","useCallback","discountValue","residentValue","_b","_a","discount","emptyOption","_d","_c","isEqual","_f","_e","resident","_h","_g","useUpdateDates","outbound_date","getFirstDayValid","date","return_date","useUpdateRouteData","contextValue","endpoints","discountsLabel","bonusLabel","BaseUrl","Application","updateDiscounts","updateDates","originValue","destinationValue","newRouteData","getFerryRoute","newRouteDataParsed","useUpdateDestinations","destinationPort","updateRouteData","defaultValue","newDestinations","getFerryPorts","newDestination","getOptionSelected","useUpdateOrigins","originPort","updateDestinations","newOrigins","newOrigin","useSearcherFerryHotelSideEffects","originChanged","useValueChanged","destinationChanged","useConditionalFetchLoading","SearcherFerryHotelProvider","useSearcherFerryHotelProps","useSearcherFerryHotelState","useSearcherFerryHotelActions","createFullProvider","useAccommodationInput","accommodation","useSearcherAccommodation","useButton","getEnableDates","calendarDates","outboundDates","returnDates","useDatesInput","dates","originPortValue","destinationPortValue","datesValue","datesCheckIn","datesCheckOut","required","useDestinationInput","groupByHighlight","useDifferentZoneCheckbox","differentZoneLabel","useOriginInput","DEFAULT_LOADER_IMAGE","useRedirectingModal","loadingImage","values","SearcherFerryHotelRedirectingModal","jsx","SearcherRedirectingModal","getVehicleParameters","buildTotalPeople","rooms","room","a","acc","getRoomAdults","index","cc","val","getRoomChildren","defaultAge","children","age","getEdad","getAccommodationParameters","edad1","edad2","edad3","edad4","buildUrl","fieldValues","baseUrl","urlSubmit","params","destinationZone","finalUrl","filters","formatDate","getTypeValue","parseFilters","useSearcherFerryHotelForm","onSubmit","isRedirecting","setRedirecting","useSubmitWithRedirect","addGa4Event","url","getConfig","oldModel","accommodationLiterals","getAccommodationLiteralsFromOldData","_get","getDates","defaultDates","getVehicle","item","value","getOriginPort","getDestinationPort","getZonePort","zoneTypes","getNewTypeFromOldData","oldType","transformOldModelToNewModel","getAccommodation","transformOldModelToNewModelDesktop","transformOldModelToNewModelMobile","getTransformedPropsIfNeeded","getTransformedPropsIfNeededMobile","useSearcherFerryHotelTransformedProps","rootProps","useIsMobile","SearcherFerryHotelForm","defaultValues","Form","jsxs","Suspense","useVehicleInput","useZoneInput","zone","useSearcherAutocompleteDestination"],"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]}