@roomstay/frontend 2.6.58 → 2.6.60

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.
Files changed (69) hide show
  1. package/dist/449.bundle.js +1 -1
  2. package/dist/903.bundle.js +1 -1
  3. package/dist/main.bundle.js +1 -1
  4. package/dist/src/components/generic/BookNowPayLaterInfoBlock.js +1 -1
  5. package/dist/src/components/generic/BookNowPayLaterInfoBlock.js.map +1 -1
  6. package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +9 -1
  7. package/dist/src/components/generic/BookingWizard/BookingWizard.js +86 -1
  8. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
  9. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.d.ts +14 -1
  10. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js +27 -0
  11. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js.map +1 -1
  12. package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +19 -0
  13. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +116 -30
  14. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -1
  15. package/dist/src/components/generic/BookingWizard/BookingWizardContext.d.ts +12 -1
  16. package/dist/src/components/generic/BookingWizard/BookingWizardContext.js.map +1 -1
  17. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.d.ts +6 -2
  18. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js +96 -29
  19. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js.map +1 -1
  20. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.d.ts +18 -3
  21. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +118 -27
  22. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
  23. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js +53 -18
  24. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js.map +1 -1
  25. package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js +5 -2
  26. package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js.map +1 -1
  27. package/dist/src/components/generic/DateRangePicker/DateRangePicker.d.ts +6 -0
  28. package/dist/src/components/generic/DateRangePicker/DateRangePicker.js +8 -7
  29. package/dist/src/components/generic/DateRangePicker/DateRangePicker.js.map +1 -1
  30. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.d.ts +2 -0
  31. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js +11 -2
  32. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js.map +1 -1
  33. package/dist/src/components/steps/hotel/HotelCard.js +22 -5
  34. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  35. package/dist/src/components/steps/room/ImageGallerySlider.js +5 -3
  36. package/dist/src/components/steps/room/ImageGallerySlider.js.map +1 -1
  37. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js +7 -1
  38. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js.map +1 -1
  39. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.d.ts +3 -1
  40. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +47 -21
  41. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
  42. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.d.ts +3 -1
  43. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +7 -6
  44. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
  45. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +9 -2
  46. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  47. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.d.ts +4 -0
  48. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js.map +1 -1
  49. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.d.ts +28 -0
  50. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +202 -41
  51. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  52. package/dist/src/index.d.ts +1 -0
  53. package/dist/src/index.js +5 -2
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/models/BookingWizard/BookingWizardProperty.d.ts +4 -0
  56. package/dist/src/models/BookingWizard/BookingWizardProperty.js.map +1 -1
  57. package/dist/src/pages/findReservation/FindReservation.js +15 -4
  58. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  59. package/dist/src/pages/hotel/HotelInfo.js +1 -1
  60. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  61. package/dist/src/translations/Translation.d.ts +7 -1
  62. package/dist/src/translations/Translation.js +7 -1
  63. package/dist/src/translations/Translation.js.map +1 -1
  64. package/dist/src/translations/languages/en-gb.js +7 -1
  65. package/dist/src/translations/languages/en-gb.js.map +1 -1
  66. package/dist/test.bundle.js +1 -1
  67. package/dist/tests/offline/entry/config/hotelSpecDefault.js +1 -1
  68. package/dist/tests/offline/entry/config/hotelSpecDefault.js.map +1 -1
  69. package/package.json +1 -1
