@roomstay/frontend 2.6.1 → 2.6.3

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 (93) hide show
  1. package/dist/201.bundle.js +1 -1
  2. package/dist/457.bundle.js +1 -0
  3. package/dist/468.bundle.js +1 -1
  4. package/dist/main.bundle.js +1 -1
  5. package/dist/src/components/generic/BookingWizard/BookingWizard.js +2 -2
  6. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
  7. package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +1 -0
  8. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +6 -7
  9. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -1
  10. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.d.ts +1 -0
  11. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +5 -5
  12. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
  13. package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.d.ts +1 -0
  14. package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js +6 -2
  15. package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js.map +1 -1
  16. package/dist/src/components/generic/Icon/Icon.d.ts +3 -1
  17. package/dist/src/components/generic/Icon/Icon.js +2 -0
  18. package/dist/src/components/generic/Icon/Icon.js.map +1 -1
  19. package/dist/src/components/generic/NumberIncrement.d.ts +1 -0
  20. package/dist/src/components/generic/NumberIncrement.js +7 -7
  21. package/dist/src/components/generic/NumberIncrement.js.map +1 -1
  22. package/dist/src/components/generic/PageTitle/index.d.ts +4 -0
  23. package/dist/src/components/generic/PageTitle/index.js +20 -0
  24. package/dist/src/components/generic/PageTitle/index.js.map +1 -0
  25. package/dist/src/components/generic/date/DatePicker.js +2 -0
  26. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  27. package/dist/src/components/generic/date/DatePickerDay.js +3 -2
  28. package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
  29. package/dist/src/components/generic/loader/LargeLoader.js +20 -58
  30. package/dist/src/components/generic/loader/LargeLoader.js.map +1 -1
  31. package/dist/src/components/graphics/EmptyGraphic.d.ts +7 -0
  32. package/dist/src/components/graphics/EmptyGraphic.js +92 -0
  33. package/dist/src/components/graphics/EmptyGraphic.js.map +1 -0
  34. package/dist/src/components/graphics/HomeEmptyCard.js +67 -30
  35. package/dist/src/components/graphics/HomeEmptyCard.js.map +1 -1
  36. package/dist/src/components/graphics/TravelerNotfound.js.map +1 -0
  37. package/dist/src/components/navigation/Header.js +3 -4
  38. package/dist/src/components/navigation/Header.js.map +1 -1
  39. package/dist/src/components/reservation/EmptyReservation.js +2 -2
  40. package/dist/src/components/reservation/EmptyReservation.js.map +1 -1
  41. package/dist/src/components/steps/addons/AddonsNotFound.js +1 -1
  42. package/dist/src/components/steps/addons/AddonsNotFound.js.map +1 -1
  43. package/dist/src/components/steps/room/MemberSignInModal/ExternalMemberModal.js +1 -1
  44. package/dist/src/components/steps/room/MemberSignInModal/ExternalMemberModal.js.map +1 -1
  45. package/dist/src/components/steps/room/NoRoomsFoundBlock.js +2 -2
  46. package/dist/src/components/steps/room/NoRoomsFoundBlock.js.map +1 -1
  47. package/dist/src/components/steps/room/RatesNotFound.js +2 -2
  48. package/dist/src/components/steps/room/RatesNotFound.js.map +1 -1
  49. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +1 -1
  50. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  51. package/dist/src/contexts/HotelOverridesContext.js +4 -0
  52. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  53. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +2 -0
  54. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  55. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +1 -0
  56. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -1
  57. package/dist/src/models/Api/HotelOverrideDTO.d.ts +11 -0
  58. package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
  59. package/dist/src/pages/account/AccountHome/AccountHomePage.js +7 -13
  60. package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
  61. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js +1 -1
  62. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js.map +1 -1
  63. package/dist/src/pages/findReservation/FindReservation.js +2 -0
  64. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  65. package/dist/src/pages/findReservation/FindReservationResults.js +43 -40
  66. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  67. package/dist/src/pages/hotel/HotelInfo.js +2 -0
  68. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  69. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +2 -0
  70. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
  71. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +2 -0
  72. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
  73. package/dist/src/pages/steps/StepDate/StepDateComponent.js +0 -2
  74. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  75. package/dist/src/routes/NaturallyProgressedStepRoute.js +11 -0
  76. package/dist/src/routes/NaturallyProgressedStepRoute.js.map +1 -1
  77. package/dist/src/translations/Translation.d.ts +2 -0
  78. package/dist/src/translations/Translation.js +2 -0
  79. package/dist/src/translations/Translation.js.map +1 -1
  80. package/dist/src/translations/languages/en-gb.js +8 -6
  81. package/dist/src/translations/languages/en-gb.js.map +1 -1
  82. package/dist/src/util/Validation.js +1 -1
  83. package/dist/src/util/Validation.js.map +1 -1
  84. package/dist/test.bundle.js +1 -1
  85. package/dist/vendors.bundle.js +1 -1
  86. package/package.json +4 -2
  87. package/dist/572.bundle.js +0 -1
  88. package/dist/src/components/generic/TravelerNotfound.js.map +0 -1
  89. package/dist/src/components/graphics/HomeEmptyReservation.d.ts +0 -7
  90. package/dist/src/components/graphics/HomeEmptyReservation.js +0 -136
  91. package/dist/src/components/graphics/HomeEmptyReservation.js.map +0 -1
  92. /package/dist/src/components/{generic → graphics}/TravelerNotfound.d.ts +0 -0
  93. /package/dist/src/components/{generic → graphics}/TravelerNotfound.js +0 -0
@@ -46,7 +46,7 @@ var EBookingWizardTheme;
46
46
  EBookingWizardTheme["Specific"] = "specific";
47
47
  })(EBookingWizardTheme = exports.EBookingWizardTheme || (exports.EBookingWizardTheme = {}));
48
48
  const BookingWizard = (props) => {
49
- const { layout = 'horizontal', theme = EBookingWizardTheme.Default, onSubmit, wrapperClassname, contentClassname: contentClassnameProps, selectedProperty, properties, defaultColors, maxAdults, disableChild, showInfants, disableRoom, hideGuestSelect, hidePromocode, defaultValues, } = props;
49
+ const { layout = 'horizontal', theme = EBookingWizardTheme.Default, onSubmit, wrapperClassname, contentClassname: contentClassnameProps, selectedProperty, properties, defaultColors, maxAdults, disableChild, showInfants, disableRoom, hideGuestSelect, hidePromocode, hideProperty, defaultValues, } = props;
50
50
  const [isOpen, setIsOpen] = react_1.default.useState(false);
51
51
  const { isMobile } = (0, WindowSize_1.useWindowSize)();
52
52
  const { t } = (0, react_i18next_1.useTranslation)();
@@ -112,7 +112,7 @@ const BookingWizard = (props) => {
112
112
  react_1.default.createElement(Icon_1.default, { className: BookingWizard_module_scss_1.default.closeBtn, icon: Icon_1.IconType.Close, size: "24px", onClick: () => setIsOpen(false) })),
113
113
  react_1.default.createElement(BookingWizardContext_1.BookingWizardContext.Provider, { value: bookingWizardContext },
114
114
  react_1.default.createElement("div", { className: classes },
115
- react_1.default.createElement(BookingWizardContent_1.BookingWizardContent, { properties: properties, selectedProperty: selectedProperty, defaultColors: defaultColors, classname: contentClassname, maxAdults: maxAdults, disableChild: disableChild, showInfants: showInfants, disableRoom: disableRoom, defaultValues: defaultValues, hideGuestSelect: hideGuestSelect, hidePromocode: hidePromocode })))))));
115
+ react_1.default.createElement(BookingWizardContent_1.BookingWizardContent, { properties: properties, selectedProperty: selectedProperty, defaultColors: defaultColors, classname: contentClassname, maxAdults: maxAdults, disableChild: disableChild, showInfants: showInfants, disableRoom: disableRoom, defaultValues: defaultValues, hideGuestSelect: hideGuestSelect, hidePromocode: hidePromocode, hideProperty: hideProperty })))))));
116
116
  }
