@roomstay/frontend 2.3.33 → 2.3.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -140,7 +140,7 @@ const BookingWizardContent = ({ properties, selectedProperty: defaultProperty, d
140
140
  react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.ChooseHotel)),
141
141
  react_1.default.createElement(BookingWizardHotelSelector_1.BookingWizardHotelSelector, { onChange: (value) => setSelectedProperty(value || undefined), properties: properties, selectedProperty: selectedProperty, contentClassName: classname })),
142
142
  react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider })),
143
- react_1.default.createElement(BookingWizardDateSelector_1.BookingWizardDateSelector, { onChange: setDate }),
143
+ react_1.default.createElement(BookingWizardDateSelector_1.BookingWizardDateSelector, { onChange: setDate, defaultStartDate: defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.checkIn, defaultEndDate: defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.checkout }),
144
144
  react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider }),
145
145
  react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.item },
146
146
  react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.Guests)),
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizardContent.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardContent.tsx"],"names":[],"mappings":"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","sourcesContent":["import 'react-spring-bottom-sheet/dist/style.css';\n\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AvailabilityAPI from '@/api/AvailabilityAPI';\nimport { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nimport { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Translation } from '@/translations/Translation';\n\nimport BEButton from '../BEButton';\nimport styles from './BookingWizard.module.scss';\nimport { BookingWizardContext, BookingWizardOnBooking } from './BookingWizardContext';\nimport { BookingWizardDateSelector } from './BookingWizardDateSelector/BookingWizardDateSelector';\nimport { BookingWizardGuestSelector } from './BookingWizardGuestSelector/BookingWizardGuestSelector';\nimport { BookingWizardHotelSelector } from './BookingWizardHotelSelector/BookingWizardHotelSelector';\nimport { BookingWizardPromoCode } from './BookingWizardPromoCode/BookingWizardPromoCode';\n\nexport interface BookingWizardContentProps {\n defaultColors: BookingWizardProperty['colors'];\n properties: TBookingWizardProperties;\n selectedProperty?: BookingWizardProperty;\n classname?: string;\n disableChild?: boolean;\n disableRoom?: boolean;\n defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id'>>;\n}\n\nexport const BookingWizardContent: React.FC<BookingWizardContentProps> = ({\n properties,\n selectedProperty: defaultProperty,\n defaultColors,\n classname,\n disableChild,\n disableRoom,\n defaultValues,\n}) => {\n const bwContext = useContext(BookingWizardContext);\n const { t } = useTranslation();\n\n const [checkInDate, setCheckInDate] = useState<Dayjs | null>(defaultValues?.checkIn || dayjs());\n const [checkOutDate, setCheckOutDate] = useState<Dayjs | null>(defaultValues?.checkout || dayjs().add(1, 'days'));\n const [adults, setAdults] = useState<number>(defaultValues?.guests?.adults ?? 1);\n const [children, setChildren] = useState<number>(defaultValues?.guests?.children ?? 0);\n const [room, setRoom] = useState<number>(defaultValues?.guests?.room ?? 1);\n const [promoCode, setPromoCode] = useState<string>(defaultValues?.promoCode || '');\n const [promoCodeValid, setPromoCodeValid] = useState<boolean>();\n const [selectedProperty, setSelectedProperty] = useState<BookingWizardProperty | undefined>(defaultProperty);\n\n useEffect(() => {\n if (selectedProperty?.colors) {\n RoomstayThemeEngine.changeTheme(selectedProperty.colors);\n } else if (defaultColors) {\n RoomstayThemeEngine.changeTheme(defaultColors);\n }\n }, [selectedProperty]);\n\n const setGuest = (guests: BookingWizardOnBooking['guests']) => {\n setAdults(guests.adults);\n setChildren(guests.children);\n setRoom(guests.room);\n };\n\n const setDate = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n setCheckInDate(startDate);\n setCheckOutDate(endDate);\n };\n\n const isValid = () => {\n if (!selectedProperty) return false;\n if (!checkInDate) return false;\n if (!checkOutDate) return false;\n if (adults + children <= 0) return false;\n\n return true;\n };\n\n const _onSubmit = () => {\n if (!isValid()) return false;\n\n // After passing validation, we pass the function up the chain for the engine\n // Implementor to decide where the user should be redirected to\n // This is to give the hotel team a chance to add tracking, or modify the request on their end.\n bwContext.onSubmit?.({\n id: selectedProperty?.id as string,\n checkIn: checkInDate as Dayjs,\n checkout: checkOutDate as Dayjs,\n promoCode,\n guests: {\n adults,\n children,\n room,\n },\n });\n };\n\n const _onPromoCodeChange = async (value?: string) => {\n setPromoCode?.(value || '');\n if (!value) {\n setPromoCodeValid(undefined);\n } else if (isValid() && selectedProperty && checkInDate && checkOutDate) {\n const result = await new AvailabilityAPI().fetchAvailability({\n fromDate: checkInDate,\n toDate: checkOutDate,\n adults,\n children,\n promoCode: value,\n hotelId: selectedProperty?.id,\n promoOnly: true,\n });\n\n const rate = Object.values(result.ratePlans).find((rate: any) => rate.promoCode === value);\n setPromoCodeValid(!!rate);\n }\n };\n\n const submitButton = (\n <BEButton disabled={!isValid()} className={styles.bookNowBtn} onClick={_onSubmit}>\n {t(Translation.Misc.BookNow)}\n </BEButton>\n );\n\n return (\n <>\n <div\n className={classNames(\n styles.content,\n styles[`--${bwContext.layout}`],\n {\n [styles['--vertical']]: bwContext.layout === 'button',\n [styles.inline]: bwContext.type === 'inline',\n },\n classname\n )}\n >\n <>\n <div className={styles.item}>\n <label className={styles.label}>{t(Translation.Misc.ChooseHotel)}</label>\n <BookingWizardHotelSelector\n onChange={(value) => setSelectedProperty(value || undefined)}\n properties={properties}\n selectedProperty={selectedProperty}\n contentClassName={classname}\n />\n </div>\n <div className={styles.divider} />\n </>\n <BookingWizardDateSelector onChange={setDate} />\n\n <div className={styles.divider} />\n <div className={styles.item}>\n <label className={styles.label}>{t(Translation.Misc.Guests)}</label>\n <BookingWizardGuestSelector\n defaultValue={{\n adults,\n children,\n room,\n }}\n onChange={setGuest}\n disableChild={disableChild}\n disableRoom={disableRoom}\n />\n </div>\n <div className={styles.divider} />\n {bwContext.layout === 'horizontal-condensed' ? null : (\n <div className={styles.item}>\n <label className={styles.label}>Promocode</label>\n <BookingWizardPromoCode promoCode={promoCode} onChange={_onPromoCodeChange} valid={promoCodeValid} />\n </div>\n )}\n {!(bwContext.layout === 'horizontal-condensed') ? <div className={styles.action}>{submitButton}</div> : null}\n </div>\n\n {bwContext.layout === 'horizontal-condensed' ? (\n <div className={classNames(styles.content, classname)}>\n <div className={classNames(styles.action, styles.centerItems, 'u-marg-top u-marg-top--light@l-')}>{submitButton}</div>\n </div>\n ) : null}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"BookingWizardContent.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardContent.tsx"],"names":[],"mappings":"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","sourcesContent":["import 'react-spring-bottom-sheet/dist/style.css';\n\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useContext, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AvailabilityAPI from '@/api/AvailabilityAPI';\nimport { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nimport { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Translation } from '@/translations/Translation';\n\nimport BEButton from '../BEButton';\nimport styles from './BookingWizard.module.scss';\nimport { BookingWizardContext, BookingWizardOnBooking } from './BookingWizardContext';\nimport { BookingWizardDateSelector } from './BookingWizardDateSelector/BookingWizardDateSelector';\nimport { BookingWizardGuestSelector } from './BookingWizardGuestSelector/BookingWizardGuestSelector';\nimport { BookingWizardHotelSelector } from './BookingWizardHotelSelector/BookingWizardHotelSelector';\nimport { BookingWizardPromoCode } from './BookingWizardPromoCode/BookingWizardPromoCode';\n\nexport interface BookingWizardContentProps {\n defaultColors: BookingWizardProperty['colors'];\n properties: TBookingWizardProperties;\n selectedProperty?: BookingWizardProperty;\n classname?: string;\n disableChild?: boolean;\n disableRoom?: boolean;\n defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id'>>;\n}\n\nexport const BookingWizardContent: React.FC<BookingWizardContentProps> = ({\n properties,\n selectedProperty: defaultProperty,\n defaultColors,\n classname,\n disableChild,\n disableRoom,\n defaultValues,\n}) => {\n const bwContext = useContext(BookingWizardContext);\n const { t } = useTranslation();\n\n const [checkInDate, setCheckInDate] = useState<Dayjs | null>(defaultValues?.checkIn || dayjs());\n const [checkOutDate, setCheckOutDate] = useState<Dayjs | null>(defaultValues?.checkout || dayjs().add(1, 'days'));\n const [adults, setAdults] = useState<number>(defaultValues?.guests?.adults ?? 1);\n const [children, setChildren] = useState<number>(defaultValues?.guests?.children ?? 0);\n const [room, setRoom] = useState<number>(defaultValues?.guests?.room ?? 1);\n const [promoCode, setPromoCode] = useState<string>(defaultValues?.promoCode || '');\n const [promoCodeValid, setPromoCodeValid] = useState<boolean>();\n const [selectedProperty, setSelectedProperty] = useState<BookingWizardProperty | undefined>(defaultProperty);\n\n useEffect(() => {\n if (selectedProperty?.colors) {\n RoomstayThemeEngine.changeTheme(selectedProperty.colors);\n } else if (defaultColors) {\n RoomstayThemeEngine.changeTheme(defaultColors);\n }\n }, [selectedProperty]);\n\n const setGuest = (guests: BookingWizardOnBooking['guests']) => {\n setAdults(guests.adults);\n setChildren(guests.children);\n setRoom(guests.room);\n };\n\n const setDate = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n setCheckInDate(startDate);\n setCheckOutDate(endDate);\n };\n\n const isValid = () => {\n if (!selectedProperty) return false;\n if (!checkInDate) return false;\n if (!checkOutDate) return false;\n if (adults + children <= 0) return false;\n\n return true;\n };\n\n const _onSubmit = () => {\n if (!isValid()) return false;\n\n // After passing validation, we pass the function up the chain for the engine\n // Implementor to decide where the user should be redirected to\n // This is to give the hotel team a chance to add tracking, or modify the request on their end.\n bwContext.onSubmit?.({\n id: selectedProperty?.id as string,\n checkIn: checkInDate as Dayjs,\n checkout: checkOutDate as Dayjs,\n promoCode,\n guests: {\n adults,\n children,\n room,\n },\n });\n };\n\n const _onPromoCodeChange = async (value?: string) => {\n setPromoCode?.(value || '');\n if (!value) {\n setPromoCodeValid(undefined);\n } else if (isValid() && selectedProperty && checkInDate && checkOutDate) {\n const result = await new AvailabilityAPI().fetchAvailability({\n fromDate: checkInDate,\n toDate: checkOutDate,\n adults,\n children,\n promoCode: value,\n hotelId: selectedProperty?.id,\n promoOnly: true,\n });\n\n const rate = Object.values(result.ratePlans).find((rate: any) => rate.promoCode === value);\n setPromoCodeValid(!!rate);\n }\n };\n\n const submitButton = (\n <BEButton disabled={!isValid()} className={styles.bookNowBtn} onClick={_onSubmit}>\n {t(Translation.Misc.BookNow)}\n </BEButton>\n );\n\n return (\n <>\n <div\n className={classNames(\n styles.content,\n styles[`--${bwContext.layout}`],\n {\n [styles['--vertical']]: bwContext.layout === 'button',\n [styles.inline]: bwContext.type === 'inline',\n },\n classname\n )}\n >\n <>\n <div className={styles.item}>\n <label className={styles.label}>{t(Translation.Misc.ChooseHotel)}</label>\n <BookingWizardHotelSelector\n onChange={(value) => setSelectedProperty(value || undefined)}\n properties={properties}\n selectedProperty={selectedProperty}\n contentClassName={classname}\n />\n </div>\n <div className={styles.divider} />\n </>\n <BookingWizardDateSelector onChange={setDate} defaultStartDate={defaultValues?.checkIn} defaultEndDate={defaultValues?.checkout} />\n\n <div className={styles.divider} />\n <div className={styles.item}>\n <label className={styles.label}>{t(Translation.Misc.Guests)}</label>\n <BookingWizardGuestSelector\n defaultValue={{\n adults,\n children,\n room,\n }}\n onChange={setGuest}\n disableChild={disableChild}\n disableRoom={disableRoom}\n />\n </div>\n <div className={styles.divider} />\n {bwContext.layout === 'horizontal-condensed' ? null : (\n <div className={styles.item}>\n <label className={styles.label}>Promocode</label>\n <BookingWizardPromoCode promoCode={promoCode} onChange={_onPromoCodeChange} valid={promoCodeValid} />\n </div>\n )}\n {!(bwContext.layout === 'horizontal-condensed') ? <div className={styles.action}>{submitButton}</div> : null}\n </div>\n\n {bwContext.layout === 'horizontal-condensed' ? (\n <div className={classNames(styles.content, classname)}>\n <div className={classNames(styles.action, styles.centerItems, 'u-marg-top u-marg-top--light@l-')}>{submitButton}</div>\n </div>\n ) : null}\n </>\n );\n};\n"]}
@@ -2,6 +2,8 @@ import dayjs from 'dayjs';
2
2
  import React from 'react';
3
3
  export interface BookingWizardDateSelectorProps {
4
4
  open?: boolean;
5
+ defaultStartDate?: dayjs.Dayjs;
6
+ defaultEndDate?: dayjs.Dayjs;
5
7
  onChange?: (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => void;
6
8
  }
7
9
  export declare const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps>;
@@ -45,11 +45,12 @@ const BookingWizardBottomSheet_1 = __importDefault(require("../BookingWizardBott
45
45
  const BookingWizardContext_1 = require("../BookingWizardContext");
46
46
  const BookingWizardDateSelector_module_scss_1 = __importDefault(require("./BookingWizardDateSelector.module.scss"));
47
47
  const BookingWizardDateSelector = (props) => {
48
+ const { defaultStartDate, defaultEndDate } = props;
48
49
  const { overlay, theme, layout, type: overlayType } = (0, BookingWizardContext_1.useBookingWizard)();
49
50
  const { t } = (0, react_i18next_1.useTranslation)();
50
51
  const checkOutDatePickerRef = react_1.default.useRef(null);
51
- const [startDate, setStartDate] = (0, react_1.useState)((0, dayjs_1.default)());
52
- const [endDate, setEndDate] = (0, react_1.useState)((0, dayjs_1.default)().add(1, 'days'));
52
+ const [startDate, setStartDate] = (0, react_1.useState)(defaultStartDate !== null && defaultStartDate !== void 0 ? defaultStartDate : (0, dayjs_1.default)());
53
+ const [endDate, setEndDate] = (0, react_1.useState)(defaultEndDate !== null && defaultEndDate !== void 0 ? defaultEndDate : (0, dayjs_1.default)().add(1, 'days'));
53
54
  const [selectingStartDate, setSelectingStartDate] = (0, react_1.useState)(startDate);
54
55
  const [selectingEndDate, setSelectingEndDate] = (0, react_1.useState)(endDate);
55
56
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizardDateSelector.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport BEButton from '@/components/generic/BEButton';\nimport DateRangePicker from '@/components/generic/DateRangePicker/DateRangePicker';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text from '@/components/generic/Text';\nimport { useWindowSize } from '@/hooks/WindowSize';\nimport { Translation } from '@/translations/Translation';\n\nimport FloatingDateRangePicker, { FloatingDateRangePickerHandle } from '../../DateRangePicker/FloatingDateRangePicker';\nimport { EBookingWizardTheme } from '../BookingWizard';\nimport bookingWizardStyles from '../BookingWizard.module.scss';\nimport BookingWizardBottomSheet from '../BookingWizardBottomSheet/BookingWizardBottomSheet';\nimport { useBookingWizard } from '../BookingWizardContext';\nimport styles from './BookingWizardDateSelector.module.scss';\n\nexport interface BookingWizardDateSelectorProps {\n open?: boolean;\n onChange?: (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => void;\n}\n\nexport const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps> = (props) => {\n const { overlay, theme, layout, type: overlayType } = useBookingWizard();\n const { t } = useTranslation();\n\n const checkOutDatePickerRef = React.useRef<FloatingDateRangePickerHandle>(null);\n\n const [startDate, setStartDate] = useState<dayjs.Dayjs | null>(dayjs());\n const [endDate, setEndDate] = useState<dayjs.Dayjs | null>(dayjs().add(1, 'days'));\n const [selectingStartDate, setSelectingStartDate] = useState<dayjs.Dayjs | null>(startDate);\n const [selectingEndDate, setSelectingEndDate] = useState<dayjs.Dayjs | null>(endDate);\n const [isOpen, setIsOpen] = useState(false);\n const [checkInWrapperRef, setCheckInWrapperRef] = React.useState<HTMLElement | undefined>();\n\n const { isMobile } = useWindowSize();\n\n let RowWrapper: any = React.Fragment;\n const rowWrapperProps = {} as any;\n if (layout === 'button' || isMobile) {\n RowWrapper = 'div';\n rowWrapperProps.className = bookingWizardStyles.itemGroup;\n rowWrapperProps.ref = (ref: any) => {\n if (layout === 'button') {\n setCheckInWrapperRef(ref);\n }\n };\n }\n\n const setDate = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n setStartDate(startDate);\n setEndDate(endDate);\n\n setIsOpen(false);\n\n props.onChange?.(startDate, endDate);\n };\n\n const _onCheckoutDateChange = (newEndDate: dayjs.Dayjs) => {\n props?.onChange?.(startDate as Dayjs, newEndDate);\n\n setEndDate(newEndDate);\n if (newEndDate) {\n setIsOpen(false);\n }\n };\n\n const _toggleInlineDatePicker = () => {\n checkOutDatePickerRef?.current?.toggle();\n setIsOpen(!isOpen);\n };\n\n const _checkInDate = (date?: dayjs.Dayjs, disabledClass?: boolean) => {\n return (\n <div className={disabledClass ? '' : bookingWizardStyles.item} onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>Check-in</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'])} bold>\n {date?.format('DD') || '-'}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'])} bold>\n {date?.format('MMM') || '-'}\n </Text>\n </>\n ) : (\n <Text className={styles.date} bold>\n {date?.format('MMM DD') || '-'}\n </Text>\n )}\n </div>\n );\n };\n\n const _checkOutDate = (date?: dayjs.Dayjs) => {\n return (\n <div className={bookingWizardStyles.item} onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>Check-out</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'])} bold>\n {date?.format('DD') || '-'}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'])} bold>\n {date?.format('MMM') || '-'}\n </Text>\n </>\n ) : (\n <Text className={styles.date} bold>\n {date?.format('MMM DD') || '-'}\n </Text>\n )}\n </div>\n );\n };\n\n const _combineDates = (checkIn?: dayjs.Dayjs, checkOut?: dayjs.Dayjs) => {\n return (\n <div onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.Dates)}</label>\n <Text className={styles.date} bold>{`${checkIn?.format('MMM DD') || ''} - ${checkOut?.format('MMM DD') || ''}`}</Text>\n </div>\n );\n };\n\n const showMultipleMonths = layout === 'horizontal' && !isMobile;\n\n if (overlayType === 'inline') {\n return (\n <div className={classNames(styles.container, { [styles['--open']]: isOpen })}>\n <RowWrapper {...rowWrapperProps}>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n <div className={styles['inline-container']}>\n <AutoAutoHeight open={isOpen}>\n <div className={styles['inline-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={setStartDate}\n onEndDateChanged={_onCheckoutDateChange}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n />\n </div>\n </AutoAutoHeight>\n </div>\n </div>\n );\n }\n\n if (overlayType === 'bottom-sheet') {\n return (\n <>\n <RowWrapper {...rowWrapperProps}>\n {!isMobile && layout === 'horizontal' ? (\n <div className={bookingWizardStyles.item}>{_combineDates(startDate as Dayjs, endDate as Dayjs)}</div>\n ) : (\n <>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </>\n )}\n </RowWrapper>\n <BookingWizardBottomSheet\n className={classNames(styles.container, styles['bottom-sheet-container'])}\n open={isOpen}\n onDismiss={() => setIsOpen(false)}\n header={\n <div className={styles.header}>\n <Text>{t(Translation.Misc.ChooseDates)}</Text> <Icon icon={IconType.Close} onClick={() => setIsOpen(false)} />\n </div>\n }\n >\n <div className={styles['bottom-sheet-container-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={setSelectingStartDate}\n onEndDateChanged={setSelectingEndDate}\n theme={theme}\n />\n <BEButton\n wide\n primary\n filled\n onClick={() => {\n setDate(selectingStartDate as Dayjs, selectingEndDate as Dayjs);\n }}\n >\n {t(Translation.Misc.Apply)}\n </BEButton>\n </div>\n </BookingWizardBottomSheet>\n </>\n );\n }\n\n if (layout === 'horizontal' && theme === EBookingWizardTheme.Specific && !isMobile) {\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n className={bookingWizardStyles.item}\n theme={theme}\n showMultipleMonths={showMultipleMonths}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n >\n {_combineDates(startDate as Dayjs, endDate as Dayjs)}\n </FloatingDateRangePicker>\n </RowWrapper>\n );\n }\n\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n showMultipleMonths={showMultipleMonths}\n className={bookingWizardStyles.item}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n >\n {_checkInDate(startDate as Dayjs, true)}\n </FloatingDateRangePicker>\n <div className={layout !== 'button' && !isMobile ? bookingWizardStyles.divider : ''} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n );\n};\n"]}
1
+ {"version":3,"file":"BookingWizardDateSelector.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport BEButton from '@/components/generic/BEButton';\nimport DateRangePicker from '@/components/generic/DateRangePicker/DateRangePicker';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text from '@/components/generic/Text';\nimport { useWindowSize } from '@/hooks/WindowSize';\nimport { Translation } from '@/translations/Translation';\n\nimport FloatingDateRangePicker, { FloatingDateRangePickerHandle } from '../../DateRangePicker/FloatingDateRangePicker';\nimport { EBookingWizardTheme } from '../BookingWizard';\nimport bookingWizardStyles from '../BookingWizard.module.scss';\nimport BookingWizardBottomSheet from '../BookingWizardBottomSheet/BookingWizardBottomSheet';\nimport { useBookingWizard } from '../BookingWizardContext';\nimport styles from './BookingWizardDateSelector.module.scss';\n\nexport interface BookingWizardDateSelectorProps {\n open?: boolean;\n defaultStartDate?: dayjs.Dayjs;\n defaultEndDate?: dayjs.Dayjs;\n onChange?: (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => void;\n}\n\nexport const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps> = (props) => {\n const { defaultStartDate, defaultEndDate } = props;\n const { overlay, theme, layout, type: overlayType } = useBookingWizard();\n const { t } = useTranslation();\n\n const checkOutDatePickerRef = React.useRef<FloatingDateRangePickerHandle>(null);\n\n const [startDate, setStartDate] = useState<dayjs.Dayjs | null>(defaultStartDate ?? dayjs());\n const [endDate, setEndDate] = useState<dayjs.Dayjs | null>(defaultEndDate ?? dayjs().add(1, 'days'));\n const [selectingStartDate, setSelectingStartDate] = useState<dayjs.Dayjs | null>(startDate);\n const [selectingEndDate, setSelectingEndDate] = useState<dayjs.Dayjs | null>(endDate);\n const [isOpen, setIsOpen] = useState(false);\n const [checkInWrapperRef, setCheckInWrapperRef] = React.useState<HTMLElement | undefined>();\n\n const { isMobile } = useWindowSize();\n\n let RowWrapper: any = React.Fragment;\n const rowWrapperProps = {} as any;\n if (layout === 'button' || isMobile) {\n RowWrapper = 'div';\n rowWrapperProps.className = bookingWizardStyles.itemGroup;\n rowWrapperProps.ref = (ref: any) => {\n if (layout === 'button') {\n setCheckInWrapperRef(ref);\n }\n };\n }\n\n const setDate = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n setStartDate(startDate);\n setEndDate(endDate);\n\n setIsOpen(false);\n\n props.onChange?.(startDate, endDate);\n };\n\n const _onCheckoutDateChange = (newEndDate: dayjs.Dayjs) => {\n props?.onChange?.(startDate as Dayjs, newEndDate);\n\n setEndDate(newEndDate);\n if (newEndDate) {\n setIsOpen(false);\n }\n };\n\n const _toggleInlineDatePicker = () => {\n checkOutDatePickerRef?.current?.toggle();\n setIsOpen(!isOpen);\n };\n\n const _checkInDate = (date?: dayjs.Dayjs, disabledClass?: boolean) => {\n return (\n <div className={disabledClass ? '' : bookingWizardStyles.item} onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>Check-in</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'])} bold>\n {date?.format('DD') || '-'}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'])} bold>\n {date?.format('MMM') || '-'}\n </Text>\n </>\n ) : (\n <Text className={styles.date} bold>\n {date?.format('MMM DD') || '-'}\n </Text>\n )}\n </div>\n );\n };\n\n const _checkOutDate = (date?: dayjs.Dayjs) => {\n return (\n <div className={bookingWizardStyles.item} onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>Check-out</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'])} bold>\n {date?.format('DD') || '-'}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'])} bold>\n {date?.format('MMM') || '-'}\n </Text>\n </>\n ) : (\n <Text className={styles.date} bold>\n {date?.format('MMM DD') || '-'}\n </Text>\n )}\n </div>\n );\n };\n\n const _combineDates = (checkIn?: dayjs.Dayjs, checkOut?: dayjs.Dayjs) => {\n return (\n <div onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.Dates)}</label>\n <Text className={styles.date} bold>{`${checkIn?.format('MMM DD') || ''} - ${checkOut?.format('MMM DD') || ''}`}</Text>\n </div>\n );\n };\n\n const showMultipleMonths = layout === 'horizontal' && !isMobile;\n\n if (overlayType === 'inline') {\n return (\n <div className={classNames(styles.container, { [styles['--open']]: isOpen })}>\n <RowWrapper {...rowWrapperProps}>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n <div className={styles['inline-container']}>\n <AutoAutoHeight open={isOpen}>\n <div className={styles['inline-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={setStartDate}\n onEndDateChanged={_onCheckoutDateChange}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n />\n </div>\n </AutoAutoHeight>\n </div>\n </div>\n );\n }\n\n if (overlayType === 'bottom-sheet') {\n return (\n <>\n <RowWrapper {...rowWrapperProps}>\n {!isMobile && layout === 'horizontal' ? (\n <div className={bookingWizardStyles.item}>{_combineDates(startDate as Dayjs, endDate as Dayjs)}</div>\n ) : (\n <>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </>\n )}\n </RowWrapper>\n <BookingWizardBottomSheet\n className={classNames(styles.container, styles['bottom-sheet-container'])}\n open={isOpen}\n onDismiss={() => setIsOpen(false)}\n header={\n <div className={styles.header}>\n <Text>{t(Translation.Misc.ChooseDates)}</Text> <Icon icon={IconType.Close} onClick={() => setIsOpen(false)} />\n </div>\n }\n >\n <div className={styles['bottom-sheet-container-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={setSelectingStartDate}\n onEndDateChanged={setSelectingEndDate}\n theme={theme}\n />\n <BEButton\n wide\n primary\n filled\n onClick={() => {\n setDate(selectingStartDate as Dayjs, selectingEndDate as Dayjs);\n }}\n >\n {t(Translation.Misc.Apply)}\n </BEButton>\n </div>\n </BookingWizardBottomSheet>\n </>\n );\n }\n\n if (layout === 'horizontal' && theme === EBookingWizardTheme.Specific && !isMobile) {\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n className={bookingWizardStyles.item}\n theme={theme}\n showMultipleMonths={showMultipleMonths}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n >\n {_combineDates(startDate as Dayjs, endDate as Dayjs)}\n </FloatingDateRangePicker>\n </RowWrapper>\n );\n }\n\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n showMultipleMonths={showMultipleMonths}\n className={bookingWizardStyles.item}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n >\n {_checkInDate(startDate as Dayjs, true)}\n </FloatingDateRangePicker>\n <div className={layout !== 'button' && !isMobile ? bookingWizardStyles.divider : ''} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n );\n};\n"]}
@@ -35,14 +35,14 @@ const Text_1 = require("../../../generic/Text");
35
35
  const Translation_1 = require("../../../../translations/Translation");