@@ -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 { BookingEngineContext } from '@frontend/contexts';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AvailabilityAPI from '@/api/AvailabilityAPI';\nimport { BookingWizardEngineConfig } from '@/engines/BookingWizardEngine/BookingWizardEngine';\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 maxAdults?: number;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n hideGuestSelect?: boolean;\n hidePromocode?: boolean;\n hideProperty?: boolean;\n defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id' | 'checkIn' | 'checkout'>> & { checkIn?: string; checkout?: string };\n dateFormat?: string;\n}\n\nexport const BookingWizardContent: React.FC<BookingWizardContentProps> = ({\n properties,\n selectedProperty: defaultProperty,\n defaultColors,\n classname,\n maxAdults,\n disableChild,\n showInfants,\n disableRoom,\n hideGuestSelect,\n hidePromocode,\n hideProperty,\n defaultValues,\n dateFormat,\n}) => {\n const bwContext = useContext(BookingWizardContext);\n const beContext = useContext(BookingEngineContext);\n\n const { t } = useTranslation();\n\n const [checkInDate, setCheckInDate] = useState<Dayjs | null>(defaultValues?.checkIn ? dayjs(defaultValues?.checkIn) : dayjs());\n const [checkOutDate, setCheckOutDate] = useState<Dayjs | null>(defaultValues?.checkout ? dayjs(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 [infants, setInfants] = useState<number>(defaultValues?.guests?.infants ?? 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 const [hotelContainerRef, setHotelContainerRef] = useState<HTMLDivElement | null>(null);\n const [guestsContainerRef, setGuestContainerRef] = useState<HTMLDivElement | null>(null);\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 engineConfig = beContext.engine.getConfig() as BookingWizardEngineConfig;\n\n const yearDisplayOption = useMemo(() => {\n return selectedProperty?.yearDisplayOption ?? engineConfig.yearDisplayOption ?? '';\n }, [selectedProperty]);\n\n const showYearOnCalendar = useMemo(() => {\n return !!(selectedProperty?.showYearOnCalendar ?? engineConfig.showYearOnCalendar ?? '');\n }, [selectedProperty]);\n\n const setGuest = (guests: BookingWizardOnBooking['guests']) => {\n setAdults(guests.adults);\n setChildren(guests.children);\n setInfants(guests.infants);\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 infants,\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 infants,\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 {hideProperty ? null : (\n <>\n <div ref={setHotelContainerRef} className={styles.item}>\n <label className={styles.label}>{t(Translation.Misc.ChooseHotel)}</label>\n <BookingWizardHotelSelector\n followElement={hotelContainerRef}\n onChange={(value) => {\n setSelectedProperty(value || undefined);\n }}\n properties={properties}\n selectedProperty={selectedProperty}\n contentClassName={classname}\n />\n </div>\n <div className={styles.divider} />\n </>\n )}\n <BookingWizardDateSelector\n onChange={setDate}\n defaultStartDate={defaultValues?.checkIn ? dayjs(defaultValues?.checkIn) : undefined}\n defaultEndDate={defaultValues?.checkout ? dayjs(defaultValues?.checkout) : undefined}\n dateFormat={dateFormat}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n />\n\n {hideGuestSelect ? null : (\n <>\n <div className={styles.divider} />\n <div ref={setGuestContainerRef} 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 maxAdults={maxAdults}\n disableChild={disableChild}\n showInfants={showInfants}\n disableRoom={disableRoom}\n followElement={guestsContainerRef}\n hideTooltip={engineConfig.hideTooltips}\n />\n </div>\n </>\n )}\n <div className={styles.divider} />\n {hidePromocode || bwContext.layout === 'horizontal-condensed' ? null : (\n <div className={styles.item}>\n <label className={styles.label}>{t(Translation.Misc.Promocode)}</label>\n <BookingWizardPromoCode promoCode={promoCode} onChange={_onPromoCodeChange} valid={promoCodeValid} hideTooltip={engineConfig.hideTooltips} />\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 { BookingEngineContext } from '@frontend/contexts';\nimport { Icon, IconType } from '@roomstay/ui';\nimport classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AvailabilityAPI from '@/api/AvailabilityAPI';\nimport { BookingWizardEngineConfig } from '@/engines/BookingWizardEngine/BookingWizardEngine';\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 { EBookingWizardSection } from './BookingWizard';\nimport styles from './BookingWizard.module.scss';\nimport { BookingWizardContext, BookingWizardOnBooking } from './BookingWizardContext';\nimport { BookingWizardDateSelector } from './BookingWizardDateSelector/BookingWizardDateSelector';\nimport { BookingWizardGuestSelector, BookingWizardGuestSelectorProps } 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 maxAdults?: number;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n hideGuestSelect?: boolean;\n hidePromocode?: boolean;\n hideProperty?: boolean;\n defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id' | 'checkIn' | 'checkout'>> & { checkIn?: string; checkout?: string };\n dateFormat?: string;\n}\n\nexport const BookingWizardContent: React.FC<BookingWizardContentProps> = ({\n properties,\n selectedProperty: defaultProperty,\n defaultColors,\n classname,\n maxAdults,\n disableChild,\n showInfants,\n disableRoom,\n defaultValues,\n dateFormat,\n}) => {\n const bwContext = useContext(BookingWizardContext);\n const beContext = useContext(BookingEngineContext);\n\n const { t } = useTranslation();\n\n const [checkInDate, setCheckInDate] = useState<Dayjs | null>(defaultValues?.checkIn ? dayjs(defaultValues?.checkIn) : dayjs());\n const [checkOutDate, setCheckOutDate] = useState<Dayjs | null>(defaultValues?.checkout ? dayjs(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 [infants, setInfants] = useState<number>(defaultValues?.guests?.infants ?? 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 const [hotelContainerRef, setHotelContainerRef] = useState<HTMLDivElement | null>(null);\n const [guestsContainerRef, setGuestContainerRef] = useState<HTMLDivElement | null>(null);\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 engineConfig = beContext.engine.getConfig() as BookingWizardEngineConfig;\n const guestAgeConfig = engineConfig.guestAgeConfig;\n\n const yearDisplayOption = useMemo(() => {\n return selectedProperty?.yearDisplayOption ?? engineConfig.yearDisplayOption ?? '';\n }, [selectedProperty]);\n\n const showYearOnCalendar = useMemo(() => {\n return !!(selectedProperty?.showYearOnCalendar ?? engineConfig.showYearOnCalendar ?? '');\n }, [selectedProperty]);\n\n const setGuest = (guests: BookingWizardOnBooking['guests']) => {\n setAdults(guests.adults);\n setChildren(guests.children);\n setInfants(guests.infants);\n setRoom(guests.room);\n };\n\n const setDate = (startDate: dayjs.Dayjs | null, endDate: dayjs.Dayjs | null) => {\n setCheckInDate(startDate);\n setCheckOutDate(endDate);\n };\n\n const isValid = () => {\n const isPropertyHidden = bwContext.stateSections[EBookingWizardSection.Property].hidden;\n const isGuestSelectHidden = bwContext.stateSections[EBookingWizardSection.Guest].hidden;\n\n if (!isPropertyHidden && !selectedProperty) return false;\n if (!checkInDate) return false;\n if (!checkOutDate) return false;\n if (!isGuestSelectHidden && 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 infants,\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 && selectedProperty?.id !== 'All' && checkInDate && checkOutDate) {\n const result = await new AvailabilityAPI().fetchAvailability({\n fromDate: checkInDate,\n toDate: checkOutDate,\n adults,\n children,\n infants,\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 <BWPropertySelectorSection\n hidden={bwContext.stateSections[EBookingWizardSection.Property].hidden}\n inactive={bwContext.stateSections[EBookingWizardSection.Property].inactive}\n withLabel={!bwContext.isImagesThemeMobile}\n divider={!bwContext.isImagesThemeMobile}\n containerRef={hotelContainerRef}\n setContainerRef={setHotelContainerRef}\n properties={properties}\n selectedProperty={selectedProperty}\n setSelectedProperty={setSelectedProperty}\n classname={classname}\n t={t}\n />\n\n <BookingWizardDateSelector\n hidden={bwContext.stateSections[EBookingWizardSection.Date].hidden}\n inactive={bwContext.stateSections[EBookingWizardSection.Date].inactive}\n onChange={setDate}\n defaultStartDate={checkInDate ? dayjs(checkInDate) : undefined}\n defaultEndDate={checkOutDate ? dayjs(checkOutDate) : undefined}\n dateFormat={dateFormat}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n notes={bwContext.isImagesTheme ? engineConfig?.notes?.date : undefined}\n />\n\n <BWGuestSelectorSection\n hidden={bwContext.stateSections[EBookingWizardSection.Guest].hidden}\n inactive={bwContext.stateSections[EBookingWizardSection.Guest].inactive}\n divider={!bwContext.isImagesThemeMobile}\n isImagesTheme={bwContext.isImagesTheme}\n containerRef={guestsContainerRef}\n setContainerRef={setGuestContainerRef}\n onChange={setGuest}\n maxAdults={maxAdults}\n disableChild={disableChild}\n showInfants={showInfants}\n disableRoom={disableRoom}\n config={guestAgeConfig}\n notes={bwContext.isImagesTheme ? engineConfig?.notes?.guest : undefined}\n defaultValue={{\n adults: adults,\n children: children,\n room: room,\n infants: infants,\n }}\n defaultGuestConfig={{\n adults: defaultValues?.guests?.adults,\n children: defaultValues?.guests?.children,\n room: defaultValues?.guests?.room,\n infants: defaultValues?.guests?.infants,\n }}\n promoCodeConfig={{\n divider: false,\n withLabel: true,\n promoCode,\n setPromoCode,\n onChange: _onPromoCodeChange,\n valid: promoCodeValid,\n hideTooltip: engineConfig.hideTooltips,\n }}\n submitConfig={{\n onSubmit: _onSubmit,\n disabledNext: !isValid(),\n }}\n />\n\n <BWPromoCodeSection\n hidden={bwContext.stateSections[EBookingWizardSection.Promo].hidden}\n inactive={bwContext.stateSections[EBookingWizardSection.Promo].inactive}\n isImagesTheme={bwContext.isImagesTheme}\n setPromoCode={setPromoCode}\n promoCode={promoCode}\n onChange={_onPromoCodeChange}\n valid={promoCodeValid}\n hideTooltip={engineConfig.hideTooltips}\n t={t}\n divider\n withLabel\n />\n\n {bwContext.layout !== 'horizontal-condensed' && !bwContext.isImagesThemeMobile && <SubmitButtonSection button={submitButton} />}\n </div>\n\n {bwContext.layout === 'horizontal-condensed' && !bwContext.isImagesThemeMobile && (\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 )}\n </>\n );\n};\n\nconst BWPropertySelectorSection = ({\n inactive,\n hidden,\n containerRef,\n setContainerRef,\n properties,\n selectedProperty,\n setSelectedProperty,\n classname,\n t,\n divider = true,\n withLabel = true,\n}: BWPropertySelectorSectionProps) => {\n if (hidden) return null;\n return (\n <>\n <div\n ref={setContainerRef}\n className={classNames(styles.item, styles['item-hotel'], {\n [styles['inactive']]: inactive,\n })}\n >\n <div className={classNames(styles['item-ellipsis-wrapper'])}>\n {withLabel && <label className={styles.label}>{t(Translation.Misc.ChooseHotel)}</label>}\n <BookingWizardHotelSelector\n followElement={containerRef}\n onChange={(value) => {\n setSelectedProperty(value || undefined);\n }}\n properties={properties}\n selectedProperty={selectedProperty}\n contentClassName={classNames(classname)}\n />\n </div>\n </div>\n {divider ? (\n <div\n className={classNames(styles.divider, {\n [styles['inactive']]: inactive,\n })}\n />\n ) : null}\n </>\n );\n};\n\nconst BWGuestSelectorSection = ({\n inactive,\n hidden,\n containerRef,\n setContainerRef,\n defaultValue: _defaultValue,\n onChange,\n maxAdults,\n disableChild,\n showInfants,\n disableRoom,\n config,\n notes,\n defaultGuestConfig,\n divider,\n promoCodeConfig,\n submitConfig,\n isImagesTheme,\n}: BWGuestSelectorSectionProps) => {\n if (hidden) return null;\n const { t } = useTranslation();\n const [isOverlayOpen, setIsOverlayOpen] = useState<boolean>(false);\n const [defaultValue, setDefaultValue] = useState<BookingWizardGuestSelectorProps['defaultValue']>(_defaultValue);\n\n const onOverlayOpenChange = (isOpen: boolean) => {\n setIsOverlayOpen(isOpen);\n };\n const onClearHandler = () => {\n const emptyValues: BookingWizardOnBooking['guests'] = {\n adults: 0,\n children: 0,\n room: 0,\n infants: 0,\n };\n onChange({ ...emptyValues });\n setDefaultValue({ ...emptyValues });\n };\n\n return (\n <>\n {divider ? (\n <div\n className={classNames(styles.divider, {\n [styles['inactive']]: inactive,\n })}\n />\n ) : null}\n <div\n ref={setContainerRef}\n className={classNames(styles.item, {\n [styles['inactive']]: inactive,\n })}\n >\n <div className={styles['item-with-icon']}>\n <div className={classNames(styles['item-fullwidth'], styles['item-ellipsis-wrapper'])}>\n <label className={styles.label}>{t(Translation.Misc.Guests)}</label>\n <BookingWizardGuestSelector\n defaultValue={defaultValue}\n onChange={onChange}\n maxAdults={maxAdults}\n disableChild={disableChild}\n showInfants={showInfants}\n disableRoom={disableRoom}\n followElement={containerRef}\n {...config}\n notes={isImagesTheme ? notes : undefined}\n onOverlayOpenChange={onOverlayOpenChange}\n promoCodeConfig={promoCodeConfig}\n submitConfig={submitConfig}\n />\n </div>\n {isImagesTheme && <BWClearButton hidden={isOverlayOpen} onClick={onClearHandler} />}\n </div>\n </div>\n </>\n );\n};\n\nexport const BWPromoCodeSection = ({\n inactive,\n hidden,\n setPromoCode,\n promoCode,\n onChange,\n valid,\n hideTooltip,\n t,\n isImagesTheme,\n divider = true,\n withLabel = true,\n}: BWPromoCodeSectionProps) => {\n if (hidden) return null;\n const onClearHandler = (event: MouseEvent) => {\n setPromoCode('');\n event.preventDefault();\n event.stopPropagation();\n };\n const [focused, setFocused] = React.useState<boolean>(false);\n return (\n <>\n {divider ? (\n <div\n className={classNames(styles.divider, {\n [styles['inactive']]: inactive,\n })}\n />\n ) : null}\n <div\n className={classNames(styles.item, styles['item-promo-code-wrapper'], {\n [styles['inactive']]: inactive,\n })}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n >\n <div className={styles['item-with-icon']}>\n <div className={classNames(styles['item-fullwidth'], styles['item-ellipsis-wrapper'])}>\n {withLabel && <label className={styles.label}>{t(Translation.Misc.Promocode)}</label>}\n <BookingWizardPromoCode promoCode={promoCode} onChange={onChange} valid={valid} hideTooltip={hideTooltip} />\n </div>\n\n {isImagesTheme && <BWClearButton hidden={focused} onClick={onClearHandler} />}\n </div>\n </div>\n </>\n );\n};\n\nconst SubmitButtonSection = ({ button }: { button: React.ReactNode }) => <div className={styles.action}>{button}</div>;\n\nexport const BWClearButton = ({ hidden, onClick }: { hidden: boolean; onClick: any }) => {\n return hidden ? (\n <div onMouseDown={(e) => e.preventDefault()} className={styles['clear-button']} onClick={onClick}>\n {/* Add onMouseDown to Prevent blur when clicking this button */}\n <Icon icon={IconType.Close} name=\"Clear\" />\n </div>\n ) : (\n <></>\n );\n};\n\n// Interface\ninterface GuestValue {\n adults?: number;\n children?: number;\n infants?: number;\n room?: number;\n}\n\ninterface GuestAgeConfig {\n minAdultAge?: number;\n maxAdultAge?: number;\n ageRange?: {\n child?: { min?: number; max?: number };\n infant?: { min?: number; max?: number };\n };\n}\ninterface BWGuestSelectorSectionProps {\n hidden?: boolean;\n inactive?: boolean;\n isImagesTheme?: boolean;\n containerRef?: HTMLDivElement | null;\n setContainerRef?: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n onChange: (guests: BookingWizardOnBooking['guests']) => void;\n maxAdults?: number | undefined;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n config?: GuestAgeConfig;\n notes?: React.ReactNode | undefined;\n defaultValue?: GuestValue;\n defaultGuestConfig?: GuestValue;\n divider: boolean;\n promoCodeConfig?: BookingWizardGuestSelectorProps['promoCodeConfig'];\n submitConfig?: BookingWizardGuestSelectorProps['submitConfig'];\n}\ninterface BWPromoCodeSectionProps {\n inactive: boolean;\n hidden: boolean;\n setPromoCode: React.Dispatch<React.SetStateAction<string>>;\n promoCode: string;\n onChange: (value?: string) => Promise<void>;\n valid?: boolean;\n hideTooltip?: boolean;\n t: (key: string) => string;\n isImagesTheme: boolean;\n divider: boolean;\n withLabel: boolean;\n}\ninterface BWPropertySelectorSectionProps {\n inactive?: boolean;\n hidden?: boolean;\n containerRef?: HTMLDivElement | null;\n setContainerRef?: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n properties: TBookingWizardProperties;\n selectedProperty?: BookingWizardProperty | undefined;\n setSelectedProperty: React.Dispatch<React.SetStateAction<BookingWizardProperty | undefined>>;\n classname?: string;\n t: (key: string) => string;\n divider?: boolean;\n withLabel?: boolean;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  import type { Placement } from '@popperjs/core';
3
3
  import dayjs from 'dayjs';
4
4
  import type ColorProfile from '../../../models/Client/Hotel/ColorProfile';
5
- import { EBookingWizardTheme } from './BookingWizard';
5
+ import { EBookingWizardSection, EBookingWizardTheme } from './BookingWizard';
6
6
  export type BookingWizardLayout = 'vertical' | 'horizontal' | 'button' | 'horizontal-condensed' | 'booking-summary';
7
7
  export type BookingWizardOverlayType = 'popup' | 'inline' | 'bottom-sheet' | 'top-sheet';
8
8
  export type BookingWizardTheme = EBookingWizardTheme;
@@ -34,6 +34,17 @@ export interface BookingWizardContextType {
34
34
  fallbackPlacements?: Placement;
35
35
  dateOffset?: [number, number];
36
36
  };
37
+ isImagesTheme: boolean;
38
+ isImagesThemeMobile: boolean;
39
+ activeSection: EBookingWizardSection | null;
40
+ onNextHandler: (currentSection: EBookingWizardSection) => void;
41
+ onPrevHandler: (currentSection: EBookingWizardSection) => void;
42
+ stateSections: Record<EBookingWizardSection, {
43
+ opening: boolean;
44
+ isFirst: boolean;
45
+ hidden: boolean;
46
+ inactive: boolean;
47
+ }>;
37
48
  }
38
49
  export declare const BookingWizardContext: import("react").Context<BookingWizardContextType>;
39
50
  export declare const useBookingWizard: () => BookingWizardContextType;
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizardContext.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardContext.ts"],"names":[],"mappings":";;;AAEA,iCAAkD;AA2CrC,QAAA,oBAAoB,GAAG,IAAA,qBAAa,EAA2B,EAA8B,CAAC,CAAC;AAErG,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,4BAAoB,CAAC,CAAC;AAA1D,QAAA,gBAAgB,oBAA0C","sourcesContent":["import type { Placement } from '@popperjs/core';\nimport dayjs from 'dayjs';\nimport { createContext, useContext } from 'react';\n\nimport type ColorProfile from '@/models/Client/Hotel/ColorProfile';\n\nimport { EBookingWizardTheme } from './BookingWizard';\n\nexport type BookingWizardLayout = 'vertical' | 'horizontal' | 'button' | 'horizontal-condensed' | 'booking-summary';\nexport type BookingWizardOverlayType = 'popup' | 'inline' | 'bottom-sheet' | 'top-sheet';\nexport type BookingWizardTheme = EBookingWizardTheme;\n\nexport interface BookingWizardOnBooking {\n id: string;\n checkIn: dayjs.Dayjs;\n checkout: dayjs.Dayjs;\n promoCode?: string;\n guests: {\n adults: number;\n children: number;\n infants: number;\n room: number;\n };\n}\n\nexport interface BookingWizardContextType {\n layout: BookingWizardLayout;\n type: BookingWizardOverlayType;\n theme: BookingWizardTheme;\n className?: string;\n style?: any;\n color?: ColorProfile;\n isMobile?: boolean;\n isSmallContainer?: boolean;\n\n onSubmit?: (result: BookingWizardOnBooking) => void;\n\n overlay?: {\n offset?: [number, number];\n placement?: Placement;\n fallbackPlacements?: Placement;\n dateOffset?: [number, number];\n };\n}\n\nexport const BookingWizardContext = createContext<BookingWizardContextType>({} as BookingWizardContextType);\n\nexport const useBookingWizard = () => useContext(BookingWizardContext);\n"]}
1
+ {"version":3,"file":"BookingWizardContext.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardContext.ts"],"names":[],"mappings":";;;AAEA,iCAAkD;AAyDrC,QAAA,oBAAoB,GAAG,IAAA,qBAAa,EAA2B,EAA8B,CAAC,CAAC;AAErG,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,4BAAoB,CAAC,CAAC;AAA1D,QAAA,gBAAgB,oBAA0C","sourcesContent":["import type { Placement } from '@popperjs/core';\nimport dayjs from 'dayjs';\nimport { createContext, useContext } from 'react';\n\nimport type ColorProfile from '@/models/Client/Hotel/ColorProfile';\n\nimport { EBookingWizardSection, EBookingWizardTheme } from './BookingWizard';\n\nexport type BookingWizardLayout = 'vertical' | 'horizontal' | 'button' | 'horizontal-condensed' | 'booking-summary';\nexport type BookingWizardOverlayType = 'popup' | 'inline' | 'bottom-sheet' | 'top-sheet';\nexport type BookingWizardTheme = EBookingWizardTheme;\n\nexport interface BookingWizardOnBooking {\n id: string;\n checkIn: dayjs.Dayjs;\n checkout: dayjs.Dayjs;\n promoCode?: string;\n guests: {\n adults: number;\n children: number;\n infants: number;\n room: number;\n };\n}\n\nexport interface BookingWizardContextType {\n layout: BookingWizardLayout;\n type: BookingWizardOverlayType;\n theme: BookingWizardTheme;\n className?: string;\n style?: any;\n color?: ColorProfile;\n isMobile?: boolean;\n isSmallContainer?: boolean;\n\n onSubmit?: (result: BookingWizardOnBooking) => void;\n\n overlay?: {\n offset?: [number, number];\n placement?: Placement;\n fallbackPlacements?: Placement;\n dateOffset?: [number, number];\n };\n isImagesTheme: boolean;\n isImagesThemeMobile: boolean;\n activeSection: EBookingWizardSection | null; // Currently active section in the wizard\n onNextHandler: (currentSection: EBookingWizardSection) => void; // Called when proceeding to the next section\n onPrevHandler: (currentSection: EBookingWizardSection) => void; // Called when returning to the previous section\n stateSections: Record<\n EBookingWizardSection,\n {\n opening: boolean; // Indicates if the section is currently expanding/animating\n isFirst: boolean; // Marks the first enabled/available section in the flow\n hidden: boolean; // Whether the section is excluded (unsupported/disabled)\n inactive: boolean; // Whether the section is currently inactive (not rendered/visible)\n }\n >;\n}\n\nexport const BookingWizardContext = createContext<BookingWizardContextType>({} as BookingWizardContextType);\n\nexport const useBookingWizard = () => useContext(BookingWizardContext);\n"]}
@@ -1,11 +1,15 @@
1
1
  import dayjs from 'dayjs';
2
- import React from 'react';
2
+ import React, { ReactNode } from 'react';
3
3
  import { ShowYearOnCalendarProps } from '../../../../models/Api/HotelOverrideDTO';
4
4
  export interface BookingWizardDateSelectorProps extends ShowYearOnCalendarProps {
5
5
  open?: boolean;
6
6
  defaultStartDate?: dayjs.Dayjs;
7
7
  defaultEndDate?: dayjs.Dayjs;
8
8
  dateFormat?: string;
9
- onChange?: (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => void;
9
+ onChange?: (startDate: dayjs.Dayjs | null, endDate: dayjs.Dayjs | null) => void;
10
+ notes?: ReactNode;
11
+ divider?: boolean;
12
+ hidden?: boolean;
13
+ inactive?: boolean;
10
14
  }
11
15
  export declare const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps>;
@@ -34,31 +34,42 @@ const react_i18next_1 = require("react-i18next");
34
34
  const AutoAutoHeight_1 = __importDefault(require("../../../../animations/AutoAutoHeight"));
35
35
  const BEButton_1 = __importDefault(require("../../BEButton"));
36
36
  const DateRangePicker_1 = __importDefault(require("../../DateRangePicker/DateRangePicker"));
37
- const Icon_1 = __importStar(require("../../Icon/Icon"));
38
37
  const Text_1 = __importDefault(require("../../Text"));
39
38
  const Translation_1 = require("../../../../translations/Translation");
40
39
  const FloatingDateRangePicker_1 = __importDefault(require("../../DateRangePicker/FloatingDateRangePicker"));
41
40
  const BookingWizard_1 = require("../BookingWizard");
42
41
  const BookingWizard_module_scss_1 = __importDefault(require("../BookingWizard.module.scss"));
43
- const BookingWizardBottomSheet_1 = __importDefault(require("../BookingWizardBottomSheet/BookingWizardBottomSheet"));
42
+ const BookingWizardBottomSheet_1 = __importStar(require("../BookingWizardBottomSheet/BookingWizardBottomSheet"));
43
+ const BookingWizardContent_1 = require("../BookingWizardContent");
44
44
  const BookingWizardContext_1 = require("../BookingWizardContext");
45
45
  const BookingWizardDateSelector_module_scss_1 = __importDefault(require("./BookingWizardDateSelector.module.scss"));
46
46
  const BookingWizardDateSelector = (props) => {
47
- const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption } = props;
48
- const { overlay, theme, layout, type: overlayType, isMobile, isSmallContainer } = (0, BookingWizardContext_1.useBookingWizard)();
47
+ const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption, divider = true, hidden, inactive } = props;
48
+ if (hidden)
49
+ return null;
50
+ const { overlay, theme, layout, type: overlayType, isMobile, isSmallContainer, stateSections, onPrevHandler, onNextHandler, isImagesTheme, isImagesThemeMobile, } = (0, BookingWizardContext_1.useBookingWizard)();
49
51
  const { t } = (0, react_i18next_1.useTranslation)();
50
52
  const checkOutDatePickerRef = react_1.default.useRef(null);
51
- const [startDate, setStartDate] = (0, react_1.useState)(defaultStartDate !== null && defaultStartDate !== void 0 ? defaultStartDate : (0, dayjs_1.default)());
52
- const [endDate, setEndDate] = (0, react_1.useState)(defaultEndDate !== null && defaultEndDate !== void 0 ? defaultEndDate : (0, dayjs_1.default)().add(1, 'days'));
53
+ //With isImagesTheme, default both startDate and endDate are null
54
+ const [startDate, setStartDate] = (0, react_1.useState)(defaultStartDate !== null && defaultStartDate !== void 0 ? defaultStartDate : (isImagesTheme ? null : (0, dayjs_1.default)()));
55
+ const [endDate, setEndDate] = (0, react_1.useState)(defaultEndDate !== null && defaultEndDate !== void 0 ? defaultEndDate : (isImagesTheme ? null : (0, dayjs_1.default)().add(1, 'days')));
53
56
  const [selectingStartDate, setSelectingStartDate] = (0, react_1.useState)(startDate);
54
57
  const [selectingEndDate, setSelectingEndDate] = (0, react_1.useState)(endDate);
55
58
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
59
+ const [isOverlayOpen, setIsOverlayOpen] = (0, react_1.useState)(false);
56
60
  const [checkInWrapperRef, setCheckInWrapperRef] = react_1.default.useState();
61
+ const [monthCount, setMonthCount] = (0, react_1.useState)(2);
62
+ (0, react_1.useEffect)(() => {
63
+ const opening = stateSections[BookingWizard_1.EBookingWizardSection.Date].opening;
64
+ setIsOpen(opening);
65
+ }, [stateSections]);
57
66
  let RowWrapper = react_1.default.Fragment;
58
67
  const rowWrapperProps = {};
59
68
  if (layout === 'button' || isMobile || isSmallContainer) {
60
69
  RowWrapper = 'div';
61
- rowWrapperProps.className = BookingWizard_module_scss_1.default.itemGroup;
70
+ rowWrapperProps.className = (0, classnames_1.default)(BookingWizard_module_scss_1.default.itemGroup, {
71
+ [BookingWizard_module_scss_1.default['inactive']]: inactive,
72
+ });
62
73
  rowWrapperProps.ref = (ref) => {
63
74
  if (layout === 'button') {
64
75
  setCheckInWrapperRef(ref);
@@ -69,7 +80,9 @@ const BookingWizardDateSelector = (props) => {
69
80
  var _a;
70
81
  setStartDate(startDate);
71
82
  setEndDate(endDate);
72
- setIsOpen(false);
83
+ if (!isImagesThemeMobile) {
84
+ setIsOpen(false);
85
+ }
73
86
  (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, startDate, endDate);
74
87
  };
75
88
  const _onCheckoutDateChange = (newEndDate) => {
@@ -77,7 +90,9 @@ const BookingWizardDateSelector = (props) => {
77
90
  (_a = props === null || props === void 0 ? void 0 : props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, startDate, newEndDate);
78
91
  setEndDate(newEndDate);
79
92
  if (newEndDate) {
80
- setIsOpen(false);
93
+ if (!isImagesThemeMobile) {
94
+ setIsOpen(false);
95
+ }
81
96
  }
82
97
  };
83
98
  const _toggleInlineDatePicker = () => {
@@ -85,19 +100,45 @@ const BookingWizardDateSelector = (props) => {
85
100
  (_a = checkOutDatePickerRef === null || checkOutDatePickerRef === void 0 ? void 0 : checkOutDatePickerRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
86
101
  setIsOpen(!isOpen);
87
102
  };
103
+ const onOverlayOpenChange = (isOpen) => {
104
+ setIsOverlayOpen(isOpen);
105
+ };
106
+ const ClearButton = ({ date, onClick }) => {
107
+ return isImagesTheme ? react_1.default.createElement(BookingWizardContent_1.BWClearButton, { hidden: isOverlayOpen && !!date, onClick: onClick }) : react_1.default.createElement(react_1.default.Fragment, null);
108
+ };
109
+ const onApply = () => {
110
+ setDate(selectingStartDate, selectingEndDate);
111
+ };
88
112
  const _checkInDate = (date, disabledClass) => {
89
- return (react_1.default.createElement("div", { className: disabledClass ? '' : BookingWizard_module_scss_1.default.item, onClick: _toggleInlineDatePicker },
90
- react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.CheckIn)),
91
- layout === 'horizontal-condensed' ? (react_1.default.createElement(react_1.default.Fragment, null,
92
- react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-1']), bold: true }, (date === null || date === void 0 ? void 0 : date.format('DD')) || '-'),
93
- react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-2']), bold: true }, (date === null || date === void 0 ? void 0 : date.format('MMM')) || '-'))) : (react_1.default.createElement(Text_1.default, { className: BookingWizardDateSelector_module_scss_1.default.date, bold: true }, (date === null || date === void 0 ? void 0 : date.format(dateFormat)) || '-'))));
113
+ const defaultPlaceHolder = isImagesTheme ? t(Translation_1.Translation.Misc.CheckInPlaceHolder) : '-';
114
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)({
115
+ [BookingWizard_module_scss_1.default.item]: !disabledClass,
116
+ [BookingWizard_module_scss_1.default['item-fullwidth']]: isImagesTheme,
117
+ }), onClick: _toggleInlineDatePicker },
118
+ react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default['item-with-icon'] },
119
+ react_1.default.createElement("div", null,
120
+ react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.CheckIn)),
121
+ layout === 'horizontal-condensed' ? (react_1.default.createElement(react_1.default.Fragment, null,
122
+ react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-1'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('DD')) || defaultPlaceHolder),
123
+ react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-2'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('MMM')) || defaultPlaceHolder))) : (react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format(dateFormat)) || defaultPlaceHolder))),
124
+ react_1.default.createElement(ClearButton, { date: date, onClick: () => {
125
+ setDate(null, endDate);
126
+ } }))));
94
127
  };
95
128
  const _checkOutDate = (date) => {
96
- return (react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.item, onClick: _toggleInlineDatePicker },
97
- react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.CheckOut)),
98
- layout === 'horizontal-condensed' ? (react_1.default.createElement(react_1.default.Fragment, null,
99
- react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-1']), bold: true }, (date === null || date === void 0 ? void 0 : date.format('DD')) || '-'),
100
- react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-2']), bold: true }, (date === null || date === void 0 ? void 0 : date.format('MMM')) || '-'))) : (react_1.default.createElement(Text_1.default, { className: BookingWizardDateSelector_module_scss_1.default.date, bold: true }, (date === null || date === void 0 ? void 0 : date.format(dateFormat)) || '-'))));
129
+ const defaultPlaceHolder = isImagesTheme ? t(Translation_1.Translation.Misc.CheckOutPlaceHolder) : '-';
130
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)(BookingWizard_module_scss_1.default.item, {
131
+ [BookingWizard_module_scss_1.default['active']]: isOverlayOpen && !!startDate && !endDate,
132
+ }), onClick: _toggleInlineDatePicker },
133
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(BookingWizard_module_scss_1.default['item-with-icon']) },
134
+ react_1.default.createElement("div", null,
135
+ react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.CheckOut)),
136
+ layout === 'horizontal-condensed' ? (react_1.default.createElement(react_1.default.Fragment, null,
137
+ react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-1'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('DD')) || defaultPlaceHolder),
138
+ react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-2'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('MMM')) || defaultPlaceHolder))) : (react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format(dateFormat)) || defaultPlaceHolder))),
139
+ react_1.default.createElement(ClearButton, { date: date, onClick: () => {
140
+ setDate(startDate, null);
141
+ } }))));
101
142
  };
102
143
  const _combineDates = (checkIn, checkOut) => {
103
144
  return (react_1.default.createElement("div", { onClick: _toggleInlineDatePicker },
@@ -117,20 +158,41 @@ const BookingWizardDateSelector = (props) => {
117
158
  react_1.default.createElement(DateRangePicker_1.default, { selectedStartDate: startDate, selectedEndDate: endDate, onStartDateChanged: setStartDate, onEndDateChanged: _onCheckoutDateChange, theme: layout === 'horizontal-condensed' ? BookingWizard_1.EBookingWizardTheme.Specific : theme, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }))))));
118
159
  }
119
160
  if (overlayType === 'bottom-sheet') {
161
+ const DateRangePickerFooter = () => {
162
+ if (isImagesTheme) {
163
+ return (react_1.default.createElement(BEButton_1.default, { stopIconAnimation: true, outline: true, rounded: true, wide: true, onClick: () => {
164
+ setMonthCount((prev) => prev + 4);
165
+ } }, t(Translation_1.Translation.Misc.LoadMoreDates)));
166
+ }
167
+ else {
168
+ return (react_1.default.createElement(BEButton_1.default, { wide: true, primary: true, filled: true, onClick: onApply }, t(Translation_1.Translation.Misc.Apply)));
169
+ }
170
+ };
120
171
  return (react_1.default.createElement(react_1.default.Fragment, null,
121
172
  react_1.default.createElement(RowWrapper, Object.assign({}, rowWrapperProps), !isMobile && layout === 'horizontal' ? (react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.item }, _combineDates(startDate, endDate))) : (react_1.default.createElement(react_1.default.Fragment, null,
122
173
  _checkInDate(startDate),
123
174
  react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider }),
124
175
  _checkOutDate(endDate)))),
125
- react_1.default.createElement(BookingWizardBottomSheet_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.container, BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container']), open: isOpen, onDismiss: () => setIsOpen(false), header: react_1.default.createElement("div", { className: BookingWizardDateSelector_module_scss_1.default.header },
126
- react_1.default.createElement(Text_1.default, null, t(Translation_1.Translation.Misc.ChooseDates)),
127
- " ",
128
- react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Close, onClick: () => setIsOpen(false) })) },
176
+ react_1.default.createElement(BookingWizardBottomSheet_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.container, BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container'], {
177
+ [BookingWizardDateSelector_module_scss_1.default['custom-overlay-images-theme']]: isImagesTheme,
178
+ }), open: isOpen, onDismiss: () => {
179
+ if (!isImagesThemeMobile) {
180
+ setIsOpen(false);
181
+ }
182
+ }, header: react_1.default.createElement(BookingWizardBottomSheet_1.BWBottomSheetHeader, { title: t(Translation_1.Translation.Misc.ChooseDates), onClose: () => setIsOpen(false) }), footer: react_1.default.createElement(BookingWizardBottomSheet_1.BWBottomSheetFooter, { hidePrev: stateSections[BookingWizard_1.EBookingWizardSection.Date].isFirst, onPrev: () => onPrevHandler(BookingWizard_1.EBookingWizardSection.Date), onNext: () => onNextHandler(BookingWizard_1.EBookingWizardSection.Date), disabledNext: !startDate || !endDate }) },
129
183
  react_1.default.createElement("div", { className: BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container-box'] },
130
- react_1.default.createElement(DateRangePicker_1.default, { selectedStartDate: startDate, selectedEndDate: endDate, onStartDateChanged: setSelectingStartDate, onEndDateChanged: setSelectingEndDate, theme: theme, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }),
131
- react_1.default.createElement(BEButton_1.default, { wide: true, primary: true, filled: true, onClick: () => {
132
- setDate(selectingStartDate, selectingEndDate);
133
- } }, t(Translation_1.Translation.Misc.Apply))))));
184
+ react_1.default.createElement(DateRangePicker_1.default, { selectedStartDate: startDate, selectedEndDate: endDate, onStartDateChanged: (date) => {
185
+ setSelectingStartDate(date);
186
+ if (isImagesThemeMobile) {
187
+ setStartDate(date);
188
+ }
189
+ }, onEndDateChanged: (date) => {
190
+ setSelectingEndDate(date);
191
+ if (isImagesThemeMobile) {
192
+ _onCheckoutDateChange(date);
193
+ }
194
+ }, theme: theme, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption, className: BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container-box-calendar'], showMultipleMonths: isImagesTheme, showArrows: theme !== BookingWizard_1.EBookingWizardTheme.Images, monthCount: monthCount }),
195
+ react_1.default.createElement(DateRangePickerFooter, null)))));
134
196
  }