117
117
  return (react_1.default.createElement("div", { ref: ref, className: classes },
118
118
  react_1.default.createElement(BookingWizardContext_1.BookingWizardContext.Provider, { value: bookingWizardContext },
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizard.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizard.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport useMeasure from 'react-use-measure';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { BookingWizardContent, BookingWizardContentProps } from '@/components/generic/BookingWizard/BookingWizardContent';\nimport {\n BookingWizardContext,\n BookingWizardContextType,\n BookingWizardLayout,\n BookingWizardOverlayType,\n BookingWizardTheme,\n} from '@/components/generic/BookingWizard/BookingWizardContext';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport { useWindowSize } from '@/hooks/WindowSize';\nimport { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nimport { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport { Translation } from '@/translations/Translation';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport styles from './BookingWizard.module.scss';\n\nexport enum EBookingWizardTheme {\n Default = 'default',\n Specific = 'specific',\n}\n\nexport interface BookingWizardProps extends BookingWizardContentProps {\n layout?: BookingWizardLayout;\n theme?: BookingWizardTheme;\n\n wrapperClassname?: string;\n contentClassname?: string;\n\n properties: TBookingWizardProperties;\n selectedProperty: BookingWizardProperty;\n defaultColors: BookingWizardProperty['colors'];\n onSubmit: BookingWizardContextType['onSubmit'];\n}\n\nconst BookingWizard: React.FC<BookingWizardProps> = (props) => {\n const {\n layout = 'horizontal',\n theme = EBookingWizardTheme.Default,\n onSubmit,\n wrapperClassname,\n contentClassname: contentClassnameProps,\n selectedProperty,\n properties,\n defaultColors,\n maxAdults,\n disableChild,\n showInfants,\n disableRoom,\n hideGuestSelect,\n hidePromocode,\n defaultValues,\n } = props;\n const [isOpen, setIsOpen] = React.useState(false);\n\n const { isMobile } = useWindowSize();\n const { t } = useTranslation();\n const [ref, bounds] = useMeasure({ debounce: 300 });\n\n const [compOverlayType, setCompOverlayType] = useState<BookingWizardOverlayType>('popup');\n const [overlayOffset, setOverlayOffset] = useState<[number, number]>();\n const [dateSelectorOverlayOffset, setDateSelectorOverlayOffset] = useState<[number, number]>();\n const [overlayPlacement, setOverlayPlacement] = useState<Placement>();\n\n const isSmallContainer = useMemo(() => {\n if (!bounds.width) return false;\n return bounds.width <= ScreenSize.Medium;\n }, [bounds]);\n\n useEffect(() => {\n if ((layout === 'horizontal' || layout === 'horizontal-condensed') && !isMobile) {\n setOverlayOffset([0, 6]);\n setDateSelectorOverlayOffset([0, 6]);\n setCompOverlayType('popup');\n } else {\n setOverlayOffset([0, 10]);\n setDateSelectorOverlayOffset([0, -8]);\n setCompOverlayType('bottom-sheet');\n }\n }, [layout, isMobile, isSmallContainer]);\n\n useEffect(() => {\n if (!isMobile) {\n setOverlayPlacement('bottom-start');\n } else {\n setOverlayPlacement('bottom');\n }\n }, [isMobile]);\n\n const classes = classNames(\n styles.container,\n {\n [styles['--theme-specific']]: theme === EBookingWizardTheme.Specific,\n [styles['--theme-default']]: theme === EBookingWizardTheme.Default,\n [styles['--theme-condensed']]: layout === 'horizontal-condensed',\n [styles['--in-small-container']]: isSmallContainer,\n },\n wrapperClassname\n );\n\n const contentClassname = classNames(contentClassnameProps, { [styles['--in-small-container']]: isSmallContainer });\n\n const bookingWizardContext: BookingWizardContextType = {\n layout,\n theme,\n type: compOverlayType,\n className: classes,\n isMobile,\n isSmallContainer,\n\n onSubmit,\n\n overlay: {\n offset: overlayOffset,\n placement: overlayPlacement,\n fallbackPlacements: overlayPlacement,\n dateOffset: dateSelectorOverlayOffset,\n },\n };\n\n if (layout === 'button') {\n return (\n <div className={classes}>\n <BEButton className={styles.bookNowBtn} onClick={() => setIsOpen(true)}>\n {t(Translation.Misc.BookNow)}\n </BEButton>\n\n <SimpleModal className={styles.container} size={SimpleModalSize.ExtraSmall} open={isOpen} onClose={() => setIsOpen(false)} alignCenter overflowVisible>\n <div>\n <div className={styles.title}>\n <span>{t(Translation.Misc.BookAHotel)}</span>\n <Icon className={styles.closeBtn} icon={IconType.Close} size=\"24px\" onClick={() => setIsOpen(false)} />\n </div>\n <BookingWizardContext.Provider value={bookingWizardContext}>\n <div className={classes}>\n <BookingWizardContent\n properties={properties}\n selectedProperty={selectedProperty}\n defaultColors={defaultColors}\n classname={contentClassname}\n maxAdults={maxAdults}\n disableChild={disableChild}\n showInfants={showInfants}\n disableRoom={disableRoom}\n defaultValues={defaultValues}\n hideGuestSelect={hideGuestSelect}\n hidePromocode={hidePromocode}\n />\n </div>\n </BookingWizardContext.Provider>\n </div>\n </SimpleModal>\n </div>\n );\n }\n\n return (\n <div ref={ref} className={classes}>\n <BookingWizardContext.Provider value={bookingWizardContext}>\n <BookingWizardContent {...props} classname={contentClassname} disableChild={disableChild} disableRoom={disableRoom} defaultValues={defaultValues} />\n </BookingWizardContext.Provider>\n </div>\n );\n};\n\nexport default BookingWizard;\n"]}
1
+ {"version":3,"file":"BookingWizard.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizard.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Placement } from '@popperjs/core';\nimport classNames from 'classnames';\nimport React, { useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport useMeasure from 'react-use-measure';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { BookingWizardContent, BookingWizardContentProps } from '@/components/generic/BookingWizard/BookingWizardContent';\nimport {\n BookingWizardContext,\n BookingWizardContextType,\n BookingWizardLayout,\n BookingWizardOverlayType,\n BookingWizardTheme,\n} from '@/components/generic/BookingWizard/BookingWizardContext';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport SimpleModal, { SimpleModalSize } from '@/components/generic/modal/SimpleModal';\nimport { useWindowSize } from '@/hooks/WindowSize';\nimport { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nimport { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport { Translation } from '@/translations/Translation';\nimport ScreenSize from '@/util/ScreenSize';\n\nimport styles from './BookingWizard.module.scss';\n\nexport enum EBookingWizardTheme {\n Default = 'default',\n Specific = 'specific',\n}\n\nexport interface BookingWizardProps extends BookingWizardContentProps {\n layout?: BookingWizardLayout;\n theme?: BookingWizardTheme;\n\n wrapperClassname?: string;\n contentClassname?: string;\n\n properties: TBookingWizardProperties;\n selectedProperty: BookingWizardProperty;\n defaultColors: BookingWizardProperty['colors'];\n onSubmit: BookingWizardContextType['onSubmit'];\n}\n\nconst BookingWizard: React.FC<BookingWizardProps> = (props) => {\n const {\n layout = 'horizontal',\n theme = EBookingWizardTheme.Default,\n onSubmit,\n wrapperClassname,\n contentClassname: contentClassnameProps,\n selectedProperty,\n properties,\n defaultColors,\n maxAdults,\n disableChild,\n showInfants,\n disableRoom,\n hideGuestSelect,\n hidePromocode,\n hideProperty,\n defaultValues,\n } = props;\n const [isOpen, setIsOpen] = React.useState(false);\n\n const { isMobile } = useWindowSize();\n const { t } = useTranslation();\n const [ref, bounds] = useMeasure({ debounce: 300 });\n\n const [compOverlayType, setCompOverlayType] = useState<BookingWizardOverlayType>('popup');\n const [overlayOffset, setOverlayOffset] = useState<[number, number]>();\n const [dateSelectorOverlayOffset, setDateSelectorOverlayOffset] = useState<[number, number]>();\n const [overlayPlacement, setOverlayPlacement] = useState<Placement>();\n\n const isSmallContainer = useMemo(() => {\n if (!bounds.width) return false;\n return bounds.width <= ScreenSize.Medium;\n }, [bounds]);\n\n useEffect(() => {\n if ((layout === 'horizontal' || layout === 'horizontal-condensed') && !isMobile) {\n setOverlayOffset([0, 6]);\n setDateSelectorOverlayOffset([0, 6]);\n setCompOverlayType('popup');\n } else {\n setOverlayOffset([0, 10]);\n setDateSelectorOverlayOffset([0, -8]);\n setCompOverlayType('bottom-sheet');\n }\n }, [layout, isMobile, isSmallContainer]);\n\n useEffect(() => {\n if (!isMobile) {\n setOverlayPlacement('bottom-start');\n } else {\n setOverlayPlacement('bottom');\n }\n }, [isMobile]);\n\n const classes = classNames(\n styles.container,\n {\n [styles['--theme-specific']]: theme === EBookingWizardTheme.Specific,\n [styles['--theme-default']]: theme === EBookingWizardTheme.Default,\n [styles['--theme-condensed']]: layout === 'horizontal-condensed',\n [styles['--in-small-container']]: isSmallContainer,\n },\n wrapperClassname\n );\n\n const contentClassname = classNames(contentClassnameProps, { [styles['--in-small-container']]: isSmallContainer });\n\n const bookingWizardContext: BookingWizardContextType = {\n layout,\n theme,\n type: compOverlayType,\n className: classes,\n isMobile,\n isSmallContainer,\n\n onSubmit,\n\n overlay: {\n offset: overlayOffset,\n placement: overlayPlacement,\n fallbackPlacements: overlayPlacement,\n dateOffset: dateSelectorOverlayOffset,\n },\n };\n\n if (layout === 'button') {\n return (\n <div className={classes}>\n <BEButton className={styles.bookNowBtn} onClick={() => setIsOpen(true)}>\n {t(Translation.Misc.BookNow)}\n </BEButton>\n\n <SimpleModal className={styles.container} size={SimpleModalSize.ExtraSmall} open={isOpen} onClose={() => setIsOpen(false)} alignCenter overflowVisible>\n <div>\n <div className={styles.title}>\n <span>{t(Translation.Misc.BookAHotel)}</span>\n <Icon className={styles.closeBtn} icon={IconType.Close} size=\"24px\" onClick={() => setIsOpen(false)} />\n </div>\n <BookingWizardContext.Provider value={bookingWizardContext}>\n <div className={classes}>\n <BookingWizardContent\n properties={properties}\n selectedProperty={selectedProperty}\n defaultColors={defaultColors}\n classname={contentClassname}\n maxAdults={maxAdults}\n disableChild={disableChild}\n showInfants={showInfants}\n disableRoom={disableRoom}\n defaultValues={defaultValues}\n hideGuestSelect={hideGuestSelect}\n hidePromocode={hidePromocode}\n hideProperty={hideProperty}\n />\n </div>\n </BookingWizardContext.Provider>\n </div>\n </SimpleModal>\n </div>\n );\n }\n\n return (\n <div ref={ref} className={classes}>\n <BookingWizardContext.Provider value={bookingWizardContext}>\n <BookingWizardContent {...props} classname={contentClassname} disableChild={disableChild} disableRoom={disableRoom} defaultValues={defaultValues} />\n </BookingWizardContext.Provider>\n </div>\n );\n};\n\nexport default BookingWizard;\n"]}
@@ -14,6 +14,7 @@ export interface BookingWizardContentProps {
14
14
  disableRoom?: boolean;
15
15
  hideGuestSelect?: boolean;
16
16
  hidePromocode?: boolean;
17
+ hideProperty?: boolean;
17
18
  defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id' | 'checkIn' | 'checkout'>> & {
18
19
  checkIn?: string;
19
20
  checkout?: string;
@@ -52,7 +52,7 @@ const BookingWizardDateSelector_1 = require("./BookingWizardDateSelector/Booking
52
52
  const BookingWizardGuestSelector_1 = require("./BookingWizardGuestSelector/BookingWizardGuestSelector");
53
53
  const BookingWizardHotelSelector_1 = require("./BookingWizardHotelSelector/BookingWizardHotelSelector");
54
54
  const BookingWizardPromoCode_1 = require("./BookingWizardPromoCode/BookingWizardPromoCode");
55
- const BookingWizardContent = ({ properties, selectedProperty: defaultProperty, defaultColors, classname, maxAdults, disableChild, showInfants, disableRoom, hideGuestSelect, hidePromocode, defaultValues, dateFormat, }) => {
55
+ const BookingWizardContent = ({ properties, selectedProperty: defaultProperty, defaultColors, classname, maxAdults, disableChild, showInfants, disableRoom, hideGuestSelect, hidePromocode, hideProperty, defaultValues, dateFormat, }) => {
56
56
  var _a, _b, _c, _d, _e, _f, _g, _h;
57
57
  const bwContext = (0, react_1.useContext)(BookingWizardContext_1.BookingWizardContext);
58
58
  const beContext = (0, react_1.useContext)(contexts_1.BookingEngineContext);
@@ -76,14 +76,13 @@ const BookingWizardContent = ({ properties, selectedProperty: defaultProperty, d
76
76
  RoomstayThemeEngine_1.default.changeTheme(defaultColors);
77
77
  }
78
78
  }, [selectedProperty]);
79
+ const engineConfig = beContext.engine.getConfig();
79
80
  const yearDisplayOption = (0, react_1.useMemo)(() => {
80
81
  var _a, _b;
81
- const engineConfig = beContext.engine.getConfig();
82
82
  return (_b = (_a = selectedProperty === null || selectedProperty === void 0 ? void 0 : selectedProperty.yearDisplayOption) !== null && _a !== void 0 ? _a : engineConfig.yearDisplayOption) !== null && _b !== void 0 ? _b : '';
83
83
  }, [selectedProperty]);
84
84
  const showYearOnCalendar = (0, react_1.useMemo)(() => {
85
85
  var _a, _b;
86
- const engineConfig = beContext.engine.getConfig();
87
86
  return !!((_b = (_a = selectedProperty === null || selectedProperty === void 0 ? void 0 : selectedProperty.showYearOnCalendar) !== null && _a !== void 0 ? _a : engineConfig.showYearOnCalendar) !== null && _b !== void 0 ? _b : '');
88
87
  }, [selectedProperty]);
89
88
  const setGuest = (guests) => {
@@ -153,13 +152,13 @@ const BookingWizardContent = ({ properties, selectedProperty: defaultProperty, d
153
152
  [BookingWizard_module_scss_1.default['--vertical']]: bwContext.layout === 'button',
154
153
  [BookingWizard_module_scss_1.default.inline]: bwContext.type === 'inline',
155
154
  }, classname) },
156
- react_1.default.createElement(react_1.default.Fragment, null,
155
+ hideProperty ? null : (react_1.default.createElement(react_1.default.Fragment, null,
157
156
  react_1.default.createElement("div", { ref: setHotelContainerRef, className: BookingWizard_module_scss_1.default.item },
158
157
  react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.ChooseHotel)),
159
158
  react_1.default.createElement(BookingWizardHotelSelector_1.BookingWizardHotelSelector, { followElement: hotelContainerRef, onChange: (value) => {
160
159
  setSelectedProperty(value || undefined);
161
160
  }, properties: properties, selectedProperty: selectedProperty, contentClassName: classname })),
162
- react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider })),
161
+ react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider }))),
163
162
  react_1.default.createElement(BookingWizardDateSelector_1.BookingWizardDateSelector, { onChange: setDate, defaultStartDate: (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.checkIn) ? (0, dayjs_1.default)(defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.checkIn) : undefined, defaultEndDate: (defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.checkout) ? (0, dayjs_1.default)(defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues.checkout) : undefined, dateFormat: dateFormat, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }),
164
163
  hideGuestSelect ? null : (react_1.default.createElement(react_1.default.Fragment, null,
165
164
  react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider }),
@@ -169,11 +168,11 @@ const BookingWizardContent = ({ properties, selectedProperty: defaultProperty, d
169
168
  adults,
170
169
  children,
171
170
  room,
172
- }, onChange: setGuest, maxAdults: maxAdults, disableChild: disableChild, showInfants: showInfants, disableRoom: disableRoom, followElement: guestsContainerRef })))),
171
+ }, onChange: setGuest, maxAdults: maxAdults, disableChild: disableChild, showInfants: showInfants, disableRoom: disableRoom, followElement: guestsContainerRef, hideTooltip: engineConfig.hideTooltips })))),
173
172
  react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider }),
