= ({ props }) => {\n\tconst mobileCards = getCardsCarousel(props, true);\n\tconst { isLiverpool } = useIsLiverpool();\n\n\tconst carouselProps = {\n\t\theading: {\n\t\t\ttitle: {\n\t\t\t\tcontent: props?.title?.title ? props.title.title : '',\n\t\t\t},\n\t\t},\n\t\titems: mobileCards,\n\t\t...CAROUSEL_MOBILE_PROPS,\n\t};\n\n\tconst links = props?.items?.length ? props.items.map(item => ({ ...item.link, content: item.title })) : [];\n\n\treturn (\n\t\t\n\t\t\t{carouselProps && }\n\t\t\t{props?.otherCategories && !isLiverpool && {props.otherCategories}}\n\t\t\t{links && !isLiverpool && }\n\t\t
\n\t);\n};\n\nexport default CarouselCategoryMobile;\n","import { generateViewsComponent } from '@babylon/ui-kit-helpers/views';\n\nimport CarouselCategoryDesktop from './views/desktop';\nimport CarouselCategoryMobile from './views/mobile';\n\nexport const CarouselCategory = generateViewsComponent(CarouselCategoryDesktop, CarouselCategoryMobile);\n\nexport * from './types';\nexport default CarouselCategory;\n","export const IMAGE_PROPS = {\n\twidth: 730,\n\theight: 397,\n\tsuboperation: null,\n};\n\nexport const IMAGE_PROPS_MOBILE = {\n\twidth: 393,\n\theight: 180,\n};\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { css } from 'styled-components';\n\nimport type { CircuitsAdvantagesStyles } from '../types';\n\nconst veciCircuitsAdvantagesStyles: CircuitsAdvantagesStyles = {\n\tContainer: () => css`\n\t\tbackground-color: ${({ theme }) => theme.colors.green?.lightestL};\n\t`,\n\tStyledIcon: () => css`\n\t\t${FontMixin({ size: 'large' })};\n\t\tcolor: ${({ theme }) => theme.colors.primary.light};\n\t`,\n\tImageWrapperEffect: () => css`\n\t\t--first-color: transparent;\n\t\t--second-color: ${({ theme }) => theme.colors.green?.lightestL};\n\t\tbackground-image: linear-gradient(to left, var(--first-color), var(--second-color));\n\t`,\n};\n\nexport default veciCircuitsAdvantagesStyles;\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport { ThemeId } from '@babylon/ui-kit-styles/types/theme';\n\nimport veciCircuitsAdvantages from './styles/veci';\n\nconst circuitsAdvantagesThemes = createThemes({\n\t[ThemeId.veci]: veciCircuitsAdvantages,\n});\n\nexport default circuitsAdvantagesThemes;\n","import Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport InnerMarkdownHTML from '@babylon/ui-kit-base/components/text/inner-markdown-HTML';\nimport Title from '@babylon/ui-kit-base/components/text/title';\nimport { FlexMixin, FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Margin, Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport styled from 'styled-components';\n\nimport circuitsAdvantagesThemes from './themes';\n\nexport const Container = styled.div`\n\t${FlexMixin({})};\n\tbackground-color: #e9f7ef;\n\tposition: relative;\n\t${circuitsAdvantagesThemes('Container')}\n`;\n\nexport const ContentWrapper = styled.div`\n\twidth: 100%;\n\t${Padding({ bottom: '44px', top: '38px' })};\n`;\n\nexport const Content = styled.div`\n\twidth: 63%;\n\t${FlexMixin({})};\n`;\n\nexport const BlockTitle = styled(Title)`\n\twidth: 63%;\n\t${Margin({ bottom: '16px' })};\n\ttext-align: initial;\n\th2 {\n\t\tpadding: 0 10px 0 0;\n\t\t${Padding({ left: '0', right: '10px' })};\n\t}\n`;\n\nexport const TitleList = styled.span`\n\t${FontMixin({ size: 'medium', weight: 'medium' })};\n\tline-height: 22px;\n\tcolor: ${({ theme }) => theme.colors.grays.darker};\n\t${Margin({ bottom: '12px' })};\n`;\n\nexport const List = styled.ul`\n\tlist-style: none;\n`;\n\nexport const Item = styled.li`\n\t${FlexMixin({ align: 'start' })};\n\t${Margin({ bottom: '8px' })};\n\tcolumn-gap: 8px;\n`;\n\nexport const StyledIcon = styled(Icon)`\n\t${FontMixin({ size: 'base' })};\n\tcolor: ${({ theme }) => theme.colors.status.success};\n\talign-self: baseline;\n\n\t${circuitsAdvantagesThemes('StyledIcon')}\n`;\n\nexport const StyledInnerMarkdownHTML = styled(InnerMarkdownHTML)`\n\t${FontMixin({ size: 'medium', height: 'base', weight: 'light' })};\n\tcolor: ${({ theme }) => theme.colors.grays.darker};\n`;\n\nexport const ImageWrapper = styled.div`\n\twidth: 37%;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\tbottom: 0;\n\t${({ theme }) => theme.media.down('lg')} {\n\t\twidth: 0;\n\t}\n\n\timg {\n\t\tobject-fit: cover;\n\t\t${({ theme }) => theme.media.down('lg')} {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t&::before {\n\t\tbackground-image: linear-gradient(to left, rgba(255, 0, 0, 0), rgba(233, 247, 239, 1));\n\t\tbottom: 0;\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\twidth: 120px;\n\t\t${circuitsAdvantagesThemes('ImageWrapperEffect')}\n\t}\n\n\tfigure {\n\t\theight: 100%;\n\n\t\timg {\n\t\t\theight: 100%;\n\t\t}\n\t}\n`;\n","import Image from '@babylon/ui-kit-base/components/multimedia/image';\nimport { Container } from '@babylon/ui-kit-styles/common/mixins/container.styled';\nimport type { FC } from 'react';\n\nimport { IMAGE_PROPS } from '../../constants/imageProps';\nimport type { CircuitsAdvantagesProps } from '../../types';\nimport * as S from './styled';\n\nconst CircuitsAdvantagesDesktop: FC = ({\n\tprops: { title = '', titleList = '', list, imageSrc },\n}) => (\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{titleList && {titleList}}\n\t\t\t\t\n\t\t\t\t\t{list?.length && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{list.map(item => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t{imageSrc && (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t)}\n\t\n);\n\nexport default CircuitsAdvantagesDesktop;\n","import Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport Image from '@babylon/ui-kit-base/components/multimedia/image';\nimport InnerMarkdownHTML from '@babylon/ui-kit-base/components/text/inner-markdown-HTML';\nimport { FlexMixin, FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Margin, Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport styled from 'styled-components';\n\nexport const ContainerMobile = styled.div`\n\t${FlexMixin({ direction: 'column' })};\n`;\n\nexport const StyledImage = styled(Image)`\n\tmin-height: 180px;\n`;\n\nexport const ContentWrapperMobile = styled.div`\n\t${Padding({ top: '12px', x: '16px', bottom: '28px' })};\n\tbackground-color: #e9f7ef;\n`;\n\nexport const TitleMobile = styled.h2`\n\tfont-family: ${({ theme }) => theme.font.family.secondary};\n\t${FontMixin({ size: 'larger', height: 'larger', weight: 'medium' })};\n\tcolor: ${({ theme }) => theme.colors.grays.darker};\n\t${Margin({ bottom: '12px' })};\n\ttext-align: center;\n`;\n\nexport const TitleListMobile = styled.p`\n\tfont-family: ${({ theme }) => theme.font.family.secondary};\n\t${FontMixin({ size: 'medium', height: 'base', weight: 'bold' })};\n\tcolor: ${({ theme }) => theme.colors.grays.darker};\n\t${Margin({ bottom: '8px' })};\n`;\n\nexport const ListMobile = styled.ul`\n\tlist-style: none;\n`;\n\nexport const ItemMobile = styled.li`\n\t${FlexMixin({ align: 'start' })};\n\t${Margin({ bottom: '8px' })};\n\tcolumn-gap: 8px;\n`;\n\nexport const StyledIcon = styled(Icon)`\n\t${FontMixin({ size: 'base' })};\n\tcolor: ${({ theme }) => theme.colors.status.success};\n\talign-self: baseline;\n`;\n\nexport const StyledInnerMarkdownHTML = styled(InnerMarkdownHTML)`\n\tfont-family: ${({ theme }) => theme.font.family.primary};\n\t${FontMixin({ size: 'medium', height: 'base', weight: 'light' })};\n\tcolor: ${({ theme }) => theme.colors.grays.darker};\n`;\n","import type { FC } from 'react';\n\nimport { IMAGE_PROPS_MOBILE } from '../../constants/imageProps';\nimport type { CircuitsAdvantagesProps } from '../../types';\nimport * as S from './styled';\n\nconst CircuitsAdvantagesMobile: FC = ({ props }) => (\n\t\n\t\t{props?.imageSrc && }\n\t\t\n\t\t\t{props?.title && {props.title}}\n\t\t\t{props?.titleList && {props.titleList}}\n\t\t\t{props?.list?.length && (\n\t\t\t\t\n\t\t\t\t\t{props.list.map(item => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t\n);\n\nexport default CircuitsAdvantagesMobile;\n","import { generateViewsComponent } from '@babylon/ui-kit-helpers/views';\n\nimport CircuitsAdvantagesDesktop from './views/desktop';\nimport CircuitsAdvantagesMobile from './views/mobile';\n\nexport const CircuitsAdvantages = generateViewsComponent(CircuitsAdvantagesDesktop, CircuitsAdvantagesMobile);\n\nexport * from './types';\nexport default CircuitsAdvantages;\n","import { SectionMixin } from '@babylon/ui-kit-styles/common/mixins/section.styled';\nimport styled from 'styled-components';\n\nconst Section = /*#__PURE__*/ styled.section.withConfig({\n displayName: \"Section\"\n})([\n ``,\n ``\n], SectionMixin);\n\nexport { Section };\n//# sourceMappingURL=styled.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { Section } from './styled.js';\n\nconst SectionDesktop = ({ className, children })=>/*#__PURE__*/ jsx(Section, {\n className: className,\n children: children\n });\n\nexport { SectionDesktop as default };\n//# sourceMappingURL=index.js.map\n","import { SectionMobileMixin } from '@babylon/ui-kit-styles/common/mixins/section.styled';\nimport styled from 'styled-components';\n\nconst SectionMobile = /*#__PURE__*/ styled.section.withConfig({\n displayName: \"SectionMobile\"\n})([\n ``,\n ``\n], SectionMobileMixin);\n\nexport { SectionMobile };\n//# sourceMappingURL=styled.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { SectionMobile as SectionMobile$1 } from './styled.js';\n\nconst SectionMobile = ({ className, children })=>/*#__PURE__*/ jsx(SectionMobile$1, {\n className: className,\n children: children\n });\n\nexport { SectionMobile as default };\n//# sourceMappingURL=index.js.map\n","import { generateViewsComponent } from '@babylon/ui-kit-helpers/views';\nimport SectionDesktop from './views/desktop/index.js';\nimport SectionMobile from './views/mobile/index.js';\n\nconst Section = generateViewsComponent(SectionDesktop, SectionMobile);\n\nexport { Section as default };\n//# sourceMappingURL=index.js.map\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { Info, InfoIcon } from './styled.js';\n\nconst PassengersContentDesktop = ({ infoText, variant = 'info', icon = 'info' })=>/*#__PURE__*/ jsxs(Info, {\n $variant: variant,\n \"data-testid\": \"InfoText\",\n children: [\n /*#__PURE__*/ jsx(InfoIcon, {\n className: `nico-${icon}`,\n $variant: variant\n }),\n infoText\n ]\n });\n\nexport { PassengersContentDesktop as default };\n//# sourceMappingURL=index.js.map\n","import { getDefaultOption } from '../../../../../helpers/select.js';\nimport cloneDeep from 'clone-deep';\n\nconst checkSelectedOptions = (people, roomPerson)=>{\n const newRoomPerson = cloneDeep(roomPerson);\n if (!newRoomPerson.selectedOptions) newRoomPerson.selectedOptions = [];\n const selectedOption = getDefaultOption(people.options);\n if (!selectedOption) return newRoomPerson.selectedOptions;\n for(let i = newRoomPerson.selectedOptions.length, length = newRoomPerson.value; i < length; i++){\n newRoomPerson.selectedOptions.push(selectedOption.value);\n }\n if (newRoomPerson.selectedOptions.length > newRoomPerson.value) {\n newRoomPerson.selectedOptions = newRoomPerson.selectedOptions.slice(0, newRoomPerson.value);\n }\n return newRoomPerson.selectedOptions;\n};\nconst transformInitialRooms = (rooms, people)=>{\n for (const [roomIndex, room] of rooms.entries()){\n for (const [personIndex, person] of room.people.entries()){\n const personConfig = people.find((config)=>config.type === person.type);\n if (!personConfig) {\n rooms[roomIndex].people = rooms[roomIndex].people.toSpliced(personIndex, 1);\n continue;\n }\n if (personConfig.options?.length) {\n if (!person.selectedOptions) person.selectedOptions = [];\n person.selectedOptions = checkSelectedOptions(personConfig, person);\n }\n }\n }\n return rooms;\n};\n\nexport { checkSelectedOptions, transformInitialRooms };\n//# sourceMappingURL=utils.js.map\n","import { useMemo } from 'react';\nimport { transformInitialRooms } from '../utils.js';\n\nconst usePanelAccommodationContextState = ({ rooms: propsRooms, people })=>({\n state: {\n rooms: useMemo(()=>transformInitialRooms(propsRooms, people), [\n people,\n propsRooms\n ])\n },\n actions: {}\n });\n\nexport { usePanelAccommodationContextState as default };\n//# sourceMappingURL=useContextState.js.map\n","import isEqual from '@babylon/ui-kit-helpers/is-equal';\nimport { useEffect } from 'react';\n\nconst usePanelAccommodationContextSideEffects = (contextValue)=>{\n const { props: { rooms: propsRooms, onChange }, state: { rooms } } = contextValue;\n useEffect(()=>{\n if (!isEqual(rooms, propsRooms)) {\n onChange(rooms);\n }\n }, [\n rooms,\n propsRooms,\n onChange\n ]);\n};\n\nexport { usePanelAccommodationContextSideEffects as default };\n//# sourceMappingURL=useSideEffects.js.map\n","import { createFullProvider } from '@babylon/ui-kit-helpers/context';\nimport usePanelAccommodationContextState from './useContextState.js';\nimport usePanelAccommodationContextSideEffects from './useSideEffects.js';\n\nconst { Provider: PanelAccommodationProvider, useContextProps: usePanelAccommodationProps, useContextState: usePanelAccommodationState, useContextActions: usePanelAccommodationActions } = createFullProvider({\n useState: usePanelAccommodationContextState,\n useSideEffects: usePanelAccommodationContextSideEffects\n});\n\nexport { PanelAccommodationProvider, usePanelAccommodationActions, usePanelAccommodationProps, usePanelAccommodationState };\n//# sourceMappingURL=index.js.map\n","import cloneDeep from 'clone-deep';\nimport { useCallback } from 'react';\nimport { usePanelAccommodationProps, usePanelAccommodationState } from '../../../context/index.js';\nimport { checkSelectedOptions } from '../../../utils.js';\n\nconst usePanelAccommodationPerson = (roomIndex, personIndex)=>{\n const { people, onChange } = usePanelAccommodationProps();\n const { rooms } = usePanelAccommodationState();\n const onValueChange = useCallback((newValue)=>{\n const newRooms = cloneDeep(rooms);\n newRooms[roomIndex].people[personIndex].value = newValue;\n newRooms[roomIndex].people[personIndex].selectedOptions = checkSelectedOptions(people[personIndex], newRooms[roomIndex].people[personIndex]);\n onChange(newRooms);\n }, [\n rooms,\n people,\n personIndex,\n roomIndex,\n onChange\n ]);\n const onSelectOption = useCallback((selectedOptionIndex, newValue)=>{\n const newRooms = cloneDeep(rooms);\n newRooms[roomIndex].people[personIndex].selectedOptions[selectedOptionIndex] = newValue.value;\n onChange(newRooms);\n }, [\n onChange,\n personIndex,\n roomIndex,\n rooms\n ]);\n return {\n people,\n onValueChange,\n onSelectOption\n };\n};\n\nexport { usePanelAccommodationPerson as default };\n//# sourceMappingURL=usePanelAccommodationPerson.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport PersonCounterDesktop from '../../../../../../../../others/person-counter/views/desktop/index.js';\nimport { useMemo } from 'react';\nimport usePanelAccommodationPerson from '../../hooks/usePanelAccommodationPerson.js';\n\nconst PanelAccommodationPersonDesktop = ({ roomIndex, personIndex, person, disableIncrement = false, columns, disableAges = false })=>{\n const { people, onValueChange, onSelectOption } = usePanelAccommodationPerson(roomIndex, personIndex);\n const { personsLabel, optionsPersonLabel, options, personDescription, min, max } = people[personIndex];\n const select = useMemo(()=>{\n if (disableAges) return;\n return {\n label: optionsPersonLabel,\n options,\n onChange: onSelectOption,\n columns\n };\n }, [\n columns,\n disableAges,\n onSelectOption,\n options,\n optionsPersonLabel\n ]);\n return /*#__PURE__*/ jsx(PersonCounterDesktop, {\n label: personsLabel,\n description: personDescription,\n value: person.value,\n min: min,\n max: max,\n onChange: onValueChange,\n selectedOptions: !disableAges ? person.selectedOptions : undefined,\n select: select,\n disableIncrement: disableIncrement\n });\n};\n\nexport { PanelAccommodationPersonDesktop as default };\n//# sourceMappingURL=index.js.map\n","import cloneDeep from 'clone-deep';\nimport { useCallback, useMemo } from 'react';\nimport { usePanelAccommodationProps, usePanelAccommodationState } from '../context/index.js';\n\nconst usePanelAccommodation = (maxPeople)=>{\n const { onChange } = usePanelAccommodationProps();\n const { rooms } = usePanelAccommodationState();\n const deleteRoom = useCallback((roomIndex)=>()=>{\n const newRooms = cloneDeep(rooms);\n newRooms.splice(roomIndex, 1);\n onChange(newRooms);\n }, [\n rooms,\n onChange\n ]);\n const totalPeople = useMemo(()=>rooms.flatMap((room)=>room.people).reduce((acc, person)=>acc + person.value, 0), [\n rooms\n ]);\n const disableIncrement = !!maxPeople && maxPeople <= totalPeople;\n return {\n disableIncrement,\n rooms,\n deleteRoom\n };\n};\n\nexport { usePanelAccommodation as default };\n//# sourceMappingURL=usePanelAccomodation.js.map\n","import { css } from 'styled-components';\nimport { BorderRadius } from './logical.styled.js';\n\nconst VerticalScroll = /*#__PURE__*/ css([\n `&::-webkit-scrollbar{width:6px;}&::-webkit-scrollbar-thumb{background:`,\n `;`,\n `}&::-webkit-scrollbar-track{background:`,\n `;}`\n], ({ theme })=>theme.colors.grays.base, BorderRadius({\n all: '8px'\n}), ({ theme })=>theme.colors.grays.light);\n\nexport { VerticalScroll };\n//# sourceMappingURL=scroll.styled.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius, Border, Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst clubDeVacacionesPanelAccommodationStyles = {\n PanelAccomodationContainer: ()=>/*#__PURE__*/ css([\n `&::-webkit-scrollbar{width:8px !important;}&::-webkit-scrollbar-thumb{background:`,\n ` !important;}&::-webkit-scrollbar-track{background-color:`,\n ` !important;`,\n `}`\n ], ({ theme })=>theme.colors.grays.base, ({ theme })=>theme.colors.status.complementary5, BorderRadius({\n bottomRight: '4px',\n topRight: '4px'\n })),\n PanelAccommodationRoomHeader: ()=>/*#__PURE__*/ css([\n ``,\n ` background-color:`,\n `;& > p{`,\n ` color:`,\n `;text-transform:uppercase;}`\n ], Border({\n y: 'unset'\n }), ({ theme })=>theme.colors.grays.lightestL, FontMixin({\n size: 'base',\n height: 'base',\n weight: 'bold'\n }), ({ theme })=>theme.colors.grays.darker),\n PanelAccommodationRoomHeaderIcon: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`\n ], ({ theme })=>theme.colors.grays.darker),\n PanelAccommodationPanelBody: ()=>/*#__PURE__*/ css([\n ``,\n ``\n ], Padding({\n y: '16px'\n }))\n};\n\nexport { clubDeVacacionesPanelAccommodationStyles as default };\n//# sourceMappingURL=clubDeVacaciones.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius, Border, Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst liverpoolPanelAccommodationStyles = {\n PanelAccomodationContainer: ()=>/*#__PURE__*/ css([\n `&::-webkit-scrollbar{width:7px !important;}&::-webkit-scrollbar-thumb{background:`,\n ` !important;`,\n `}&::-webkit-scrollbar-track{background:`,\n ` !important;}`\n ], ({ theme })=>theme.colors.grays.lightestXL, BorderRadius({\n all: '3px !important'\n }), ({ theme })=>theme.colors.grays.lightest),\n PanelAccommodationRoomHeader: ()=>/*#__PURE__*/ css([\n `background-color:unset;`,\n ` `,\n ` p{text-transform:capitalize;`,\n ` color:`,\n `}`\n ], Border({\n y: 'unset'\n }), Padding({\n top: '16px',\n bottom: 'unset'\n }), FontMixin({\n size: 'base',\n height: 'medium',\n weight: 'semiBold'\n }), ({ theme })=>theme.colors.grays.darker),\n PanelAccommodationPanelBody: ()=>/*#__PURE__*/ css([\n ``,\n ` `,\n ``\n ], Padding({\n top: '8px',\n bottom: '16px'\n }), ({ $isLastRoom })=>!$isLastRoom && /*#__PURE__*/ css([\n `> ::before{content:'';position:absolute;bottom:0;left:16px;width:calc(100% - 32px);height:1px;background-color:`,\n `;}`\n ], ({ theme })=>theme.colors.grays.lighter))\n};\n\nexport { liverpoolPanelAccommodationStyles as default };\n//# sourceMappingURL=liverpool.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius, Border, Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst tourMundialPanelAccommodationStyles = {\n PanelAccomodationContainer: ()=>/*#__PURE__*/ css([\n `&::-webkit-scrollbar{width:8px !important;}&::-webkit-scrollbar-thumb{background:`,\n ` !important;`,\n `}&::-webkit-scrollbar-track{background:`,\n ` !important;}`\n ], ({ theme })=>theme.colors.grays.darkest, BorderRadius({\n all: '4px !important'\n }), ({ theme })=>theme.colors.status.complementary5),\n PanelAccommodationRoomHeader: ()=>/*#__PURE__*/ css([\n ``,\n ` background-color:`,\n `;& > p{`,\n ` color:`,\n `;text-transform:uppercase;}`\n ], Border({\n y: 'unset'\n }), ({ theme })=>theme.colors.status.complementary6, FontMixin({\n size: 'base',\n height: 'base',\n weight: 'semiBold'\n }), ({ theme })=>theme.colors.grays.darker),\n PanelAccommodationRoomHeaderIcon: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`\n ], ({ theme })=>theme.colors.grays.darker),\n PanelAccommodationPanelBody: ()=>/*#__PURE__*/ css([\n ``,\n ``\n ], Padding({\n y: '24px'\n }))\n};\n\nexport { tourMundialPanelAccommodationStyles as default };\n//# sourceMappingURL=tourMundial.js.map\n","import { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst universalMusicPanelAccommodationStyles = {\n PanelAccommodationRoomHeader: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;`,\n ` & > p{color:`,\n `;}`\n ], ({ theme })=>theme.colors.grays.lightest, Border({\n all: '0'\n }), ({ theme })=>theme.colors.primary.base),\n PanelAccommodationRoomHeaderIcon: ()=>/*#__PURE__*/ css([\n `& > i{color:`,\n `;}`\n ], ({ theme })=>theme.colors.primary.base)\n};\n\nexport { universalMusicPanelAccommodationStyles as default };\n//# sourceMappingURL=universalMusic.js.map\n","import Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { rgba } from 'polished';\nimport { css } from 'styled-components';\n\nconst veciPanelAccommodationStyles = {\n PanelAccommodationRoomHeader: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;border-color:`,\n `;&:first-of-type{border-top:0;}& > p{text-transform:capitalize;color:`,\n `;`,\n `;}`\n ], ({ theme })=>rgba(theme.colors.grays.lightest ?? theme.colors.grays.base, 0.56), ({ theme })=>theme.colors.grays.lightest, ({ theme })=>theme.colors.text.dark, FontMixin({\n weight: 'semiBold',\n height: 'base'\n })),\n PanelAccommodationRoomHeaderIcon: ()=>/*#__PURE__*/ css([\n ``,\n `{color:`,\n `;}`\n ], Icon, ({ theme })=>theme.colors.primary.base)\n};\n\nexport { veciPanelAccommodationStyles as default };\n//# sourceMappingURL=veci.js.map\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport { ThemeId } from '@babylon/ui-kit-styles/types/theme';\nimport clubDeVacacionesPanelAccommodationStyles from './styles/clubDeVacaciones.js';\nimport liverpoolPanelAccommodationStyles from './styles/liverpool.js';\nimport tourMundialPanelAccommodationStyles from './styles/tourMundial.js';\nimport universalMusicPanelAccommodationStyles from './styles/universalMusic.js';\nimport veciPanelAccommodationStyles from './styles/veci.js';\n\nconst panelAccommodationThemes = createThemes({\n [ThemeId.veci]: veciPanelAccommodationStyles,\n [ThemeId.partnershipsLiverpool]: liverpoolPanelAccommodationStyles,\n [ThemeId.partnershipsUniversalMusic]: universalMusicPanelAccommodationStyles,\n [ThemeId.tourMundial]: tourMundialPanelAccommodationStyles,\n [ThemeId.clubDeVacaciones]: clubDeVacacionesPanelAccommodationStyles\n});\n\nexport { panelAccommodationThemes as default };\n//# sourceMappingURL=index.js.map\n","import Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport { FlexMixin, FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { VerticalScroll } from '@babylon/ui-kit-styles/common/mixins/scroll.styled';\nimport styled from 'styled-components';\nimport panelAccommodationThemes from './themes/index.js';\n\nconst PanelAccomodationContainer = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"PanelAccomodationContainer\"\n})([\n `max-height:400px;overflow-y:auto;`,\n ` `,\n ``\n], VerticalScroll, panelAccommodationThemes('PanelAccomodationContainer'));\nconst PanelAccommodationPanelBody = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"PanelAccommodationPanelBody\"\n})([\n `padding:20px 16px;`,\n ` gap:16px;overflow-y:auto;position:relative;`,\n ``\n], FlexMixin({\n direction: 'column'\n}), panelAccommodationThemes('PanelAccommodationPanelBody'));\nconst PanelAccommodationRoomHeader = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"PanelAccommodationRoomHeader\"\n})([\n ``,\n ` padding:12px 16px;background-color:`,\n `;border-top:1px solid;border-bottom:1px solid;border-color:`,\n `;color:`,\n `;& > p{`,\n ` text-transform:uppercase;}`,\n ``\n], FlexMixin({\n justify: 'space-between',\n align: 'center'\n}), ({ theme })=>theme.colors.grays.lighter, ({ theme })=>theme.colors.grays.light, ({ theme })=>theme.colors.grays.dark, FontMixin({\n size: 'medium',\n weight: 'regular'\n}), panelAccommodationThemes('PanelAccommodationRoomHeader'));\nconst PanelAccommodationRoomHeaderIcon = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"PanelAccommodationRoomHeaderIcon\"\n})([\n ``,\n ` `,\n ` background-color:transparent;color:`,\n `;cursor:pointer;height:22px;outline:0;width:22px;`,\n `{`,\n `}`,\n ``\n], BorderRadius({\n all: '50%'\n}), FlexMixin({\n align: 'center',\n justify: 'center'\n}), ({ theme })=>theme.colors.grays.base, Icon, FontMixin({\n size: 'base'\n}), panelAccommodationThemes('PanelAccommodationRoomHeaderIcon'));\nconst PanelAccommodationPortals = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"PanelAccommodationPortals\"\n})([\n `position:absolute;top:0;left:0;z-index:`,\n `;`\n], ({ theme })=>theme.zIndex.highest);\n\nexport { PanelAccommodationPanelBody, PanelAccommodationPortals, PanelAccommodationRoomHeader, PanelAccommodationRoomHeaderIcon, PanelAccomodationContainer };\n//# sourceMappingURL=styled.js.map\n","import { jsx, jsxs, Fragment } from 'react/jsx-runtime';\nimport Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport { genKey } from '@babylon/ui-kit-helpers/keys';\nimport ScrollIntoView from '@babylon/ui-kit-structures/components/others/scroll-into-view';\nimport { Children } from 'react';\nimport { checkAdultsPerRoom } from '../../../../../../../helpers/validate.js';\nimport PassengersContentDesktop from '../../components/info-text/index.js';\nimport PanelAccommodationPersonDesktop from '../../components/panel-accommodation-person/views/desktop/index.js';\nimport { PanelAccommodationProvider } from '../../context/index.js';\nimport usePanelAccommodation from '../../hooks/usePanelAccomodation.js';\nimport { PanelAccomodationContainer, PanelAccommodationRoomHeader, PanelAccommodationRoomHeaderIcon, PanelAccommodationPanelBody, PanelAccommodationPortals } from './styled.js';\n\nconst PanelAccommodationDesktopView = ({ config: { literals, maxPeople, columns }, goToLast = false, disableAges = false })=>{\n const { roomLabel = '', errorMinAdults = '' } = literals ?? {};\n const { disableIncrement, rooms, deleteRoom } = usePanelAccommodation(maxPeople);\n return /*#__PURE__*/ jsxs(PanelAccomodationContainer, {\n \"data-testid\": \"PanelAccommodation\",\n children: [\n Children.toArray(rooms.map((room, roomIndex)=>{\n const totalAdults = checkAdultsPerRoom(room);\n return /*#__PURE__*/ jsxs(Fragment, {\n children: [\n /*#__PURE__*/ jsxs(PanelAccommodationRoomHeader, {\n children: [\n /*#__PURE__*/ jsx(\"p\", {\n children: roomLabel?.replace('#number#', (roomIndex + 1).toString())\n }),\n rooms.length > 1 && /*#__PURE__*/ jsx(PanelAccommodationRoomHeaderIcon, {\n onClick: deleteRoom(roomIndex),\n children: /*#__PURE__*/ jsx(Icon, {\n className: \"nico-cancel\"\n })\n })\n ]\n }),\n totalAdults < 1 && /*#__PURE__*/ jsx(PassengersContentDesktop, {\n variant: \"error\",\n icon: \"exclamation\",\n infoText: errorMinAdults\n }),\n /*#__PURE__*/ jsx(PanelAccommodationPanelBody, {\n $isLastRoom: rooms.length - 1 === roomIndex,\n children: room.people.map((person, personIndex)=>/*#__PURE__*/ jsx(ScrollIntoView, {\n behavior: \"smooth\",\n block: \"nearest\",\n scrollToView: goToLast && personIndex === room.people.length - 1,\n children: /*#__PURE__*/ jsx(PanelAccommodationPersonDesktop, {\n roomIndex: roomIndex,\n personIndex: personIndex,\n person: person,\n disableIncrement: disableIncrement,\n columns: columns,\n disableAges: disableAges\n })\n }, genKey(person)))\n })\n ]\n });\n })),\n /*#__PURE__*/ jsx(PanelAccommodationPortals, {\n id: \"panel-accommodation-portals\",\n \"data-testid\": \"PanelAccommodationPortal\"\n })\n ]\n });\n};\nconst PanelAccommodationDesktop = (props)=>/*#__PURE__*/ jsx(PanelAccommodationProvider, {\n value: props,\n children: /*#__PURE__*/ jsx(PanelAccommodationDesktopView, {\n ...props\n })\n });\n\nexport { PanelAccommodationDesktop as default };\n//# sourceMappingURL=index.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { css } from 'styled-components';\n\nconst clubDeVacacionesAddRoomStyles = {\n AddRoomButton: ()=>/*#__PURE__*/ css([\n `text-decoration:underline;`,\n ` color:`,\n `;`\n ], FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'bold'\n }), ({ theme })=>theme.colors.status.complementary)\n};\n\nexport { clubDeVacacionesAddRoomStyles as default };\n//# sourceMappingURL=clubDeVacaciones.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { css } from 'styled-components';\n\nconst tourMundialAddRoomStyles = {\n AddRoomButton: ()=>/*#__PURE__*/ css([\n `text-decoration:underline;`,\n ``\n ], FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'semiBold'\n }))\n};\n\nexport { tourMundialAddRoomStyles as default };\n//# sourceMappingURL=tourMundial.js.map\n","import { css } from 'styled-components';\n\nconst universalMusicAddRoomStyles = {\n AddRoomButton: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`\n ], ({ theme })=>theme.colors.primary.base)\n};\n\nexport { universalMusicAddRoomStyles as default };\n//# sourceMappingURL=universalMusic.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Padding, BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst veciAddRoomStyles = {\n AddRoomButton: ()=>/*#__PURE__*/ css([\n ``,\n `;min-height:auto;height:auto;text-decoration:underline;`,\n `;`,\n ``\n ], Padding({\n x: '0'\n }), BorderRadius({\n all: '0'\n }), FontMixin({\n height: 'base'\n }))\n};\n\nexport { veciAddRoomStyles as default };\n//# sourceMappingURL=veci.js.map\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport { ThemeId } from '@babylon/ui-kit-styles/types/theme';\nimport clubDeVacacionesAddRoomStyles from './styles/clubDeVacaciones.js';\nimport tourMundialAddRoomStyles from './styles/tourMundial.js';\nimport universalMusicAddRoomStyles from './styles/universalMusic.js';\nimport veciAddRoomStyles from './styles/veci.js';\n\nconst addRoomThemes = createThemes({\n [ThemeId.veci]: veciAddRoomStyles,\n [ThemeId.partnershipsUniversalMusic]: universalMusicAddRoomStyles,\n [ThemeId.tourMundial]: tourMundialAddRoomStyles,\n [ThemeId.clubDeVacaciones]: clubDeVacacionesAddRoomStyles\n});\n\nexport { addRoomThemes as default };\n//# sourceMappingURL=index.js.map\n","import { Button } from '@babylon/ui-kit-base/components/buttons/button';\nimport { FontMixin, FlexMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport styled from 'styled-components';\nimport addRoomThemes from './themes/index.js';\n\nconst AddRoomButton = /*#__PURE__*/ styled(Button).withConfig({\n displayName: \"AddRoomButton\"\n})([\n `color:`,\n `;`,\n ` `,\n ` text-transform:initial;&.has-error{opacity:0.5;}`,\n ``\n], ({ theme })=>theme.colors.primary.base, FontMixin({\n size: 'medium',\n weight: 'regular'\n}), FlexMixin({\n align: 'center'\n}), addRoomThemes('AddRoomButton'));\n\nexport { AddRoomButton };\n//# sourceMappingURL=styled.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport classNames from 'classnames';\nimport { AddRoomButton } from './styled.js';\n\nconst AddRoom = ({ addRoom, hasError = false, onAddRoom, height = '32px' })=>/*#__PURE__*/ jsx(AddRoomButton, {\n \"data-testid\": \"AddRoom\",\n className: classNames({\n 'has-error': hasError\n }),\n onClick: onAddRoom,\n p: \"0\",\n size: \"small\",\n height: height,\n children: addRoom\n });\n\nexport { AddRoom as default };\n//# sourceMappingURL=index.js.map\n","import Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst clubDeVacacionesPanelErrorDesktopStyles = {\n PanelError: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ` p{color:`,\n `;}`,\n `{color:`,\n `;}`\n ], ({ theme })=>theme.colors.grays.darker, Border({\n top: 'unset'\n }), ({ theme })=>theme.colors.grays.darker, Icon, ({ theme })=>theme.colors.primary.base)\n};\n\nexport { clubDeVacacionesPanelErrorDesktopStyles as default };\n//# sourceMappingURL=clubDeVacaciones.js.map\n","import { css } from 'styled-components';\n\nconst logitravelPanelErrorDesktopStyles = {\n PanelError: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;`\n ], ({ theme })=>theme.colors.primary.lightest)\n};\n\nexport { logitravelPanelErrorDesktopStyles as default };\n//# sourceMappingURL=logitravel.js.map\n","import { css } from 'styled-components';\n\nconst partnershipsPanelErrorDesktopStyles = {\n PanelError: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;`\n ], ({ theme })=>theme.colors.secondary.light)\n};\n\nexport { partnershipsPanelErrorDesktopStyles as default };\n//# sourceMappingURL=partnerships.js.map\n","import { css } from 'styled-components';\n\nconst smyPanelErrorDesktopStyles = {\n PanelError: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;`\n ], ({ theme })=>theme.colors.primary.lightest)\n};\n\nexport { smyPanelErrorDesktopStyles as default };\n//# sourceMappingURL=smy.js.map\n","import Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst tourMundialPanelErrorDesktopStyles = {\n PanelError: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ` `,\n `{color:`,\n `;}`\n ], ({ theme })=>theme.colors.grays.darker, Border({\n top: 'unset'\n }), Icon, ({ theme })=>theme.colors.primary.base)\n};\n\nexport { tourMundialPanelErrorDesktopStyles as default };\n//# sourceMappingURL=tourMundial.js.map\n","import { css } from 'styled-components';\n\nconst veciPanelErrorDesktopStyles = {\n PanelError: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;`\n ], ({ theme })=>theme.colors.primary.lightest)\n};\n\nexport { veciPanelErrorDesktopStyles as default };\n//# sourceMappingURL=veci.js.map\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport clubDeVacacionesPanelErrorDesktopStyles from './styles/clubDeVacaciones.js';\nimport logitravelPanelErrorDesktopStyles from './styles/logitravel.js';\nimport partnershipsPanelErrorDesktopStyles from './styles/partnerships.js';\nimport smyPanelErrorDesktopStyles from './styles/smy.js';\nimport tourMundialPanelErrorDesktopStyles from './styles/tourMundial.js';\nimport veciPanelErrorDesktopStyles from './styles/veci.js';\n\nconst panelErrorDesktopThemes = createThemes({\n logitravel: logitravelPanelErrorDesktopStyles,\n partnerships: partnershipsPanelErrorDesktopStyles,\n smy: smyPanelErrorDesktopStyles,\n veci: veciPanelErrorDesktopStyles,\n tourMundial: tourMundialPanelErrorDesktopStyles,\n clubDeVacaciones: clubDeVacacionesPanelErrorDesktopStyles\n});\n\nexport { panelErrorDesktopThemes as default };\n//# sourceMappingURL=index.js.map\n","import Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport { FlexMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport styled from 'styled-components';\nimport panelErrorDesktopThemes from './themes/index.js';\n\nconst PanelError = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"PanelError\"\n})([\n ``,\n ` background-color:`,\n `;gap:8px;`,\n `{margin-right:8px;color:`,\n `;}`,\n ``\n], FlexMixin({\n align: 'center',\n justify: 'space-between'\n}), ({ theme })=>theme.colors.primary.lightest, Icon, ({ theme })=>theme.colors.primary.light, panelErrorDesktopThemes('PanelError'));\n\nexport { PanelError };\n//# sourceMappingURL=styled.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Icon from '@babylon/ui-kit-base/components/icons/icon';\nimport { PanelError } from './styled.js';\n\nconst PanelErrorDesktop = ({ error })=>/*#__PURE__*/ jsx(PanelError, {\n \"data-testid\": \"PanelErrorDesktop\",\n className: \"panel-error\",\n children: /*#__PURE__*/ jsxs(\"p\", {\n children: [\n /*#__PURE__*/ jsx(Icon, {\n className: \"nico-info\"\n }),\n error\n ]\n })\n });\n\nexport { PanelErrorDesktop as default };\n//# sourceMappingURL=index.js.map\n","import { PersonRoomType } from '../components/inputs/accommodation/components/panel-accommodation/types.js';\n\nconst transformAccommodationValueToText = (value, literals)=>{\n if (!value || !literals) return '';\n const { seniorAmountInfo = '', seniorsAmountInfo = '', adultAmountInfo = '', adultsAmountInfo = '', childAmountInfo = '', childrenAmountInfo = '', roomInfo = '', roomsInfo = '', passengerAmountInfo = '', passengersAmountInfo = '' } = literals || {};\n let totalSeniors = 0;\n let totalAdults = 0;\n let totalChildren = 0;\n let totalRooms = value.rooms?.length ?? 0;\n for (const room of value.rooms ?? []){\n totalSeniors += room.seniors ?? 0;\n totalAdults += room.adults ?? 0;\n totalChildren += room.children ?? 0;\n }\n const roomsTemplate = totalRooms === 1 ? roomInfo : roomsInfo;\n const seniorsTemplate = totalSeniors === 1 ? seniorAmountInfo : seniorsAmountInfo;\n const adultsTemplate = totalAdults === 1 ? adultAmountInfo : adultsAmountInfo;\n const childrenTemplate = totalChildren === 1 ? childAmountInfo : childrenAmountInfo;\n const passengersTemplate = totalAdults + totalChildren === 1 ? passengerAmountInfo : passengersAmountInfo;\n const seniorsStringPartial = totalAdults !== 0 ? seniorsTemplate.toString().concat(',') : seniorsTemplate;\n const seniorsString = seniorsStringPartial.replace('#number#', totalSeniors.toString());\n const adultsString = adultsTemplate.replace('#number#', totalAdults.toString());\n const childrenString = childrenTemplate.replace('#number#', totalChildren.toString());\n const passengersString = passengersTemplate.replace('#number#', (totalAdults + totalChildren).toString());\n const roomsString = roomsTemplate.replace('#seniors#', totalSeniors > 0 ? seniorsString : '').replace('#adults#', totalAdults > 0 ? adultsString : '').replace('#children#', totalChildren > 0 ? childrenString : '').replace('#number#', totalRooms.toString()).replace('#passengers#', passengersString).replace(/ +(?= )/g, '');\n return roomsString;\n};\nconst accommodationToRooms = (rooms = [])=>rooms.map((room)=>{\n const people = [];\n if (typeof room.seniors !== 'undefined') people.push({\n value: room.seniors,\n type: PersonRoomType.Senior\n });\n if (typeof room.adults !== 'undefined') people.push({\n value: room.adults,\n type: PersonRoomType.Adult\n });\n if (typeof room.children !== 'undefined') people.push({\n value: room.children,\n selectedOptions: room.childrenAges ?? [],\n type: PersonRoomType.Child\n });\n return {\n people\n };\n });\nconst convertNumberToSelectOption = (number, defaultValue)=>({\n label: String(number),\n value: String(number),\n selected: number === defaultValue\n });\nconst initialOptions = (range, defaultValue = 0)=>Array.from({\n length: range + 1\n }, (_, i)=>convertNumberToSelectOption(i, defaultValue));\nconst roomsToAccommodation = (rooms)=>rooms.map((room)=>{\n const seniors = room.people.find((person)=>person.type === PersonRoomType.Senior);\n const adults = room.people.find((person)=>person.type === PersonRoomType.Adult);\n const children = room.people.find((person)=>person.type === PersonRoomType.Child);\n const finalRoom = {\n adults: adults?.value ?? 0,\n adultsAges: adults?.selectedOptions?.map((x)=>Number(x)),\n children: children?.value ?? 0,\n childrenAges: children?.selectedOptions?.map((x)=>Number(x))\n };\n if (seniors) finalRoom.seniors = seniors.value ?? 0;\n return finalRoom;\n });\nconst subtractToZero = (value, subtract)=>{\n if (value > 0 && subtract > 0) {\n return subtractToZero(value - 1, subtract - 1);\n }\n return {\n value,\n subtract: subtract\n };\n};\nconst createAccommodationRoom = (maxPeople, totalPeople, defaultAccommodationRoom)=>{\n const totalPeopleNewRoom = (defaultAccommodationRoom.adults ?? 0) + (defaultAccommodationRoom.children ?? 0);\n const accommodation = {\n seniors: 0,\n adults: 0,\n children: 0\n };\n let peopleSubtract = totalPeople + totalPeopleNewRoom - maxPeople;\n const accommodationRoom = Object.entries(defaultAccommodationRoom).reverse();\n accommodationRoom.forEach(([key, itemValue])=>{\n if (Number.isInteger(itemValue) && key in accommodation) {\n const { value, subtract } = subtractToZero(itemValue, peopleSubtract);\n accommodation[key] = value;\n peopleSubtract = subtract;\n }\n });\n return accommodation;\n};\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst getValidAccommodation = (accommodation)=>{\n if (accommodation?.rooms?.length) {\n if (accommodation.rooms.some((room)=>'adults' in room) && !accommodation.adults) {\n accommodation.adults = {\n max: 9,\n min: 1,\n value: 2\n };\n }\n if (accommodation.rooms.some((room)=>'children' in room) && !accommodation.children) {\n accommodation.children = {\n max: 9,\n min: 0,\n value: 0\n };\n }\n if (accommodation.rooms.some((room)=>'seniors' in room) && !accommodation.seniors) {\n accommodation.seniors = {\n max: 9,\n min: 0,\n value: 0\n };\n if (accommodation.adults) accommodation.adults.min = 0;\n }\n return accommodation;\n }\n if (accommodation?.adults && accommodation?.children) {\n const { seniors, adults, children } = accommodation;\n let childrenAges = [];\n if (children.value && children.defaultAge && children.value > 0) {\n for(let i = 0; i < children.value; i++){\n childrenAges.push(children.defaultAge);\n }\n }\n return {\n ...accommodation,\n rooms: [\n {\n seniors: seniors?.value ?? 0,\n adults: adults.value ?? 1,\n children: children.value ?? 0,\n childrenAges\n }\n ]\n };\n }\n return {\n adults: {\n max: 9,\n min: 1,\n value: 2\n },\n children: {\n max: 9,\n min: 0,\n value: 0\n },\n rooms: [\n {\n seniors: 0,\n adults: 2,\n children: 0,\n childrenAges: []\n }\n ]\n };\n};\nconst getValidFormAccommodationProps = (accommodationProps)=>{\n const { literals } = accommodationProps ?? {};\n const { accommodationTitle = '', accommodationLabel = '', childLabel = '' } = literals ?? {};\n const finalProps = {\n name: 'accommodation',\n ...accommodationProps\n };\n if (accommodationProps?.residents) {\n finalProps.resident = {\n name: 'resident',\n value: accommodationProps?.residents?.items?.[0]\n };\n }\n if (accommodationProps?.discounts) {\n finalProps.discount = {\n name: 'discount',\n value: accommodationProps.discounts.items?.[0]\n };\n }\n return {\n ...finalProps,\n literals: {\n accommodationTitle: accommodationTitle || accommodationLabel,\n agePersonLabel: `${childLabel} #number#`,\n ...literals\n }\n };\n};\n\nexport { accommodationToRooms, convertNumberToSelectOption, createAccommodationRoom, getValidAccommodation, getValidFormAccommodationProps, initialOptions, roomsToAccommodation, transformAccommodationValueToText };\n//# sourceMappingURL=accommodation.js.map\n","const defaultAccommodationRoom = {\n seniors: 0,\n adults: 2,\n children: 0,\n childrenAges: []\n};\nconst defaultAccommodation = {\n rooms: [\n defaultAccommodationRoom\n ]\n};\nconst defaultRestrictions = {\n seniors: {\n min: 0,\n max: 9,\n value: 0\n },\n adults: {\n min: 0,\n max: 9,\n value: 1\n },\n children: {\n min: 0,\n max: 9,\n value: 1,\n maxAge: 17\n }\n};\n\nexport { defaultAccommodation, defaultAccommodationRoom, defaultRestrictions };\n//# sourceMappingURL=constants.js.map\n","import { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst clubDeVacacionesDiscountStyles = {\n DiscountSelect: ()=>/*#__PURE__*/ css([\n ``,\n ``\n ], Border({\n all: 'unset'\n }))\n};\n\nexport { clubDeVacacionesDiscountStyles as default };\n//# sourceMappingURL=clubDeVacaciones.js.map\n","import { InputLabel } from '../../../../../../../../../input/styled.js';\nimport { Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst liverpoolDiscountStyles = {\n DiscountSelect: ()=>/*#__PURE__*/ css([\n ``,\n `{`,\n `}`\n ], InputLabel, Padding({\n left: '44px'\n }))\n};\n\nexport { liverpoolDiscountStyles as default };\n//# sourceMappingURL=liverpool.js.map\n","import { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst tourMundialDiscountStyles = {\n DiscountSelect: ()=>/*#__PURE__*/ css([\n ``,\n ``\n ], Border({\n all: 'unset'\n }))\n};\n\nexport { tourMundialDiscountStyles as default };\n//# sourceMappingURL=tourMundial.js.map\n","import { css } from 'styled-components';\n\nconst veciDiscountStyles = {\n DiscountSelect: ()=>/*#__PURE__*/ css([\n ``\n ])\n};\n\nexport { veciDiscountStyles as default };\n//# sourceMappingURL=veci.js.map\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport { ThemeId } from '@babylon/ui-kit-styles/types/theme';\nimport clubDeVacacionesDiscountStyles from './styles/clubDeVacaciones.js';\nimport liverpoolDiscountStyles from './styles/liverpool.js';\nimport tourMundialDiscountStyles from './styles/tourMundial.js';\nimport veciDiscountStyles from './styles/veci.js';\n\nconst discountThemes = createThemes({\n [ThemeId.veci]: veciDiscountStyles,\n [ThemeId.partnershipsLiverpool]: liverpoolDiscountStyles,\n [ThemeId.tourMundial]: tourMundialDiscountStyles,\n [ThemeId.clubDeVacaciones]: clubDeVacacionesDiscountStyles\n});\n\nexport { discountThemes as default };\n//# sourceMappingURL=index.js.map\n","import { InputWrapper } from '../../../../../../../input/styled.js';\nimport SelectDesktop from '../../../../../../../select/views/desktop/index.js';\nimport { FlexMixin, FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport styled from 'styled-components';\nimport discountThemes from './themes/index.js';\n\nconst DiscountWrapper = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"DiscountWrapper\"\n})([\n ``,\n ` & > p{`,\n ` color:`,\n `;flex-basis:100%;font-weight:700;margin-bottom:8px;}`\n], FlexMixin({\n wrap: true\n}), FontMixin({\n size: 'base',\n weight: 'bold',\n height: 'medium'\n}), ({ theme })=>theme.colors.grays.darker);\nconst DiscountSelect = /*#__PURE__*/ styled(SelectDesktop).withConfig({\n displayName: \"DiscountSelect\"\n})([\n ``,\n ` border:1px solid `,\n `;`,\n `{--outline-width:1px;--outline-color-default:#e2e2e2;}`,\n ``\n], BorderRadius({\n all: '4px'\n}), ({ theme })=>theme.colors.grays.light, InputWrapper, discountThemes('DiscountSelect'));\nconst ContainerSelect = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"ContainerSelect\"\n})([\n `flex-basis:calc(50% - 8px);&:nth-child(1):nth-last-child(1){flex-basis:100%;}`\n]);\nconst DiscountBody = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"DiscountBody\"\n})([\n `flex-basis:100%;`,\n ``\n], FlexMixin({\n justify: 'space-between'\n}));\n\nexport { ContainerSelect, DiscountBody, DiscountSelect, DiscountWrapper };\n//# sourceMappingURL=styled.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Border, Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\nimport { DiscountWrapper } from '../../../../components/discount/views/desktop/styled.js';\n\nconst clubDeVacacionesAccommodationWithDiscountsDesktopStyles = {\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n ``,\n ` `,\n `{`,\n `}& > .panel-error{`,\n `}`\n ], Border({\n top: 'unset'\n }), DiscountWrapper, Padding({\n x: '16px',\n y: '12px'\n }), Padding({\n x: '16px'\n })),\n Header: ()=>/*#__PURE__*/ css([\n `p{`,\n ` text-transform:uppercase;color:`,\n `;}`\n ], FontMixin({\n size: 'base',\n height: 'base',\n weight: 'bold'\n }), ({ theme })=>theme.colors.grays.darker),\n ButtonWrapper: ()=>/*#__PURE__*/ css([\n ``,\n ``\n ], Padding({\n x: '16px',\n y: '12px'\n }))\n};\n\nexport { clubDeVacacionesAccommodationWithDiscountsDesktopStyles as default };\n//# sourceMappingURL=clubDeVacaciones.js.map\n","import { css } from 'styled-components';\n\nconst logitravelAccommodationWithDiscountsDesktopStyles = {\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n `& > .panel-error{background-color:`,\n `;}`\n ], ({ theme })=>theme.colors.primary.lightest)\n};\n\nexport { logitravelAccommodationWithDiscountsDesktopStyles as default };\n//# sourceMappingURL=logitravel.js.map\n","import { css } from 'styled-components';\n\nconst partnershipsAccommodationWithDiscountsDesktopStyles = {\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n `& > .panel-error{background-color:`,\n `;}`\n ], ({ theme })=>theme.colors.secondary.light)\n};\n\nexport { partnershipsAccommodationWithDiscountsDesktopStyles as default };\n//# sourceMappingURL=partnerships.js.map\n","import { css } from 'styled-components';\n\nconst smyAccommodationWithDiscountsDesktopStyles = {\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n `& > .panel-error{background-color:`,\n `;}`\n ], ({ theme })=>theme.colors.primary.lightest)\n};\n\nexport { smyAccommodationWithDiscountsDesktopStyles as default };\n//# sourceMappingURL=smy.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst tourMundialAccommodationWithDiscountsDesktopStyles = {\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n ``,\n ``\n ], Border({\n top: 'unset'\n })),\n Header: ()=>/*#__PURE__*/ css([\n `p{`,\n ` text-transform:uppercase;color:`,\n `;}`\n ], FontMixin({\n size: 'base',\n height: 'base',\n weight: 'semiBold'\n }), ({ theme })=>theme.colors.grays.darker)\n};\n\nexport { tourMundialAccommodationWithDiscountsDesktopStyles as default };\n//# sourceMappingURL=tourMundial.js.map\n","import { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { css } from 'styled-components';\n\nconst universalMusicAccommodationWithDiscountsDesktopStyles = {\n Header: ()=>/*#__PURE__*/ css([\n `p{color:`,\n `;`,\n `;text-transform:uppercase;}button:hover{text-decoration:underline;}`\n ], ({ theme })=>theme.colors.primary.base, FontMixin({\n weight: 'bold'\n })),\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n `& > .panel-error{background-color:`,\n `;i{color:`,\n `;}}`\n ], ({ theme })=>theme.colors.primary.lightest, ({ theme })=>theme.colors.primary.base)\n};\n\nexport { universalMusicAccommodationWithDiscountsDesktopStyles as default };\n//# sourceMappingURL=universalMusic.js.map\n","import { css } from 'styled-components';\n\nconst veciAccommodationWithDiscountsDesktopStyles = {\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n `border-top-color:`,\n `;& > .panel-error{background-color:`,\n `;}`\n ], ({ theme })=>theme.colors.grays.lightest, ({ theme })=>theme.colors.primary.lightest)\n};\n\nexport { veciAccommodationWithDiscountsDesktopStyles as default };\n//# sourceMappingURL=veci.js.map\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport clubDeVacacionesAccommodationWithDiscountsDesktopStyles from './styles/clubDeVacaciones.js';\nimport logitravelAccommodationWithDiscountsDesktopStyles from './styles/logitravel.js';\nimport partnershipsAccommodationWithDiscountsDesktopStyles from './styles/partnerships.js';\nimport smyAccommodationWithDiscountsDesktopStyles from './styles/smy.js';\nimport tourMundialAccommodationWithDiscountsDesktopStyles from './styles/tourMundial.js';\nimport universalMusicAccommodationWithDiscountsDesktopStyles from './styles/universalMusic.js';\nimport veciAccommodationWithDiscountsDesktopStyles from './styles/veci.js';\n\nconst accommodationWithDiscountsDesktopThemes = createThemes({\n logitravel: logitravelAccommodationWithDiscountsDesktopStyles,\n partnerships: partnershipsAccommodationWithDiscountsDesktopStyles,\n partnershipsUniversalMusic: universalMusicAccommodationWithDiscountsDesktopStyles,\n smy: smyAccommodationWithDiscountsDesktopStyles,\n veci: veciAccommodationWithDiscountsDesktopStyles,\n tourMundial: tourMundialAccommodationWithDiscountsDesktopStyles,\n clubDeVacaciones: clubDeVacacionesAccommodationWithDiscountsDesktopStyles\n});\n\nexport { accommodationWithDiscountsDesktopThemes as default };\n//# sourceMappingURL=index.js.map\n","import { PanelFooter } from '../../../../../../others/input-panel/views/desktop/styled.js';\nimport { FlexMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport styled from 'styled-components';\nimport { DiscountWrapper } from '../../components/discount/views/desktop/styled.js';\nimport accommodationWithDiscountsDesktopThemes from './themes/index.js';\n\nconst Header = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"Header\"\n})([\n ``,\n ` display:flex;& > p{margin-right:15px;}& > button{margin-left:auto;white-space:nowrap;}`,\n ``\n], FlexMixin({\n align: 'center',\n justify: 'space-between'\n}), accommodationWithDiscountsDesktopThemes('Header'));\nconst AccomodationWithDiscounts = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"AccomodationWithDiscounts\"\n})([\n ``,\n `{`,\n ` --primary-background:`,\n `;}`,\n ``\n], PanelFooter, FlexMixin({\n direction: 'column'\n}), ({ theme })=>theme.colors.white.base, accommodationWithDiscountsDesktopThemes('AccomodationWithDiscounts'));\nconst ButtonWrapper = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"ButtonWrapper\"\n})([\n ``,\n ` `,\n ` button{`,\n `}`,\n ``\n], Padding({\n all: '16px'\n}), FlexMixin({\n justify: 'flex-end'\n}), FlexMixin({\n align: 'center'\n}), accommodationWithDiscountsDesktopThemes('ButtonWrapper'));\nconst InputPanelFooter = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"InputPanelFooter\"\n})([\n `border-top:1px solid `,\n `;& > .panel-error{padding:16px;background-color:`,\n `;}`,\n `{padding:16px;}`,\n ``\n], ({ theme })=>theme.colors.grays.light, ({ theme })=>theme.colors.primary.lightest, DiscountWrapper, accommodationWithDiscountsDesktopThemes('InputPanelFooter'));\n\nexport { AccomodationWithDiscounts, ButtonWrapper, Header, InputPanelFooter };\n//# sourceMappingURL=styled.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { Button } from '@babylon/ui-kit-base/components/buttons/button';\nimport { accommodationToRooms, createAccommodationRoom, roomsToAccommodation, initialOptions, transformAccommodationValueToText } from '../../../../helpers/accommodation.js';\nimport cloneDeep from 'clone-deep';\nimport { useMemo, useState, useCallback } from 'react';\nimport { PersonRoomType } from '../components/panel-accommodation/types.js';\nimport { defaultAccommodationRoom, defaultRestrictions } from '../constants.js';\nimport { ButtonWrapper } from '../variants/with-discounts/views/desktop/styled.js';\n\nconst useAccommodation = (props)=>{\n const { value, onChange, label, disabled, icon, onBlur, literals, columns, error, hasError } = props;\n const { seniorLabel = '', seniorsLabel = '', seniorsDescription = '', adultLabel = '', adultsLabel = '', adultsDescription = '', childLabel = '', childrenLabel = '', childrenDescription = '', agePersonLabel = '', agesDescription = '', errorMaxPeople = '', errorMaxRooms = '', ageLabel = '' } = literals ?? {};\n const panelRooms = useMemo(()=>accommodationToRooms(value?.rooms), [\n value?.rooms\n ]);\n const [goToLast, setGoToLast] = useState(false);\n const getTotalPeople = useCallback(()=>value?.rooms?.map((room)=>(room.adults ?? 0) + (room.children ?? 0)).reduce((acc, value)=>acc + value, 0) ?? 0, [\n value?.rooms\n ]);\n const getErrors = useCallback(()=>{\n if (value?.maxPeople && value.maxPeople <= getTotalPeople()) {\n const error = errorMaxPeople.replace('#number#', value.maxPeople.toString());\n return {\n hasError: true,\n error\n };\n }\n if (value?.maxRooms && value.maxRooms <= (value?.rooms?.length ?? 0)) {\n const error = errorMaxRooms.replace('#number#', value.maxRooms.toString());\n return {\n hasError: true,\n error\n };\n }\n if (!!props.error || props.hasError) {\n return {\n hasError: props.hasError,\n error: props.error\n };\n }\n return {\n hasError: false,\n error: undefined\n };\n }, [\n errorMaxRooms,\n errorMaxPeople,\n value?.maxRooms,\n value?.maxPeople,\n value?.rooms,\n props.hasError,\n props.error,\n getTotalPeople\n ]);\n const onAddRoom = useCallback((e)=>{\n e.preventDefault();\n const { hasError } = getErrors();\n if (hasError) return;\n const newValue = cloneDeep(value ?? {\n rooms: []\n });\n const { adults, children } = createAccommodationRoom(value?.maxPeople, getTotalPeople(), defaultAccommodationRoom);\n newValue.rooms?.push({\n ...defaultAccommodationRoom,\n adults,\n children\n });\n onChange?.(newValue);\n setGoToLast(true);\n setTimeout(()=>setGoToLast(false), 200);\n }, [\n value,\n onChange,\n getTotalPeople,\n getErrors\n ]);\n const onChangeRooms = useCallback((rooms)=>{\n const accommodationRoom = roomsToAccommodation(rooms);\n const newValue = cloneDeep(value ?? {\n rooms: []\n });\n newValue.rooms = accommodationRoom;\n onChange?.(newValue);\n }, [\n value,\n onChange\n ]);\n const renderFooter = useCallback(({ close })=>/*#__PURE__*/ jsx(ButtonWrapper, {\n children: /*#__PURE__*/ jsx(Button, {\n variant: \"primary\",\n height: \"40px\",\n onClick: close,\n children: literals?.accept\n })\n }), [\n literals?.accept\n ]);\n const config = useMemo(()=>({\n literals,\n maxPeople: value?.maxPeople,\n maxRooms: value?.maxRooms,\n columns\n }), [\n value?.maxPeople,\n value?.maxRooms,\n literals,\n columns\n ]);\n const checkValueKey = useCallback((key)=>value?.[key] && value?.rooms?.every((room)=>typeof room[key] !== 'undefined'), [\n value\n ]);\n const people = useMemo(()=>{\n const finalPeople = [];\n if (checkValueKey('seniors')) finalPeople.push({\n personLabel: seniorLabel,\n personsLabel: seniorsLabel,\n personDescription: seniorsDescription,\n min: value?.seniors?.min ?? defaultRestrictions.adults.min,\n max: value?.seniors?.max ?? defaultRestrictions.adults.max,\n value: value?.seniors?.value ?? defaultRestrictions.adults.value,\n type: PersonRoomType.Senior\n });\n if (checkValueKey('adults')) finalPeople.push({\n ageLabel: ageLabel,\n personLabel: adultLabel,\n personsLabel: adultsLabel,\n personDescription: adultsDescription,\n min: value?.adults?.min ?? defaultRestrictions.adults.min,\n max: value?.adults?.max ?? defaultRestrictions.adults.max,\n value: value?.adults?.value ?? defaultRestrictions.adults.value,\n type: PersonRoomType.Adult\n });\n if (checkValueKey('children')) finalPeople.push({\n ageLabel: ageLabel,\n personLabel: childLabel,\n personsLabel: childrenLabel,\n personDescription: childrenDescription,\n labelForEachOption: agePersonLabel,\n min: value?.children?.min ?? defaultRestrictions.children.min,\n max: value?.children?.max ?? defaultRestrictions.children.max,\n value: value?.children?.value ?? defaultRestrictions.children.value,\n optionsPersonLabel: agesDescription,\n options: initialOptions(value?.children?.maxAge ?? defaultRestrictions.children.maxAge, value?.children?.defaultAge),\n type: PersonRoomType.Child\n });\n return finalPeople;\n }, [\n adultLabel,\n adultsDescription,\n adultsLabel,\n agePersonLabel,\n agesDescription,\n ageLabel,\n checkValueKey,\n childLabel,\n childrenDescription,\n childrenLabel,\n seniorLabel,\n seniorsDescription,\n seniorsLabel,\n value?.adults?.max,\n value?.adults?.min,\n value?.adults?.value,\n value?.children?.defaultAge,\n value?.children?.max,\n value?.children?.maxAge,\n value?.children?.min,\n value?.children?.value,\n value?.seniors?.max,\n value?.seniors?.min,\n value?.seniors?.value\n ]);\n const inputProps = useMemo(()=>({\n label,\n value: value ? transformAccommodationValueToText(value, literals) : '',\n disabled,\n icon,\n onBlur,\n error,\n hasError\n }), [\n label,\n value,\n literals,\n disabled,\n icon,\n onBlur,\n error,\n hasError\n ]);\n return {\n panelRooms,\n config,\n people,\n goToLast,\n inputProps,\n ...getErrors(),\n onAddRoom,\n onChangeRooms,\n renderFooter\n };\n};\n\nexport { useAccommodation as default };\n//# sourceMappingURL=useAccommodation.js.map\n","import { getValidFormAccommodationProps } from '@babylon/ui-kit-forms/helpers/accommodation';\nimport useIsMobile from '@babylon/ui-kit-hooks/device/useIsMobile';\n\nconst useSearcherAccommodation = (config, searcherAccommodation = {})=>{\n const isMobile = useIsMobile();\n const icon = isMobile ? '' : 'user';\n return getValidFormAccommodationProps({\n ...config,\n ...searcherAccommodation,\n icon\n });\n};\n\nexport { useSearcherAccommodation as default };\n//# sourceMappingURL=useSearcherAccommodation.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport InputSkeleton from '../../../input/components/skeleton/index.js';\n\nconst CalendarSkeleton = (props)=>/*#__PURE__*/ jsx(InputSkeleton, {\n id: props.id,\n icon: props.icon,\n label: props.label\n });\n\nexport { CalendarSkeleton as default };\n//# sourceMappingURL=index.js.map\n","import { TooltipContent } from '@babylon/ui-kit-base/components/others/tooltip/styled';\nimport { FlexMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport styled from 'styled-components';\nimport { Panel } from '../../../../others/input-panel/views/desktop/styled.js';\n\nconst FlatpickrCalendarWrapper = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"FlatpickrCalendarWrapper\"\n})([\n ``,\n ` `,\n `{width:`,\n `;min-height:`,\n `;}[data-testid='TooltipView'][data-popper-placement^='top'] .flatpickr-days{min-height:250px;}.flatpickr-calendar{position:static;.flatpickr-innerContainer{`,\n ` .flatpickr-rContainer{width:100%;.flatpickr-weekdays{gap:20px;.flatpickr-weekdaycontainer{padding:0;}}.flatpickr-days{width:100% !important;gap:20px;.dayContainer{--dayContainer-column-gap:2px;width:auto;max-width:unset;min-width:unset;flex:1 1 50%;padding:0;column-gap:var(--dayContainer-column-gap);.flatpickr-day{--flatpickr-day-width:calc((100% - (var(--dayContainer-column-gap) * 6)) / 7);height:auto;width:var(--flatpickr-day-width);max-width:var(--flatpickr-day-width);flex-basis:var(--flatpickr-day-width);&:not(.nextMonthDay){aspect-ratio:1/1;}&.nextMonthDay{height:0;}}}}}}}`\n], Panel, TooltipContent, ({ $showMonths })=>{\n if ($showMonths === 1) return '309.1px';\n if ($showMonths === 2) return '638px';\n return 'auto';\n}, ({ $enableTime })=>$enableTime ? '333.33px' : '302px', FlexMixin({\n justify: 'center'\n}));\n\nexport { FlatpickrCalendarWrapper };\n//# sourceMappingURL=styled.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport FlatpickrCalendar from '../../../../lib/flatpickr-calendar/index.js';\nimport InputPanel from '../../../../others/input-panel/index.js';\nimport { nullFunction } from '@babylon/ui-kit-helpers/null';\nimport { KEY_CODE } from '@babylon/ui-kit-types/key-code';\nimport { forwardRef, useId, useMemo, useRef, useCallback, useState, useEffect } from 'react';\nimport CalendarSkeleton from '../../components/skeleton/index.js';\nimport { calendarFormatData } from '../../helpers/index.js';\nimport useCalendartDates from '../../hooks/useCalendarDates.js';\nimport useFormCalendar from '../../hooks/useFormCalendar.js';\nimport { FlatpickrCalendarWrapper } from './styled.js';\n\nconst CalendarDesktop = /*#__PURE__*/ forwardRef((props, ref)=>{\n const { label, disabled = false, value = [\n new Date()\n ], onChange, onBlur, error, hasError, locale, mode = 'single', showMonths = 1, enableTime = false, monthSelectorType = 'static', dateFormat, minuteIncrement = 30, noCalendar = false, disableMobile = true, time24h = true, minTime = '00:00', maxTime = '23:59', className = '', events, options, releaseDays, icon = 'calendar', eventDay, inputRef, tooltipOptions } = props;\n const uniqueId = useId();\n const inputId = useMemo(()=>`${uniqueId}-input-calendar-${label}`, [\n label,\n uniqueId\n ]);\n const { finalEnableDates, firstDayEnabled } = useCalendartDates(props);\n const calendarOptions = useMemo(()=>({\n altInputClass: '',\n wrap: false,\n defaultDate: value,\n defaultMinute: 0,\n time_24hr: time24h,\n minDate: firstDayEnabled,\n mode,\n showMonths,\n dateFormat: dateFormat ?? (enableTime ? 'D, j M Y H:i' : 'D, j M Y'),\n disableMobile,\n monthSelectorType,\n noCalendar,\n enableTime,\n minuteIncrement,\n minTime,\n maxTime,\n inline: true,\n static: true,\n ...options\n }), [\n value,\n time24h,\n firstDayEnabled,\n mode,\n showMonths,\n dateFormat,\n enableTime,\n disableMobile,\n monthSelectorType,\n noCalendar,\n minuteIncrement,\n minTime,\n maxTime,\n options\n ]);\n const changeOpenRef = useRef(nullFunction);\n const lastValueRef = useRef(value);\n const handleCloseCalendar = useCallback(()=>{\n if (calendarOptions.mode === 'range') {\n if (value.length !== 2 && lastValueRef.current) onChange?.(lastValueRef.current);\n else lastValueRef.current = value;\n }\n onBlur?.();\n }, [\n calendarOptions.mode,\n onBlur,\n value,\n onChange\n ]);\n const handleChangeCalendar = useCallback((value)=>{\n onChange?.(value);\n if (calendarOptions.mode === 'range' && value.length === 2) changeOpenRef.current?.(false);\n if (calendarOptions.mode === 'single' && !calendarOptions.enableTime) changeOpenRef.current?.(false);\n }, [\n calendarOptions.enableTime,\n calendarOptions.mode,\n onChange\n ]);\n const onChangePanelOpen = useCallback((isOpen)=>{\n if (!isOpen) handleCloseCalendar();\n }, [\n handleCloseCalendar\n ]);\n const renderInput = useCallback((_props, ref)=>/*#__PURE__*/ jsx(\"div\", {\n ref: ref\n }), []);\n const finalValue = useMemo(()=>mode === 'single' ? [\n value[0]\n ] : value, [\n value,\n mode\n ]);\n const pressHandlerCalendar = useCallback((event)=>{\n switch(event.key){\n case KEY_CODE.ENTER:\n event.preventDefault();\n break;\n case KEY_CODE.ESC:\n break;\n }\n }, []);\n const CalendarDesktopSkeleton = useCallback(()=>/*#__PURE__*/ jsx(CalendarSkeleton, {\n id: props.id,\n label: label\n }), [\n label,\n props.id\n ]);\n const [formattedValue, setFormattedValue] = useState('');\n useEffect(()=>{\n const getFormattedValue = async ()=>{\n const formattedDates = [];\n for (const date of value){\n formattedDates.push(await calendarFormatData(date, enableTime ? 'ddd DD MMM YYYY HH:mm' : 'ddd DD MMM YYYY', locale));\n }\n return formattedDates.join(' → ');\n };\n getFormattedValue().then((value)=>{\n setFormattedValue(value);\n });\n }, [\n enableTime,\n locale,\n value\n ]);\n return /*#__PURE__*/ jsx(FlatpickrCalendarWrapper, {\n \"data-testid\": \"Calendar\",\n onKeyDown: (e)=>pressHandlerCalendar(e),\n $enableTime: enableTime,\n $showMonths: showMonths,\n children: /*#__PURE__*/ jsx(InputPanel, {\n ref: inputRef,\n inputProps: {\n icon,\n error,\n hasError,\n id: inputId,\n disabled: disabled,\n value: formattedValue,\n defaultValue: props.defaultValue,\n label\n },\n panel: {\n content: /*#__PURE__*/ jsx(FlatpickrCalendar, {\n locale: locale,\n render: renderInput,\n value: finalValue,\n options: calendarOptions,\n onChange: handleChangeCalendar,\n className: className,\n ref: ref,\n events: events,\n enableDates: finalEnableDates,\n disabled: disabled,\n releaseDays: releaseDays,\n SkeletonComponent: CalendarDesktopSkeleton,\n eventDay: eventDay\n }),\n onChange: onChangePanelOpen,\n changeOpenRef\n },\n tooltipProps: {\n placement: 'bottom-start',\n options: tooltipOptions\n }\n })\n });\n});\nCalendarDesktop.displayName = 'CalendarDesktop';\nconst FormCalendarDesktop = (props)=>{\n const finalProps = useFormCalendar(props);\n return /*#__PURE__*/ jsx(CalendarDesktop, {\n ...finalProps\n });\n};\n\nexport { FormCalendarDesktop, CalendarDesktop as default };\n//# sourceMappingURL=index.js.map\n","const LOADING = {\n LOADING_SRC: '/contenidos/fotos/CIUDADES/',\n LOADING_ALTERNATIVE: '/comun/images/lineas/paquetes_800x600.jpg'\n};\n\nexport { LOADING };\n//# sourceMappingURL=constants.js.map\n","import { ModalWrapper } from '@babylon/ui-kit-structures/components/others/modal/styled';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst clubDeVacacionesRedirectingModalStyles = {\n SearcherRedirectingModalWrapper: ()=>/*#__PURE__*/ css([\n ``,\n `{`,\n `;box-shadow:0px 2px 4px -1px `,\n `,0px 4px 6px -1px `,\n `;}`\n ], ModalWrapper, ({ theme })=>BorderRadius({\n all: `${theme.border.radius.rounded}`\n }), ({ theme })=>theme.colors.black.higher, ({ theme })=>theme.colors.black.higher),\n SearcherRedirectingModalLoader: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;&::before{background-color:`,\n `;}`\n ], ({ theme })=>theme.colors.primary.lighter, ({ theme })=>theme.colors.status.complementary),\n SearcherRedirectingModalTitle: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ` font-family:`,\n `;`\n ], ({ theme })=>theme.colors.grays.darker, FontMixin({\n size: 'largest',\n height: 'largest',\n weight: 'medium'\n }), ({ theme })=>theme.font.family.secondary),\n SearcherRedirectingModalDescription: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.grays.light, FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'regular'\n })),\n SearcherRedirectingModalMessage: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.grays.light, FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'regular'\n }))\n};\n\nexport { clubDeVacacionesRedirectingModalStyles as default };\n//# sourceMappingURL=clubDeVacaciones.js.map\n","import { ModalWrapper } from '@babylon/ui-kit-structures/components/others/modal/styled';\nimport { BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst liverpoolRedirectingModalStyles = {\n SearcherRedirectingModalWrapper: ()=>/*#__PURE__*/ css([\n ``,\n `{`,\n ` filter:drop-shadow(0 0 8px rgb(0 0 0 / 16%)) drop-shadow(0 1px 4px rgb(0 0 0 / 24%));}`\n ], ModalWrapper, BorderRadius({\n all: '8px'\n })),\n SearcherRedirectingModalLoader: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;&::before{background-color:`,\n `;}`,\n `{background-color:`,\n `;&::before{background-color:`,\n `;}}`\n ], ({ theme })=>theme.colors.secondary.lighter, ({ theme })=>theme.colors.secondary.base, ({ theme })=>theme.media.phone.only, ({ theme })=>theme.colors.status.hovered, ({ theme })=>theme.colors.primary.base)\n};\n\nexport { liverpoolRedirectingModalStyles as default };\n//# sourceMappingURL=liverpool.js.map\n","import { ModalWrapper } from '@babylon/ui-kit-structures/components/others/modal/styled';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst tourMundialRedirectingModalStyles = {\n SearcherRedirectingModalWrapper: ()=>/*#__PURE__*/ css([\n ``,\n `{`,\n `;box-shadow:0px 8px 16px 0px `,\n `;}`\n ], ModalWrapper, ({ theme })=>BorderRadius({\n all: `${theme.border.radius.rounded}`\n }), ({ theme })=>theme.colors.black.high),\n SearcherRedirectingModalLoader: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;&::before{background-color:`,\n `;}`\n ], ({ theme })=>theme.colors.secondary.lightest, ({ theme })=>theme.colors.secondary.base),\n SearcherRedirectingModalTitle: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.grays.darker, FontMixin({\n size: 'largest',\n height: 'largest',\n weight: 'medium'\n })),\n SearcherRedirectingModalDescription: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.status.complementary3, FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'regular'\n })),\n SearcherRedirectingModalMessage: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.status.complementary3, FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'regular'\n }))\n};\n\nexport { tourMundialRedirectingModalStyles as default };\n//# sourceMappingURL=tourMundial.js.map\n","import { ModalContent, ModalWrapper } from '@babylon/ui-kit-structures/components/others/modal/styled';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius, Padding } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst universalMusicRedirectingModalStyles = {\n SearcherRedirectingModalWrapper: ()=>/*#__PURE__*/ css([\n ``,\n `,`,\n `{`,\n ` `,\n `{`,\n `}}`,\n `{box-shadow:0px 4px 6px -2px `,\n `,0px 10px 15px -3px `,\n `;}img{`,\n ` `,\n `{`,\n `}}`\n ], ModalContent, ModalWrapper, BorderRadius({\n all: '20px'\n }), ({ theme })=>theme.media.phone.only, BorderRadius({\n all: '16px'\n }), ModalWrapper, ({ theme })=>theme.colors.black.higher, ({ theme })=>theme.colors.black.higher, BorderRadius({\n all: '16px'\n }), ({ theme })=>theme.media.phone.only, BorderRadius({\n all: '12px'\n })),\n SearcherRedirectingModalLoader: ()=>/*#__PURE__*/ css([\n `display:none;`\n ]),\n Wrapper: ()=>/*#__PURE__*/ css([\n `background-color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.white.base, Padding({\n all: '16px'\n })),\n SearcherRedirectingModalTitle: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ` text-transform:uppercase;`\n ], ({ theme })=>theme.colors.primary.base, FontMixin({\n size: 'larger',\n height: 'large',\n weight: 'medium'\n })),\n SearcherRedirectingModalDescription: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.grays.darker, FontMixin({\n height: 'base',\n weight: 'regular'\n })),\n SearcherRedirectingModalMessage: ()=>/*#__PURE__*/ css([\n `color:`,\n `;`,\n ``\n ], ({ theme })=>theme.colors.grays.darker, FontMixin({\n height: 'base',\n weight: 'regular'\n }))\n};\n\nexport { universalMusicRedirectingModalStyles as default };\n//# sourceMappingURL=universalMusic.js.map\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport clubDeVacacionesRedirectingModalStyles from './styles/clubDeVacaciones.js';\nimport liverpoolRedirectingModalStyles from './styles/liverpool.js';\nimport tourMundialRedirectingModalStyles from './styles/tourMundial.js';\nimport universalMusicRedirectingModalStyles from './styles/universalMusic.js';\n\nconst redirectingModalThemes = createThemes({\n partnershipsLiverpool: liverpoolRedirectingModalStyles,\n partnershipsUniversalMusic: universalMusicRedirectingModalStyles,\n tourMundial: tourMundialRedirectingModalStyles,\n clubDeVacaciones: clubDeVacacionesRedirectingModalStyles\n});\n\nexport { redirectingModalThemes as default };\n//# sourceMappingURL=index.js.map\n","import Modal from '@babylon/ui-kit-structures/components/others/modal';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport styled, { keyframes } from 'styled-components';\nimport redirectingModalThemes from './themes/index.js';\n\nconst SearcherRedirectingModalWrapper = /*#__PURE__*/ styled(Modal).withConfig({\n displayName: \"SearcherRedirectingModalWrapper\"\n})([\n `& > div{max-width:450px;}img{`,\n `;}`,\n ``\n], ({ theme })=>BorderRadius({\n topLeft: `${theme.border.radius.rounded}`,\n topRight: `${theme.border.radius.rounded}`\n }), redirectingModalThemes('SearcherRedirectingModalWrapper'));\nconst SearcherRedirectingModalLoaderAnimation = /*#__PURE__*/ keyframes([\n `from{left:-200px;width:30%;}50%{width:30%;}70%{width:70%;}80%{left:50%;}95%{left:120%;}to{left:100%;}`\n]);\nconst SearcherRedirectingModalLoader = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"SearcherRedirectingModalLoader\"\n})([\n `background-color:rgba(39,174,96,0.2);height:4px;overflow:hidden;position:relative;width:100%;&::before{content:'';display:block;position:absolute;left:-200px;width:200px;height:4px;background-color:`,\n `;animation:`,\n ` 2s linear infinite;}`,\n ``\n], ({ theme })=>theme.colors.status.success, SearcherRedirectingModalLoaderAnimation, redirectingModalThemes('SearcherRedirectingModalLoader'));\nconst SearcherRedirectingModalContent = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"SearcherRedirectingModalContent\"\n})([\n `padding:32px;text-align:center;`\n]);\nconst SearcherRedirectingModalTitle = /*#__PURE__*/ styled.p.withConfig({\n displayName: \"SearcherRedirectingModalTitle\"\n})([\n `margin-bottom:12px;color:`,\n `;`,\n ` `,\n ``\n], ({ theme })=>theme.colors.grays.darker, FontMixin({\n size: 'largest',\n height: 'larger',\n weight: 'light'\n}), redirectingModalThemes('SearcherRedirectingModalTitle'));\nconst SearcherRedirectingModalDescription = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"SearcherRedirectingModalDescription\"\n})([\n `margin-bottom:4px;color:`,\n `;`,\n ` `,\n ``\n], ({ theme })=>theme.colors.grays.darker, FontMixin({\n size: 'medium',\n height: 'medium',\n weight: 'light'\n}), redirectingModalThemes('SearcherRedirectingModalDescription'));\nconst SearcherRedirectingModalMessage = /*#__PURE__*/ styled.p.withConfig({\n displayName: \"SearcherRedirectingModalMessage\"\n})([\n `color:`,\n `;`,\n ` `,\n ``\n], ({ theme })=>theme.colors.grays.dark, FontMixin({\n size: 'medium',\n height: 'medium',\n weight: 'light'\n}), redirectingModalThemes('SearcherRedirectingModalMessage'));\nconst Wrapper = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"Wrapper\"\n})([\n ``,\n ``\n], redirectingModalThemes('Wrapper'));\n\nexport { SearcherRedirectingModalContent, SearcherRedirectingModalDescription, SearcherRedirectingModalLoader, SearcherRedirectingModalMessage, SearcherRedirectingModalTitle, SearcherRedirectingModalWrapper, Wrapper };\n//# sourceMappingURL=styled.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Image from '@babylon/ui-kit-base/components/multimedia/image';\nimport contextBabylon from '@babylon/ui-kit-context';\nimport { transformAccommodationValueToText } from '@babylon/ui-kit-forms/helpers/accommodation';\nimport { transformPassengersValueToText } from '@babylon/ui-kit-forms/helpers/passengers';\nimport { formatDate } from '@babylon/ui-kit-helpers/date';\nimport { useContext, useState, useEffect, useMemo } from 'react';\nimport { LOADING } from './constants.js';\nimport { SearcherRedirectingModalWrapper, Wrapper, SearcherRedirectingModalLoader, SearcherRedirectingModalContent, SearcherRedirectingModalTitle, SearcherRedirectingModalDescription, SearcherRedirectingModalMessage } from './styled.js';\n\nconst SearcherRedirectingModal = ({ visible = false, literals, alternative, loadingImage, origin, destination, accommodation, passengers, dates = [], months, days })=>{\n const { loadingTitle = '', titleLoaderLabel = '', loadingMessage = '', messageLoaderLabel = '' } = literals ?? {};\n const { Language } = useContext(contextBabylon);\n const [displayedStartDate, setDisplayedStartDate] = useState('');\n const [displayedEndDate, setDisplayedEndDate] = useState('');\n useEffect(()=>{\n if (dates[0] && dates[1]) {\n formatDate(dates[0] || '', 'ddd DD MMM', Language).then(setDisplayedStartDate).catch(console.error);\n formatDate(dates[1] || '', 'ddd DD MMM', Language).then(setDisplayedEndDate).catch(console.error);\n } else if (dates[0] && !dates[1]) {\n formatDate(dates[0] || '', 'dddd, D MMMM YYYY', Language).then(setDisplayedStartDate).catch(console.error);\n setDisplayedEndDate('');\n }\n }, [\n Language,\n dates\n ]);\n const displayedDate = useMemo(()=>{\n if (displayedStartDate && displayedEndDate) {\n return /*#__PURE__*/ jsx(\"p\", {\n children: `${displayedStartDate} → ${displayedEndDate},`\n });\n }\n if (displayedStartDate && !displayedEndDate) {\n return /*#__PURE__*/ jsx(\"p\", {\n children: displayedStartDate\n });\n }\n return null;\n }, [\n displayedEndDate,\n displayedStartDate\n ]);\n return /*#__PURE__*/ jsx(SearcherRedirectingModalWrapper, {\n \"data-testid\": \"SearcherRedirectingModal\",\n visible: visible,\n iconRight: \"\",\n content: /*#__PURE__*/ jsxs(Wrapper, {\n children: [\n /*#__PURE__*/ jsx(Image, {\n src: loadingImage ?? `${LOADING.LOADING_SRC}${destination?.value ?? destination?.code}.jpg`,\n alternative: alternative ?? LOADING.LOADING_ALTERNATIVE,\n alt: loadingTitle || titleLoaderLabel,\n isLazy: false,\n width: 450,\n height: 220,\n resize: {\n width: 450,\n height: 220\n }\n }),\n /*#__PURE__*/ jsx(SearcherRedirectingModalLoader, {}),\n /*#__PURE__*/ jsxs(SearcherRedirectingModalContent, {\n children: [\n /*#__PURE__*/ jsx(SearcherRedirectingModalTitle, {\n children: loadingTitle || titleLoaderLabel\n }),\n /*#__PURE__*/ jsxs(SearcherRedirectingModalDescription, {\n children: [\n (!!origin || !!destination) && /*#__PURE__*/ jsxs(\"span\", {\n children: [\n (origin && origin?.text) ?? origin?.label ?? origin?.name,\n origin && destination && ' → ',\n destination?.text || (destination?.label ?? destination?.name)\n ]\n }),\n displayedDate,\n accommodation && /*#__PURE__*/ jsx(\"span\", {\n children: transformAccommodationValueToText(accommodation, literals)\n }),\n passengers && /*#__PURE__*/ jsx(\"span\", {\n children: transformPassengersValueToText(passengers, literals)\n }),\n months && /*#__PURE__*/ jsx(\"div\", {\n children: months.map((month)=>month.label).join(' - ')\n }),\n days && /*#__PURE__*/ jsx(\"div\", {\n children: days.map((day)=>day.label).join(', ')\n })\n ]\n }),\n /*#__PURE__*/ jsx(SearcherRedirectingModalMessage, {\n children: loadingMessage || messageLoaderLabel\n })\n ]\n })\n ]\n })\n });\n};\n\nexport { SearcherRedirectingModal as default };\n//# sourceMappingURL=index.js.map\n","const MOCK_LITERALS_TOGGLE = {\n es: {\n yes: 'Si',\n no: 'No'\n },\n pt: {\n yes: 'Sim',\n no: 'Não'\n },\n it: {\n yes: 'Sì',\n no: 'Non'\n },\n de: {\n yes: 'Ja',\n no: 'Nicht'\n },\n br: {\n yes: 'Sim',\n no: 'Não'\n },\n fr: {\n yes: 'Ouais',\n no: 'Pas'\n },\n uk: {\n yes: 'Yes',\n no: 'No'\n },\n en: {\n yes: 'Yes',\n no: 'No'\n },\n mx: {\n yes: 'Si',\n no: 'No'\n },\n ir: {\n yes: 'Yes',\n no: 'No'\n }\n};\n\nexport { MOCK_LITERALS_TOGGLE };\n//# sourceMappingURL=mock.js.map\n","import { useInput } from '../../../../hooks/useInput/index.js';\n\nconst useFormAccommodation = (props)=>{\n const { isHiddenRequired: _isHiddenRequired, ...rest } = props;\n const { field, label, error, hasError } = useInput(props);\n return {\n ...rest,\n ...field,\n label,\n error,\n hasError\n };\n};\n\nexport { useFormAccommodation as default };\n//# sourceMappingURL=useFormAccommodation.js.map\n","import { PanelWrapper } from '../../../../../../../../others/input-panel/views/desktop/styled.js';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst clubDeVacacionesAccomodationStyles = {\n Accomodation: ()=>/*#__PURE__*/ css([\n ``,\n `{box-shadow:0px 2px 4px -1px `,\n `,0px 4px 6px -1px `,\n `;}`\n ], PanelWrapper, ({ theme })=>theme.colors.black.higher, ({ theme })=>theme.colors.black.higher),\n Header: ()=>/*#__PURE__*/ css([\n `p{`,\n ` text-transform:uppercase;color:`,\n `;}`,\n ``\n ], FontMixin({\n size: 'base',\n height: 'base',\n weight: 'bold'\n }), ({ theme })=>theme.colors.grays.darker, Border({\n bottom: 'unset'\n })),\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n ``,\n ` & > .panel-error{`,\n `;}`\n ], Border({\n top: 'unset'\n }), ({ theme })=>Border({\n bottom: `1px solid ${theme.colors.grays.lightestL}`\n }))\n};\n\nexport { clubDeVacacionesAccomodationStyles as default };\n//# sourceMappingURL=clubDeVacaciones.js.map\n","import { InputWrapper, InputLabel, InputIcon } from '../../../../../../../input/styled.js';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { BorderRadius, Padding, Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst liverpoolAccomodationStyles = {\n Accomodation: ()=>/*#__PURE__*/ css([\n ``,\n `{--outline-color-focused:`,\n `;max-height:66px input{`,\n ` `,\n ` color:`,\n `}`,\n `{`,\n ` overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:80%;}`,\n `{color:`,\n `;}}`\n ], InputWrapper, ({ theme })=>theme.colors.primary.base, BorderRadius({\n all: '8px'\n }), FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'regular'\n }), ({ theme })=>theme.colors.grays.darker, InputLabel, FontMixin({\n size: 'medium',\n height: 'base',\n weight: 'regular'\n }), InputIcon, ({ theme })=>theme.colors.primary.lighter),\n Header: ()=>/*#__PURE__*/ css([\n `p{`,\n ` font-family:`,\n `;}button{color:`,\n `;`,\n ` height:32px;min-height:32px;`,\n `}`,\n `;`,\n ``\n ], FontMixin({\n size: 'base',\n height: 'base',\n weight: 'bold'\n }), ({ theme })=>theme.font.family.secondary, ({ theme })=>theme.colors.primary.lighter, FontMixin({\n height: 'small',\n weight: 'semiBold'\n }), Padding({\n y: '12px'\n }), ({ theme })=>Border({\n bottom: `1px solid ${theme.colors.grays.lighter}`\n }), Padding({\n bottom: '12px'\n }))\n};\n\nexport { liverpoolAccomodationStyles as default };\n//# sourceMappingURL=liverpool.js.map\n","import { PanelWrapper } from '../../../../../../../../others/input-panel/views/desktop/styled.js';\nimport { FontMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport { css } from 'styled-components';\n\nconst tourMundialAccomodationStyles = {\n Accomodation: ()=>/*#__PURE__*/ css([\n ``,\n `{box-shadow:0px 8px 16px 0px `,\n `;}`\n ], PanelWrapper, ({ theme })=>theme.colors.black.high),\n Header: ()=>/*#__PURE__*/ css([\n `p{`,\n ` text-transform:uppercase;color:`,\n `;}`,\n ``\n ], FontMixin({\n size: 'base',\n height: 'base',\n weight: 'semiBold'\n }), ({ theme })=>theme.colors.grays.darker, Border({\n bottom: 'unset'\n })),\n InputPanelFooter: ()=>/*#__PURE__*/ css([\n ``,\n ` & > .panel-error{`,\n `;background-color:`,\n `;}`\n ], Border({\n top: 'unset'\n }), ({ theme })=>Border({\n bottom: `1px solid ${theme.colors.status.complementary6}`\n }), ({ theme })=>theme.colors.white.base)\n};\n\nexport { tourMundialAccomodationStyles as default };\n//# sourceMappingURL=tourMundial.js.map\n","import { createThemes } from '@babylon/ui-kit-styles/common/themes';\nimport { ThemeId } from '@babylon/ui-kit-styles/types/theme';\nimport clubDeVacacionesAccomodationStyles from './styles/clubDeVacaciones.js';\nimport liverpoolAccomodationStyles from './styles/liverpool.js';\nimport tourMundialAccomodationStyles from './styles/tourMundial.js';\n\nconst accomodationThemes = createThemes({\n [ThemeId.partnershipsLiverpool]: liverpoolAccomodationStyles,\n [ThemeId.tourMundial]: tourMundialAccomodationStyles,\n [ThemeId.clubDeVacaciones]: clubDeVacacionesAccomodationStyles\n});\n\nexport { accomodationThemes as default };\n//# sourceMappingURL=index.js.map\n","import { PanelFooter } from '../../../../../../others/input-panel/views/desktop/styled.js';\nimport { FlexMixin } from '@babylon/ui-kit-styles/common/mixins/helpers.styled';\nimport { Padding, Border } from '@babylon/ui-kit-styles/common/mixins/logical.styled';\nimport styled from 'styled-components';\nimport { DiscountWrapper } from '../../../with-discounts/components/discount/views/desktop/styled.js';\nimport accomodationThemes from './themes/index.js';\n\nconst Header = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"Header\"\n})([\n ``,\n ` display:flex;& > p{margin-right:15px;}& > button{margin-left:auto;white-space:nowrap;}`,\n ``\n], FlexMixin({\n align: 'center',\n justify: 'space-between'\n}), accomodationThemes('Header'));\nconst Accomodation = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"Accomodation\"\n})([\n ``,\n `{`,\n ` `,\n ` --primary-background:`,\n `;button{`,\n ` align-self:flex-end;}}`,\n ``\n], PanelFooter, Padding({\n all: 'unset'\n}), FlexMixin({\n direction: 'column'\n}), ({ theme })=>theme.colors.white.base, FlexMixin({\n align: 'center'\n}), accomodationThemes('Accomodation'));\nconst InputPanelFooter = /*#__PURE__*/ styled.div.withConfig({\n displayName: \"InputPanelFooter\"\n})([\n ``,\n `;& > .panel-error{`,\n ` background-color:`,\n `;}`,\n `{`,\n `}`,\n ``\n], ({ theme })=>Border({\n top: `1px solid ${theme.colors.grays.light}`\n }), Padding({\n all: '16px'\n}), ({ theme })=>theme.colors.primary.lightest, DiscountWrapper, Padding({\n all: '16px'\n}), accomodationThemes('InputPanelFooter'));\n\nexport { Accomodation, Header, InputPanelFooter };\n//# sourceMappingURL=styled.js.map\n","import { jsxs, jsx, Fragment } from 'react/jsx-runtime';\nimport PanelAccommodationDesktop from '../../../../components/panel-accommodation/views/desktop/index.js';\nimport InputPanelDesktop from '../../../../../../others/input-panel/views/desktop/index.js';\nimport { forwardRef, useMemo } from 'react';\nimport AddRoom from '../../../../components/add-room/index.js';\nimport PassengersContentDesktop from '../../../../components/panel-accommodation/components/info-text/index.js';\nimport PanelErrorDesktop from '../../../../components/panel-accommodation/components/panel-error/views/desktop/index.js';\nimport useAccommodation from '../../../../hooks/useAccommodation.js';\nimport useFormAccommodation from '../../../../hooks/useFormAccommodation.js';\nimport { Header, InputPanelFooter, Accomodation } from './styled.js';\n\nconst AccommodationDesktop = /*#__PURE__*/ forwardRef((props, ref)=>{\n const { literals, tooltipOptions, disableAges = false, className = '', infoText } = props;\n const { addRoom = '', accommodationTitle = '' } = literals ?? {};\n const { inputProps, panelRooms, config, people, goToLast, hasError, error, onAddRoom, onChangeRooms, renderFooter } = useAccommodation(props);\n const panel = useMemo(()=>({\n header: /*#__PURE__*/ jsxs(Header, {\n children: [\n accommodationTitle && /*#__PURE__*/ jsx(\"p\", {\n children: accommodationTitle\n }),\n /*#__PURE__*/ jsx(AddRoom, {\n addRoom: addRoom,\n onAddRoom: onAddRoom,\n hasError: hasError,\n height: \"20px\"\n })\n ]\n }),\n content: /*#__PURE__*/ jsx(PanelAccommodationDesktop, {\n config: config,\n onChange: onChangeRooms,\n people: people,\n rooms: panelRooms,\n error: error,\n goToLast: goToLast,\n disableAges: disableAges\n }),\n footer: (renderProps)=>/*#__PURE__*/ jsxs(Fragment, {\n children: [\n infoText && /*#__PURE__*/ jsx(PassengersContentDesktop, {\n variant: \"info\",\n infoText: infoText\n }),\n error && /*#__PURE__*/ jsx(InputPanelFooter, {\n children: /*#__PURE__*/ jsx(PanelErrorDesktop, {\n error: error\n })\n }),\n literals?.accept ? renderFooter(renderProps) : undefined\n ]\n })\n }), [\n accommodationTitle,\n addRoom,\n config,\n disableAges,\n error,\n goToLast,\n hasError,\n infoText,\n literals?.accept,\n onAddRoom,\n onChangeRooms,\n panelRooms,\n people,\n renderFooter\n ]);\n const tooltipProps = useMemo(()=>({\n options: tooltipOptions\n }), [\n tooltipOptions\n ]);\n return /*#__PURE__*/ jsx(Accomodation, {\n \"data-testid\": \"Accommodation\",\n className: className,\n children: /*#__PURE__*/ jsx(InputPanelDesktop, {\n ref: ref,\n inputProps: inputProps,\n footerVariant: 'bgPrimary',\n panel: panel,\n tooltipProps: tooltipProps\n })\n });\n});\nAccommodationDesktop.displayName = 'AccommodationDesktop';\nconst FormAccommodationDesktop = (props)=>{\n const finalProps = useFormAccommodation(props);\n return /*#__PURE__*/ jsx(AccommodationDesktop, {\n ...finalProps\n });\n};\n\nexport { FormAccommodationDesktop, AccommodationDesktop as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../searcher/skeleton/views/mobile/index.js';\n\nconst SearcherMultipleSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n top: {\n maxItems: 4\n },\n variants: 5\n }\n },\n ...props\n });\n\nexport { SearcherMultipleSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherActivitiesSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 4\n }\n },\n ...props\n });\n\nexport { SearcherActivitiesSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherCarSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 5\n }\n },\n ...props\n });\n\nexport { SearcherCarSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeleton from '../../../../../../others/searcher/skeleton/index.js';\n\nconst SearcherCruSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeleton, {\n config: {\n mobile: {\n variants: 6\n }\n },\n ...props\n });\n\nexport { SearcherCruSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherDestinationSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 2\n }\n },\n ...props\n });\n\nexport { SearcherDestinationSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherFerryHotelSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 6\n }\n },\n ...props\n });\n\nexport { SearcherFerryHotelSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeleton from '../../../../../../others/searcher/skeleton/index.js';\n\nconst SearcherFliSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeleton, {\n config: {\n mobile: {\n top: {\n maxItems: 3\n },\n variants: 4\n }\n },\n ...props\n });\n\nexport { SearcherFliSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherFlightHotelSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 4\n }\n },\n ...props\n });\n\nexport { SearcherFlightHotelSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherHotSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 4\n }\n },\n ...props\n });\n\nexport { SearcherHotSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\nimport styled from 'styled-components';\nimport { searcherSkeletonBase } from '../../styled.js';\n\nconst SearcherSkeleton = /*#__PURE__*/ styled(SearcherSkeletonMobile).withConfig({\n displayName: \"SearcherSkeleton\"\n})([\n ``,\n ``\n], searcherSkeletonBase);\n\nexport { SearcherSkeleton };\n//# sourceMappingURL=styled.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport { SearcherSkeleton } from './styled.js';\n\nconst SearcherInsuranceSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeleton, {\n config: {\n mobile: {\n variants: 6\n }\n },\n ...props\n });\n\nexport { SearcherInsuranceSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherLeiSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 3\n }\n },\n ...props\n });\n\nexport { SearcherLeiSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherLeisureMultiSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n top: {\n maxItems: 3\n },\n variants: 4\n }\n },\n ...props\n });\n\nexport { SearcherLeisureMultiSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherMultipleSkeletonMobile from '../../../../../../others/searcher-multiple/components/skeleton/views/mobile/index.js';\n\nconst SearcherMultiPakSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherMultipleSkeletonMobile, {\n variant: \"radio-buttons\",\n ...props\n });\n\nexport { SearcherMultiPakSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\n// This skeleton is required for the renderSkeleton of SearcherTabs\nconst SearcherMultiProductSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 6\n }\n },\n ...props\n });\n\nexport { SearcherMultiProductSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherProSkeletonMobile = ({ numberOfInputs = 6, hasResident = true, ...props })=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: numberOfInputs + (hasResident ? 2 : 1)\n }\n },\n ...props\n });\n\nexport { SearcherProSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherTouSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 5\n }\n },\n ...props\n });\n\nexport { SearcherTouSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherTraSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 4\n }\n },\n ...props\n });\n\nexport { SearcherTraSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherTrainHotelSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 4\n }\n },\n ...props\n });\n\nexport { SearcherTrainHotelSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport SearcherSkeletonMobile from '../../../../../../others/searcher/skeleton/views/mobile/index.js';\n\nconst SearcherTransfersSkeletonMobile = (props)=>/*#__PURE__*/ jsx(SearcherSkeletonMobile, {\n config: {\n mobile: {\n variants: 6\n }\n },\n ...props\n });\n\nexport { SearcherTransfersSkeletonMobile as default };\n//# sourceMappingURL=index.js.map\n","import { ErrorBoundary } from '@babylon/ui-kit-helpers/error-boundary';\nimport type { FC, ReactElement } from 'react';\nimport { Children } from 'react';\n\nimport type { ComponentMap, ComponentPropMap, MainHomeOrderComponents } from '../types';\n\nexport const combineProps = (props: string[], componentPropMapping: ComponentPropMap) => {\n\tconst componentProps = props.map(propKey => componentPropMapping[propKey]);\n\tconst combinedComponentProps = Object.assign({}, ...componentProps);\n\n\treturn combinedComponentProps;\n};\n\n/*\n\tRender same as \"Context.order\" from Alexandria model, everything is based on the mappings,\n\tif a component/prop does not exist in the mapping, it will not be rendered.:\n\n\t1. filter out components that does not exist in componentMapping.\n\t2. map over components and render them.\n\t\t2.1. if component has props, combine them.\n\t\t2.2. if component has props but does not exist in componentPropMapping return null.\n\t3. if component has children, render them recursively and start from step 1.\n*/\nexport const renderComponentsWithHierarchyAndOrder = (\n\trenderComponents: MainHomeOrderComponents[],\n\tcomponentMapping: ComponentMap,\n\tcomponentPropMapping: ComponentPropMap\n): ReactElement => (\n\t<>\n\t\t{Children.toArray(\n\t\t\trenderComponents\n\t\t\t\t// filter out components that does not exist in componentMapping\n\t\t\t\t.filter(({ component }) => component in componentMapping)\n\t\t\t\t.map(({ component, props, children }) => {\n\t\t\t\t\tcomponentMapping[component].displayName = component;\n\t\t\t\t\tconst Component = ErrorBoundary(componentMapping[component]);\n\t\t\t\t\tconst componentProperties = combineProps(props ?? [], componentPropMapping);\n\n\t\t\t\t\t// component has props but does not exist in componentPropMapping (props with items and componentProps as {}).\n\t\t\t\t\tif (Object.keys(componentProperties).length === 0 && (props ?? []).length !== 0) return null;\n\n\t\t\t\t\treturn children ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{renderComponentsWithHierarchyAndOrder(children, componentMapping, componentPropMapping)}\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})\n\t\t)}\n\t>\n);\n\n// TODO: change props: any type\nexport const renderComponentsWithOrder = (order: string[], props: any, componentMapping: { [x: string]: FC }) => {\n\t// filter out components that does not exist in component mapping\n\tconst componentsOrderOnlyInMapping = order.filter(component => component in componentMapping && props[component]);\n\n\treturn componentsOrderOnlyInMapping.map((component, index) => {\n\t\tcomponentMapping[component].displayName = component;\n\t\tconst Component = ErrorBoundary(componentMapping[component]);\n\t\tconst componentProps = props[component];\n\t\treturn ;\n\t});\n};\n\nexport const renderComponentsWithOrderAndCarouselsOrder = (\n\torder: string[],\n\tprops: any,\n\tcomponentMapping: { [x: string]: FC }\n) => {\n\tconst updatedOrder = [...order];\n\n\t// Insert the carousels placeholders in the order\n\tif (props?.carouselsOrder?.props?.order) {\n\t\tconst index = updatedOrder.findIndex(x => x === 'carouselsOrder');\n\t\tif (index !== -1) {\n\t\t\tconst carouselsOrder = props.carouselsOrder.props.order.map((x: string) => x.toLowerCase());\n\t\t\tupdatedOrder.splice(index, 1, ...carouselsOrder);\n\t\t}\n\t}\n\n\t// Filter out components that do not exist in the mapping\n\tconst componentsOrderOnlyInMapping = updatedOrder.filter(component => {\n\t\tconst componentProps = props[component];\n\n\t\tif (component.includes('component')) {\n\t\t\tconst nameComponentX = componentProps?.name;\n\t\t\treturn !!componentMapping[nameComponentX];\n\t\t}\n\t\treturn component in componentMapping && (componentProps ?? componentMapping[component]);\n\t});\n\n\t// Render components based on the updated order\n\treturn componentsOrderOnlyInMapping.map((component, index) => {\n\t\tcomponentMapping[component].displayName = component;\n\t\tconst Component = ErrorBoundary(componentMapping[component]);\n\t\tconst componentProps = props[component];\n\t\treturn ;\n\t});\n};\n\nexport const excludeComponentsByList = (inputList: string[], excludeList: string[]) =>\n\tinputList.filter(item => !excludeList.includes(item));\n","import { getResizeUrl, hasDomain } from '@babylon/ui-kit-base/components/multimedia/image/utils';\nimport contextBabylon from '@babylon/ui-kit-context';\nimport 'glightbox/dist/css/glightbox.min.css';\nimport { useRef, useContext, useEffect } from 'react';\n\nconst useLightbox = (items, imageConfig)=>{\n const lightbox = useRef(null);\n const context = useContext(contextBabylon);\n const mscdn = context.Cdn.startsWith('http') ? context.Cdn.substring(6) : context.Cdn;\n const images = items.map((item)=>{\n const href = imageConfig ? getResizeUrl(imageConfig, mscdn, item.src) : hasDomain(item.src, mscdn);\n return {\n href: imageConfig?.noResize ? item.src : href,\n type: 'image',\n alt: item.alt\n };\n });\n useEffect(()=>{\n if (!lightbox.current) {\n // @ts-ignore\n import('glightbox').then((module)=>{\n lightbox.current = module.default({\n openEffect: 'fade',\n closeEffect: 'fade',\n loop: true,\n elements: images\n });\n });\n }\n }, [\n images\n ]);\n const handleOpenGallery = (index)=>{\n // @ts-ignore\n lightbox.current.openAt(index);\n };\n return {\n handleOpenGallery\n };\n};\n\nexport { useLightbox as default };\n//# sourceMappingURL=useLightbox.js.map\n"],"file":"cdn-placeholder/babylon/packages/circuits/client/chunks/useLightbox.DFb7jezT.js"}