135
197
  if (layout === 'horizontal' && theme === BookingWizard_1.EBookingWizardTheme.Specific && !isMobile && !isSmallContainer) {
136
198
  return (react_1.default.createElement(RowWrapper, Object.assign({}, rowWrapperProps),
@@ -139,11 +201,16 @@ const BookingWizardDateSelector = (props) => {
139
201
  fallbackPlacements: overlay === null || overlay === void 0 ? void 0 : overlay.fallbackPlacements,
140
202
  }, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }, _combineDates(startDate, endDate))));
141
203
  }
204
+ const DateNotes = () => {
205
+ return (props === null || props === void 0 ? void 0 : props.notes) && isImagesTheme ? react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.notes }, props === null || props === void 0 ? void 0 : props.notes) : null;
206
+ };
142
207
  return (react_1.default.createElement(RowWrapper, Object.assign({}, rowWrapperProps),
143
- react_1.default.createElement(FloatingDateRangePicker_1.default, { ref: checkOutDatePickerRef, container: checkInWrapperRef, startDate: startDate, endDate: endDate, selectedDateChanged: setDate, overlayOffset: overlay === null || overlay === void 0 ? void 0 : overlay.dateOffset, theme: layout === 'horizontal-condensed' ? BookingWizard_1.EBookingWizardTheme.Specific : theme, showMultipleMonths: showMultipleMonths, className: BookingWizard_module_scss_1.default.item, overlay: {
208
+ react_1.default.createElement(FloatingDateRangePicker_1.default, { ref: checkOutDatePickerRef, container: checkInWrapperRef, startDate: startDate, endDate: endDate, selectedDateChanged: setDate, overlayOffset: overlay === null || overlay === void 0 ? void 0 : overlay.dateOffset, theme: layout === 'horizontal-condensed' ? BookingWizard_1.EBookingWizardTheme.Specific : theme, showMultipleMonths: showMultipleMonths, className: (0, classnames_1.default)(BookingWizard_module_scss_1.default.item, {
209
+ [BookingWizard_module_scss_1.default['active']]: isOverlayOpen && !!endDate,
210
+ }), overlay: {
144
211
  placement: overlay === null || overlay === void 0 ? void 0 : overlay.placement,
145
212
  fallbackPlacements: overlay === null || overlay === void 0 ? void 0 : overlay.fallbackPlacements,
146
- }, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }, _checkInDate(startDate, true)),
213
+ }, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption, notes: react_1.default.createElement(DateNotes, null), onOverlayOpenChange: onOverlayOpenChange }, _checkInDate(startDate, true)),
147
214
  react_1.default.createElement("div", { className: layout !== 'button' && !isMobile ? BookingWizard_module_scss_1.default.divider : '' }),
148
215
  _checkOutDate(endDate)));