174
173
  hidePromocode || bwContext.layout === 'horizontal-condensed' ? null : (react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.item },
175
174
  react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.Promocode)),
176
- react_1.default.createElement(BookingWizardPromoCode_1.BookingWizardPromoCode, { promoCode: promoCode, onChange: _onPromoCodeChange, valid: promoCodeValid }))),
175
+ react_1.default.createElement(BookingWizardPromoCode_1.BookingWizardPromoCode, { promoCode: promoCode, onChange: _onPromoCodeChange, valid: promoCodeValid, hideTooltip: engineConfig.hideTooltips }))),
177
176
  !(bwContext.layout === 'horizontal-condensed') ? react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.action }, submitButton) : null),
178
177
  bwContext.layout === 'horizontal-condensed' ? (react_1.default.createElement("div", { className: (0, classnames_1.default)(BookingWizard_module_scss_1.default.content, classname) },
179
178
  react_1.default.createElement("div", { className: (0, classnames_1.default)(BookingWizard_module_scss_1.default.action, BookingWizard_module_scss_1.default.centerItems, 'u-marg-top u-marg-top--light@l-') }, submitButton))) : null));
@@ -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 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 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 yearDisplayOption = useMemo(() => {\n const engineConfig = beContext.engine.getConfig() as BookingWizardEngineConfig;\n\n return selectedProperty?.yearDisplayOption ?? engineConfig.yearDisplayOption ?? '';\n }, [selectedProperty]);\n\n const showYearOnCalendar = useMemo(() => {\n const engineConfig = beContext.engine.getConfig() as BookingWizardEngineConfig;\n\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 <>\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 <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 />\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} />\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 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"]}
@@ -17,5 +17,6 @@ export interface BookingWizardGuestSelectorProps {
17
17
  room: number;
18
18
  }) => void;
19
19
  followElement?: HTMLElement | null;
20
+ hideTooltip?: boolean;
20
21
  }
21
22
  export declare const BookingWizardGuestSelector: FC<BookingWizardGuestSelectorProps>;
@@ -41,7 +41,7 @@ const StringHelper_1 = __importDefault(require("../../../../util/StringHelper"))
41
41
  const BookingWizardBottomSheet_1 = __importDefault(require("../BookingWizardBottomSheet/BookingWizardBottomSheet"));
42
42
  const BookingWizardContext_1 = require("../BookingWizardContext");
43
43
  const BookingWizardGuestSelector_module_scss_1 = __importDefault(require("./BookingWizardGuestSelector.module.scss"));