36
36
  const Color_1 = require("../../../../util/Color");
37
37
  function RoomDetailsBedsBlock(props) {
38
- var _a, _b, _c, _d, _e;
38
+ var _a, _b, _c, _d, _e, _f;
39
39
  const { hotel } = (0, hooks_1.useCurrentHotel)();
40
40
  const { t } = (0, react_i18next_1.useTranslation)();
41
41
  const extraRoomData = (_a = hotel === null || hotel === void 0 ? void 0 : hotel.rooms) === null || _a === void 0 ? void 0 : _a[(_b = props.room) === null || _b === void 0 ? void 0 : _b.code];
42
42
  const roomSize = (_c = hotel === null || hotel === void 0 ? void 0 : hotel.overwrites) === null || _c === void 0 ? void 0 : _c[(_d = props.room) === null || _d === void 0 ? void 0 : _d.code];
43
43
  const textColor = (_e = props.textColor) !== null && _e !== void 0 ? _e : Color_1.Color.DarkGrey;
44
44
  let bedType = `${(extraRoomData === null || extraRoomData === void 0 ? void 0 : extraRoomData.bedQuantity) > 0 ? extraRoomData === null || extraRoomData === void 0 ? void 0 : extraRoomData.bedQuantity : ''} ${extraRoomData === null || extraRoomData === void 0 ? void 0 : extraRoomData.bedType}`;
45
- if (extraRoomData === null || extraRoomData === void 0 ? void 0 : extraRoomData.bedTypeOverride) {
45
+ if ((_f = extraRoomData === null || extraRoomData === void 0 ? void 0 : extraRoomData.bedTypeOverride) === null || _f === void 0 ? void 0 : _f.trim()) {
46
46
  bedType = extraRoomData.bedTypeOverride;
47
47
  }
48
48
  return (react_1.default.createElement("ul", { className: "u-inline-flex u-flex-gap u-flex-wrap u-marg-bottom" },
@@ -1 +1 @@
1
- {"version":3,"file":"RoomDetailsBedsBlock.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/RoomDetailsBedsBlock.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,kDAA0B;AAC1B,iDAA+C;AAE/C,uEAAgE;AAChE,oDAA2D;AAE3D,4DAAyD;AACzD,wCAAqC;AAQrC,SAAgB,oBAAoB,CAAC,KAAgC;;IACjE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,aAAa,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAG,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAc,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAG,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAc,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,aAAK,CAAC,QAAQ,CAAC;IAEpD,IAAI,OAAO,GAAG,GAAG,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAsB,IAAG,CAAC,CAAC,CAAC,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;IAC1H,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,EAAE;QAChC,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC;KAC3C;IAED,OAAO,CACH,sCAAI,SAAS,EAAC,oDAAoD;QAC9D,sCAAI,SAAS,EAAC,2BAA2B;YACrC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;YAC9D,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,WAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,QAAC,KAAK,EAAE,SAAS,IAC9C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAC7B,YAAY,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY;iBAC5C,CAAC,CACC,CACL,CACL;QACL,sCAAI,SAAS,EAAC,2BAA2B;YACrC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;YAC3D,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,WAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,QAAC,KAAK,EAAE,SAAS,IAC9C,OAAO,CACL,CACL,CACL;QACJ,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,CAAA,IAAI,CAC3B,sCAAI,SAAS,EAAC,2BAA2B;YACrC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;YAChE,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,WAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,QAAC,KAAK,EAAE,SAAS,IAC9C,QAAQ,CAAC,cAAc,CACrB,CACL,CACL,CACR,CACA,CACR,CAAC;AACN,CAAC;AA9CD,oDA8CC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport { Text, TextType } from '@/components/generic/Text';\nimport { Room } from '@/models/Room/Room';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\ninterface RoomDetailsBedsBlockProps {\n room: Room;\n\n textColor?: Color;\n}\n\nexport function RoomDetailsBedsBlock(props: RoomDetailsBedsBlockProps) {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const extraRoomData = hotel?.rooms?.[props.room?.code as string];\n const roomSize = hotel?.overwrites?.[props.room?.code as string];\n\n const textColor = props.textColor ?? Color.DarkGrey;\n\n let bedType = `${(extraRoomData?.bedQuantity as number) > 0 ? extraRoomData?.bedQuantity : ''} ${extraRoomData?.bedType}`;\n if (extraRoomData?.bedTypeOverride) {\n bedType = extraRoomData.bedTypeOverride;\n }\n\n return (\n <ul className=\"u-inline-flex u-flex-gap u-flex-wrap u-marg-bottom\">\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.People} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {t(Translation.Step.Room.Sleeps, {\n maxOccupancy: extraRoomData?.maxOccupancy,\n })}\n </Text>\n </div>\n </li>\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.Bed} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {bedType}\n </Text>\n </div>\n </li>\n {!!roomSize?.RoomDimensions && (\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.RoomSize} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {roomSize.RoomDimensions}\n </Text>\n </div>\n </li>\n )}\n </ul>\n );\n}\n"]}
1
+ {"version":3,"file":"RoomDetailsBedsBlock.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/RoomDetailsBedsBlock.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,kDAA0B;AAC1B,iDAA+C;AAE/C,uEAAgE;AAChE,oDAA2D;AAE3D,4DAAyD;AACzD,wCAAqC;AAQrC,SAAgB,oBAAoB,CAAC,KAAgC;;IACjE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,aAAa,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAG,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAc,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAG,MAAA,KAAK,CAAC,IAAI,0CAAE,IAAc,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,aAAK,CAAC,QAAQ,CAAC;IAEpD,IAAI,OAAO,GAAG,GAAG,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAsB,IAAG,CAAC,CAAC,CAAC,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,EAAE,CAAC;IAC1H,IAAI,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,0CAAE,IAAI,EAAE,EAAE;QACxC,OAAO,GAAG,aAAa,CAAC,eAAe,CAAC;KAC3C;IAED,OAAO,CACH,sCAAI,SAAS,EAAC,oDAAoD;QAC9D,sCAAI,SAAS,EAAC,2BAA2B;YACrC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,MAAM,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;YAC9D,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,WAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,QAAC,KAAK,EAAE,SAAS,IAC9C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAC7B,YAAY,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY;iBAC5C,CAAC,CACC,CACL,CACL;QACL,sCAAI,SAAS,EAAC,2BAA2B;YACrC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;YAC3D,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,WAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,QAAC,KAAK,EAAE,SAAS,IAC9C,OAAO,CACL,CACL,CACL;QACJ,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,CAAA,IAAI,CAC3B,sCAAI,SAAS,EAAC,2BAA2B;YACrC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,aAAK,CAAC,IAAI,GAAI;YAChE,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,WAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,MAAM,QAAC,KAAK,EAAE,SAAS,IAC9C,QAAQ,CAAC,cAAc,CACrB,CACL,CACL,CACR,CACA,CACR,CAAC;AACN,CAAC;AA9CD,oDA8CC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport { Text, TextType } from '@/components/generic/Text';\nimport { Room } from '@/models/Room/Room';\nimport { Translation } from '@/translations/Translation';\nimport { Color } from '@/util/Color';\n\ninterface RoomDetailsBedsBlockProps {\n room: Room;\n\n textColor?: Color;\n}\n\nexport function RoomDetailsBedsBlock(props: RoomDetailsBedsBlockProps) {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const extraRoomData = hotel?.rooms?.[props.room?.code as string];\n const roomSize = hotel?.overwrites?.[props.room?.code as string];\n\n const textColor = props.textColor ?? Color.DarkGrey;\n\n let bedType = `${(extraRoomData?.bedQuantity as number) > 0 ? extraRoomData?.bedQuantity : ''} ${extraRoomData?.bedType}`;\n if (extraRoomData?.bedTypeOverride?.trim()) {\n bedType = extraRoomData.bedTypeOverride;\n }\n\n return (\n <ul className=\"u-inline-flex u-flex-gap u-flex-wrap u-marg-bottom\">\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.People} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {t(Translation.Step.Room.Sleeps, {\n maxOccupancy: extraRoomData?.maxOccupancy,\n })}\n </Text>\n </div>\n </li>\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.Bed} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {bedType}\n </Text>\n </div>\n </li>\n {!!roomSize?.RoomDimensions && (\n <li className=\"u-flex align-items-center\">\n <Icon icon={IconType.RoomSize} size=\"24px\" color={Color.Navy} />\n <div className=\"u-pad-left--light\">\n <Text type={TextType.Small} inline color={textColor}>\n {roomSize.RoomDimensions}\n </Text>\n </div>\n </li>\n )}\n </ul>\n );\n}\n"]}