{"version":3,"mappings":"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","names":["useSearcherTrainHotelContextState","discounts","setDiscounts","useState","discountsCallErrorLock","useRef","originValue","useValue","destinationValue","isLoading","doFetchLoading","useLoading","useMemo","getApplicableDiscounts","url","origin","destination","BaseUrl","Language","Application","finalUrl","filters","getTypeValue","response","parseFilters","discountConverter","data","item","useSearcherTrainHotelSideEffects","contextValue","props","state","actions","config","hideDestination","endpoints","callLocks","setValue","useFormContext","useContext","contextBabylon","prevDestination","usePrevValue","lastPrevDestination","useLastValue","prevOrigin","lastPrevOrigin","useEffect","lastDiscounts","discountsLock","_a","_b","updatedDiscounts","isEqual","SearcherTrainHotelProvider","useSearcherTrainHotelProps","useSearcherTrainHotelState","useSearcherTrainHotelActions","createFullProvider","useSearcherTrainHotelDefaultValues","dates","accommodation","Market","originDefaultValue","getValidAutocomplete","destinationDefaultValue","datesDefaultValue","getValidDates","addDays","accommodationDefaultValue","getValidAccommodation","discountsDefaultValue","getValidOption","useAccommodationInput","literals","defaultValues","getValidFormAccommodationProps","useButton","submit","hasErrors","handleSubmit","useHandleSubmit","useDatesInput","required","useDestinationInput","useDestinationInput$1","useOriginInput","useOriginInput$1","getAccommodationParam","adults","childrenAges","adultsValues","acc","val","childrenParam","c","value","type","buildUrl","fieldValues","baseUrl","params","discount","formatDate","useSearcherTrainHotelForm","urlSubmit","onSubmit","isRedirecting","setRedirecting","useSubmitWithRedirect","values","addGa4Event","oldTypeToNewType","getConfig","oldModel","accommodationLiterals","getAccommodationLiteralsFromOldData","_get","getOrigin","originTypes","getDestination","destinationTypes","getDates","defaultDates","transformOldModelToNewModel","getAccommodation","transformOldModelToNewModelDesktop","transformOldModelToNewModelMobile","getTransformedPropsIfNeeded","getTransformedPropsIfNeededMobile","useSearcherTrainHotelTransformedProps","rootProps","useIsMobile","SearcherTrainHotelRedirectingModal","lazy","__vitePreload","SearcherTrainHotelForm","children","jsx","Form","jsxs","Suspense"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"sources":["../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/context/useContextState.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/service.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/utils/discountConverter.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/context/useSideEffects.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/context/index.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/hooks/useSearcherTrainHotelDefaultValues.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/components/accommodation-input/hooks/useAccommodationInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/components/button/hooks/useButton.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/components/dates-input/hooks/useDatesInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/components/destination-input/hooks/useDestinationInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/components/origin-input/hooks/useOriginInput.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/utils/url.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/hooks/useSearcherTrainHotelForm.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/utils/model.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/hooks/useSearcherTrainHotelTransformedProps.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/searchers/searcher-train-hotel/components/searcher-form/index.js"],"sourcesContent":["import useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useState, useRef, useMemo } from 'react';\nimport useLoading from '../../../../hooks/useLoading.js';\n\nconst useSearcherTrainHotelContextState = ()=>{\n const [discounts, setDiscounts] = useState([]);\n const discountsCallErrorLock = useRef(false);\n const originValue = useValue({\n name: 'origin'\n });\n const destinationValue = useValue({\n name: 'destination'\n });\n const { isLoading, doFetchLoading } = useLoading(!!originValue?.id && !!destinationValue?.id);\n return useMemo(()=>({\n state: {\n isLoading,\n discounts,\n callLocks: {\n discountsCallErrorLock\n }\n },\n actions: {\n setDiscounts,\n doFetchLoading\n }\n }), [\n discounts,\n doFetchLoading,\n isLoading\n ]);\n};\n\nexport { useSearcherTrainHotelContextState as default };\n","import { parseFilters } from '@babylon/ui-kit-helpers/url';\nimport { getTypeValue } from '../../../helpers/index.js';\n\nconst getApplicableDiscounts = async (url = '/packagesalexswc/AjaxServices/ApplicableDiscounts/', { origin, destination } = {}, { BaseUrl, Language, Application } = {})=>{\n if (!origin?.value || !destination?.value || !BaseUrl || !Language || !Application) return;\n let finalUrl = url;\n if (!url.startsWith('http')) finalUrl = `${BaseUrl}${url}`;\n const filters = {\n ori: origin.value,\n dest: getTypeValue(destination).value,\n type: getTypeValue(destination).type,\n lang: Language.toLowerCase(),\n app: Application,\n productType: 'train'\n };\n const response = await fetch(`${finalUrl}?${parseFilters(filters)}`);\n if (!response.ok) throw new Error('Error getting applicable discounts');\n const data = await response.json().catch(()=>{\n throw new Error('Error parsing applicable discounts');\n });\n return data;\n};\n\nexport { getApplicableDiscounts };\n","const discountConverter = (data)=>data.map((item)=>({\n label: item.name,\n value: item.type\n }));\n\nexport { discountConverter as default, discountConverter };\n","import contextBabylon from '@babylon/ui-kit-context';\nimport useValue from '@babylon/ui-kit-forms/hooks/useValue';\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 { useContext, useEffect, useRef } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { getApplicableDiscounts } from '../service.js';\nimport { discountConverter } from '../utils/discountConverter.js';\n\nconst useSearcherTrainHotelSideEffects = (contextValue)=>{\n const { props, state, actions } = contextValue;\n const { config, destination } = props ?? {};\n const { hideDestination = false, endpoints } = config ?? {};\n const { discounts, callLocks } = state ?? {};\n const { discountsCallErrorLock } = callLocks ?? {};\n const { setDiscounts, doFetchLoading } = actions ?? {};\n const { setValue } = useFormContext();\n const { BaseUrl, Language, Application } = useContext(contextBabylon);\n const originValue = useValue({\n name: 'origin'\n });\n const destinationValue = useValue({\n name: 'destination'\n });\n const prevDestination = usePrevValue(destinationValue);\n const lastPrevDestination = useLastValue(prevDestination);\n const prevOrigin = usePrevValue(originValue);\n const lastPrevOrigin = useLastValue(prevOrigin);\n useEffect(()=>{\n if (hideDestination && destination) {\n setValue('destination', destination);\n }\n }, [\n destination,\n hideDestination,\n setValue\n ]);\n const lastDiscounts = useLastValue(discounts);\n const discountsLock = useRef(false);\n useEffect(()=>{\n if (!discountsCallErrorLock) return;\n if (lastPrevOrigin.current?.value !== originValue?.value || lastPrevDestination.current?.value !== destinationValue?.value) {\n discountsLock.current = false;\n discountsCallErrorLock.current = false;\n }\n const updateDiscounts = async ()=>{\n if (!originValue?.value || !destinationValue?.value || !destinationValue?.type || !setDiscounts || !doFetchLoading || discountsCallErrorLock.current || discountsLock.current) {\n return;\n }\n const updatedDiscounts = await doFetchLoading(async ()=>await getApplicableDiscounts(endpoints?.discounts ?? '/packagesalexswc/AjaxServices/ApplicableDiscounts', {\n origin: originValue,\n destination: destinationValue\n }, {\n BaseUrl,\n Language,\n Application\n }), ()=>discountsCallErrorLock.current = true).then((discounts)=>discountConverter(discounts));\n discountsLock.current = true;\n if (updatedDiscounts && !isEqual(lastDiscounts.current, updatedDiscounts)) {\n setDiscounts(updatedDiscounts);\n }\n };\n updateDiscounts().catch(console.error);\n }, [\n Application,\n BaseUrl,\n Language,\n destinationValue,\n discountsCallErrorLock,\n doFetchLoading,\n endpoints,\n lastDiscounts,\n lastPrevDestination,\n lastPrevOrigin,\n originValue,\n setDiscounts\n ]);\n};\n\nexport { useSearcherTrainHotelSideEffects as default };\n","import { createFullProvider } from '@babylon/ui-kit-helpers/context';\nimport useSearcherTrainHotelContextState from './useContextState.js';\nimport useSearcherTrainHotelSideEffects from './useSideEffects.js';\n\nconst { Provider: SearcherTrainHotelProvider, useContextProps: useSearcherTrainHotelProps, useContextState: useSearcherTrainHotelState, useContextActions: useSearcherTrainHotelActions } = createFullProvider({\n useState: useSearcherTrainHotelContextState,\n useSideEffects: useSearcherTrainHotelSideEffects\n});\n\nexport { SearcherTrainHotelProvider, useSearcherTrainHotelActions, useSearcherTrainHotelProps, useSearcherTrainHotelState };\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 { getValidOption } from '@babylon/ui-kit-forms/helpers/select';\nimport { getValidDates, addDays } from '@babylon/ui-kit-helpers/date';\nimport { useContext, useMemo } from 'react';\n\nconst useSearcherTrainHotelDefaultValues = (props)=>{\n const { origin, destination, dates, accommodation } = props ?? {};\n const { Market } = useContext(contextBabylon);\n const originDefaultValue = getValidAutocomplete(Market, origin);\n const destinationDefaultValue = getValidAutocomplete(Market, destination);\n const datesDefaultValue = getValidDates(new Date(), addDays(new Date(), props?.dates?.releaseDays ?? 7), dates);\n const accommodationDefaultValue = getValidAccommodation(accommodation);\n const discountsDefaultValue = getValidOption();\n return useMemo(()=>({\n origin: originDefaultValue,\n destination: destinationDefaultValue,\n dates: datesDefaultValue,\n accommodation: accommodationDefaultValue,\n discounts: discountsDefaultValue\n }), [\n accommodationDefaultValue,\n datesDefaultValue,\n destinationDefaultValue,\n discountsDefaultValue,\n originDefaultValue\n ]);\n};\n\nexport { useSearcherTrainHotelDefaultValues as default };\n","import { getValidFormAccommodationProps } from '@babylon/ui-kit-forms/helpers/accommodation';\nimport { useSearcherTrainHotelProps, useSearcherTrainHotelState } from '../../../context/index.js';\nimport useSearcherTrainHotelDefaultValues from '../../../hooks/useSearcherTrainHotelDefaultValues.js';\n\nconst useAccommodationInput = ()=>{\n const props = useSearcherTrainHotelProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const defaultValues = useSearcherTrainHotelDefaultValues(props);\n const { discounts = [] } = useSearcherTrainHotelState();\n return getValidFormAccommodationProps({\n name: 'accommodation',\n label: literals?.accommodationLabel ?? '',\n defaultValue: defaultValues.accommodation,\n discounts: {\n label: literals?.discountsLabel ?? '',\n items: discounts\n },\n literals\n });\n};\n\nexport { useAccommodationInput as default };\n","import useHandleSubmit from '../../../../../../hooks/submit/useHandleSubmit.js';\nimport { useSearcherTrainHotelProps } from '../../../context/index.js';\n\nconst useButton = ()=>{\n const props = useSearcherTrainHotelProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { submit = '' } = literals ?? {};\n const { hasErrors, handleSubmit } = useHandleSubmit();\n return {\n onClick: handleSubmit,\n disabled: hasErrors,\n children: submit\n };\n};\n\nexport { useButton as default };\n","import { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport useValue from '@babylon/ui-kit-forms/hooks/useValue';\nimport { useSearcherTrainHotelProps } from '../../../context/index.js';\nimport useSearcherTrainHotelDefaultValues from '../../../hooks/useSearcherTrainHotelDefaultValues.js';\n\nconst useDatesInput = ()=>{\n const props = useSearcherTrainHotelProps();\n const { dates } = props ?? {};\n const defaultValues = useSearcherTrainHotelDefaultValues(props);\n const originValue = useValue({\n name: 'origin'\n });\n const destinationValue = useValue({\n name: 'destination'\n });\n return {\n validate: required(),\n disabled: !originValue || !destinationValue,\n defaultValue: defaultValues.dates,\n minDate: props?.dates?.minDate ?? 'today',\n maxDate: props?.dates?.maxDate,\n enableAllDays: true,\n releaseDays: dates?.releaseDays\n };\n};\n\nexport { useDatesInput as default };\n","import { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport { useDestinationInput as useDestinationInput$1 } from '../../../../../../hooks/inputs/useDestinationInput.js';\nimport { useSearcherTrainHotelProps, useSearcherTrainHotelState } from '../../../context/index.js';\nimport useSearcherTrainHotelDefaultValues from '../../../hooks/useSearcherTrainHotelDefaultValues.js';\n\nconst useDestinationInput = ()=>{\n const props = useSearcherTrainHotelProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { isLoading = false } = useSearcherTrainHotelState();\n const defaultValues = useSearcherTrainHotelDefaultValues(props);\n return useDestinationInput$1({\n validate: required(),\n label: literals?.destinationLabel ?? '',\n defaultValue: defaultValues.destination,\n types: [\n 'CIU',\n 'ZON'\n ],\n queryParams: {\n o: 'EST',\n p: 'or'\n },\n disabled: isLoading\n });\n};\n\nexport { useDestinationInput as default };\n","import { required } from '@babylon/ui-kit-forms/helpers/validate';\nimport { useOriginInput as useOriginInput$1 } from '../../../../../../hooks/inputs/useOriginInput.js';\nimport { useSearcherTrainHotelProps, useSearcherTrainHotelState } from '../../../context/index.js';\nimport useSearcherTrainHotelDefaultValues from '../../../hooks/useSearcherTrainHotelDefaultValues.js';\n\nconst useOriginInput = ()=>{\n const props = useSearcherTrainHotelProps();\n const { config } = props ?? {};\n const { literals } = config ?? {};\n const { isLoading = false } = useSearcherTrainHotelState();\n const defaultValues = useSearcherTrainHotelDefaultValues(props);\n return useOriginInput$1({\n validate: required(),\n types: [\n 'EST'\n ],\n label: literals?.originLabel ?? '',\n defaultValue: defaultValues.origin,\n disabled: isLoading\n });\n};\n\nexport { useOriginInput as default };\n","import { formatDate } from '@babylon/ui-kit-helpers/date';\nimport { parseFilters } from '@babylon/ui-kit-helpers/url';\n\nconst getAccommodationParam = (accommodation)=>{\n if (!accommodation?.rooms) return [\n ''\n ];\n return accommodation.rooms.map(({ adults, childrenAges })=>{\n const adultsValues = [\n ...Array(adults)\n ].fill('30A').reduce((acc, val)=>acc + val);\n const childrenParam = childrenAges ? childrenAges.map((c)=>`${c}${'C'}`).join('') : '';\n return `${adultsValues}${childrenParam}`;\n });\n};\nfunction getTypeValue(destination) {\n const { value, type } = destination ?? {};\n /* Type zone when is ZONE */ if (type === 'ISL' && value) {\n return {\n value: value.slice(4),\n type: 'ZON'\n };\n }\n return {\n value,\n type\n };\n}\n/* Build url */ async function buildUrl(fieldValues, baseUrl, url = '/packagesasyncstepssp/AvailabilityMaterial', params = {}) {\n const { accommodation, dates, destination, origin, discount } = fieldValues;\n let finalUrl = url;\n if (!finalUrl.startsWith('http')) finalUrl = `${baseUrl}${url}`;\n const filters = {\n departureDateStr: dates?.[0] ? await formatDate(dates?.[0], 'YYYY-MM-DD') : '',\n destinationCode: getTypeValue(destination).value,\n destinationType: getTypeValue(destination).type,\n FamilyDiscount: discount?.value ?? 0,\n hashRooms: getAccommodationParam(accommodation).join('%2C'),\n LineOfBusiness: 'Packages',\n originAirportCode: origin?.value,\n productType: 'TrainHotel',\n returnDateStr: dates?.[1] ? await formatDate(dates?.[1], 'YYYY-MM-DD') : '',\n ...params\n };\n console.log(discount?.value);\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 useSearcherTrainHotelDefaultValues from './useSearcherTrainHotelDefaultValues.js';\n\nconst useSearcherTrainHotelForm = (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/train-hotel'\n });\n const url = await buildUrl(values, BaseUrl, urlSubmit, params);\n window.location.assign(url);\n });\n return {\n onSubmit,\n isRedirecting,\n defaultValues: useSearcherTrainHotelDefaultValues(props),\n setRedirecting\n };\n};\n\nexport { useSearcherTrainHotelForm as default };\n","import { getAccommodation, getAccommodationLiteralsFromOldData } from '../../../../helpers/index.js';\nimport _get from 'lodash/get.js';\n\nconst oldTypeToNewType = {\n airport: 'AER',\n station: 'EST',\n island: 'ISL',\n city: 'CIU',\n zone: 'ZON',\n hotel: 'HOT'\n};\nconst getConfig = (oldModel)=>{\n const accommodationLiterals = getAccommodationLiteralsFromOldData(oldModel);\n const config = {\n literals: {\n ...accommodationLiterals,\n EST: '',\n CIU: '',\n ZON: '',\n originLabel: _get(oldModel, 'location.items[0].input.label.content', ''),\n destinationLabel: _get(oldModel, 'location.items[1].input.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 noResultsText: '',\n accept: _get(oldModel, 'calendar.Footer.action.items[0].content', _get(oldModel, 'location.literals.modalFooterSubmit', accommodationLiterals.accept)),\n AER: '',\n calendarTitle: _get(oldModel, 'calendar.literals.modalHeaderTitle', ''),\n checkIn: _get(oldModel, 'calendar.literals.origin', ''),\n checkInLabel: _get(oldModel, 'calendar.literals.modalHeaderTitle', ''),\n checkOut: _get(oldModel, 'calendar.literals.destination', ''),\n HOT: '',\n ISL: '',\n labelDiscountsByDefault: _get(oldModel, 'discount.config.data.items[0].label', _get(oldModel, 'discounts.data.config.data.items[0].label', '')),\n legent: _get(oldModel, 'config.data.literal.legentDirectFlight', _get(oldModel, 'calendar.Footer.directFlight', '')),\n locationTitle: _get(oldModel, 'location.literals.modalHeaderTitle', ''),\n PUE: '',\n tabContentOrigin: _get(oldModel, 'location.literals.placeholderOrigin', ''),\n tabContentDestination: _get(oldModel, 'location.literals.placeholderDestination', ''),\n yearLabel: '',\n yearsLabel: ''\n },\n releaseDays: 2,\n hasDiscounts: true,\n disableDates: true,\n endpoints: {},\n onModal: _get(oldModel, 'config.onModal', false),\n hideDestination: _get(oldModel, 'config.hideDestination', false),\n params: {\n productType: 'TrainHotel',\n LineOfBusiness: 'Packages'\n }\n };\n return config;\n};\nconst getOrigin = (oldModel)=>{\n const originTypes = _get(oldModel, 'location.items[0].config.provider.types', [\n 'airport'\n ]);\n const origin = {\n value: _get(oldModel, 'location.items[0].value.value'),\n text: _get(oldModel, 'location.items[0].value.content'),\n type: originTypes ? oldTypeToNewType[originTypes[0]] : 'EST',\n types: originTypes ? originTypes.map((type)=>oldTypeToNewType[type]) : [\n 'EST'\n ],\n limit: _get(oldModel, 'location.items[0].config.provider.limit', 20)\n };\n return origin;\n};\nconst getDestination = (oldModel)=>{\n const destinationTypes = _get(oldModel, 'location.items[1].config.provider.types', [\n 'city',\n 'zone'\n ]);\n const destination = {\n value: _get(oldModel, 'location.items[1].value.value'),\n text: _get(oldModel, 'location.items[1].value.content'),\n type: destinationTypes && oldTypeToNewType[destinationTypes[0]],\n types: destinationTypes ? destinationTypes.map((type)=>oldTypeToNewType[type]) : [\n 'CIU',\n 'ZON'\n ],\n limit: _get(oldModel, 'location.items[1].config.provider.limit', 20)\n };\n return destination;\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 transformOldModelToNewModel = (oldModel)=>({\n config: getConfig(oldModel),\n origin: getOrigin(oldModel),\n destination: getDestination(oldModel),\n dates: getDates(oldModel),\n accommodation: getAccommodation(oldModel)\n });\nconst transformOldModelToNewModelDesktop = (oldModel)=>transformOldModelToNewModel(oldModel);\nconst transformOldModelToNewModelMobile = (oldModel)=>transformOldModelToNewModel(oldModel);\nconst getTransformedPropsIfNeeded = (props)=>{\n if (!props) return props;\n if ('config' in props && props.config && 'literals' in props.config) return props;\n return transformOldModelToNewModelDesktop(props);\n};\nconst getTransformedPropsIfNeededMobile = (props)=>{\n if (!props) return props;\n if ('config' in props && props.config && 'literals' in props.config) return props;\n return transformOldModelToNewModelMobile(props);\n};\n\nexport { getTransformedPropsIfNeeded, getTransformedPropsIfNeededMobile, transformOldModelToNewModel, transformOldModelToNewModelDesktop, transformOldModelToNewModelMobile };\n","import useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\nimport { getTransformedPropsIfNeededMobile, getTransformedPropsIfNeeded } from '../utils/model.js';\n\nconst useSearcherTrainHotelTransformedProps = (rootProps)=>{\n const props = 'data' in rootProps ? rootProps.data : rootProps.props;\n const isMobile = useIsMobile();\n if (isMobile) return getTransformedPropsIfNeededMobile(props);\n return getTransformedPropsIfNeeded(props);\n};\n\nexport { useSearcherTrainHotelTransformedProps as default };\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Form from '@babylon/ui-kit-forms/components/others/form';\nimport { Suspense, lazy } from 'react';\nimport { SearcherTrainHotelProvider } from '../../context/index.js';\nimport useSearcherTrainHotelForm from '../../hooks/useSearcherTrainHotelForm.js';\nimport useSearcherTrainHotelTransformedProps from '../../hooks/useSearcherTrainHotelTransformedProps.js';\n\nconst SearcherTrainHotelRedirectingModal = /*#__PURE__*/ lazy(()=>import('../redirecting-modal/index.js'));\nconst SearcherTrainHotelForm = ({ children, ...rootProps })=>{\n const props = useSearcherTrainHotelTransformedProps(rootProps);\n const { isRedirecting, defaultValues, onSubmit } = useSearcherTrainHotelForm(props);\n return /*#__PURE__*/ jsx(Form, {\n onSubmit: onSubmit,\n defaultValues: defaultValues,\n children: /*#__PURE__*/ jsxs(SearcherTrainHotelProvider, {\n value: props,\n children: [\n children,\n /*#__PURE__*/ jsx(Suspense, {\n fallback: null,\n children: isRedirecting && /*#__PURE__*/ jsx(SearcherTrainHotelRedirectingModal, {})\n })\n ]\n })\n });\n};\n\nexport { SearcherTrainHotelForm as default };\n"],"file":"cdn-placeholder/babylon/packages/logitravel/client/chunks/index.Ci1stOKg.js"}