44
- const BookingWizardGuestSelector = ({ disableChild, showInfants, maxAdults = 10, disableRoom, defaultValue, followElement, onChange, }) => {
44
+ const BookingWizardGuestSelector = ({ disableChild, showInfants, maxAdults = 10, disableRoom, defaultValue, followElement, hideTooltip, onChange, }) => {
45
45
  var _a, _b, _c, _d;
46
46
  const { overlay, type: overlayType, layout, isSmallContainer } = (0, BookingWizardContext_1.useBookingWizard)();
47
47
  const { t } = (0, react_i18next_1.useTranslation)();
@@ -94,16 +94,16 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, maxAdults = 10,
94
94
  react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['popper--content'], ref: ref },
95
95
  react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
96
96
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingAdults, 'Adult', t)),
97
- react_1.default.createElement(NumberIncrement_1.default, { number: editingAdults, min: 1, max: maxAdults, onChange: applyButton ? setEditingAdults : setAdults, textSize: Text_1.TextType.Small })),
97
+ react_1.default.createElement(NumberIncrement_1.default, { number: editingAdults, min: 1, max: maxAdults, onChange: applyButton ? setEditingAdults : setAdults, textSize: Text_1.TextType.Small, hideTooltips: hideTooltip })),
98
98
  disableChild ? null : (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
99
99
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingChildren, 'Child', t)),
100
- react_1.default.createElement(NumberIncrement_1.default, { number: editingChildren, min: 0, max: 10, onChange: applyButton ? setEditingChildren : setChildren, textSize: Text_1.TextType.Small }))),
100
+ react_1.default.createElement(NumberIncrement_1.default, { number: editingChildren, min: 0, max: 10, onChange: applyButton ? setEditingChildren : setChildren, textSize: Text_1.TextType.Small, hideTooltips: hideTooltip }))),
101
101
  showInfants ? (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
102
102
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingInfants, 'Infant', t)),
103
- react_1.default.createElement(NumberIncrement_1.default, { number: editingInfants, min: 0, max: 10, onChange: applyButton ? setEditingInfants : setInfants, textSize: Text_1.TextType.Small }))) : null,
103
+ react_1.default.createElement(NumberIncrement_1.default, { number: editingInfants, min: 0, max: 10, onChange: applyButton ? setEditingInfants : setInfants, textSize: Text_1.TextType.Small, hideTooltips: hideTooltip }))) : null,
104
104
  disableRoom ? null : (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
105
105
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingRoom, 'Room', t)),
106
- react_1.default.createElement(NumberIncrement_1.default, { number: editingRoom, min: 1, max: 10, onChange: applyButton ? setEditingRoom : setRoom, textSize: Text_1.TextType.Small }))),
106
+ react_1.default.createElement(NumberIncrement_1.default, { number: editingRoom, min: 1, max: 10, onChange: applyButton ? setEditingRoom : setRoom, textSize: Text_1.TextType.Small, hideTooltips: hideTooltip }))),
107
107
  applyButton ? (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['popper--action'] },
108
108
  react_1.default.createElement(BEButton_1.default, { wide: overlayType === 'bottom-sheet', className: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default.applyBtn, {
109
109
  [BookingWizardGuestSelector_module_scss_1.default['--booking-summary']]: layout === 'booking-summary',
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizardGuestSelector.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames';\nimport React, { FC, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Translation } from '@/translations/Translation';\nimport StringHelper from '@/util/StringHelper';\n\nimport BookingWizardBottomSheet from '../BookingWizardBottomSheet/BookingWizardBottomSheet';\nimport { useBookingWizard } from '../BookingWizardContext';\nimport styles from './BookingWizardGuestSelector.module.scss';\n\nexport interface BookingWizardGuestSelectorProps {\n disableChild?: boolean;\n showInfants?: boolean;\n maxAdults?: number;\n\n disableRoom?: boolean;\n defaultValue?: { adults?: number; children?: number; infants?: number; room?: number };\n onChange?: ({ adults, children, room }: { adults: number; children: number; infants: number; room: number }) => void;\n followElement?: HTMLElement | null;\n}\n\nexport const BookingWizardGuestSelector: FC<BookingWizardGuestSelectorProps> = ({\n disableChild,\n showInfants,\n maxAdults = 10,\n disableRoom,\n defaultValue,\n followElement,\n onChange,\n}) => {\n const { overlay, type: overlayType, layout, isSmallContainer } = useBookingWizard();\n const { t } = useTranslation();\n\n const ref = useRef(null);\n const targetRef = useRef(null);\n\n const [adults, setAdults] = useState(defaultValue?.adults ?? 1);\n const [children, setChildren] = useState(defaultValue?.children ?? 0);\n const [infants, setInfants] = useState(defaultValue?.infants ?? 0);\n const [room, setRoom] = useState(defaultValue?.room ?? 1);\n const [editingAdults, setEditingAdults] = useState(adults);\n const [editingChildren, setEditingChildren] = useState(children);\n const [editingInfants, setEditingInfants] = useState(infants);\n const [editingRoom, setEditingRoom] = useState(room);\n\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n setEditingAdults(adults);\n }, [adults]);\n\n useEffect(() => {\n setEditingChildren(children);\n }, [children]);\n\n useEffect(() => {\n setEditingInfants(infants);\n }, [infants]);\n\n const onApply = () => {\n setAdults(editingAdults);\n setChildren(editingChildren);\n setInfants(editingInfants);\n setRoom(editingRoom);\n setOpen(false);\n onChange?.({ adults: editingAdults, children: editingChildren, infants: editingInfants, room: editingRoom });\n };\n\n const getValueAsText = () => {\n if (layout === 'horizontal-condensed') {\n return adults + children;\n }\n\n if (layout === 'booking-summary') {\n return StringHelper.pluralWithCount(adults + children + infants, 'Guest', t);\n }\n\n const parts = [StringHelper.pluralWithCount(adults, 'Adult', t)];\n\n if (children > 0) {\n parts.push(StringHelper.pluralWithCount(children, 'Child', t));\n }\n\n if (infants > 0) {\n parts.push(StringHelper.pluralWithCount(infants, 'Infant', t));\n }\n\n return parts.join(' - ');\n };\n\n const inner = (applyButton = true) => {\n return (\n <div className={styles['popper--box']}>\n <div className={styles['popper--content']} ref={ref}>\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingAdults, 'Adult', t)}</Text>\n <NumberIncrement number={editingAdults} min={1} max={maxAdults} onChange={applyButton ? setEditingAdults : setAdults} textSize={TextType.Small} />\n </div>\n {disableChild ? null : (\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingChildren, 'Child', t)}</Text>\n <NumberIncrement number={editingChildren} min={0} max={10} onChange={applyButton ? setEditingChildren : setChildren} textSize={TextType.Small} />\n </div>\n )}\n {showInfants ? (\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingInfants, 'Infant', t)}</Text>\n <NumberIncrement number={editingInfants} min={0} max={10} onChange={applyButton ? setEditingInfants : setInfants} textSize={TextType.Small} />\n </div>\n ) : null}\n {disableRoom ? null : (\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingRoom, 'Room', t)}</Text>\n <NumberIncrement number={editingRoom} min={1} max={10} onChange={applyButton ? setEditingRoom : setRoom} textSize={TextType.Small} />\n </div>\n )}\n {applyButton ? (\n <div className={styles['popper--action']}>\n <BEButton\n wide={overlayType === 'bottom-sheet'}\n className={classNames(styles.applyBtn, {\n [styles['--booking-summary']]: layout === 'booking-summary',\n })}\n onClick={onApply}\n >\n {t(Translation.Misc.Apply)}\n </BEButton>\n </div>\n ) : null}\n </div>\n </div>\n );\n };\n\n const content = () => {\n if (overlayType === 'inline') {\n return (\n <div className={styles.popper}>\n <AutoAutoHeight open={open}>{inner(false)}</AutoAutoHeight>\n </div>\n );\n }\n\n if (['bottom-sheet', 'top-sheet'].includes(overlayType)) {\n return (\n <BookingWizardBottomSheet\n className={classNames(styles.container, styles['--bottom-sheet'])}\n open={open}\n onDismiss={() => setOpen(false)}\n header={\n <div className={styles.header}>\n <Text>{t(Translation.Misc.HowManyGuests)}</Text> <Icon icon={IconType.Close} onClick={() => setOpen(false)} />\n </div>\n }\n {...('top-sheet' === overlayType && {\n snapPoints: ({ maxHeight }) => [maxHeight],\n })}\n >\n <div className={styles.popper}>{inner()} </div>\n </BookingWizardBottomSheet>\n );\n }\n\n return (\n <Overlay\n offset={overlay?.offset}\n usePortal={false}\n followElement={followElement || targetRef.current}\n placement={overlay?.placement}\n fallbackPlacements={overlay?.fallbackPlacements}\n strategy=\"absolute\"\n open={open}\n onClose={() => setOpen?.(!open)}\n className={styles.popper}\n containerClassName={classNames(styles['custom-overlay'], { [styles['small-container']]: isSmallContainer })}\n hideStyles\n >\n {inner()}\n </Overlay>\n );\n };\n\n return (\n <div\n ref={targetRef}\n className={classNames(styles.container, {\n [styles['--inline']]: overlayType === 'inline',\n [styles['--open']]: open,\n })}\n >\n <div className={classNames(styles['container--search'])} onClick={() => setOpen?.(!open)}>\n <Text\n className={classNames(styles['text-display'], {\n [styles['--line-1']]: layout === 'horizontal-condensed',\n [styles['--line-booking-summary']]: layout === 'booking-summary',\n })}\n bold\n >\n {getValueAsText()}\n </Text>\n\n {['horizontal-condensed', 'booking-summary'].includes(layout) ? null : <Icon icon={IconType.Dropdown} />}\n </div>\n\n {content()}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"BookingWizardGuestSelector.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames';\nimport React, { FC, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport BEButton from '@/components/generic/BEButton';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Translation } from '@/translations/Translation';\nimport StringHelper from '@/util/StringHelper';\n\nimport BookingWizardBottomSheet from '../BookingWizardBottomSheet/BookingWizardBottomSheet';\nimport { useBookingWizard } from '../BookingWizardContext';\nimport styles from './BookingWizardGuestSelector.module.scss';\n\nexport interface BookingWizardGuestSelectorProps {\n disableChild?: boolean;\n showInfants?: boolean;\n maxAdults?: number;\n\n disableRoom?: boolean;\n defaultValue?: { adults?: number; children?: number; infants?: number; room?: number };\n onChange?: ({ adults, children, room }: { adults: number; children: number; infants: number; room: number }) => void;\n followElement?: HTMLElement | null;\n hideTooltip?: boolean;\n}\n\nexport const BookingWizardGuestSelector: FC<BookingWizardGuestSelectorProps> = ({\n disableChild,\n showInfants,\n maxAdults = 10,\n disableRoom,\n defaultValue,\n followElement,\n hideTooltip,\n onChange,\n}) => {\n const { overlay, type: overlayType, layout, isSmallContainer } = useBookingWizard();\n const { t } = useTranslation();\n\n const ref = useRef(null);\n const targetRef = useRef(null);\n\n const [adults, setAdults] = useState(defaultValue?.adults ?? 1);\n const [children, setChildren] = useState(defaultValue?.children ?? 0);\n const [infants, setInfants] = useState(defaultValue?.infants ?? 0);\n const [room, setRoom] = useState(defaultValue?.room ?? 1);\n const [editingAdults, setEditingAdults] = useState(adults);\n const [editingChildren, setEditingChildren] = useState(children);\n const [editingInfants, setEditingInfants] = useState(infants);\n const [editingRoom, setEditingRoom] = useState(room);\n\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n setEditingAdults(adults);\n }, [adults]);\n\n useEffect(() => {\n setEditingChildren(children);\n }, [children]);\n\n useEffect(() => {\n setEditingInfants(infants);\n }, [infants]);\n\n const onApply = () => {\n setAdults(editingAdults);\n setChildren(editingChildren);\n setInfants(editingInfants);\n setRoom(editingRoom);\n setOpen(false);\n onChange?.({ adults: editingAdults, children: editingChildren, infants: editingInfants, room: editingRoom });\n };\n\n const getValueAsText = () => {\n if (layout === 'horizontal-condensed') {\n return adults + children;\n }\n\n if (layout === 'booking-summary') {\n return StringHelper.pluralWithCount(adults + children + infants, 'Guest', t);\n }\n\n const parts = [StringHelper.pluralWithCount(adults, 'Adult', t)];\n\n if (children > 0) {\n parts.push(StringHelper.pluralWithCount(children, 'Child', t));\n }\n\n if (infants > 0) {\n parts.push(StringHelper.pluralWithCount(infants, 'Infant', t));\n }\n\n return parts.join(' - ');\n };\n\n const inner = (applyButton = true) => {\n return (\n <div className={styles['popper--box']}>\n <div className={styles['popper--content']} ref={ref}>\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingAdults, 'Adult', t)}</Text>\n <NumberIncrement\n number={editingAdults}\n min={1}\n max={maxAdults}\n onChange={applyButton ? setEditingAdults : setAdults}\n textSize={TextType.Small}\n hideTooltips={hideTooltip}\n />\n </div>\n {disableChild ? null : (\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingChildren, 'Child', t)}</Text>\n <NumberIncrement\n number={editingChildren}\n min={0}\n max={10}\n onChange={applyButton ? setEditingChildren : setChildren}\n textSize={TextType.Small}\n hideTooltips={hideTooltip}\n />\n </div>\n )}\n {showInfants ? (\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingInfants, 'Infant', t)}</Text>\n <NumberIncrement\n number={editingInfants}\n min={0}\n max={10}\n onChange={applyButton ? setEditingInfants : setInfants}\n textSize={TextType.Small}\n hideTooltips={hideTooltip}\n />\n </div>\n ) : null}\n {disableRoom ? null : (\n <div className={styles.row}>\n <Text type={TextType.Small}>{StringHelper.plural(editingRoom, 'Room', t)}</Text>\n <NumberIncrement\n number={editingRoom}\n min={1}\n max={10}\n onChange={applyButton ? setEditingRoom : setRoom}\n textSize={TextType.Small}\n hideTooltips={hideTooltip}\n />\n </div>\n )}\n {applyButton ? (\n <div className={styles['popper--action']}>\n <BEButton\n wide={overlayType === 'bottom-sheet'}\n className={classNames(styles.applyBtn, {\n [styles['--booking-summary']]: layout === 'booking-summary',\n })}\n onClick={onApply}\n >\n {t(Translation.Misc.Apply)}\n </BEButton>\n </div>\n ) : null}\n </div>\n </div>\n );\n };\n\n const content = () => {\n if (overlayType === 'inline') {\n return (\n <div className={styles.popper}>\n <AutoAutoHeight open={open}>{inner(false)}</AutoAutoHeight>\n </div>\n );\n }\n\n if (['bottom-sheet', 'top-sheet'].includes(overlayType)) {\n return (\n <BookingWizardBottomSheet\n className={classNames(styles.container, styles['--bottom-sheet'])}\n open={open}\n onDismiss={() => setOpen(false)}\n header={\n <div className={styles.header}>\n <Text>{t(Translation.Misc.HowManyGuests)}</Text> <Icon icon={IconType.Close} onClick={() => setOpen(false)} />\n </div>\n }\n {...('top-sheet' === overlayType && {\n snapPoints: ({ maxHeight }) => [maxHeight],\n })}\n >\n <div className={styles.popper}>{inner()} </div>\n </BookingWizardBottomSheet>\n );\n }\n\n return (\n <Overlay\n offset={overlay?.offset}\n usePortal={false}\n followElement={followElement || targetRef.current}\n placement={overlay?.placement}\n fallbackPlacements={overlay?.fallbackPlacements}\n strategy=\"absolute\"\n open={open}\n onClose={() => setOpen?.(!open)}\n className={styles.popper}\n containerClassName={classNames(styles['custom-overlay'], { [styles['small-container']]: isSmallContainer })}\n hideStyles\n >\n {inner()}\n </Overlay>\n );\n };\n\n return (\n <div\n ref={targetRef}\n className={classNames(styles.container, {\n [styles['--inline']]: overlayType === 'inline',\n [styles['--open']]: open,\n })}\n >\n <div className={classNames(styles['container--search'])} onClick={() => setOpen?.(!open)}>\n <Text\n className={classNames(styles['text-display'], {\n [styles['--line-1']]: layout === 'horizontal-condensed',\n [styles['--line-booking-summary']]: layout === 'booking-summary',\n })}\n bold\n >\n {getValueAsText()}\n </Text>\n\n {['horizontal-condensed', 'booking-summary'].includes(layout) ? null : <Icon icon={IconType.Dropdown} />}\n </div>\n\n {content()}\n </div>\n );\n};\n"]}
@@ -3,6 +3,7 @@ interface BookingWizardPromoCodeProps {
3
3
  promoCode?: string;
4
4
  valid?: boolean;
5
5
  onChange?: (promoCode: string) => void;
6
+ hideTooltip?: boolean;
6
7
  }
