@roomstay/frontend 2.6.97-1 → 2.6.97

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 (116) hide show
  1. package/dist/177.bundle.js +1 -1
  2. package/dist/288.bundle.js +1 -1
  3. package/dist/328.bundle.js +1 -1
  4. package/dist/370.bundle.js +1 -1
  5. package/dist/434.bundle.js +1 -0
  6. package/dist/449.bundle.js +1 -1
  7. package/dist/537.bundle.js +1 -1
  8. package/dist/978.bundle.js +1 -1
  9. package/dist/main.bundle.js +1 -1
  10. package/dist/src/api/AvailabilityAPI.d.ts +5 -5
  11. package/dist/src/api/AvailabilityAPI.js +12 -12
  12. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  13. package/dist/src/api/BaseAPI.d.ts +1 -2
  14. package/dist/src/api/BaseAPI.js.map +1 -1
  15. package/dist/src/api/HotelAPI.d.ts +1 -1
  16. package/dist/src/api/HotelAPI.js +18 -11
  17. package/dist/src/api/HotelAPI.js.map +1 -1
  18. package/dist/src/api/ReservationAPI.d.ts +2 -2
  19. package/dist/src/api/ReservationAPI.js +13 -3
  20. package/dist/src/api/ReservationAPI.js.map +1 -1
  21. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js +6 -1
  22. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js.map +1 -1
  23. package/dist/src/components/generic/TaxInclusionNotice/TaxInclusionNotice.d.ts +10 -0
  24. package/dist/src/components/generic/TaxInclusionNotice/TaxInclusionNotice.js +57 -0
  25. package/dist/src/components/generic/TaxInclusionNotice/TaxInclusionNotice.js.map +1 -0
  26. package/dist/src/components/generic/date/DatePicker.d.ts +5 -0
  27. package/dist/src/components/generic/date/DatePicker.js +10 -6
  28. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  29. package/dist/src/components/generic/date/DatePickerDay.js +2 -1
  30. package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
  31. package/dist/src/components/steps/addons/AddonCard.js +46 -7
  32. package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
  33. package/dist/src/components/steps/confirmation/GiftCardRedemption.d.ts +2 -0
  34. package/dist/src/components/steps/confirmation/GiftCardRedemption.js +46 -0
  35. package/dist/src/components/steps/confirmation/GiftCardRedemption.js.map +1 -0
  36. package/dist/src/components/steps/confirmation/StepConfirmationForm.js +29 -11
  37. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  38. package/dist/src/components/steps/date/StepDatePricePerRoom.js +3 -1
  39. package/dist/src/components/steps/date/StepDatePricePerRoom.js.map +1 -1
  40. package/dist/src/components/steps/hotel/HotelCard.js +3 -1
  41. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  42. package/dist/src/components/steps/hotel/HotelCardModal.js +3 -1
  43. package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
  44. package/dist/src/components/steps/room/AvailableUpgradesModal.js +2 -1
  45. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  46. package/dist/src/components/steps/room/LargeRoomCard.js +2 -6
  47. package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
  48. package/dist/src/components/steps/room/RoomList.js +27 -6
  49. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  50. package/dist/src/components/steps/room/RoomListCrossSellBlock.js +1 -1
  51. package/dist/src/components/steps/room/RoomListCrossSellBlock.js.map +1 -1
  52. package/dist/src/components/steps/room/RoomModal.js +2 -3
  53. package/dist/src/components/steps/room/RoomModal.js.map +1 -1
  54. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js +4 -1
  55. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js.map +1 -1
  56. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +2 -6
  57. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  58. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +2 -6
  59. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
  60. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +2 -1
  61. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  62. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js +2 -6
  63. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js.map +1 -1
  64. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +27 -5
  65. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
  66. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +12 -7
  67. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
  68. package/dist/src/components/summary/BEMobileSummaryModal.js +2 -1
  69. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  70. package/dist/src/components/summary/BESummary.js +3 -2
  71. package/dist/src/components/summary/BESummary.js.map +1 -1
  72. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +37 -22
  73. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  74. package/dist/src/contexts/DatePickerContext.d.ts +1 -0
  75. package/dist/src/contexts/DatePickerContext.js.map +1 -1
  76. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.d.ts +8 -0
  77. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextTypes.js.map +1 -1
  78. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +3 -1
  79. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  80. package/dist/src/contexts/HotelOverridesContext.d.ts +1 -0
  81. package/dist/src/contexts/HotelOverridesContext.js +19 -0
  82. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  83. package/dist/src/hooks/useCalendarNightStay.d.ts +2 -2
  84. package/dist/src/hooks/useCalendarNightStay.js +4 -4
  85. package/dist/src/hooks/useCalendarNightStay.js.map +1 -1
  86. package/dist/src/index.d.ts +1 -0
  87. package/dist/src/index.js +4 -2
  88. package/dist/src/index.js.map +1 -1
  89. package/dist/src/models/Addon/Addon.d.ts +1 -0
  90. package/dist/src/models/Addon/Addon.js.map +1 -1
  91. package/dist/src/models/Confirmation.d.ts +4 -0
  92. package/dist/src/models/Confirmation.js.map +1 -1
  93. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +26 -3
  94. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  95. package/dist/src/pages/findReservation/FindReservationResults.js +2 -1
  96. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  97. package/dist/src/pages/findReservation/ReservationRow.js +11 -6
  98. package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
  99. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js +8 -1
  100. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js.map +1 -1
  101. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +8 -0
  102. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
  103. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +2 -1
  104. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  105. package/dist/src/translations/Translation.d.ts +0 -4
  106. package/dist/src/translations/Translation.js +0 -4
  107. package/dist/src/translations/Translation.js.map +1 -1
  108. package/dist/src/translations/languages/en-gb.js +0 -4
  109. package/dist/src/translations/languages/en-gb.js.map +1 -1
  110. package/dist/src/util/Analytics/GoogleAnalytics4.d.ts +2 -2
  111. package/dist/src/util/Analytics/GoogleAnalytics4.js +2 -2
  112. package/dist/src/util/Analytics/GoogleAnalytics4.js.map +1 -1
  113. package/dist/test.bundle.js +1 -1
  114. package/dist/vendors.bundle.js +1 -1
  115. package/package.json +3 -3
  116. package/dist/870.bundle.js +0 -1
@@ -50,6 +50,7 @@ const contexts_1 = require("./index.js");
50
50
  const hooks_1 = require("../hooks/index.js");
51
51
  const i18next_1 = __importDefault(require("i18next"));
52
52
  const react_1 = __importStar(require("react"));
53
+ const react_i18next_1 = require("react-i18next");
53
54
  const Translation_1 = require("translations/Translation");
54
55
  const BookingAPI_1 = __importDefault(require("../api/BookingAPI"));
55
56
  const DistanceUnitType_types_1 = require("../models/Client/Hotel/DistanceUnitType.types");