149
216
  };
@@ -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 { ShowYearOnCalendarProps } from '@/models/Api/HotelOverrideDTO';\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 extends ShowYearOnCalendarProps {\n open?: boolean;\n defaultStartDate?: dayjs.Dayjs;\n defaultEndDate?: dayjs.Dayjs;\n dateFormat?: string;\n onChange?: (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => void;\n}\n\nexport const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps> = (props) => {\n const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption } = props;\n const { overlay, theme, layout, type: overlayType, isMobile, isSmallContainer } = 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 let RowWrapper: any = React.Fragment;\n const rowWrapperProps = {} as any;\n if (layout === 'button' || isMobile || isSmallContainer) {\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}>{t(Translation.Misc.CheckIn)}</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(dateFormat) || '-'}\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}>{t(Translation.Misc.CheckOut)}</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(dateFormat) || '-'}\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(dateFormat) || ''} - ${checkOut?.format(dateFormat) || ''}`}</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 showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\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 showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\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 && !isSmallContainer) {\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 showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\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 showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\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, { ReactNode, useEffect, 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 Text from '@/components/generic/Text';\nimport { ShowYearOnCalendarProps } from '@/models/Api/HotelOverrideDTO';\nimport { Translation } from '@/translations/Translation';\n\nimport FloatingDateRangePicker, { FloatingDateRangePickerHandle } from '../../DateRangePicker/FloatingDateRangePicker';\nimport { EBookingWizardSection, EBookingWizardTheme } from '../BookingWizard';\nimport bookingWizardStyles from '../BookingWizard.module.scss';\nimport BookingWizardBottomSheet, { BWBottomSheetFooter, BWBottomSheetHeader } from '../BookingWizardBottomSheet/BookingWizardBottomSheet';\nimport { BWClearButton } from '../BookingWizardContent';\nimport { useBookingWizard } from '../BookingWizardContext';\nimport styles from './BookingWizardDateSelector.module.scss';\n\nexport interface BookingWizardDateSelectorProps extends ShowYearOnCalendarProps {\n open?: boolean;\n defaultStartDate?: dayjs.Dayjs;\n defaultEndDate?: dayjs.Dayjs;\n dateFormat?: string;\n onChange?: (startDate: dayjs.Dayjs | null, endDate: dayjs.Dayjs | null) => void;\n notes?: ReactNode;\n divider?: boolean;\n hidden?: boolean;\n inactive?: boolean;\n}\n\nexport const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps> = (props) => {\n const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption, divider = true, hidden, inactive } = props;\n if (hidden) return null;\n const {\n overlay,\n theme,\n layout,\n type: overlayType,\n isMobile,\n isSmallContainer,\n stateSections,\n onPrevHandler,\n onNextHandler,\n isImagesTheme,\n isImagesThemeMobile,\n } = useBookingWizard();\n const { t } = useTranslation();\n\n const checkOutDatePickerRef = React.useRef<FloatingDateRangePickerHandle>(null);\n\n //With isImagesTheme, default both startDate and endDate are null\n const [startDate, setStartDate] = useState<dayjs.Dayjs | null>(defaultStartDate ?? (isImagesTheme ? null : dayjs()));\n const [endDate, setEndDate] = useState<dayjs.Dayjs | null>(defaultEndDate ?? (isImagesTheme ? 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<boolean>(false);\n const [isOverlayOpen, setIsOverlayOpen] = useState<boolean>(false);\n const [checkInWrapperRef, setCheckInWrapperRef] = React.useState<HTMLElement | undefined>();\n const [monthCount, setMonthCount] = useState<number>(2);\n\n useEffect(() => {\n const opening = stateSections[EBookingWizardSection.Date].opening;\n setIsOpen(opening);\n }, [stateSections]);\n\n let RowWrapper: any = React.Fragment;\n const rowWrapperProps = {} as any;\n if (layout === 'button' || isMobile || isSmallContainer) {\n RowWrapper = 'div';\n rowWrapperProps.className = classNames(bookingWizardStyles.itemGroup, {\n [bookingWizardStyles['inactive']]: inactive,\n });\n rowWrapperProps.ref = (ref: any) => {\n if (layout === 'button') {\n setCheckInWrapperRef(ref);\n }\n };\n }\n\n const setDate = (startDate: dayjs.Dayjs | null, endDate: dayjs.Dayjs | null) => {\n setStartDate(startDate);\n setEndDate(endDate);\n\n if (!isImagesThemeMobile) {\n setIsOpen(false);\n }\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 if (!isImagesThemeMobile) {\n setIsOpen(false);\n }\n }\n };\n\n const _toggleInlineDatePicker = () => {\n checkOutDatePickerRef?.current?.toggle();\n setIsOpen(!isOpen);\n };\n\n const onOverlayOpenChange = (isOpen: boolean) => {\n setIsOverlayOpen(isOpen);\n };\n\n const ClearButton = ({ date, onClick }: { date?: dayjs.Dayjs; onClick: any }) => {\n return isImagesTheme ? <BWClearButton hidden={isOverlayOpen && !!date} onClick={onClick} /> : <></>;\n };\n\n const onApply = () => {\n setDate(selectingStartDate as Dayjs, selectingEndDate as Dayjs);\n };\n\n const _checkInDate = (date?: dayjs.Dayjs, disabledClass?: boolean) => {\n const defaultPlaceHolder = isImagesTheme ? t(Translation.Misc.CheckInPlaceHolder) : '-';\n return (\n <div\n className={classNames({\n [bookingWizardStyles.item]: !disabledClass,\n [bookingWizardStyles['item-fullwidth']]: isImagesTheme,\n })}\n onClick={_toggleInlineDatePicker}\n >\n <div className={bookingWizardStyles['item-with-icon']}>\n <div>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.CheckIn)}</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'], bookingWizardStyles.value)} bold>\n {date?.format('DD') || defaultPlaceHolder}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'], bookingWizardStyles.value)} bold>\n {date?.format('MMM') || defaultPlaceHolder}\n </Text>\n </>\n ) : (\n <Text className={classNames(styles.date, bookingWizardStyles.value)} bold>\n {date?.format(dateFormat) || defaultPlaceHolder}\n </Text>\n )}\n </div>\n <ClearButton\n date={date}\n onClick={() => {\n setDate(null, endDate);\n }}\n />\n </div>\n </div>\n );\n };\n\n const _checkOutDate = (date?: dayjs.Dayjs) => {\n const defaultPlaceHolder = isImagesTheme ? t(Translation.Misc.CheckOutPlaceHolder) : '-';\n return (\n <div\n className={classNames(bookingWizardStyles.item, {\n [bookingWizardStyles['active']]: isOverlayOpen && !!startDate && !endDate,\n })}\n onClick={_toggleInlineDatePicker}\n >\n <div className={classNames(bookingWizardStyles['item-with-icon'])}>\n <div>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.CheckOut)}</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'], bookingWizardStyles.value)} bold>\n {date?.format('DD') || defaultPlaceHolder}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'], bookingWizardStyles.value)} bold>\n {date?.format('MMM') || defaultPlaceHolder}\n </Text>\n </>\n ) : (\n <Text className={classNames(styles.date, bookingWizardStyles.value)} bold>\n {date?.format(dateFormat) || defaultPlaceHolder}\n </Text>\n )}\n </div>\n <ClearButton\n date={date}\n onClick={() => {\n setDate(startDate, null);\n }}\n />\n </div>\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(dateFormat) || ''} - ${checkOut?.format(dateFormat) || ''}`}</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 showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n />\n </div>\n </AutoAutoHeight>\n </div>\n </div>\n );\n }\n\n if (overlayType === 'bottom-sheet') {\n const DateRangePickerFooter = () => {\n if (isImagesTheme) {\n return (\n <BEButton\n stopIconAnimation\n outline\n rounded\n wide\n onClick={() => {\n setMonthCount((prev) => prev + 4);\n }}\n >\n {t(Translation.Misc.LoadMoreDates)}\n </BEButton>\n );\n } else {\n return (\n <BEButton wide primary filled onClick={onApply}>\n {t(Translation.Misc.Apply)}\n </BEButton>\n );\n }\n };\n\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 [styles['custom-overlay-images-theme']]: isImagesTheme,\n })}\n open={isOpen}\n onDismiss={() => {\n if (!isImagesThemeMobile) {\n setIsOpen(false);\n }\n }}\n header={<BWBottomSheetHeader title={t(Translation.Misc.ChooseDates)} onClose={() => setIsOpen(false)} />}\n footer={\n <BWBottomSheetFooter\n hidePrev={stateSections[EBookingWizardSection.Date].isFirst}\n onPrev={() => onPrevHandler(EBookingWizardSection.Date)}\n onNext={() => onNextHandler(EBookingWizardSection.Date)}\n disabledNext={!startDate || !endDate}\n />\n }\n >\n <div className={styles['bottom-sheet-container-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={(date: dayjs.Dayjs) => {\n setSelectingStartDate(date);\n if (isImagesThemeMobile) {\n setStartDate(date);\n }\n }}\n onEndDateChanged={(date: dayjs.Dayjs) => {\n setSelectingEndDate(date);\n if (isImagesThemeMobile) {\n _onCheckoutDateChange(date);\n }\n }}\n theme={theme}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n className={styles['bottom-sheet-container-box-calendar']}\n showMultipleMonths={isImagesTheme}\n showArrows={theme !== EBookingWizardTheme.Images}\n monthCount={monthCount}\n />\n <DateRangePickerFooter />\n </div>\n </BookingWizardBottomSheet>\n </>\n );\n }\n\n if (layout === 'horizontal' && theme === EBookingWizardTheme.Specific && !isMobile && !isSmallContainer) {\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 showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n >\n {_combineDates(startDate as Dayjs, endDate as Dayjs)}\n </FloatingDateRangePicker>\n </RowWrapper>\n );\n }\n\n const DateNotes = () => {\n return props?.notes && isImagesTheme ? <div className={bookingWizardStyles.notes}>{props?.notes}</div> : null;\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={classNames(bookingWizardStyles.item, {\n [bookingWizardStyles['active']]: isOverlayOpen && !!endDate,\n })}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n notes={<DateNotes />}\n onOverlayOpenChange={onOverlayOpenChange}\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,4 +1,4 @@
1
- import { FC } from 'react';
1
+ import React, { FC, ReactNode } from 'react';
2
2
  export interface BookingWizardGuestSelectorProps {
3
3
  disableChild?: boolean;
4
4
  showInfants?: boolean;
@@ -20,7 +20,7 @@ export interface BookingWizardGuestSelectorProps {
20
20
  * @param children
21
21
  * @param room
22
22
  */
23
- onChange?: ({ adults, children, room }: {
23
+ onChange?: (params: {
24
24
  adults: number;
25
25
  children: number;
26
26
  infants: number;
@@ -32,7 +32,7 @@ export interface BookingWizardGuestSelectorProps {
32
32
  * @param children
33
33
  * @param room
34
34
  */
35
- onEditingChange?: ({ adults, children, room }: {
35
+ onEditingChange?: (params: {
36
36
  adults: number;
37
37
  children: number;
38
38
  infants: number;
@@ -46,5 +46,20 @@ export interface BookingWizardGuestSelectorProps {
46
46
  max?: number;
47
47
  };
48
48
  };
49
+ notes?: ReactNode;
50
+ onOverlayOpenChange?: (isOpen: boolean) => void;
51
+ promoCodeConfig?: {
52
+ divider: boolean;
53
+ withLabel: boolean;
54
+ promoCode: string;
55
+ setPromoCode: React.Dispatch<React.SetStateAction<string>>;
56
+ onChange: (value?: string) => Promise<void>;
57
+ valid: boolean | undefined;
58
+ hideTooltip: boolean | undefined;
59
+ };
60
+ submitConfig?: {
61
+ onSubmit: () => false | undefined;
62
+ disabledNext: boolean;
63
+ };
49
64
  }
50
65
  export declare const BookingWizardGuestSelector: FC<BookingWizardGuestSelectorProps>;