7
8
  export declare const BookingWizardPromoCode: FC<BookingWizardPromoCodeProps>;
8
9
  export {};
@@ -57,8 +57,12 @@ const BookingWizardPromoCode = (props) => {
57
57
  return `Promo Code '${code}' applied`;
58
58
  return t(Translation_1.Translation.Step.Date.PromoCode);
59
59
  };
60
- return (react_1.default.createElement(Tooltip_1.default, { title: getTooltipTitle() },
61
- react_1.default.createElement("input", { className: (0, classnames_1.default)(BookingWizardPromoCode_module_scss_1.default.container, { [BookingWizardPromoCode_module_scss_1.default['--error']]: valid === false, [BookingWizardPromoCode_module_scss_1.default['--success']]: valid === true }), type: "text", value: code, placeholder: t(Translation_1.Translation.Step.Date.PromoCode), onChange: (e) => setCode(e.target.value) })));
60
+ console.log(props.hideTooltip);
61
+ const promocodeInput = (react_1.default.createElement("input", { className: (0, classnames_1.default)(BookingWizardPromoCode_module_scss_1.default.container, { [BookingWizardPromoCode_module_scss_1.default['--error']]: valid === false, [BookingWizardPromoCode_module_scss_1.default['--success']]: valid === true }), type: "text", value: code, placeholder: t(Translation_1.Translation.Step.Date.PromoCode), onChange: (e) => setCode(e.target.value) }));
62
+ if (props.hideTooltip) {
63
+ return promocodeInput;
64
+ }
65
+ return react_1.default.createElement(Tooltip_1.default, { title: getTooltipTitle() }, promocodeInput);
62
66
  };
63
67
  exports.BookingWizardPromoCode = BookingWizardPromoCode;