@@ -58,6 +59,7 @@ exports.HotelOverridesContext = (0, react_1.createContext)({});
58
59
  const useHotelOverrides = () => {
59
60
  const companyContext = (0, react_1.useContext)(contexts_1.CompanyContext);
60
61
  const { hotel } = (0, hooks_1.useCurrentHotel)();
62
+ const { t } = (0, react_i18next_1.useTranslation)();
61
63
  const [loading, loadingSet] = (0, react_1.useState)(false);
62
64
  const [overrides, overridesSet] = (0, react_1.useState)({});
63
65
  const fetchApiData = (0, react_1.useCallback)(() => __awaiter(void 0, void 0, void 0, function* () {
@@ -130,6 +132,21 @@ const useHotelOverrides = () => {
130
132
  }
131
133
  return undefined;
132
134
  }, [overrides === null || overrides === void 0 ? void 0 : overrides.messages]);
135
+ const getPricesIncludeFeesMessage = (hotelId) => __awaiter(void 0, void 0, void 0, function* () {
136
+ var _a;
137
+ if (hotelId === (hotel === null || hotel === void 0 ? void 0 : hotel.hotelID)) {
138
+ const translated = t(Translation_1.Translation.Step.Room.RoomInfo.IncludesTaxes);
139
+ return translated;
140
+ }
141
+ try {
142
+ const overrideData = yield BookingAPI_1.default.Hotel.fetchOverrides(hotelId);
143
+ const msg = ((_a = overrideData === null || overrideData === void 0 ? void 0 : overrideData.messages) === null || _a === void 0 ? void 0 : _a.pricesIncludeFeesMessage) || DefaultPricesIncludeFeesMessage;
144
+ return msg;
145
+ }
146
+ catch (_b) {
147
+ return DefaultPricesIncludeFeesMessage;
148
+ }
149
+ });
133
150
  (0, react_1.useEffect)(() => {
134
151
  fetchApiData();
135
152
  }, [fetchApiData]);
@@ -149,6 +166,7 @@ const useHotelOverrides = () => {
149
166
  alwaysShowDecimals,
150
167
  messages,
151
168
  roomModalDescSideBySide,
169
+ getPricesIncludeFeesMessage,
152
170
  disableGroupRoomsAllTab,
153
171
  orderUnavailableRoomsLast,
154
172
  };
@@ -158,4 +176,5 @@ const HotelOverridesContextWrapper = ({ children }) => {
158
176
  return react_1.default.createElement(exports.HotelOverridesContext.Provider, { value: hotelOverrides }, children);
159
177
  };
160
178
  exports.HotelOverridesContextWrapper = HotelOverridesContextWrapper;
179
+ const DefaultPricesIncludeFeesMessage = 'Including taxes & fees.';
161
180
  //# sourceMappingURL=HotelOverridesContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport i18n from 'i18next';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { HotelOverrideDTO } from '@/models/Api/HotelOverrideDTO';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { Language } from '@/providers/LanguageProvider';\n\ninterface IHotelOverridesContext extends Omit<HotelOverrideDTO, 'overrideDistanceUnitType'> {\n loading: boolean;\n}\n\nexport const HotelOverridesContext = createContext<IHotelOverridesContext>({} as IHotelOverridesContext);\n\nconst useHotelOverrides = (): IHotelOverridesContext => {\n const companyContext = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n\n const [loading, loadingSet] = useState<boolean>(false);\n const [overrides, overridesSet] = useState<HotelOverrideDTO>({});\n\n const fetchApiData = useCallback(async () => {\n if (companyContext.selectedHotelID) {\n loadingSet(true);\n try {\n const apiData = await API.Hotel.fetchOverrides(companyContext.selectedHotelID);\n\n loadingSet(false);\n overridesSet(apiData);\n } catch (error) {\n console.error('Failed to fetch hotel overrides', error);\n }\n }\n }, [companyContext.selectedHotelID]);\n\n const hideByLine: boolean = useMemo(() => {\n return !!overrides?.hideByLine || !!hotel?.hideByLine;\n }, [overrides?.hideByLine]);\n\n const distanceUnitType: DistanceUnitType = useMemo(() => {\n // Metric by default\n return (overrides.overrideDistanceUnitType && overrides?.distanceUnitType) || hotel?.distanceUnitType || DistanceUnitType.Metric;\n }, [overrides?.distanceUnitType, hotel?.distanceUnitType, hotel?.hasLoadedDetails]);\n\n const transportDistances = useMemo(() => {\n return overrides?.transportDistances ?? hotel?.transportDistances;\n }, [overrides?.transportDistances]);\n\n const phoneNumberInSummary = useMemo(() => {\n return overrides?.phoneNumberInSummary;\n }, [overrides?.phoneNumberInSummary]);\n\n const enabledEventIds = useMemo(() => {\n return overrides?.enabledEventIds;\n }, [overrides?.enabledEventIds]);\n\n const { showYearOnCalendar, yearDisplayOption } = useMemo(() => {\n return {\n showYearOnCalendar: !!overrides?.showYearOnCalendar,\n yearDisplayOption: !!overrides?.showYearOnCalendar ? overrides?.yearDisplayOption : '',\n };\n }, [overrides?.showYearOnCalendar, overrides?.yearDisplayOption]);\n\n const { showPromoCodeAlert, promoCodeAlertType } = useMemo(() => {\n return {\n showPromoCodeAlert: !!overrides?.showPromoCodeAlert,\n promoCodeAlertType: !!overrides?.showPromoCodeAlert ? overrides?.promoCodeAlertType : undefined,\n };\n }, [overrides?.showPromoCodeAlert, overrides?.promoCodeAlertType]);\n\n const pageTitle = useMemo(() => {\n return overrides?.pageTitle;\n }, [overrides?.pageTitle]);\n\n const showPromoCodeDescription: boolean = useMemo(() => {\n return !!overrides?.showPromoCodeDescription;\n }, [overrides?.showPromoCodeDescription]);\n\n const alwaysShowDecimals: boolean = useMemo(() => {\n return !!overrides?.alwaysShowDecimals;\n }, [overrides?.alwaysShowDecimals]);\n\n const roomModalDescSideBySide: boolean = useMemo(() => {\n return !!overrides?.roomModalDescSideBySide;\n }, [overrides?.roomModalDescSideBySide]);\n\n const disableGroupRoomsAllTab = useMemo(() => {\n return !!overrides?.disableGroupRoomsAllTab;\n }, [overrides?.disableGroupRoomsAllTab]);\n\n const orderUnavailableRoomsLast: boolean = useMemo(() => {\n return !!overrides?.orderUnavailableRoomsLast;\n }, [overrides?.orderUnavailableRoomsLast]);\n\n const messages = useMemo(() => {\n if (overrides.messages?.enable) {\n if (overrides.messages.pricesIncludeFeesMessage) {\n i18n.addResource(Language.en_us, 'translation', Translation.Step.Room.RoomInfo.IncludesTaxes, overrides.messages.pricesIncludeFeesMessage);\n }\n\n return overrides.messages;\n }\n return undefined;\n }, [overrides?.messages]);\n\n useEffect(() => {\n fetchApiData();\n }, [fetchApiData]);\n\n return {\n loading,\n hideByLine,\n distanceUnitType,\n transportDistances,\n phoneNumberInSummary,\n enabledEventIds,\n showYearOnCalendar,\n yearDisplayOption,\n showPromoCodeAlert,\n promoCodeAlertType,\n pageTitle,\n showPromoCodeDescription,\n alwaysShowDecimals,\n messages,\n roomModalDescSideBySide,\n disableGroupRoomsAllTab,\n orderUnavailableRoomsLast,\n };\n};\n\nexport const HotelOverridesContextWrapper = ({ children }: { children?: React.ReactNode }) => {\n const hotelOverrides = useHotelOverrides();\n return <HotelOverridesContext.Provider value={hotelOverrides}>{children}</HotelOverridesContext.Provider>;\n};\n"]}
1
+ {"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport i18n from 'i18next';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { HotelOverrideDTO } from '@/models/Api/HotelOverrideDTO';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { Language } from '@/providers/LanguageProvider';\n\ninterface IHotelOverridesContext extends Omit<HotelOverrideDTO, 'overrideDistanceUnitType'> {\n loading: boolean;\n getPricesIncludeFeesMessage: (hotelId: string) => Promise<string>;\n}\n\nexport const HotelOverridesContext = createContext<IHotelOverridesContext>({} as IHotelOverridesContext);\n\nconst useHotelOverrides = (): IHotelOverridesContext => {\n const companyContext = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n const [loading, loadingSet] = useState<boolean>(false);\n const [overrides, overridesSet] = useState<HotelOverrideDTO>({});\n\n const fetchApiData = useCallback(async () => {\n if (companyContext.selectedHotelID) {\n loadingSet(true);\n try {\n const apiData = await API.Hotel.fetchOverrides(companyContext.selectedHotelID);\n\n loadingSet(false);\n overridesSet(apiData);\n } catch (error) {\n console.error('Failed to fetch hotel overrides', error);\n }\n }\n }, [companyContext.selectedHotelID]);\n\n const hideByLine: boolean = useMemo(() => {\n return !!overrides?.hideByLine || !!hotel?.hideByLine;\n }, [overrides?.hideByLine]);\n\n const distanceUnitType: DistanceUnitType = useMemo(() => {\n // Metric by default\n return (overrides.overrideDistanceUnitType && overrides?.distanceUnitType) || hotel?.distanceUnitType || DistanceUnitType.Metric;\n }, [overrides?.distanceUnitType, hotel?.distanceUnitType, hotel?.hasLoadedDetails]);\n\n const transportDistances = useMemo(() => {\n return overrides?.transportDistances ?? hotel?.transportDistances;\n }, [overrides?.transportDistances]);\n\n const phoneNumberInSummary = useMemo(() => {\n return overrides?.phoneNumberInSummary;\n }, [overrides?.phoneNumberInSummary]);\n\n const enabledEventIds = useMemo(() => {\n return overrides?.enabledEventIds;\n }, [overrides?.enabledEventIds]);\n\n const { showYearOnCalendar, yearDisplayOption } = useMemo(() => {\n return {\n showYearOnCalendar: !!overrides?.showYearOnCalendar,\n yearDisplayOption: !!overrides?.showYearOnCalendar ? overrides?.yearDisplayOption : '',\n };\n }, [overrides?.showYearOnCalendar, overrides?.yearDisplayOption]);\n\n const { showPromoCodeAlert, promoCodeAlertType } = useMemo(() => {\n return {\n showPromoCodeAlert: !!overrides?.showPromoCodeAlert,\n promoCodeAlertType: !!overrides?.showPromoCodeAlert ? overrides?.promoCodeAlertType : undefined,\n };\n }, [overrides?.showPromoCodeAlert, overrides?.promoCodeAlertType]);\n\n const pageTitle = useMemo(() => {\n return overrides?.pageTitle;\n }, [overrides?.pageTitle]);\n\n const showPromoCodeDescription: boolean = useMemo(() => {\n return !!overrides?.showPromoCodeDescription;\n }, [overrides?.showPromoCodeDescription]);\n\n const alwaysShowDecimals: boolean = useMemo(() => {\n return !!overrides?.alwaysShowDecimals;\n }, [overrides?.alwaysShowDecimals]);\n\n const roomModalDescSideBySide: boolean = useMemo(() => {\n return !!overrides?.roomModalDescSideBySide;\n }, [overrides?.roomModalDescSideBySide]);\n\n const disableGroupRoomsAllTab = useMemo(() => {\n return !!overrides?.disableGroupRoomsAllTab;\n }, [overrides?.disableGroupRoomsAllTab]);\n\n const orderUnavailableRoomsLast: boolean = useMemo(() => {\n return !!overrides?.orderUnavailableRoomsLast;\n }, [overrides?.orderUnavailableRoomsLast]);\n\n const messages = useMemo(() => {\n if (overrides.messages?.enable) {\n if (overrides.messages.pricesIncludeFeesMessage) {\n i18n.addResource(Language.en_us, 'translation', Translation.Step.Room.RoomInfo.IncludesTaxes, overrides.messages.pricesIncludeFeesMessage);\n }\n\n return overrides.messages;\n }\n return undefined;\n }, [overrides?.messages]);\n\n const getPricesIncludeFeesMessage = async (hotelId: string): Promise<string> => {\n if (hotelId === hotel?.hotelID) {\n const translated = t(Translation.Step.Room.RoomInfo.IncludesTaxes);\n return translated;\n }\n\n try {\n const overrideData = await API.Hotel.fetchOverrides(hotelId);\n const msg = overrideData?.messages?.pricesIncludeFeesMessage || DefaultPricesIncludeFeesMessage;\n return msg;\n } catch {\n return DefaultPricesIncludeFeesMessage;\n }\n };\n\n useEffect(() => {\n fetchApiData();\n }, [fetchApiData]);\n\n return {\n loading,\n hideByLine,\n distanceUnitType,\n transportDistances,\n phoneNumberInSummary,\n enabledEventIds,\n showYearOnCalendar,\n yearDisplayOption,\n showPromoCodeAlert,\n promoCodeAlertType,\n pageTitle,\n showPromoCodeDescription,\n alwaysShowDecimals,\n messages,\n roomModalDescSideBySide,\n\n getPricesIncludeFeesMessage,\n disableGroupRoomsAllTab,\n orderUnavailableRoomsLast,\n };\n};\n\nexport const HotelOverridesContextWrapper = ({ children }: { children?: React.ReactNode }) => {\n const hotelOverrides = useHotelOverrides();\n return <HotelOverridesContext.Provider value={hotelOverrides}>{children}</HotelOverridesContext.Provider>;\n};\n\nconst DefaultPricesIncludeFeesMessage = 'Including taxes & fees.';\n"]}
@@ -20,12 +20,12 @@ export interface IAvailableNightStay {
20
20
  available: boolean;
21
21
  }
22
22
  export declare const useCalendarNightStay: ({ basketContext, }: UseCalendarNightStayProps) => {
23
- getLastValidDay: (fromDate: Dayjs, toDate: Dayjs, roomCode?: string) => Promise<{
23
+ getLastValidDay: (fromDate: Dayjs, toDate: Dayjs, roomCode?: string, rateCode?: string) => Promise<{
24
24
  lastValidDay: Dayjs;
25
25
  nightStayValidation: INightStayValidation;
26
26
  isValidNightStay: boolean;
27
27
  }>;
28
- getArrivalNightStay: (fromDate: Dayjs, roomCode: string) => Promise<IArrivalNightStay>;
28
+ getArrivalNightStay: (fromDate: Dayjs, roomCode: string, rateCode: string) => Promise<IArrivalNightStay>;
29
29
  checkAvailableNightStay: ({ arrivalNightStay, startDate, dateToCheck }: {
30
30
  arrivalNightStay: IArrivalNightStay;
31
31
  startDate: Dayjs | null;
@@ -26,7 +26,7 @@ const useCalendarNightStay = ({ basketContext, }) => {
26
26
  validationMinNightStay: null,
27
27
  validationMaxNightStay: null,
28
28
  };
29
- const getLastValidDay = (fromDate, toDate, roomCode) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
29
+ const getLastValidDay = (fromDate, toDate, roomCode, rateCode) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
30
30
  var _a, _b, _c, _d;
31
31
  const selectedBasketRow = basketContext.selectedBasketRow;
32
32
  const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;
@@ -39,7 +39,7 @@ const useCalendarNightStay = ({ basketContext, }) => {
39
39
  const toDateDiff = (_a = toDate === null || toDate === void 0 ? void 0 : toDate.diff) === null || _a === void 0 ? void 0 : _a.call(toDate, fromDate, 'day');
40
40
  for (let i = 0; i <= toDateDiff; i++) {
41
41
  const dayToCheck = fromDate.add(i, 'day');
42
- const price = yield BookingAPI_1.default.Availability.getCheapestPriceForDay(dayToCheck, adults, children, infants, promoCode, roomCode, hotel === null || hotel === void 0 ? void 0 : hotel.hotelID, memberNumber, false);
42
+ const price = yield BookingAPI_1.default.Availability.getCheapestPriceForDay(dayToCheck, adults, children, infants, promoCode, roomCode, rateCode || '', hotel === null || hotel === void 0 ? void 0 : hotel.hotelID, memberNumber, false);
43
43
  const nextMustBreak = !(price === null || price === void 0 ? void 0 : price.price) && hotel;
44
44
  const departureDateDiff = (_b = dayToCheck === null || dayToCheck === void 0 ? void 0 : dayToCheck.diff) === null || _b === void 0 ? void 0 : _b.call(dayToCheck, fromDate, 'day');
45
45
  if (departureDateDiff == 0) {
@@ -85,14 +85,14 @@ const useCalendarNightStay = ({ basketContext, }) => {
85
85
  isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,
86
86
  });
87
87
  }));
88
- const getArrivalNightStay = (fromDate, roomCode) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
88
+ const getArrivalNightStay = (fromDate, roomCode, rateCode) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
89
89
  var _a, _b;
90
90
  const selectedBasketRow = basketContext.selectedBasketRow;
91
91
  const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;
92
92
  const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;
93
93
  const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;
94
94
  const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';
95
- const price = yield BookingAPI_1.default.Availability.getCheapestPriceForDay(fromDate, adults, children, infants, promoCode, roomCode, hotel === null || hotel === void 0 ? void 0 : hotel.hotelID, memberNumber, false);
95
+ const price = yield BookingAPI_1.default.Availability.getCheapestPriceForDay(fromDate, adults, children, infants, promoCode, roomCode, rateCode, hotel === null || hotel === void 0 ? void 0 : hotel.hotelID, memberNumber, false);
96
96
  return resolve({
97
97
  arrivalMinNightStay: (_a = price === null || price === void 0 ? void 0 : price.arrivalMinNightStay) !== null && _a !== void 0 ? _a : null,
98
98
  arrivalMaxNightStay: (_b = price === null || price === void 0 ? void 0 : price.arrivalMaxNightStay) !== null && _b !== void 0 ? _b : null,
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendarNightStay.js","sourceRoot":"/","sources":["src/hooks/useCalendarNightStay.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContextType } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { Dayjs } from 'dayjs';\n\nimport API from '@/api/BookingAPI';\n\nimport { useSignedInMember } from './useSignedInMember';\n\ninterface UseCalendarNightStayProps {\n basketContext: BasketContextType;\n}\n\nexport interface INightStayValidation {\n init: boolean;\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n validationMinNightStay: number | null;\n validationMaxNightStay: number | null;\n}\nexport interface IArrivalNightStay {\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n}\nexport interface IAvailableNightStay {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n}\n\nexport const useCalendarNightStay = ({\n basketContext,\n}: UseCalendarNightStayProps): {\n getLastValidDay: (\n fromDate: Dayjs,\n toDate: Dayjs,\n roomCode?: string\n ) => Promise<{\n lastValidDay: Dayjs;\n nightStayValidation: INightStayValidation;\n isValidNightStay: boolean;\n }>;\n getArrivalNightStay: (fromDate: Dayjs, roomCode: string) => Promise<IArrivalNightStay>;\n checkAvailableNightStay: ({ arrivalNightStay, startDate, dateToCheck }: { arrivalNightStay: IArrivalNightStay; startDate: Dayjs | null; dateToCheck: Dayjs | null }) => {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n };\n} => {\n const { hotel } = useCurrentHotel();\n const { memberNumber } = useSignedInMember();\n const nightStayValidation: INightStayValidation = {\n init: false,\n arrivalMinNightStay: null,\n arrivalMaxNightStay: null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n };\n const getLastValidDay = (\n fromDate: Dayjs,\n toDate: Dayjs,\n roomCode?: string\n ): Promise<{ lastValidDay: Dayjs; nightStayValidation: INightStayValidation; isValidNightStay: boolean }> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n if (!roomCode) {\n roomCode = selectedBasketRow ? selectedBasketRow.getRoomCode() : '';\n }\n\n const toDateDiff = toDate?.diff?.(fromDate, 'day');\n\n for (let i = 0; i <= toDateDiff; i++) {\n const dayToCheck = fromDate.add(i, 'day');\n const price = await API.Availability.getCheapestPriceForDay(\n dayToCheck,\n adults,\n children,\n infants,\n promoCode,\n roomCode,\n hotel?.hotelID as string,\n memberNumber,\n false\n );\n const nextMustBreak = !price?.price && hotel;\n const departureDateDiff = dayToCheck?.diff?.(fromDate, 'day');\n if (departureDateDiff == 0) {\n //Arrival date\n Object.assign(nightStayValidation, {\n init: true,\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n });\n }\n if (nightStayValidation.arrivalMinNightStay) {\n //Min. Departure date\n if (departureDateDiff >= nightStayValidation.arrivalMinNightStay) {\n nightStayValidation.validationMinNightStay = null;\n } else {\n nightStayValidation.validationMinNightStay = nightStayValidation.arrivalMinNightStay;\n }\n }\n if (nightStayValidation.arrivalMaxNightStay) {\n //Max. Departure date\n if (departureDateDiff <= nightStayValidation.arrivalMaxNightStay) {\n nightStayValidation.validationMaxNightStay = null;\n } else {\n nightStayValidation.validationMaxNightStay = nightStayValidation.arrivalMaxNightStay;\n }\n }\n\n if (nextMustBreak) {\n //if true, this date only available for departure (no price for checking)\n return resolve({\n lastValidDay: dayToCheck,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n }\n }\n\n return resolve({\n lastValidDay: toDate,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n });\n\n const getArrivalNightStay = (fromDate: Dayjs, roomCode: string): Promise<IArrivalNightStay> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n const price = await API.Availability.getCheapestPriceForDay(fromDate, adults, children, infants, promoCode, roomCode, hotel?.hotelID as string, memberNumber, false);\n return resolve({\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n });\n });\n\n const checkAvailableNightStay = ({\n arrivalNightStay,\n startDate,\n dateToCheck,\n }: {\n arrivalNightStay: IArrivalNightStay;\n startDate: Dayjs | null;\n dateToCheck: Dayjs | null;\n }): IAvailableNightStay => {\n const arrivalMinNightStay = arrivalNightStay?.arrivalMinNightStay ?? null;\n const arrivalMaxNightStay = arrivalNightStay?.arrivalMaxNightStay ?? null;\n let minDate = null;\n let maxDate = null;\n if (dateToCheck && startDate && (arrivalMinNightStay || arrivalMaxNightStay)) {\n const validation: boolean[] = [];\n if (arrivalMinNightStay) {\n minDate = startDate.clone().add(arrivalMinNightStay, 'day');\n validation.push(dateToCheck >= minDate);\n }\n if (arrivalMaxNightStay) {\n maxDate = startDate.clone().add(arrivalMaxNightStay, 'day');\n validation.push(dateToCheck <= maxDate);\n }\n return {\n minDate,\n maxDate,\n available: validation.every((v) => v === true),\n };\n }\n return {\n minDate,\n maxDate,\n available: true,\n };\n };\n\n return {\n getLastValidDay,\n getArrivalNightStay,\n checkAvailableNightStay,\n };\n};\n"]}
1
+ {"version":3,"file":"useCalendarNightStay.js","sourceRoot":"/","sources":["src/hooks/useCalendarNightStay.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAAkD;AAGlD,kEAAmC;AAEnC,2DAAwD;AAuBjD,MAAM,oBAAoB,GAAG,CAAC,EACjC,aAAa,GACW,EAiB1B,EAAE;IACA,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,qCAAiB,GAAE,CAAC;IAC7C,MAAM,mBAAmB,GAAyB;QAC9C,IAAI,EAAE,KAAK;QACX,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,IAAI;QACzB,sBAAsB,EAAE,IAAI;QAC5B,sBAAsB,EAAE,IAAI;KAC/B,CAAC;IACF,MAAM,eAAe,GAAG,CACpB,QAAe,EACf,MAAa,EACb,QAAiB,EACjB,QAAiB,EACqF,EAAE,CACxG,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,EAAE;;QAC1B,MAAM,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;QAC1D,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,UAAU,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,uDAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,oBAAG,CAAC,YAAY,CAAC,sBAAsB,CACvD,UAAU,EACV,MAAM,EACN,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,IAAI,EAAE,EACd,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAiB,EACxB,YAAY,EACZ,KAAK,CACR,CAAC;YACF,MAAM,aAAa,GAAG,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,IAAI,KAAK,CAAC;YAC7C,MAAM,iBAAiB,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,2DAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC9D,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;gBACzB,cAAc;gBACd,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE;oBAC/B,IAAI,EAAE,IAAI;oBACV,mBAAmB,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,mCAAI,IAAI;oBACvD,mBAAmB,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,mCAAI,IAAI;oBACvD,sBAAsB,EAAE,IAAI;oBAC5B,sBAAsB,EAAE,IAAI;iBAC/B,CAAC,CAAC;YACP,CAAC;YACD,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;gBAC1C,qBAAqB;gBACrB,IAAI,iBAAiB,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;oBAC/D,mBAAmB,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,mBAAmB,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;gBACzF,CAAC;YACL,CAAC;YACD,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;gBAC1C,qBAAqB;gBACrB,IAAI,iBAAiB,IAAI,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;oBAC/D,mBAAmB,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,mBAAmB,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;gBACzF,CAAC;YACL,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAChB,yEAAyE;gBACzE,OAAO,OAAO,CAAC;oBACX,YAAY,EAAE,UAAU;oBACxB,mBAAmB;oBACnB,gBAAgB,EAAE,CAAC,mBAAmB,CAAC,sBAAsB,IAAI,CAAC,mBAAmB,CAAC,sBAAsB;iBAC/G,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;YACX,YAAY,EAAE,MAAM;YACpB,mBAAmB;YACnB,gBAAgB,EAAE,CAAC,mBAAmB,CAAC,sBAAsB,IAAI,CAAC,mBAAmB,CAAC,sBAAsB;SAC/G,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,CAAC,QAAe,EAAE,QAAgB,EAAE,QAAgB,EAA8B,EAAE,CAC5G,IAAI,OAAO,CAAC,CAAO,OAAO,EAAE,EAAE;;QAC1B,MAAM,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;QAC1D,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE5E,MAAM,KAAK,GAAG,MAAM,oBAAG,CAAC,YAAY,CAAC,sBAAsB,CACvD,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAiB,EACxB,YAAY,EACZ,KAAK,CACR,CAAC;QACF,OAAO,OAAO,CAAC;YACX,mBAAmB,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,mCAAI,IAAI;YACvD,mBAAmB,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,mCAAI,IAAI;SAC1D,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;IAEP,MAAM,uBAAuB,GAAG,CAAC,EAC7B,gBAAgB,EAChB,SAAS,EACT,WAAW,GAKd,EAAuB,EAAE;;QACtB,MAAM,mBAAmB,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,mBAAmB,mCAAI,IAAI,CAAC;QAC1E,MAAM,mBAAmB,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,mBAAmB,mCAAI,IAAI,CAAC;QAC1E,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,WAAW,IAAI,SAAS,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,EAAE,CAAC;YAC3E,MAAM,UAAU,GAAc,EAAE,CAAC;YACjC,IAAI,mBAAmB,EAAE,CAAC;gBACtB,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBAC5D,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,mBAAmB,EAAE,CAAC;gBACtB,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;gBAC5D,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO;gBACH,OAAO;gBACP,OAAO;gBACP,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;aACjD,CAAC;QACN,CAAC;QACD,OAAO;YACH,OAAO;YACP,OAAO;YACP,SAAS,EAAE,IAAI;SAClB,CAAC;IACN,CAAC,CAAC;IAEF,OAAO;QACH,eAAe;QACf,mBAAmB;QACnB,uBAAuB;KAC1B,CAAC;AACN,CAAC,CAAC;AA/KW,QAAA,oBAAoB,wBA+K/B","sourcesContent":["import { BasketContextType } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { Dayjs } from 'dayjs';\n\nimport API from '@/api/BookingAPI';\n\nimport { useSignedInMember } from './useSignedInMember';\n\ninterface UseCalendarNightStayProps {\n basketContext: BasketContextType;\n}\n\nexport interface INightStayValidation {\n init: boolean;\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n validationMinNightStay: number | null;\n validationMaxNightStay: number | null;\n}\nexport interface IArrivalNightStay {\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n}\nexport interface IAvailableNightStay {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n}\n\nexport const useCalendarNightStay = ({\n basketContext,\n}: UseCalendarNightStayProps): {\n getLastValidDay: (\n fromDate: Dayjs,\n toDate: Dayjs,\n roomCode?: string,\n rateCode?: string\n ) => Promise<{\n lastValidDay: Dayjs;\n nightStayValidation: INightStayValidation;\n isValidNightStay: boolean;\n }>;\n getArrivalNightStay: (fromDate: Dayjs, roomCode: string, rateCode: string) => Promise<IArrivalNightStay>;\n checkAvailableNightStay: ({ arrivalNightStay, startDate, dateToCheck }: { arrivalNightStay: IArrivalNightStay; startDate: Dayjs | null; dateToCheck: Dayjs | null }) => {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n };\n} => {\n const { hotel } = useCurrentHotel();\n const { memberNumber } = useSignedInMember();\n const nightStayValidation: INightStayValidation = {\n init: false,\n arrivalMinNightStay: null,\n arrivalMaxNightStay: null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n };\n const getLastValidDay = (\n fromDate: Dayjs,\n toDate: Dayjs,\n roomCode?: string,\n rateCode?: string\n ): Promise<{ lastValidDay: Dayjs; nightStayValidation: INightStayValidation; isValidNightStay: boolean }> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n if (!roomCode) {\n roomCode = selectedBasketRow ? selectedBasketRow.getRoomCode() : '';\n }\n\n const toDateDiff = toDate?.diff?.(fromDate, 'day');\n\n for (let i = 0; i <= toDateDiff; i++) {\n const dayToCheck = fromDate.add(i, 'day');\n const price = await API.Availability.getCheapestPriceForDay(\n dayToCheck,\n adults,\n children,\n infants,\n promoCode,\n roomCode,\n rateCode || '',\n hotel?.hotelID as string,\n memberNumber,\n false\n );\n const nextMustBreak = !price?.price && hotel;\n const departureDateDiff = dayToCheck?.diff?.(fromDate, 'day');\n if (departureDateDiff == 0) {\n //Arrival date\n Object.assign(nightStayValidation, {\n init: true,\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n });\n }\n if (nightStayValidation.arrivalMinNightStay) {\n //Min. Departure date\n if (departureDateDiff >= nightStayValidation.arrivalMinNightStay) {\n nightStayValidation.validationMinNightStay = null;\n } else {\n nightStayValidation.validationMinNightStay = nightStayValidation.arrivalMinNightStay;\n }\n }\n if (nightStayValidation.arrivalMaxNightStay) {\n //Max. Departure date\n if (departureDateDiff <= nightStayValidation.arrivalMaxNightStay) {\n nightStayValidation.validationMaxNightStay = null;\n } else {\n nightStayValidation.validationMaxNightStay = nightStayValidation.arrivalMaxNightStay;\n }\n }\n\n if (nextMustBreak) {\n //if true, this date only available for departure (no price for checking)\n return resolve({\n lastValidDay: dayToCheck,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n }\n }\n\n return resolve({\n lastValidDay: toDate,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n });\n\n const getArrivalNightStay = (fromDate: Dayjs, roomCode: string, rateCode: string): Promise<IArrivalNightStay> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n const price = await API.Availability.getCheapestPriceForDay(\n fromDate,\n adults,\n children,\n infants,\n promoCode,\n roomCode,\n rateCode,\n hotel?.hotelID as string,\n memberNumber,\n false\n );\n return resolve({\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n });\n });\n\n const checkAvailableNightStay = ({\n arrivalNightStay,\n startDate,\n dateToCheck,\n }: {\n arrivalNightStay: IArrivalNightStay;\n startDate: Dayjs | null;\n dateToCheck: Dayjs | null;\n }): IAvailableNightStay => {\n const arrivalMinNightStay = arrivalNightStay?.arrivalMinNightStay ?? null;\n const arrivalMaxNightStay = arrivalNightStay?.arrivalMaxNightStay ?? null;\n let minDate = null;\n let maxDate = null;\n if (dateToCheck && startDate && (arrivalMinNightStay || arrivalMaxNightStay)) {\n const validation: boolean[] = [];\n if (arrivalMinNightStay) {\n minDate = startDate.clone().add(arrivalMinNightStay, 'day');\n validation.push(dateToCheck >= minDate);\n }\n if (arrivalMaxNightStay) {\n maxDate = startDate.clone().add(arrivalMaxNightStay, 'day');\n validation.push(dateToCheck <= maxDate);\n }\n return {\n minDate,\n maxDate,\n available: validation.every((v) => v === true),\n };\n }\n return {\n minDate,\n maxDate,\n available: true,\n };\n };\n\n return {\n getLastValidDay,\n getArrivalNightStay,\n checkAvailableNightStay,\n };\n};\n"]}
@@ -58,6 +58,7 @@ export { default as DerbysoftClickTrackingFeature } from './providers/feature/De
58
58
  export { default as E164PhoneNumberFieldFeature } from './providers/feature/E164PhoneNumberFieldFeature';
59
59
  export { default as FeaturedPromoFeature } from './providers/feature/FeaturedPromoFeature';
60
60
  export { default as FullPageEngineSmallSpacingFeature } from './providers/feature/FullPageEngineSmallSpacingFeature';
61
+ export { default as GiftCardFeature } from './providers/feature/GiftCardFeature';
61
62
  export { default as GuestTitleFieldFeature } from './providers/feature/GuestTitleFieldFeature';
62
63
  export { default as HotelGroupFeature } from './providers/feature/HotelGroupFeature';
63
64
  export { default as InlineAddonStepFeature } from './providers/feature/InlineAddonStepFeature';
package/dist/src/index.js CHANGED
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.RoomRateReadMoreVersionFeature = exports.PlanPayPricePreviewFeature = exports.MemberPortalFeature = exports.InlineAddonStepFeature = exports.HotelGroupFeature = exports.GuestTitleFieldFeature = exports.FullPageEngineSmallSpacingFeature = exports.FeaturedPromoFeature = exports.E164PhoneNumberFieldFeature = exports.DerbysoftClickTrackingFeature = exports.DatePickerTypeFeature = exports.ConfirmationVerifyFeature = exports.SessionProvider = exports.LocalStorageProvider = exports.RoomSort = exports.RatePillProvider = exports.FeatureProvider = exports.CurrencyProvider = exports.SmallSpinner = exports.StepNoRoomBestRateAlert = exports.RoomModalPerkRow = exports.BE_ROOM_MODAL_PERK_ROW = exports.RatesNotFoundBlock = exports.BE_RATES_NOT_FOUND_BLOCK = exports.NoRoomsFoundBlock = exports.BE_NO_ROOMS_FOUND_BLOCK = exports.HotelInfoPerksRow = exports.BE_HOTEL_INFO_PERK_ROW = exports.OccupancyWarningBlock = exports.BE_OCCUPANCY_WARNING_BLOCK = exports.StepConfirmationCountrySelector = exports.BE_NO_ADDONS_FOUND_BLOCK = exports.AddonsNotFoundBlock = exports.TextBox = exports.TextArea = exports.RadioFields = exports.LineBreak = exports.InputGroup = exports.Icon = exports.Headline = exports.Currency = exports.Checkbox = exports.EBookingWizardTheme = exports.EBookingWizardOverlayDirection = exports.BEButton = exports.Alert = exports.AutoAutoHeight = exports.Link = exports.useTranslation = exports.react = void 0;
21
- exports.Version = exports.events = exports.RoomstayEventManager = exports.StepManager = exports.StepThanks = exports.StepRoom = exports.StepHotel = exports.StepGroupedRoom = exports.StepDate = exports.StepConfirmation = exports.StepAddon = exports.HotelDataSource = exports.API = exports.useFormContext = exports.DataLayer = exports.RoomstayThemeEngine = exports.withDI = exports.registerReplacement = exports.ShowIATANumberOnCheckoutFeature = exports.RoomUpsellFeature = void 0;
20
+ exports.PlanPayPricePreviewFeature = exports.MemberPortalFeature = exports.InlineAddonStepFeature = exports.HotelGroupFeature = exports.GuestTitleFieldFeature = exports.GiftCardFeature = exports.FullPageEngineSmallSpacingFeature = exports.FeaturedPromoFeature = exports.E164PhoneNumberFieldFeature = exports.DerbysoftClickTrackingFeature = exports.DatePickerTypeFeature = exports.ConfirmationVerifyFeature = exports.SessionProvider = exports.LocalStorageProvider = exports.RoomSort = exports.RatePillProvider = exports.FeatureProvider = exports.CurrencyProvider = exports.SmallSpinner = exports.StepNoRoomBestRateAlert = exports.RoomModalPerkRow = exports.BE_ROOM_MODAL_PERK_ROW = exports.RatesNotFoundBlock = exports.BE_RATES_NOT_FOUND_BLOCK = exports.NoRoomsFoundBlock = exports.BE_NO_ROOMS_FOUND_BLOCK = exports.HotelInfoPerksRow = exports.BE_HOTEL_INFO_PERK_ROW = exports.OccupancyWarningBlock = exports.BE_OCCUPANCY_WARNING_BLOCK = exports.StepConfirmationCountrySelector = exports.BE_NO_ADDONS_FOUND_BLOCK = exports.AddonsNotFoundBlock = exports.TextBox = exports.TextArea = exports.RadioFields = exports.LineBreak = exports.InputGroup = exports.Icon = exports.Headline = exports.Currency = exports.Checkbox = exports.EBookingWizardTheme = exports.EBookingWizardOverlayDirection = exports.BEButton = exports.Alert = exports.AutoAutoHeight = exports.Link = exports.useTranslation = exports.react = void 0;
21
+ exports.Version = exports.events = exports.RoomstayEventManager = exports.StepManager = exports.StepThanks = exports.StepRoom = exports.StepHotel = exports.StepGroupedRoom = exports.StepDate = exports.StepConfirmation = exports.StepAddon = exports.HotelDataSource = exports.API = exports.useFormContext = exports.DataLayer = exports.RoomstayThemeEngine = exports.withDI = exports.registerReplacement = exports.ShowIATANumberOnCheckoutFeature = exports.RoomUpsellFeature = exports.RoomRateReadMoreVersionFeature = void 0;
22
22
  // TODO: Look into resolving this.
23
23
  const react_1 = __importDefault(require("react"));
24
24
  const StepConfirmation_1 = __importDefault(require("./pages/steps/StepConfirmation/StepConfirmation"));
@@ -131,6 +131,8 @@ var FeaturedPromoFeature_1 = require("./providers/feature/FeaturedPromoFeature")
131
131
  Object.defineProperty(exports, "FeaturedPromoFeature", { enumerable: true, get: function () { return __importDefault(FeaturedPromoFeature_1).default; } });
132
132
  var FullPageEngineSmallSpacingFeature_1 = require("./providers/feature/FullPageEngineSmallSpacingFeature");
133
133
  Object.defineProperty(exports, "FullPageEngineSmallSpacingFeature", { enumerable: true, get: function () { return __importDefault(FullPageEngineSmallSpacingFeature_1).default; } });
134
+ var GiftCardFeature_1 = require("./providers/feature/GiftCardFeature");
135
+ Object.defineProperty(exports, "GiftCardFeature", { enumerable: true, get: function () { return __importDefault(GiftCardFeature_1).default; } });
134
136
  var GuestTitleFieldFeature_1 = require("./providers/feature/GuestTitleFieldFeature");
135
137
  Object.defineProperty(exports, "GuestTitleFieldFeature", { enumerable: true, get: function () { return __importDefault(GuestTitleFieldFeature_1).default; } });
136
138
  var HotelGroupFeature_1 = require("./providers/feature/HotelGroupFeature");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: Look into resolving this.\nimport ReactRaw from 'react';\n\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepDate from '@/pages/steps/StepDate/StepDate';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport StepThanks from '@/pages/steps/StepThanks/StepThanks';\nimport StepManager from '@/util/StepManager';\n\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport { default as AutoAutoHeight } from '@/animations/AutoAutoHeight';\nexport * from '@/components/generic/Alert';\nexport { default as Alert } from '@/components/generic/Alert';\nexport { default as BEButton } from '@/components/generic/BEButton';\nexport { EBookingWizardOverlayDirection, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\nexport { default as Checkbox } from '@/components/generic/Checkbox/Checkbox';\nexport { default as Currency } from '@/components/generic/Currency';\nexport { default as Headline } from '@/components/generic/Headline';\nexport { default as Icon } from '@/components/generic/Icon/Icon';\nexport * from '@/components/generic/Icon/Icon';\nexport { default as InputGroup } from '@/components/generic/InputGroup/InputGroup';\nexport { default as LineBreak } from '@/components/generic/LineBreak';\nexport { default as RadioFields } from '@/components/generic/radio/RadioFields';\nexport * from '@/components/generic/Select/index';\nexport * from '@/components/generic/Text';\nexport { default as TextArea } from '@/components/generic/TextArea';\nexport { default as TextBox } from '@/components/generic/TextBox';\nexport { default as AddonsNotFoundBlock, BE_NO_ADDONS_FOUND_BLOCK } from '@/components/steps/addons/AddonsNotFoundBlock';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport { BE_OCCUPANCY_WARNING_BLOCK, default as OccupancyWarningBlock } from '@/components/steps/date/OccupancyWarningBlock';\nexport type { HotelInfoPerkRowProps } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_HOTEL_INFO_PERK_ROW } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { default as HotelInfoPerksRow } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_NO_ROOMS_FOUND_BLOCK } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { default as NoRoomsFoundBlock } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { BE_RATES_NOT_FOUND_BLOCK, default as RatesNotFoundBlock } from '@/components/steps/room/RatesNotFoundBlock';\nexport type { RoomModalPerkRowProps } from '@/components/steps/room/RoomModalPerkRow';\nexport { BE_ROOM_MODAL_PERK_ROW } from '@/components/steps/room/RoomModalPerkRow';\nexport { default as RoomModalPerkRow } from '@/components/steps/room/RoomModalPerkRow';\nexport * from '@/components/steps/room/StepRoomBestRateAlert';\nexport { default as StepNoRoomBestRateAlert } from '@/components/steps/room/StepRoomBestRateAlert';\nexport * from '@/components/summary/BESummary';\nexport * from '@/components/summary/BESummaryPerkBlock';\nexport * from '@/engines/BookingWizardEngine/BookingWizardEngine';\nexport * from '@/engines/CustomEngine/CustomEngine';\nexport * from '@/engines/FullPageBookingEngine/FullPageBookingEngine';\nexport * from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nexport * from '@/engines/MemberPortalWidget/MemberPortalWidget';\nexport * from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\n\n// Loaders\nexport { default as SmallSpinner } from '@/components/generic/loader/SmallSpinner';\n\n// Providers\nexport * from '@/providers/CurrencyProvider';\nexport { default as CurrencyProvider } from '@/providers/CurrencyProvider';\nexport { default as FeatureProvider } from '@/providers/FeatureProvider';\nexport * from '@/providers/LanguageProvider';\nexport * from '@/providers/PromotionProvider';\nexport { default as RatePillProvider } from '@/providers/RatePillProvider';\nexport { RoomSort } from '@/providers/RoomSortProvider';\nexport { default as LocalStorageProvider } from '@/providers/storage/LocalStorageProvider';\nexport { default as SessionProvider } from '@/providers/storage/SessionProvider';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from '@/providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from '@/providers/feature/DatePickerTypeFeature';\nexport { default as DerbysoftClickTrackingFeature } from '@/providers/feature/DerbysoftClickTrackingFeature';\nexport { default as E164PhoneNumberFieldFeature } from '@/providers/feature/E164PhoneNumberFieldFeature';\nexport { default as FeaturedPromoFeature } from '@/providers/feature/FeaturedPromoFeature';\nexport { default as FullPageEngineSmallSpacingFeature } from '@/providers/feature/FullPageEngineSmallSpacingFeature';\nexport { default as GuestTitleFieldFeature } from '@/providers/feature/GuestTitleFieldFeature';\nexport { default as HotelGroupFeature } from '@/providers/feature/HotelGroupFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as MemberPortalFeature } from '@/providers/feature/MemberPortalFeature';\nexport { default as PlanPayPricePreviewFeature } from '@/providers/feature/PlanPayPricePreviewFeature';\nexport { default as RoomRateReadMoreVersionFeature } from '@/providers/feature/RoomRateReadMoreVersionFeature';\nexport { default as RoomUpsellFeature } from '@/providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\n\n// Contexts\nexport { registerReplacement, withDI } from '@/providers/DIProvider';\nexport * from '@/providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from '@/providers/RoomstayThemeEngine';\nexport * from '@/util/Analytics/Analytics';\nexport * from '@/util/Analytics/GoogleAnalytics4';\nexport * from '@/util/Analytics/UniversalAnalytics';\nexport { default as DataLayer } from '@/util/DataLayer';\nexport * from '@/util/DataLayer';\nexport * from '@/util/DefaultValueManager';\nexport * from '@/util/RouteManager';\nexport * from '@frontend/contexts';\nexport { useFormContext } from 'react-hook-form';\n\n// Models\nexport { default as API } from '@/api/BookingAPI';\nexport * from '@/models/Api/HotelDTO';\nexport * from '@/models/Api/HotelOverrideDTO';\nexport type { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nexport * from '@/models/Client/Hotel/Company';\nexport * from '@/models/Client/Hotel/DistanceUnitType.types';\nexport * from '@/models/Client/Hotel/Hotel';\nexport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nexport * from '@/models/Client/Hotel/HotelPerk';\nexport * from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\n// Steps\nexport { default as StepAddon } from '@/pages/steps/StepAddon/StepAddon';\nexport { default as StepConfirmation } from '@/pages/steps/StepConfirmation/StepConfirmation';\nexport { default as StepDate } from '@/pages/steps/StepDate/StepDate';\nexport { default as StepGroupedRoom } from '@/pages/steps/StepGroupedRoom/StepGroupedRoom';\nexport { default as StepHotel } from '@/pages/steps/StepHotel/StepHotel';\nexport { default as StepRoom } from '@/pages/steps/StepRoom/StepRoom';\nexport { default as StepThanks } from '@/pages/steps/StepThanks/StepThanks';\nexport * from '@/translations/Translation';\nexport { default as StepManager } from '@/util/StepManager';\n\n// Util\n\nexport type { default as ColorProfile } from '@/models/Client/Hotel/ColorProfile';\nexport * from '@/util/Color';\nexport * from '@/util/Debounce';\n\n// Hooks\n\nexport * from '@/events/index';\nexport * from '@/hooks/CurrentHotelHook';\nexport * from '@/hooks/EventHook';\n\n/** @deprecated use `roomstay.events` instead */\nexport { default as RoomstayEventManager } from '@/events/RoomstayEventManager';\n\nexport const events = {\n on: RoomstayEventManager.addEvent,\n raise: RoomstayEventManager.raise,\n};\n\nexport * from './config';\n\ndeclare const RS_VERSION: string;\nexport const Version = RS_VERSION;\n\nStepManager.currentSteps = {\n 0: StepDate,\n 10: StepRoom,\n 20: StepConfirmation,\n 30: StepThanks,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: Look into resolving this.\nimport ReactRaw from 'react';\n\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport StepDate from '@/pages/steps/StepDate/StepDate';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport StepThanks from '@/pages/steps/StepThanks/StepThanks';\nimport StepManager from '@/util/StepManager';\n\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport { default as AutoAutoHeight } from '@/animations/AutoAutoHeight';\nexport * from '@/components/generic/Alert';\nexport { default as Alert } from '@/components/generic/Alert';\nexport { default as BEButton } from '@/components/generic/BEButton';\nexport { EBookingWizardOverlayDirection, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\nexport { default as Checkbox } from '@/components/generic/Checkbox/Checkbox';\nexport { default as Currency } from '@/components/generic/Currency';\nexport { default as Headline } from '@/components/generic/Headline';\nexport { default as Icon } from '@/components/generic/Icon/Icon';\nexport * from '@/components/generic/Icon/Icon';\nexport { default as InputGroup } from '@/components/generic/InputGroup/InputGroup';\nexport { default as LineBreak } from '@/components/generic/LineBreak';\nexport { default as RadioFields } from '@/components/generic/radio/RadioFields';\nexport * from '@/components/generic/Select/index';\nexport * from '@/components/generic/Text';\nexport { default as TextArea } from '@/components/generic/TextArea';\nexport { default as TextBox } from '@/components/generic/TextBox';\nexport { default as AddonsNotFoundBlock, BE_NO_ADDONS_FOUND_BLOCK } from '@/components/steps/addons/AddonsNotFoundBlock';\nexport * from '@/components/steps/confirmation/StepConfirmationCommentsComponent';\nexport { default as StepConfirmationCountrySelector } from '@/components/steps/confirmation/StepConfirmationCountrySelector';\nexport { BE_OCCUPANCY_WARNING_BLOCK, default as OccupancyWarningBlock } from '@/components/steps/date/OccupancyWarningBlock';\nexport type { HotelInfoPerkRowProps } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_HOTEL_INFO_PERK_ROW } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { default as HotelInfoPerksRow } from '@/components/steps/hotel/HotelInfoPerksRow';\nexport { BE_NO_ROOMS_FOUND_BLOCK } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { default as NoRoomsFoundBlock } from '@/components/steps/room/NoRoomsFoundBlock';\nexport { BE_RATES_NOT_FOUND_BLOCK, default as RatesNotFoundBlock } from '@/components/steps/room/RatesNotFoundBlock';\nexport type { RoomModalPerkRowProps } from '@/components/steps/room/RoomModalPerkRow';\nexport { BE_ROOM_MODAL_PERK_ROW } from '@/components/steps/room/RoomModalPerkRow';\nexport { default as RoomModalPerkRow } from '@/components/steps/room/RoomModalPerkRow';\nexport * from '@/components/steps/room/StepRoomBestRateAlert';\nexport { default as StepNoRoomBestRateAlert } from '@/components/steps/room/StepRoomBestRateAlert';\nexport * from '@/components/summary/BESummary';\nexport * from '@/components/summary/BESummaryPerkBlock';\nexport * from '@/engines/BookingWizardEngine/BookingWizardEngine';\nexport * from '@/engines/CustomEngine/CustomEngine';\nexport * from '@/engines/FullPageBookingEngine/FullPageBookingEngine';\nexport * from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nexport * from '@/engines/MemberPortalWidget/MemberPortalWidget';\nexport * from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\n\n// Loaders\nexport { default as SmallSpinner } from '@/components/generic/loader/SmallSpinner';\n\n// Providers\nexport * from '@/providers/CurrencyProvider';\nexport { default as CurrencyProvider } from '@/providers/CurrencyProvider';\nexport { default as FeatureProvider } from '@/providers/FeatureProvider';\nexport * from '@/providers/LanguageProvider';\nexport * from '@/providers/PromotionProvider';\nexport { default as RatePillProvider } from '@/providers/RatePillProvider';\nexport { RoomSort } from '@/providers/RoomSortProvider';\nexport { default as LocalStorageProvider } from '@/providers/storage/LocalStorageProvider';\nexport { default as SessionProvider } from '@/providers/storage/SessionProvider';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from '@/providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from '@/providers/feature/DatePickerTypeFeature';\nexport { default as DerbysoftClickTrackingFeature } from '@/providers/feature/DerbysoftClickTrackingFeature';\nexport { default as E164PhoneNumberFieldFeature } from '@/providers/feature/E164PhoneNumberFieldFeature';\nexport { default as FeaturedPromoFeature } from '@/providers/feature/FeaturedPromoFeature';\nexport { default as FullPageEngineSmallSpacingFeature } from '@/providers/feature/FullPageEngineSmallSpacingFeature';\nexport { default as GiftCardFeature } from '@/providers/feature/GiftCardFeature';\nexport { default as GuestTitleFieldFeature } from '@/providers/feature/GuestTitleFieldFeature';\nexport { default as HotelGroupFeature } from '@/providers/feature/HotelGroupFeature';\nexport { default as InlineAddonStepFeature } from '@/providers/feature/InlineAddonStepFeature';\nexport { default as MemberPortalFeature } from '@/providers/feature/MemberPortalFeature';\nexport { default as PlanPayPricePreviewFeature } from '@/providers/feature/PlanPayPricePreviewFeature';\nexport { default as RoomRateReadMoreVersionFeature } from '@/providers/feature/RoomRateReadMoreVersionFeature';\nexport { default as RoomUpsellFeature } from '@/providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from '@/providers/feature/ShowIATANumberOnCheckoutFeature';\n\n// Contexts\nexport { registerReplacement, withDI } from '@/providers/DIProvider';\nexport * from '@/providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from '@/providers/RoomstayThemeEngine';\nexport * from '@/util/Analytics/Analytics';\nexport * from '@/util/Analytics/GoogleAnalytics4';\nexport * from '@/util/Analytics/UniversalAnalytics';\nexport { default as DataLayer } from '@/util/DataLayer';\nexport * from '@/util/DataLayer';\nexport * from '@/util/DefaultValueManager';\nexport * from '@/util/RouteManager';\nexport * from '@frontend/contexts';\nexport { useFormContext } from 'react-hook-form';\n\n// Models\nexport { default as API } from '@/api/BookingAPI';\nexport * from '@/models/Api/HotelDTO';\nexport * from '@/models/Api/HotelOverrideDTO';\nexport type { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nexport * from '@/models/Client/Hotel/Company';\nexport * from '@/models/Client/Hotel/DistanceUnitType.types';\nexport * from '@/models/Client/Hotel/Hotel';\nexport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nexport * from '@/models/Client/Hotel/HotelPerk';\nexport * from '@/models/Client/Hotel/WeekdayStartsOn.types';\n\n// Steps\nexport { default as StepAddon } from '@/pages/steps/StepAddon/StepAddon';\nexport { default as StepConfirmation } from '@/pages/steps/StepConfirmation/StepConfirmation';\nexport { default as StepDate } from '@/pages/steps/StepDate/StepDate';\nexport { default as StepGroupedRoom } from '@/pages/steps/StepGroupedRoom/StepGroupedRoom';\nexport { default as StepHotel } from '@/pages/steps/StepHotel/StepHotel';\nexport { default as StepRoom } from '@/pages/steps/StepRoom/StepRoom';\nexport { default as StepThanks } from '@/pages/steps/StepThanks/StepThanks';\nexport * from '@/translations/Translation';\nexport { default as StepManager } from '@/util/StepManager';\n\n// Util\n\nexport type { default as ColorProfile } from '@/models/Client/Hotel/ColorProfile';\nexport * from '@/util/Color';\nexport * from '@/util/Debounce';\n\n// Hooks\n\nexport * from '@/events/index';\nexport * from '@/hooks/CurrentHotelHook';\nexport * from '@/hooks/EventHook';\n\n/** @deprecated use `roomstay.events` instead */\nexport { default as RoomstayEventManager } from '@/events/RoomstayEventManager';\n\nexport const events = {\n on: RoomstayEventManager.addEvent,\n raise: RoomstayEventManager.raise,\n};\n\nexport * from './config';\n\ndeclare const RS_VERSION: string;\nexport const Version = RS_VERSION;\n\nStepManager.currentSteps = {\n 0: StepDate,\n 10: StepRoom,\n 20: StepConfirmation,\n 30: StepThanks,\n};\n"]}
@@ -61,6 +61,7 @@ export declare class Addon {
61
61
  */
62
62
  pricingType: EAddonPricingType;
63
63
  hideDatePicker: false;
64
+ hideQuantity: false;
64
65
  category: string;
65
66
  cancelPenalty?: string;
66
67
  guaranteeDescription?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Addon.js","sourceRoot":"/","sources":["src/models/Addon/Addon.ts"],"names":[],"mappings":"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","sourcesContent":["import { EAddonPricingType, IPriceInfo } from '@roomstay/core';\nimport dayjs, { Dayjs } from 'dayjs';\n\ninterface IAddon {\n code: string;\n\n /**\n * The SynXis CR RatePlan Code associated with the Package if the Package is restricted to certain RatePlans\n */\n ratePlanCode: string;\n\n name: string;\n\n description: string;\n\n /**\n * Whether the price for this package is included in the room rate.\n * (Always `false` unless the price is zero)\n */\n inclusive: boolean;\n\n image?: string;\n\n url?: string;\n\n /**\n * Defines how a service is priced.\n * Values:\n * Per Stay\n * Per Night\n * Per Person\n * Per Person Per Night\n */\n pricingType: EAddonPricingType;\n\n hideDatePicker?: boolean;\n\n category: string;\n\n cancelPenalty?: string;\n\n guaranteeDescription?: string;\n\n availability: { [date: string]: PriceInfo };\n\n checkInDate: dayjs.Dayjs;\n checkOutDate: dayjs.Dayjs;\n}\n\nexport const ADDON_PER_NIGHT_TYPES = [\n EAddonPricingType.PER_NIGHT,\n EAddonPricingType.PER_PERSON_PER_NIGHT,\n\n EAddonPricingType.PER_QUANTITY_NAME_PER_NIGHT,\n EAddonPricingType.PER_ROOM_QUANTITY_PER_NIGHT,\n EAddonPricingType.PER_PERSON_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT,\n\n EAddonPricingType.PER_ALL_PERSONS_PER_NIGHT,\n];\n\nexport const ADDON_PER_PERSON_PER_NIGHT_TYPES = [\n EAddonPricingType.PER_PERSON_PER_NIGHT,\n EAddonPricingType.PER_PERSON_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT,\n];\n\nexport class Addon {\n public code!: string;\n\n /**\n * The SynXis CR RatePlan Code associated with the Package if the Package is restricted to certain RatePlans\n */\n public ratePlanCode!: string;\n\n public name!: string;\n\n public description!: string;\n\n /**\n * Whether the price for this package is included in the room rate.\n * (Always `false` unless the price is zero)\n */\n public inclusive = false;\n\n public image?: string;\n\n public url?: string;\n\n /**\n * Defines how a service is priced.\n * Values:\n * Per Stay\n * Per Night\n * Per Person\n * Per Person Per Night\n */\n public pricingType!: EAddonPricingType;\n\n public hideDatePicker!: false;\n\n public category!: string;\n\n public cancelPenalty?: string;\n\n public guaranteeDescription?: string;\n\n public availability: { [date: string]: PriceInfo } = {};\n\n public selected?: boolean;\n\n public selectorDates: { text: string; value: string }[] = [];\n\n public firstDate?: string;\n\n public checkInDate!: dayjs.Dayjs;\n public checkOutDate!: dayjs.Dayjs;\n\n public nights!: number;\n\n public order?: number;\n\n public constructor(props?: IAddon) {\n if (props) {\n this.applyData(props);\n }\n }\n\n public static fromData(data: any) {\n const addon = new this();\n\n addon.applyData(data);\n\n return addon;\n }\n\n public applyData(data: IAddon) {\n Object.keys(data).map((key: any) => {\n (this as any)[key] = (data as any)[key];\n }, this);\n\n let first = true;\n for (const date in this.availability) {\n if (!Object.prototype.hasOwnProperty.call(this.availability, date)) {\n continue;\n }\n\n const day = dayjs(date, 'YYYY-MM-DD');\n this.selectorDates.push({ text: day.format('D MMM'), value: date });\n if (first) {\n this.firstDate = date;\n first = false;\n }\n\n const priceInfo = this.availability[date];\n priceInfo.selectorTimes = [];\n priceInfo.timeSlots?.forEach((slot) => {\n const timeRegExp = /T(\\d{2}):(\\d{2}):(\\d{2})$/;\n const startTime = slot.startTime?.match(timeRegExp);\n const endTime = slot.endTime?.match(timeRegExp);\n\n if (startTime && endTime) {\n const start = dayjs().hour(parseInt(startTime[1], 10)).minute(parseInt(startTime[2], 10)).second(parseInt(startTime[3], 10));\n const end = dayjs().hour(parseInt(endTime[1], 10)).minute(parseInt(endTime[2], 10)).second(parseInt(endTime[3], 10));\n\n const [hours, minutes, seconds] = (slot.increment as string).split(':').map((it) => parseInt(it, 10));\n\n const increment = (time: Dayjs) => time.add(hours, 'hour').add(minutes, 'minute').add(seconds, 'second');\n\n for (let time = start; time.isBefore(end, 'second'); time = increment(time)) {\n (priceInfo.selectorTimes as { text: string; value: string }[]).push({ text: time.format('h:mma'), value: time.format('THH:mm:ss') });\n }\n }\n });\n }\n\n if (data.checkInDate && data.checkOutDate) {\n this.nights = data.checkOutDate.diff(data.checkInDate, 'day');\n }\n }\n}\n\nexport type PriceInfo = IPriceInfo & {\n fee?: number;\n adultFee?: number;\n childFee?: number;\n selectorTimes?: { text: string; value: string }[];\n};\n"]}
1
+ {"version":3,"file":"Addon.js","sourceRoot":"/","sources":["src/models/Addon/Addon.ts"],"names":[],"mappings":"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","sourcesContent":["import { EAddonPricingType, IPriceInfo } from '@roomstay/core';\nimport dayjs, { Dayjs } from 'dayjs';\n\ninterface IAddon {\n code: string;\n\n /**\n * The SynXis CR RatePlan Code associated with the Package if the Package is restricted to certain RatePlans\n */\n ratePlanCode: string;\n\n name: string;\n\n description: string;\n\n /**\n * Whether the price for this package is included in the room rate.\n * (Always `false` unless the price is zero)\n */\n inclusive: boolean;\n\n image?: string;\n\n url?: string;\n\n /**\n * Defines how a service is priced.\n * Values:\n * Per Stay\n * Per Night\n * Per Person\n * Per Person Per Night\n */\n pricingType: EAddonPricingType;\n\n hideDatePicker?: boolean;\n\n category: string;\n\n cancelPenalty?: string;\n\n guaranteeDescription?: string;\n\n availability: { [date: string]: PriceInfo };\n\n checkInDate: dayjs.Dayjs;\n checkOutDate: dayjs.Dayjs;\n}\n\nexport const ADDON_PER_NIGHT_TYPES = [\n EAddonPricingType.PER_NIGHT,\n EAddonPricingType.PER_PERSON_PER_NIGHT,\n\n EAddonPricingType.PER_QUANTITY_NAME_PER_NIGHT,\n EAddonPricingType.PER_ROOM_QUANTITY_PER_NIGHT,\n EAddonPricingType.PER_PERSON_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT,\n\n EAddonPricingType.PER_ALL_PERSONS_PER_NIGHT,\n];\n\nexport const ADDON_PER_PERSON_PER_NIGHT_TYPES = [\n EAddonPricingType.PER_PERSON_PER_NIGHT,\n EAddonPricingType.PER_PERSON_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_ADULT_OCCUPANCY_PER_NIGHT,\n EAddonPricingType.PER_CHILD_OCCUPANCY_PER_NIGHT,\n];\n\nexport class Addon {\n public code!: string;\n\n /**\n * The SynXis CR RatePlan Code associated with the Package if the Package is restricted to certain RatePlans\n */\n public ratePlanCode!: string;\n\n public name!: string;\n\n public description!: string;\n\n /**\n * Whether the price for this package is included in the room rate.\n * (Always `false` unless the price is zero)\n */\n public inclusive = false;\n\n public image?: string;\n\n public url?: string;\n\n /**\n * Defines how a service is priced.\n * Values:\n * Per Stay\n * Per Night\n * Per Person\n * Per Person Per Night\n */\n public pricingType!: EAddonPricingType;\n\n public hideDatePicker!: false;\n public hideQuantity!: false;\n\n public category!: string;\n\n public cancelPenalty?: string;\n\n public guaranteeDescription?: string;\n\n public availability: { [date: string]: PriceInfo } = {};\n\n public selected?: boolean;\n\n public selectorDates: { text: string; value: string }[] = [];\n\n public firstDate?: string;\n\n public checkInDate!: dayjs.Dayjs;\n public checkOutDate!: dayjs.Dayjs;\n\n public nights!: number;\n\n public order?: number;\n\n public constructor(props?: IAddon) {\n if (props) {\n this.applyData(props);\n }\n }\n\n public static fromData(data: any) {\n const addon = new this();\n\n addon.applyData(data);\n\n return addon;\n }\n\n public applyData(data: IAddon) {\n Object.keys(data).map((key: any) => {\n (this as any)[key] = (data as any)[key];\n }, this);\n\n let first = true;\n for (const date in this.availability) {\n if (!Object.prototype.hasOwnProperty.call(this.availability, date)) {\n continue;\n }\n\n const day = dayjs(date, 'YYYY-MM-DD');\n this.selectorDates.push({ text: day.format('D MMM'), value: date });\n if (first) {\n this.firstDate = date;\n first = false;\n }\n\n const priceInfo = this.availability[date];\n priceInfo.selectorTimes = [];\n priceInfo.timeSlots?.forEach((slot) => {\n const timeRegExp = /T(\\d{2}):(\\d{2}):(\\d{2})$/;\n const startTime = slot.startTime?.match(timeRegExp);\n const endTime = slot.endTime?.match(timeRegExp);\n\n if (startTime && endTime) {\n const start = dayjs().hour(parseInt(startTime[1], 10)).minute(parseInt(startTime[2], 10)).second(parseInt(startTime[3], 10));\n const end = dayjs().hour(parseInt(endTime[1], 10)).minute(parseInt(endTime[2], 10)).second(parseInt(endTime[3], 10));\n\n const [hours, minutes, seconds] = (slot.increment as string).split(':').map((it) => parseInt(it, 10));\n\n const increment = (time: Dayjs) => time.add(hours, 'hour').add(minutes, 'minute').add(seconds, 'second');\n\n for (let time = start; time.isBefore(end, 'second'); time = increment(time)) {\n (priceInfo.selectorTimes as { text: string; value: string }[]).push({ text: time.format('h:mma'), value: time.format('THH:mm:ss') });\n }\n }\n });\n }\n\n if (data.checkInDate && data.checkOutDate) {\n this.nights = data.checkOutDate.diff(data.checkInDate, 'day');\n }\n }\n}\n\nexport type PriceInfo = IPriceInfo & {\n fee?: number;\n adultFee?: number;\n childFee?: number;\n selectorTimes?: { text: string; value: string }[];\n};\n"]}
@@ -1,3 +1,4 @@
1
+ import { IGiftCardPreauthorisationDTO } from '@roomstay/core';
1
2
  import BasketRowDifferences from './BasketRowDifferences';
2
3
  export declare enum EUserProfileFormKey {
3
4
  Title = "Title",
@@ -33,6 +34,9 @@ export interface ConfirmationFormValues {
33
34
  marketingOptIn: boolean;
34
35
  privacyPolicy: boolean;
35
36
  comments?: string;
37
+ giftCardPreauth?: IGiftCardPreauthorisationDTO;
38
+ giftCardApplied?: boolean;
39
+ giftCardAmount?: number;
36
40
  }
37
41
  export interface IBookValidationResult {
38
42
  differences: BasketRowDifferences[];
@@ -1 +1 @@
1
- {"version":3,"file":"Confirmation.js","sourceRoot":"/","sources":["src/models/Confirmation.ts"],"names":[],"mappings":";;;AAEA,IAAY,mBAaX;AAbD,WAAY,mBAAmB;IAC3B,sCAAe,CAAA;IACf,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;IACnB,sCAAe,CAAA;IACf,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,oCAAa,CAAA;IACb,4CAAqB,CAAA;IACrB,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,8CAAuB,CAAA;IACvB,kDAA2B,CAAA;AAC/B,CAAC,EAbW,mBAAmB,mCAAnB,mBAAmB,QAa9B;AAED,IAAY,yBAEX;AAFD,WAAY,yBAAyB;IACjC,oDAAuB,CAAA;AAC3B,CAAC,EAFW,yBAAyB,yCAAzB,yBAAyB,QAEpC","sourcesContent":["import BasketRowDifferences from './BasketRowDifferences';\n\nexport enum EUserProfileFormKey {\n Title = 'Title',\n Forename = 'Forename',\n Surname = 'Surname',\n Email = 'Email',\n Phone = 'Phone',\n Address = 'Address',\n City = 'City',\n PostCode = 'PostCode',\n State = 'State',\n Country = 'Country',\n CountryId = 'CountryId',\n CountryCode = 'CountryCode',\n}\n\nexport enum EUserRequiredInputFormKey {\n AuxInputs = 'AuxInputs',\n}\n\nexport type TUserProfileFormValues = {\n [userProfileKey in EUserProfileFormKey]: string;\n} & { AuxInputs?: { [key: string]: string | number } } & {\n CaptureChildAge?: string[];\n};\n\nexport interface ConfirmationFormValues {\n IATANumber?: string;\n userProfiles: TUserProfileFormValues[];\n copyCheckBox?: boolean;\n paymentMethod: string; // this is the name of the handler, not an EBookingPaymentMethod!\n marketingOptIn: boolean;\n privacyPolicy: boolean;\n\n comments?: string;\n}\n\nexport interface IBookValidationResult {\n differences: BasketRowDifferences[];\n warnings: string[];\n}\n"]}
1
+ {"version":3,"file":"Confirmation.js","sourceRoot":"/","sources":["src/models/Confirmation.ts"],"names":[],"mappings":";;;AAIA,IAAY,mBAaX;AAbD,WAAY,mBAAmB;IAC3B,sCAAe,CAAA;IACf,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;IACnB,sCAAe,CAAA;IACf,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,oCAAa,CAAA;IACb,4CAAqB,CAAA;IACrB,sCAAe,CAAA;IACf,0CAAmB,CAAA;IACnB,8CAAuB,CAAA;IACvB,kDAA2B,CAAA;AAC/B,CAAC,EAbW,mBAAmB,mCAAnB,mBAAmB,QAa9B;AAED,IAAY,yBAEX;AAFD,WAAY,yBAAyB;IACjC,oDAAuB,CAAA;AAC3B,CAAC,EAFW,yBAAyB,yCAAzB,yBAAyB,QAEpC","sourcesContent":["import { IGiftCardPreauthorisationDTO } from '@roomstay/core';\n\nimport BasketRowDifferences from './BasketRowDifferences';\n\nexport enum EUserProfileFormKey {\n Title = 'Title',\n Forename = 'Forename',\n Surname = 'Surname',\n Email = 'Email',\n Phone = 'Phone',\n Address = 'Address',\n City = 'City',\n PostCode = 'PostCode',\n State = 'State',\n Country = 'Country',\n CountryId = 'CountryId',\n CountryCode = 'CountryCode',\n}\n\nexport enum EUserRequiredInputFormKey {\n AuxInputs = 'AuxInputs',\n}\n\nexport type TUserProfileFormValues = {\n [userProfileKey in EUserProfileFormKey]: string;\n} & { AuxInputs?: { [key: string]: string | number } } & {\n CaptureChildAge?: string[];\n};\n\nexport interface ConfirmationFormValues {\n IATANumber?: string;\n userProfiles: TUserProfileFormValues[];\n copyCheckBox?: boolean;\n paymentMethod: string; // this is the name of the handler, not an EBookingPaymentMethod!\n marketingOptIn: boolean;\n privacyPolicy: boolean;\n\n comments?: string;\n\n // Gift card fields\n giftCardPreauth?: IGiftCardPreauthorisationDTO;\n giftCardApplied?: boolean;\n giftCardAmount?: number;\n}\n\nexport interface IBookValidationResult {\n differences: BasketRowDifferences[];\n warnings: string[];\n}\n"]}
@@ -32,6 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
35
44
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
46
  };
@@ -39,7 +48,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
48
  exports.AccountReservationSinglePage = void 0;
40
49
  const contexts_1 = require("../../../contexts/index.js");
41
50
  const core_1 = require("@roomstay/core");
42
- const dayjs_1 = __importDefault(require("dayjs"));
43
51
  const react_1 = __importStar(require("react"));
44
52
  const react_i18next_1 = require("react-i18next");
45
53
  const react_router_dom_1 = require("react-router-dom");
@@ -158,7 +166,22 @@ const CodeNumberInformation = (props) => {
158
166
  "#",
159
167
  booking.itineraryId))));
160
168
  };
161
- const displayTime = (timeString) => (0, dayjs_1.default)().set('hours', +timeString.slice(0, 2)).set('minute', +timeString.slice(2)).format('h:mm A');
169
+ const IncludesTaxesMessage = ({ hotelId }) => {
170
+ const { getPricesIncludeFeesMessage } = (0, react_1.useContext)(contexts_1.HotelOverridesContext);
171
+ const { t } = (0, react_i18next_1.useTranslation)();
172
+ const [message, setMessage] = (0, react_1.useState)(null);
173
+ (0, react_1.useEffect)(() => {
174
+ const init = () => __awaiter(void 0, void 0, void 0, function* () {
175
+ const message = yield getPricesIncludeFeesMessage(hotelId);
176
+ setMessage(message);
177
+ });
178
+ init();
179
+ }, [hotelId, t, getPricesIncludeFeesMessage]);
180
+ if (!message)
181
+ return null;
182
+ return (react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: Color_1.Color.DarkGrey },
183
+ react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: message } })));
184
+ };
162
185
  const AccountReservationSinglePage = () => {
163
186
  var _a, _b, _c, _d, _e, _f, _g, _h;
164
187
  const { t } = (0, react_i18next_1.useTranslation)();
@@ -246,7 +269,7 @@ const AccountReservationSinglePage = () => {
246
269
  react_1.default.createElement("div", { className: "u-flex align-items-end flex-column" },
247
270
  react_1.default.createElement(Headline_1.default, { lineThrough: true, size: "large", bold: true },
248
271
  react_1.default.createElement(Currency_1.default, null, (0, core_1.calculateTotalForMemberBooking)(booking))),
249
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: Color_1.Color.DarkGrey }, t(Translation_1.Translation.Reservation.PriceNote)))),
272
+ react_1.default.createElement(IncludesTaxesMessage, { hotelId: booking.hotelId }))),
250
273
  react_1.default.createElement("div", { className: "row u-marg-top--massive@m u-marg-top--heavy@m-" },
251
274
  react_1.default.createElement("div", { className: "col-md-4 u-flex u-print-col-md-4" },
252
275
  react_1.default.createElement(Card_1.Card, { className: "w-100", title: t(Translation_1.Translation.Navigation.Menu.PaymentInformation) },