64
68
  //# sourceMappingURL=BookingWizardPromoCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizardPromoCode.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAoC;AACpC,+CAAoE;AACpE,iDAA+C;AAE/C,4DAAyD;AACzD,8CAA2C;AAE3C,oEAA4C;AAC5C,8GAA0D;AAQnD,MAAM,sBAAsB,GAAoC,CAAC,KAAK,EAAE,EAAE;IAC7E,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAqB,EAAE,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,IAAA,mBAAW,EAC9B,IAAA,mBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE;QACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,GAAG,CAAC,EACP,EAAE,CACL,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,cAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,eAAe,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,eAAe,IAAI,gBAAgB,CAAC;QAChE,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,eAAe,IAAI,WAAW,CAAC;QAC1D,OAAO,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAO,CACH,8BAAC,iBAAO,IAAC,KAAK,EAAE,eAAe,EAAE;QAC7B,yCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,4CAAM,CAAC,SAAS,EAAE,EAAE,CAAC,4CAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC,4CAAM,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC,EACxH,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAC/C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC1C,CACI,CACb,CAAC;AACN,CAAC,CAAC;AAvCW,QAAA,sBAAsB,0BAuCjC","sourcesContent":["import classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Translation } from '@/translations/Translation';\nimport { debounce } from '@/util/Debounce';\n\nimport Tooltip from '../../Tooltip/Tooltip';\nimport styles from './BookingWizardPromoCode.module.scss';\n\ninterface BookingWizardPromoCodeProps {\n promoCode?: string;\n valid?: boolean;\n onChange?: (promoCode: string) => void;\n}\n\nexport const BookingWizardPromoCode: FC<BookingWizardPromoCodeProps> = (props) => {\n const { promoCode, valid, onChange } = props;\n const { t } = useTranslation();\n\n const [code, setCode] = useState<string | undefined>('');\n\n const debounceChange = useCallback(\n debounce((value) => {\n onChange?.(value);\n }, 500),\n []\n );\n\n useEffect(() => {\n debounceChange(code);\n }, [code]);\n\n useEffect(() => {\n if (promoCode !== code) setCode(promoCode);\n }, [promoCode]);\n\n const getTooltipTitle = () => {\n if (!promoCode) return t(Translation.Step.Date.PromoCode);\n if (valid === false) return `Promo Code '${code}' is not valid`;\n if (valid === true) return `Promo Code '${code}' applied`;\n return t(Translation.Step.Date.PromoCode);\n };\n\n return (\n <Tooltip title={getTooltipTitle()}>\n <input\n className={classNames(styles.container, { [styles['--error']]: valid === false, [styles['--success']]: valid === true })}\n type=\"text\"\n value={code}\n placeholder={t(Translation.Step.Date.PromoCode)}\n onChange={(e) => setCode(e.target.value)}\n />\n </Tooltip>\n );\n};\n"]}
1
+ {"version":3,"file":"BookingWizardPromoCode.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAoC;AACpC,+CAAoE;AACpE,iDAA+C;AAE/C,4DAAyD;AACzD,8CAA2C;AAE3C,oEAA4C;AAC5C,8GAA0D;AAUnD,MAAM,sBAAsB,GAAoC,CAAC,KAAK,EAAE,EAAE;IAC7E,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7C,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAqB,EAAE,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,IAAA,mBAAW,EAC9B,IAAA,mBAAQ,EAAC,CAAC,KAAK,EAAE,EAAE;QACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,GAAG,CAAC,EACP,EAAE,CACL,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,cAAc,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,eAAe,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,eAAe,IAAI,gBAAgB,CAAC;QAChE,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,eAAe,IAAI,WAAW,CAAC;QAC1D,OAAO,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAE/B,MAAM,cAAc,GAAG,CACnB,yCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,4CAAM,CAAC,SAAS,EAAE,EAAE,CAAC,4CAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC,4CAAM,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC,EACxH,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAC/C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC1C,CACL,CAAC;IAEF,IAAI,KAAK,CAAC,WAAW,EAAE;QACnB,OAAO,cAAc,CAAC;KACzB;IAED,OAAO,8BAAC,iBAAO,IAAC,KAAK,EAAE,eAAe,EAAE,IAAG,cAAc,CAAW,CAAC;AACzE,CAAC,CAAC;AA7CW,QAAA,sBAAsB,0BA6CjC","sourcesContent":["import classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Translation } from '@/translations/Translation';\nimport { debounce } from '@/util/Debounce';\n\nimport Tooltip from '../../Tooltip/Tooltip';\nimport styles from './BookingWizardPromoCode.module.scss';\n\ninterface BookingWizardPromoCodeProps {\n promoCode?: string;\n valid?: boolean;\n onChange?: (promoCode: string) => void;\n\n hideTooltip?: boolean;\n}\n\nexport const BookingWizardPromoCode: FC<BookingWizardPromoCodeProps> = (props) => {\n const { promoCode, valid, onChange } = props;\n const { t } = useTranslation();\n\n const [code, setCode] = useState<string | undefined>('');\n\n const debounceChange = useCallback(\n debounce((value) => {\n onChange?.(value);\n }, 500),\n []\n );\n\n useEffect(() => {\n debounceChange(code);\n }, [code]);\n\n useEffect(() => {\n if (promoCode !== code) setCode(promoCode);\n }, [promoCode]);\n\n const getTooltipTitle = () => {\n if (!promoCode) return t(Translation.Step.Date.PromoCode);\n if (valid === false) return `Promo Code '${code}' is not valid`;\n if (valid === true) return `Promo Code '${code}' applied`;\n return t(Translation.Step.Date.PromoCode);\n };\n\n console.log(props.hideTooltip);\n\n const promocodeInput = (\n <input\n className={classNames(styles.container, { [styles['--error']]: valid === false, [styles['--success']]: valid === true })}\n type=\"text\"\n value={code}\n placeholder={t(Translation.Step.Date.PromoCode)}\n onChange={(e) => setCode(e.target.value)}\n />\n );\n\n if (props.hideTooltip) {\n return promocodeInput;\n }\n\n return <Tooltip title={getTooltipTitle()}>{promocodeInput}</Tooltip>;\n};\n"]}
@@ -69,7 +69,9 @@ export declare enum IconType {
69
69
  ArrowLeft3 = "Arrow-3-Left",
70
70
  ArrowUp3 = "Arrow-3-Up",
71
71
  ArrowRight3 = "Arrow-3-Right",
72
- ArrowDown3 = "Arrow-3-Down"
72
+ ArrowDown3 = "Arrow-3-Down",
73
+ ProgressHelp = "Progress-Help",
74
+ Subtitle = "Subtitle"
73
75
  }
74
76
  export interface IconProps {
75
77
  icon: IconType;
@@ -80,6 +80,8 @@ var IconType;
80
80
  IconType["ArrowUp3"] = "Arrow-3-Up";
81
81
  IconType["ArrowRight3"] = "Arrow-3-Right";
82
82
  IconType["ArrowDown3"] = "Arrow-3-Down";
83
+ IconType["ProgressHelp"] = "Progress-Help";
84
+ IconType["Subtitle"] = "Subtitle";
83
85
  })(IconType = exports.IconType || (exports.IconType = {}));
84
86
  function IconDropdown() {
85
87
  return react_1.default.createElement(Icon, { icon: IconType.ArrowDown2, size: "1em", color: Color_1.Color.DarkGrey });
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"/","sources":["src/components/generic/Icon/Icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames';\nimport React from 'react';\n\nimport { Color } from '@/util/Color';\n\nimport styles from './Icon.module.scss';\n\nexport enum IconType {\n Email = 'Email',\n Degrees = 'Degrees',\n Hotel = 'Hotel',\n Hotel2 = 'Hotel-2',\n Map = 'Map',\n Info = 'Info',\n Deal = 'Deal',\n Money = 'Money',\n Lock = 'Lock',\n Check = 'Check',\n CheckCircled = 'Check-Circled',\n Bed = 'Bed',\n ApplePay = 'Apple-Pay',\n PayPal = 'PayPal',\n Person = 'Person',\n ChildFriendly = 'Child-Friendly',\n Fridge = 'Fridge',\n Smoking = 'Smoking',\n Gym = 'Gym',\n Bar = 'Bar',\n Laundry = 'Laundry',\n Breakfast = 'Breakfast',\n Snacks = 'Snacks',\n Phone = 'Phone',\n ViewMonth = 'View-Month',\n Ovolo = 'Ovolo',\n ViewWeek = 'View-Week',\n AirCon = 'Air-Con',\n WiFi = 'Wifi',\n Time = 'Time',\n People = 'People',\n Calendar = 'Calendar',\n CreditCard = 'Credit-Card',\n Spinner = 'Spinner',\n Fullscreen = 'Fullscreen',\n Star = 'Star',\n ArrowRight = 'Arrow-Right',\n ArrowLeft = 'Arrow-Left',\n ArrowUp = 'Arrow-Up',\n ArrowDown = 'Arrow-Down',\n ArrowLeft2 = 'Arrow-2-Left',\n ArrowUp2 = 'Arrow-2-Up',\n ArrowRight2 = 'Arrow-2-Right',\n ArrowDown2 = 'Arrow-2-Down',\n Close = 'Close',\n Remove = 'Remove',\n Add = 'Add',\n Dropdown = 'Dropdown',\n Train = 'Train',\n Taxi = 'Taxi',\n Share = 'Share',\n Print = 'Print',\n LogOut = 'Log-Out',\n Error = 'Error',\n Edit = 'Edit',\n Bus = 'Bus',\n Airplane = 'Airplane',\n Menu = 'Menu',\n LootBag = 'loot-bag',\n LateCheckout = 'Late-Checkout',\n RoomSize = 'Room-Size',\n RoomUpgrade = 'Room-Upgrade',\n Champagne = 'Champagne',\n Eye = 'Eye',\n EyeBlocked = 'EyeBlocked',\n Delete = 'Delete',\n ArrowLeft3 = 'Arrow-3-Left',\n ArrowUp3 = 'Arrow-3-Up',\n ArrowRight3 = 'Arrow-3-Right',\n ArrowDown3 = 'Arrow-3-Down',\n}\n\nexport interface IconProps {\n icon: IconType;\n size?: string;\n name?: string;\n\n color?: Color;\n useColorAsBackground?: boolean;\n backgroundColor?: Color;\n\n noPadding?: boolean;\n\n onClick?: () => void;\n borderRadius?: 'oval' | 'round';\n className?: string;\n}\n\nexport function IconDropdown() {\n return <Icon icon={IconType.ArrowDown2} size=\"1em\" color={Color.DarkGrey} />;\n}\n\nexport function IconDropdownFilled() {\n return <Icon icon={IconType.Dropdown} size=\"1em\" color={Color.DarkGrey} />;\n}\n\nexport default function Icon(props: IconProps) {\n const defaultProps: IconProps = {\n size: '18px',\n ...props,\n };\n\n const name = props.name || defaultProps.icon;\n\n // TODO: remove the diji-icon class from all external uses.\n const classes = classNames(styles['diji-icon'], props.className, (styles as any)[`diji-icon${defaultProps.icon}`], 'diji-icon', {\n [styles['--has-bg']]: !!defaultProps.backgroundColor,\n [styles['--has-custom-bg']]: defaultProps.useColorAsBackground,\n [styles['--clickable']]: defaultProps.onClick,\n 'u-pad-none': props.noPadding,\n [(styles as any)[`--border-${defaultProps.borderRadius}`]]: defaultProps.borderRadius,\n });\n\n const extraProps: any = {};\n\n if (defaultProps.onClick) {\n extraProps.onClick = defaultProps.onClick;\n }\n\n const style: any = {\n fontSize: defaultProps.size,\n };\n\n if (defaultProps.color) {\n style.color = defaultProps.color;\n }\n\n if (defaultProps.backgroundColor && !defaultProps.useColorAsBackground) {\n style.backgroundColor = defaultProps.backgroundColor;\n }\n\n if (defaultProps.useColorAsBackground) {\n style['--custom-bg-color'] = defaultProps.color;\n }\n\n return <i className={classes} style={style} {...extraProps} name={name} />;\n}\n"]}
1
+ {"version":3,"file":"Icon.js","sourceRoot":"/","sources":["src/components/generic/Icon/Icon.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames';\nimport React from 'react';\n\nimport { Color } from '@/util/Color';\n\nimport styles from './Icon.module.scss';\n\nexport enum IconType {\n Email = 'Email',\n Degrees = 'Degrees',\n Hotel = 'Hotel',\n Hotel2 = 'Hotel-2',\n Map = 'Map',\n Info = 'Info',\n Deal = 'Deal',\n Money = 'Money',\n Lock = 'Lock',\n Check = 'Check',\n CheckCircled = 'Check-Circled',\n Bed = 'Bed',\n ApplePay = 'Apple-Pay',\n PayPal = 'PayPal',\n Person = 'Person',\n ChildFriendly = 'Child-Friendly',\n Fridge = 'Fridge',\n Smoking = 'Smoking',\n Gym = 'Gym',\n Bar = 'Bar',\n Laundry = 'Laundry',\n Breakfast = 'Breakfast',\n Snacks = 'Snacks',\n Phone = 'Phone',\n ViewMonth = 'View-Month',\n Ovolo = 'Ovolo',\n ViewWeek = 'View-Week',\n AirCon = 'Air-Con',\n WiFi = 'Wifi',\n Time = 'Time',\n People = 'People',\n Calendar = 'Calendar',\n CreditCard = 'Credit-Card',\n Spinner = 'Spinner',\n Fullscreen = 'Fullscreen',\n Star = 'Star',\n ArrowRight = 'Arrow-Right',\n ArrowLeft = 'Arrow-Left',\n ArrowUp = 'Arrow-Up',\n ArrowDown = 'Arrow-Down',\n ArrowLeft2 = 'Arrow-2-Left',\n ArrowUp2 = 'Arrow-2-Up',\n ArrowRight2 = 'Arrow-2-Right',\n ArrowDown2 = 'Arrow-2-Down',\n Close = 'Close',\n Remove = 'Remove',\n Add = 'Add',\n Dropdown = 'Dropdown',\n Train = 'Train',\n Taxi = 'Taxi',\n Share = 'Share',\n Print = 'Print',\n LogOut = 'Log-Out',\n Error = 'Error',\n Edit = 'Edit',\n Bus = 'Bus',\n Airplane = 'Airplane',\n Menu = 'Menu',\n LootBag = 'loot-bag',\n LateCheckout = 'Late-Checkout',\n RoomSize = 'Room-Size',\n RoomUpgrade = 'Room-Upgrade',\n Champagne = 'Champagne',\n Eye = 'Eye',\n EyeBlocked = 'EyeBlocked',\n Delete = 'Delete',\n ArrowLeft3 = 'Arrow-3-Left',\n ArrowUp3 = 'Arrow-3-Up',\n ArrowRight3 = 'Arrow-3-Right',\n ArrowDown3 = 'Arrow-3-Down',\n ProgressHelp = 'Progress-Help',\n Subtitle = 'Subtitle',\n}\n\nexport interface IconProps {\n icon: IconType;\n size?: string;\n name?: string;\n\n color?: Color;\n useColorAsBackground?: boolean;\n backgroundColor?: Color;\n\n noPadding?: boolean;\n\n onClick?: () => void;\n borderRadius?: 'oval' | 'round';\n className?: string;\n}\n\nexport function IconDropdown() {\n return <Icon icon={IconType.ArrowDown2} size=\"1em\" color={Color.DarkGrey} />;\n}\n\nexport function IconDropdownFilled() {\n return <Icon icon={IconType.Dropdown} size=\"1em\" color={Color.DarkGrey} />;\n}\n\nexport default function Icon(props: IconProps) {\n const defaultProps: IconProps = {\n size: '18px',\n ...props,\n };\n\n const name = props.name || defaultProps.icon;\n\n // TODO: remove the diji-icon class from all external uses.\n const classes = classNames(styles['diji-icon'], props.className, (styles as any)[`diji-icon${defaultProps.icon}`], 'diji-icon', {\n [styles['--has-bg']]: !!defaultProps.backgroundColor,\n [styles['--has-custom-bg']]: defaultProps.useColorAsBackground,\n [styles['--clickable']]: defaultProps.onClick,\n 'u-pad-none': props.noPadding,\n [(styles as any)[`--border-${defaultProps.borderRadius}`]]: defaultProps.borderRadius,\n });\n\n const extraProps: any = {};\n\n if (defaultProps.onClick) {\n extraProps.onClick = defaultProps.onClick;\n }\n\n const style: any = {\n fontSize: defaultProps.size,\n };\n\n if (defaultProps.color) {\n style.color = defaultProps.color;\n }\n\n if (defaultProps.backgroundColor && !defaultProps.useColorAsBackground) {\n style.backgroundColor = defaultProps.backgroundColor;\n }\n\n if (defaultProps.useColorAsBackground) {\n style['--custom-bg-color'] = defaultProps.color;\n }\n\n return <i className={classes} style={style} {...extraProps} name={name} />;\n}\n"]}
@@ -5,5 +5,6 @@ export interface NumberIncrementProps {
5
5
  min?: number;
6
6
  max?: number;
7
7
  textSize?: TextType;
8
+ hideTooltips?: boolean;
8
9
  }
9
10
  export default function NumberIncrement(props: NumberIncrementProps): JSX.Element;
@@ -31,7 +31,7 @@ const Icon_1 = __importStar(require("./Icon/Icon"));
31
31
  const Text_1 = __importStar(require("./Text"));
32
32
  const Tooltip_1 = __importDefault(require("./Tooltip/Tooltip"));
33
33
  function NumberIncrement(props) {
34
- const { textSize = Text_1.TextType.Body } = props;
34
+ const { textSize = Text_1.TextType.Body, hideTooltips } = props;
35
35
  const currentNumber = props.number ? props.number : 0;
36
36
  const setNumber = (newNumber) => {
37
37
  if (props.onChange) {
@@ -58,15 +58,15 @@ function NumberIncrement(props) {
58
58
  const incrementCurrentNumber = () => {
59
59
  updateCurrentNumber(true);
60
60
  };
61
+ const decreaseButton = (react_1.default.createElement("div", { className: 'number-increment--button' + (currentNumber <= (props.min || 0) ? ' disabled' : ''), onClick: decrementCurrentNumber },
62
+ react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Remove, size: "24px" })));
63
+ const increaseButton = (react_1.default.createElement("div", { className: 'number-increment--button' + (currentNumber >= (props.max || 0) ? ' disabled' : ''), onClick: incrementCurrentNumber },
64
+ react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Add, size: "24px" })));
61
65
  return (react_1.default.createElement("div", { className: "number-increment" },
62
- react_1.default.createElement(Tooltip_1.default, { title: currentNumber <= (props.min || 0) ? 'Minimum reached' : 'Decrease' },
63
- react_1.default.createElement("div", { className: 'number-increment--button' + (currentNumber <= (props.min || 0) ? ' disabled' : ''), onClick: decrementCurrentNumber },
64
- react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Remove, size: "24px" }))),
66
+ hideTooltips ? decreaseButton : react_1.default.createElement(Tooltip_1.default, { title: currentNumber <= (props.min || 0) ? 'Minimum reached' : 'Remove' }, decreaseButton),
65
67
  react_1.default.createElement("div", { className: "number-increment--value" },
66
68
  react_1.default.createElement(Text_1.default, { type: textSize }, currentNumber)),
67
- react_1.default.createElement(Tooltip_1.default, { title: currentNumber >= (props.max || 0) ? 'Maximum reached' : 'Add' },
68
- react_1.default.createElement("div", { className: 'number-increment--button' + (currentNumber >= (props.max || 0) ? ' disabled' : ''), onClick: incrementCurrentNumber },
69
- react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Add, size: "24px" })))));
69
+ hideTooltips ? increaseButton : react_1.default.createElement(Tooltip_1.default, { title: currentNumber >= (props.max || 0) ? 'Maximum reached' : 'Add' }, increaseButton)));
70
70
  }
71
71
  exports.default = NumberIncrement;
72
72
  //# sourceMappingURL=NumberIncrement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberIncrement.js","sourceRoot":"/","sources":["src/components/generic/NumberIncrement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAE1B,uEAAgE;AAChE,kEAA2D;AAC3D,mFAA2D;AAU3D,SAAwB,eAAe,CAAC,KAA2B;IAC/D,MAAM,EAAE,QAAQ,GAAG,eAAQ,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC;IAE3C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,CAAC,SAAiB,EAAE,EAAE;QACpC,IAAI,KAAK,CAAC,QAAQ,EAAE;YAChB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC7B;IACL,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,SAAkB,EAAE,EAAE;QAC/C,IAAI,SAAS,GAAG,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,IAAI,SAAS,EAAE;YACX,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE;gBACzD,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC;aACzB;SACJ;aAAM;YACH,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE;gBACzD,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC;aACzB;SACJ;QAED,SAAS,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAChC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAChC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,OAAO,CACH,uCAAK,SAAS,EAAC,kBAAkB;QAC7B,8BAAC,iBAAO,IAAC,KAAK,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU;YAC9E,uCAAK,SAAS,EAAE,0BAA0B,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB;gBAChI,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,MAAM,EAAE,IAAI,EAAC,MAAM,GAAG,CACzC,CACA;QACV,uCAAK,SAAS,EAAC,yBAAyB;YACpC,8BAAC,cAAI,IAAC,IAAI,EAAE,QAAQ,IAAG,aAAa,CAAQ,CAC1C;QACN,8BAAC,iBAAO,IAAC,KAAK,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK;YACzE,uCAAK,SAAS,EAAE,0BAA0B,GAAG,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB;gBAChI,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,IAAI,EAAC,MAAM,GAAG,CACtC,CACA,CACR,CACT,CAAC;AACN,CAAC;AAjDD,kCAiDC","sourcesContent":["import React from 'react';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\n\nexport interface NumberIncrementProps {\n number?: number;\n onChange?: (value: number) => void;\n min?: number;\n max?: number;\n textSize?: TextType;\n}\n\nexport default function NumberIncrement(props: NumberIncrementProps) {\n const { textSize = TextType.Body } = props;\n\n const currentNumber = props.number ? props.number : 0;\n\n const setNumber = (newNumber: number) => {\n if (props.onChange) {\n props.onChange(newNumber);\n }\n };\n\n const updateCurrentNumber = (increment: boolean) => {\n let newNumber = currentNumber + (increment ? 1 : -1);\n\n if (increment) {\n if (typeof props.max === 'number' && newNumber >= props.max) {\n newNumber = props.max;\n }\n } else {\n if (typeof props.min === 'number' && newNumber <= props.min) {\n newNumber = props.min;\n }\n }\n\n setNumber(newNumber);\n };\n const decrementCurrentNumber = () => {\n updateCurrentNumber(false);\n };\n const incrementCurrentNumber = () => {\n updateCurrentNumber(true);\n };\n return (\n <div className=\"number-increment\">\n <Tooltip title={currentNumber <= (props.min || 0) ? 'Minimum reached' : 'Decrease'}>\n <div className={'number-increment--button' + (currentNumber <= (props.min || 0) ? ' disabled' : '')} onClick={decrementCurrentNumber}>\n <Icon icon={IconType.Remove} size=\"24px\" />\n </div>\n </Tooltip>\n <div className=\"number-increment--value\">\n <Text type={textSize}>{currentNumber}</Text>\n </div>\n <Tooltip title={currentNumber >= (props.max || 0) ? 'Maximum reached' : 'Add'}>\n <div className={'number-increment--button' + (currentNumber >= (props.max || 0) ? ' disabled' : '')} onClick={incrementCurrentNumber}>\n <Icon icon={IconType.Add} size=\"24px\" />\n </div>\n </Tooltip>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"NumberIncrement.js","sourceRoot":"/","sources":["src/components/generic/NumberIncrement.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\n\nexport interface NumberIncrementProps {\n number?: number;\n onChange?: (value: number) => void;\n min?: number;\n max?: number;\n textSize?: TextType;\n\n hideTooltips?: boolean;\n}\n\nexport default function NumberIncrement(props: NumberIncrementProps) {\n const { textSize = TextType.Body, hideTooltips } = props;\n\n const currentNumber = props.number ? props.number : 0;\n\n const setNumber = (newNumber: number) => {\n if (props.onChange) {\n props.onChange(newNumber);\n }\n };\n\n const updateCurrentNumber = (increment: boolean) => {\n let newNumber = currentNumber + (increment ? 1 : -1);\n\n if (increment) {\n if (typeof props.max === 'number' && newNumber >= props.max) {\n newNumber = props.max;\n }\n } else {\n if (typeof props.min === 'number' && newNumber <= props.min) {\n newNumber = props.min;\n }\n }\n\n setNumber(newNumber);\n };\n const decrementCurrentNumber = () => {\n updateCurrentNumber(false);\n };\n const incrementCurrentNumber = () => {\n updateCurrentNumber(true);\n };\n\n const decreaseButton = (\n <div className={'number-increment--button' + (currentNumber <= (props.min || 0) ? ' disabled' : '')} onClick={decrementCurrentNumber}>\n <Icon icon={IconType.Remove} size=\"24px\" />\n </div>\n );\n\n const increaseButton = (\n <div className={'number-increment--button' + (currentNumber >= (props.max || 0) ? ' disabled' : '')} onClick={incrementCurrentNumber}>\n <Icon icon={IconType.Add} size=\"24px\" />\n </div>\n );\n\n return (\n <div className=\"number-increment\">\n {hideTooltips ? decreaseButton : <Tooltip title={currentNumber <= (props.min || 0) ? 'Minimum reached' : 'Remove'}>{decreaseButton}</Tooltip>}\n <div className=\"number-increment--value\">\n <Text type={textSize}>{currentNumber}</Text>\n </div>\n {hideTooltips ? increaseButton : <Tooltip title={currentNumber >= (props.max || 0) ? 'Maximum reached' : 'Add'}>{increaseButton}</Tooltip>}\n </div>\n );\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { IPageTitle } from '../../../models/Api/HotelOverrideDTO';
2
+ export declare const PageTitle: ({ step }: {
3
+ step: keyof IPageTitle;
4
+ }) => JSX.Element | null;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PageTitle = void 0;
7
+ const contexts_1 = require("../../../contexts/index.js");
8
+ const react_1 = __importDefault(require("react"));
9
+ const react_helmet_1 = require("react-helmet");
10
+ const PageTitle = ({ step }) => {
11
+ const { pageTitle } = react_1.default.useContext(contexts_1.HotelOverridesContext);
12
+ if (pageTitle === null || pageTitle === void 0 ? void 0 : pageTitle.enable) {
13
+ return (react_1.default.createElement(react_helmet_1.Helmet, null,
14
+ react_1.default.createElement("meta", { charSet: "utf-8" }),
15
+ react_1.default.createElement("title", null, pageTitle === null || pageTitle === void 0 ? void 0 : pageTitle[step])));
16
+ }
17
+ return null;
18
+ };
19
+ exports.PageTitle = PageTitle;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/components/generic/PageTitle/index.tsx"],"names":[],"mappings":";;;;;;AAAA,iDAA2D;AAC3D,kDAA0B;AAC1B,+CAAsC;AAI/B,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,EAA8B,EAAE,EAAE;IAC9D,MAAM,EAAE,SAAS,EAAE,GAAG,eAAK,CAAC,UAAU,CAAC,gCAAqB,CAAC,CAAC;IAE9D,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,EAAE;QACnB,OAAO,CACH,8BAAC,qBAAM;YACH,wCAAM,OAAO,EAAC,OAAO,GAAG;YACxB,6CAAQ,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,IAAI,CAAC,CAAS,CAC7B,CACZ,CAAC;KACL;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAZW,QAAA,SAAS,aAYpB","sourcesContent":["import { HotelOverridesContext } from '@frontend/contexts';\nimport React from 'react';\nimport { Helmet } from 'react-helmet';\n\nimport { IPageTitle } from '@/models/Api/HotelOverrideDTO';\n\nexport const PageTitle = ({ step }: { step: keyof IPageTitle }) => {\n const { pageTitle } = React.useContext(HotelOverridesContext);\n\n if (pageTitle?.enable) {\n return (\n <Helmet>\n <meta charSet=\"utf-8\" />\n <title>{pageTitle?.[step]}</title>\n </Helmet>\n );\n }\n return null;\n};\n"]}