@roomstay/frontend 2.0.0-1 → 2.0.0

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 (92) hide show
  1. package/dist/201.bundle.js +1 -1
  2. package/dist/218.bundle.js +1 -1
  3. package/dist/279.bundle.js +1 -1
  4. package/dist/370.bundle.js +1 -1
  5. package/dist/449.bundle.js +1 -1
  6. package/dist/873.bundle.js +1 -1
  7. package/dist/882.bundle.js +1 -1
  8. package/dist/972.bundle.js +1 -1
  9. package/dist/main.bundle.js +1 -1
  10. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js +1 -11
  11. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js.map +1 -1
  12. package/dist/src/components/steps/confirmation/RoomContactDetails.js +2 -1
  13. package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
  14. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js +18 -12
  15. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js.map +1 -1
  16. package/dist/src/components/steps/room/RoomList.js +1 -1
  17. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  18. package/dist/src/components/steps/room/StepRoomErrorForm.js +2 -1
  19. package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
  20. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +8 -8
  21. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  22. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
  23. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.d.ts +7 -0
  24. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +31 -0
  25. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -0
  26. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +14 -7
  27. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
  28. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  29. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +12 -8
  30. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  31. package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +3 -1
  32. package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
  33. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +9 -1
  34. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  35. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +3 -2
  36. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  37. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  38. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +71 -1
  39. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  40. package/dist/src/events/RoomstayEventManager.d.ts +1 -1
  41. package/dist/src/events/RoomstayEventManager.js +23 -4
  42. package/dist/src/events/RoomstayEventManager.js.map +1 -1
  43. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.d.ts +7 -0
  44. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.js +15 -0
  45. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.js.map +1 -0
  46. package/dist/src/events/actions/Promotion/PromotionAddedEvent.d.ts +7 -0
  47. package/dist/src/events/actions/Promotion/PromotionAddedEvent.js +15 -0
  48. package/dist/src/events/actions/Promotion/PromotionAddedEvent.js.map +1 -0
  49. package/dist/src/events/actions/Promotion/PromotionClickedEvent.d.ts +7 -0
  50. package/dist/src/events/actions/Promotion/PromotionClickedEvent.js +15 -0
  51. package/dist/src/events/actions/Promotion/PromotionClickedEvent.js.map +1 -0
  52. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.d.ts +7 -0
  53. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.js +15 -0
  54. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.js.map +1 -0
  55. package/dist/src/events/index.d.ts +1 -0
  56. package/dist/src/events/index.js +1 -0
  57. package/dist/src/events/index.js.map +1 -1
  58. package/dist/src/hooks/EventHook.d.ts +1 -1
  59. package/dist/src/hooks/EventHook.js +2 -2
  60. package/dist/src/hooks/EventHook.js.map +1 -1
  61. package/dist/src/index.d.ts +2 -1
  62. package/dist/src/index.js +1 -0
  63. package/dist/src/index.js.map +1 -1
  64. package/dist/src/models/Promotion/IPromotion.type.d.ts +27 -0
  65. package/dist/src/models/Promotion/IPromotion.type.js +3 -0
  66. package/dist/src/models/Promotion/IPromotion.type.js.map +1 -0
  67. package/dist/src/pages/findReservation/FindReservation.js +2 -1
  68. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  69. package/dist/src/providers/LanguageProvider.d.ts +14 -3
  70. package/dist/src/providers/LanguageProvider.js +3 -19
  71. package/dist/src/providers/LanguageProvider.js.map +1 -1
  72. package/dist/src/providers/PromotionProvider.d.ts +14 -0
  73. package/dist/src/providers/PromotionProvider.js +213 -0
  74. package/dist/src/providers/PromotionProvider.js.map +1 -0
  75. package/dist/src/util/ObjectHelper.d.ts +4 -0
  76. package/dist/src/util/ObjectHelper.js +25 -0
  77. package/dist/src/util/ObjectHelper.js.map +1 -0
  78. package/dist/src/util/Validation.d.ts +1 -0
  79. package/dist/src/util/Validation.js +2 -1
  80. package/dist/src/util/Validation.js.map +1 -1
  81. package/dist/test.bundle.js +1 -1
  82. package/dist/tests/jest/helpers/ObjectHelper.test.d.ts +1 -0
  83. package/dist/tests/jest/helpers/ObjectHelper.test.js +72 -0
  84. package/dist/tests/jest/helpers/ObjectHelper.test.js.map +1 -0
  85. package/dist/tests/offline/entry/RSCompany.js +42 -1
  86. package/dist/tests/offline/entry/RSCompany.js.map +1 -1
  87. package/dist/vendors.bundle.js +1 -1
  88. package/package.json +1 -1
  89. package/dist/src/components/steps/confirmation/StepConfirmationPaymentDetails.d.ts +0 -8
  90. package/dist/src/components/steps/confirmation/StepConfirmationPaymentDetails.js +0 -241
  91. package/dist/src/components/steps/confirmation/StepConfirmationPaymentDetails.js.map +0 -1
  92. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +0 -41
@@ -41,20 +41,26 @@ const Select_1 = require("components/generic/Select");
41
41
  const hooks_1 = require("@frontend/hooks");
42
42
  const BasketRow_1 = require("models/BasketRow");
43
43
  const contexts_1 = require("@frontend/contexts");
44
+ const FeaturedPromoFeature_1 = require("providers/feature/FeaturedPromoFeature");
45
+ const RoomListSearchEvent_1 = require("events/actions/RoomListSearchEvent");
44
46
  const Overlay_1 = require("components/generic/Overlay/Overlay");
45
47
  function InlineRoomMiniEngineElement(props) {
46
48
  var _a;
47
49
  const { hotel } = (0, hooks_1.useCurrentHotel)();
48
50
  const basketContext = (0, react_1.useContext)(contexts_1.BasketContext);
51
+ const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
49
52
  const row = basketContext.currentBasketRows[0];
50
53
  const [isLoading, setLoading] = (0, react_1.useState)(true);
51
54
  const [ranFirstLoad, setRanFirstLoad] = (0, react_1.useState)(false);
52
55
  const [rooms, setRooms] = (0, react_1.useState)([]);
53
56
  const [isPromoModalOpen, setIsPromoModalOpen] = (0, react_1.useState)(false);
57
+ const [featuredRates, setFeaturedRates] = (0, react_1.useState)([]);
58
+ const [standardRates, setStandardRates] = (0, react_1.useState)([]);
54
59
  const [promoCode, setPromoCode] = (0, react_1.useState)(row === null || row === void 0 ? void 0 : row.getPromoCode());
55
60
  const { t } = (0, react_i18next_1.useTranslation)();
56
61
  const [ref, bounds] = (0, react_use_measure_1.default)();
57
62
  const thisElement = React.useRef();
63
+ const { raise } = (0, hooks_1.useEvent)();
58
64
  let promoCodeTooltip = '';
59
65
  if ((row === null || row === void 0 ? void 0 : row.getPromoCodeStatus()) === 'new') {
60
66
  promoCodeTooltip = row.getPromoCode() ? 'Promo Code is being checked... please wait.' : 'Set a Promo Code for a possible offer!';
@@ -91,6 +97,70 @@ function InlineRoomMiniEngineElement(props) {
91
97
  findRoomsOnClick();
92
98
  }
93
99
  }, [row === null || row === void 0 ? void 0 : row.getPromoCode()]);
100
+ (0, react_1.useEffect)(() => {
101
+ var _a, _b, _c, _d, _e, _f;
102
+ if (!(rooms && rooms.length > 0))
103
+ return;
104
+ const room = rooms[0];
105
+ let nonPromoRates = [];
106
+ let toSetFeaturedRate = [];
107
+ if (FeaturedPromoFeature_1.default.isActive()) {
108
+ for (const currentRate of room.getRates()) {
109
+ if (((_a = currentRate.promoCode) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === ((_c = (_b = basketContext.selectedBasketRow) === null || _b === void 0 ? void 0 : _b.getPromoCode()) === null || _c === void 0 ? void 0 : _c.toLowerCase())) {
110
+ toSetFeaturedRate.unshift(currentRate);
111
+ }
112
+ else {
113
+ nonPromoRates.push(currentRate);
114
+ }
115
+ }
116
+ if (toSetFeaturedRate.length > 0) {
117
+ setFeaturedRates(toSetFeaturedRate);
118
+ }
119
+ }
120
+ else {
121
+ nonPromoRates = room.getRates();
122
+ }
123
+ try {
124
+ const search = {
125
+ checkInTime: (_d = row === null || row === void 0 ? void 0 : row.getStartDate()) === null || _d === void 0 ? void 0 : _d.format('YYYY-M-D'),
126
+ checkOutTime: (_e = row === null || row === void 0 ? void 0 : row.getEndDate()) === null || _e === void 0 ? void 0 : _e.format('YYYY-M-D'),
127
+ numAdults: row === null || row === void 0 ? void 0 : row.getAdults(),
128
+ numChildren: row === null || row === void 0 ? void 0 : row.getChildren(),
129
+ numRooms: 1,
130
+ promoCode: promoCode,
131
+ };
132
+ const eventRooms = (_f = rooms === null || rooms === void 0 ? void 0 : rooms.map((room) => {
133
+ var _a, _b;
134
+ const { name, code } = room;
135
+ const foundRoom = {
136
+ name,
137
+ code,
138
+ lowestPrice: room.getLowestPrice(),
139
+ highestPrice: room.getHighestPrice(),
140
+ currency: ccx.currentCurrency,
141
+ rates: (_b = (_a = room.getRates()) === null || _a === void 0 ? void 0 : _a.map((rate) => {
142
+ const { name, code } = rate;
143
+ return {
144
+ name,
145
+ code,
146
+ price: {
147
+ averagePrice: rate.getAveragePrice(),
148
+ totalPrice: rate.getTotalPrice(),
149
+ currency: ccx.currentCurrency,
150
+ },
151
+ };
152
+ })) !== null && _b !== void 0 ? _b : [],
153
+ };
154
+ return foundRoom;
155
+ })) !== null && _f !== void 0 ? _f : [];
156
+ const event = new RoomListSearchEvent_1.RoomListSearchEvent(search, eventRooms);
157
+ raise(event);
158
+ }
159
+ catch (ex) {
160
+ console.warn(ex);
161
+ }
162
+ setStandardRates(nonPromoRates);
163
+ }, [rooms]);
94
164
  (0, react_1.useEffect)(() => {
95
165
  if (hotel === null || hotel === void 0 ? void 0 : hotel.colors) {
96
166
  // Do this manually as Guide Step manages this for Fullpage.
@@ -224,7 +294,7 @@ function InlineRoomMiniEngineElement(props) {
224
294
  React.createElement("div", { className: "u-border-rounded" }, !isLoading ? (React.createElement(AutoAutoHeight_1.default, { open: !isLoading },
225
295
  React.createElement(React.Fragment, null,
226
296
  React.createElement(BookNowPayLaterInfoBlock_1.BookNowPayLaterInfoBlock, null),
227
- rooms.length > 0 ? (React.createElement(RoomRates_1.default, { rates: rooms[0].getRates(), roomCode: rooms[0].code, getButtonLabel: getButtonLabelHandler, onAddToBasketOverride: onAddToBasketOverrideHandler })) : (React.createElement(RatesNotFound_1.default, null))))) : (React.createElement(LargeLoader_1.default, null))))));
297
+ rooms.length > 0 ? (React.createElement(RoomRates_1.default, { featuredRates: featuredRates, rates: standardRates, roomCode: rooms[0].code, getButtonLabel: getButtonLabelHandler, onAddToBasketOverride: onAddToBasketOverrideHandler })) : (React.createElement(RatesNotFound_1.default, null))))) : (React.createElement(LargeLoader_1.default, null))))));
228
298
  }, [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]);
229
299
  }
230
300
  exports.default = InlineRoomMiniEngineElement;
@@ -1 +1 @@
1
- {"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport API from 'api/BookingAPI';\nimport * as dayjs from 'dayjs';\n\nimport BEButton from 'components/generic/BEButton';\nimport FloatingDatePicker from 'components/generic/date/FloatingDatePicker';\nimport Tooltip from 'components/generic/Tooltip/Tooltip';\nimport StringHelper from 'util/StringHelper';\nimport { Translation } from 'translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport Icon, { IconType } from 'components/generic/Icon/Icon';\nimport Text, { TextType } from 'components/generic/Text';\nimport { Color } from 'util/Color';\nimport DataLayer, { InteractionType, InteractionStep } from 'util/DataLayer';\nimport RoomRates from 'components/steps/room/roomDetails/roomRates/RoomRates';\nimport LargeLoader from 'components/generic/loader/LargeLoader';\nimport { HashRouter } from 'react-router-dom';\nimport type { InlineRoomMiniEngine } from 'engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\n\nimport { NotificationContextWrapper } from 'contexts/NotificationContext';\nimport { ErrorContextWrapper } from 'contexts/ErrorContext';\nimport AutoAutoHeight from 'animations/AutoAutoHeight';\nimport RoomstayThemeEngine from 'providers/RoomstayThemeEngine';\nimport RatesNotFound from 'components/steps/room/RatesNotFound';\nimport { useContext, useState, useEffect, useMemo } from 'react';\nimport useMeasure from 'react-use-measure';\nimport { RoomRate } from 'models/Room/RoomRate';\nimport { BookNowPayLaterInfoBlock } from 'components/generic/BookNowPayLaterInfoBlock';\nimport StepConfirmation from 'pages/steps/StepConfirmation/StepConfirmation';\n\nimport PromoCodeInput from 'components/generic/PromoCodeInput';\nimport Select from 'components/generic/Select';\nimport { Room } from 'models/Room/Room';\n\nimport { useCurrentHotel } from '@frontend/hooks';\n\nimport BasketRow from 'models/BasketRow';\n\nimport { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContextWrapper } from '@frontend/contexts';\nimport { Overlay } from 'components/generic/Overlay/Overlay';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { hotel } = useCurrentHotel();\n\n const basketContext = useContext(BasketContext);\n\n const row = basketContext.currentBasketRows[0];\n const [isLoading, setLoading] = useState(true);\n const [ranFirstLoad, setRanFirstLoad] = useState(false);\n const [rooms, setRooms] = useState<Room[]>([]);\n\n const [isPromoModalOpen, setIsPromoModalOpen] = useState(false);\n const [promoCode, setPromoCode] = useState(row?.getPromoCode());\n const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? 'Promo Code is being checked... please wait.' : 'Set a Promo Code for a possible offer!';\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = 'Successful promo code entered';\n } else {\n promoCodeTooltip = 'Error code not valid';\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel.hotelID).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms.filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row]);\n\n useEffect(() => {\n if (row) {\n findRoomsOnClick();\n }\n }, [row?.getPromoCode()]);\n\n useEffect(() => {\n if (hotel?.colors) {\n // Do this manually as Guide Step manages this for Fullpage.\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel, hotel?.colors]);\n\n const updatePeopleValues = ({ adults, children }: { adults?: number; children?: number; promoCode?: string }) => {\n if (adults && adults !== row.getAdults()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setAdults(adults);\n }\n\n if ((children || children === 0) && children !== row.getChildren()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setChildren(children);\n }\n\n basketContext.updateBasketRow(row);\n };\n\n const updateDateValues = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n if (startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n basketContext.updateBasketRow(row, false);\n }\n };\n\n if (!row?.getArrivalDate() && !row?.getDepartureDate()) {\n const today = Date.now();\n row?.setStartDate(dayjs(today));\n row?.setEndDate(dayjs(today).add(1, 'day'));\n }\n\n const isCompact = bounds.width < 1000 ? '--compact' : '';\n\n const findRoomsOnClick = async () => {\n setLoading(true);\n setRooms((await API.Availability.fetchAvailabilityData(row, hotel.hotelID)).filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return 'Book Now';\n };\n\n const updateNumberOfAdultsOnChange = (value: any) => {\n updatePeopleValues({ adults: value });\n };\n const updateNumberOfChildrenOnChange = (value: any) => {\n updatePeopleValues({ children: value });\n };\n\n const updatePromoCode = (code: string) => {\n DataLayer.instance.sendInteraction('Promo Code updated', InteractionType.FORM_FIELD, InteractionStep.ROOMS);\n\n if (row) {\n row.setPromoCode(code);\n basketContext.updateBasketRow(row);\n\n if (code) {\n setIsPromoModalOpen(false);\n }\n }\n };\n\n const onAddToBasketOverrideHandler = (rate: RoomRate) => {\n row.setRate(rate);\n basketContext.updateBasketRow(row);\n DataLayer.instance.sendRoomRateAddToCart(rate, row.getNumberOfDays(), row.getStartDate(), row.getEndDate());\n\n const session = props.engine.getSessionProvider();\n session\n .updateSession({\n step: StepConfirmation.getName(), // TODO:\n })\n .then(() => {\n // TODO: Remove this URL coupling\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${StepConfirmation.getStepUrl()}?session=${session.getCurrentSessionID()}`, '_self');\n });\n };\n const openPromoModalOnClick = () => {\n setIsPromoModalOpen(true);\n };\n const setPromoCodeOnClose = () => {\n setPromoCode(row?.getPromoCode());\n setIsPromoModalOpen(false);\n };\n const cancelPromoPopupOnClick = () => {\n DataLayer.instance.sendInteraction('Cancel Promo Popup', InteractionType.BUTTON, InteractionStep.ROOMS);\n setIsPromoModalOpen(false);\n };\n\n const changePromoCode = (val: any) => {\n updatePromoCode(val);\n };\n\n const maxOccupancy = hotel?.maxOccupancy ?? 1;\n\n return useMemo(\n () => (\n <>\n <div className={`room-builder-progress ${isCompact}`}>\n <div className={`u-flex w-100 flex-wrap room-builder-progress--item --current`} ref={ref}>\n <div className=\"u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-\">\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className=\"u-w-100@xl- room-builder-progress--value u-marg-left--none\"\n >\n <Tooltip title=\"Select Arrival and departure dates by clicking here\" wrapperClasses={'u-w-100@xl-'}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer\">\n <Text color={row?.getArrivalDate() ? Color.Accent : Color.Graphite} className=\"u-mw-75 u-align-center\" bold={!!row?.getArrivalDate()}>\n <span>{row?.getArrivalDate() ? row.getArrivalDate() : 'Arrival Date'}</span>\n </Text>\n <Icon icon={IconType.ArrowRight2} />\n <Text\n color={row?.getDepartureDate() ? Color.Accent : Color.Graphite}\n className=\"u-marg-right u-mw-75 u-align-center\"\n bold={!!row?.getDepartureDate()}\n >\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n </Tooltip>\n </FloatingDatePicker>\n <Tooltip title=\"Update number of adults\" wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfAdultsOnChange}\n items={[...Array(maxOccupancy - (row?.getChildren() ? row.getChildren() : 0))].map((v: any, value: number) => {\n value += 1;\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Adult, t),\n value,\n };\n })}\n />\n </div>\n </Tooltip>\n <Tooltip title=\"Update number of children\" wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfChildrenOnChange}\n items={[...Array(maxOccupancy + 1 - (row?.getAdults() ? row.getAdults() : 0))].map((v: any, value: number) => {\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Child, t),\n value,\n };\n })}\n />\n </div>\n </Tooltip>\n <Tooltip title={promoCodeTooltip} wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value u-cursor-pointer\" ref={thisElement} onClick={openPromoModalOnClick}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl-\">\n <Text className=\"u-pad-right--light\" type={TextType.Body} color={row?.getPromoCode() ? row?.getPromoCodeColour() : Color.Navy}>\n {row?.getPromoCode() ? row?.getPromoCode() : 'Promo Code'}\n </Text>\n <Icon icon={IconType.Dropdown} color={Color.DarkGrey} />\n </div>\n </div>\n </Tooltip>\n <Overlay open={isPromoModalOpen} container={RoomstayThemeEngine.EngineContainer} followElement={thisElement.current} onClose={setPromoCodeOnClose}>\n <div className=\"u-pad--heavy\">\n <div>\n <PromoCodeInput\n value={basketContext.selectedBasketRow?.getPromoCode()}\n onChange={changePromoCode}\n valid={\n basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new'\n ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid'\n : null\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText={true} size=\"small\" onClick={cancelPromoPopupOnClick}>\n Cancel\n </BEButton>\n </div>\n </div>\n </Overlay>\n </div>\n <div className={`u-flex flex-xl-nowrap flex-row ${isCompact ? 'w-100' : ''}`}>\n <BEButton filled={true} primary={true} isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n Check Rates\n </BEButton>\n </div>\n </div>\n <div className=\"u-border-rounded\">\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n rates={rooms[0].getRates()}\n roomCode={rooms[0].code}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n />\n ) : (\n <RatesNotFound />\n )}\n </>\n </AutoAutoHeight>\n ) : (\n <LargeLoader />\n )}\n </div>\n </div>\n </>\n ),\n [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]\n );\n}\n\nexport const renderInlineRoomMiniEngineElement = (container: Element, engine: InlineRoomMiniEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <HashRouter>\n <NotificationContextWrapper>\n <ErrorContextWrapper>\n <CompanyContextWrapper configCompany={engine.getConfig().company}>\n <BasketContextWrapper>\n <InlineRoomMiniEngineElement engine={engine} />\n </BasketContextWrapper>\n </CompanyContextWrapper>\n </ErrorContextWrapper>\n </NotificationContextWrapper>\n </HashRouter>\n </BookingEngineContextWrapper>,\n container\n );\n};\n"]}
1
+ {"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport API from 'api/BookingAPI';\nimport * as dayjs from 'dayjs';\n\nimport BEButton from 'components/generic/BEButton';\nimport FloatingDatePicker from 'components/generic/date/FloatingDatePicker';\nimport Tooltip from 'components/generic/Tooltip/Tooltip';\nimport StringHelper from 'util/StringHelper';\nimport { Translation } from 'translations/Translation';\nimport { useTranslation } from 'react-i18next';\nimport Icon, { IconType } from 'components/generic/Icon/Icon';\nimport Text, { TextType } from 'components/generic/Text';\nimport { Color } from 'util/Color';\nimport DataLayer, { InteractionType, InteractionStep } from 'util/DataLayer';\nimport RoomRates from 'components/steps/room/roomDetails/roomRates/RoomRates';\nimport LargeLoader from 'components/generic/loader/LargeLoader';\nimport { HashRouter } from 'react-router-dom';\nimport type { InlineRoomMiniEngine } from 'engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\n\nimport { NotificationContextWrapper } from 'contexts/NotificationContext';\nimport { ErrorContextWrapper } from 'contexts/ErrorContext';\nimport AutoAutoHeight from 'animations/AutoAutoHeight';\nimport RoomstayThemeEngine from 'providers/RoomstayThemeEngine';\nimport RatesNotFound from 'components/steps/room/RatesNotFound';\nimport { useContext, useState, useEffect, useMemo } from 'react';\nimport useMeasure from 'react-use-measure';\nimport { RoomRate } from 'models/Room/RoomRate';\nimport { BookNowPayLaterInfoBlock } from 'components/generic/BookNowPayLaterInfoBlock';\nimport StepConfirmation from 'pages/steps/StepConfirmation/StepConfirmation';\n\nimport PromoCodeInput from 'components/generic/PromoCodeInput';\nimport Select from 'components/generic/Select';\nimport { Room } from 'models/Room/Room';\n\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\n\nimport BasketRow from 'models/BasketRow';\n\nimport { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContext, CompanyContextWrapper } from '@frontend/contexts';\nimport FeaturedPromoFeature from 'providers/feature/FeaturedPromoFeature';\nimport { SearchParameters } from 'models/SearchParameters';\nimport { RoomListSearch } from 'models/RoomListSearch';\nimport { RoomListSearchEvent } from 'events/actions/RoomListSearchEvent';\nimport { Overlay } from 'components/generic/Overlay/Overlay';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { hotel } = useCurrentHotel();\n\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const row = basketContext.currentBasketRows[0];\n const [isLoading, setLoading] = useState(true);\n const [ranFirstLoad, setRanFirstLoad] = useState(false);\n const [rooms, setRooms] = useState<Room[]>([]);\n\n const [isPromoModalOpen, setIsPromoModalOpen] = useState(false);\n\n const [featuredRates, setFeaturedRates] = useState<RoomRate[]>([]);\n const [standardRates, setStandardRates] = useState<RoomRate[]>([]);\n\n const [promoCode, setPromoCode] = useState(row?.getPromoCode());\n const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef();\n\n const { raise } = useEvent();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? 'Promo Code is being checked... please wait.' : 'Set a Promo Code for a possible offer!';\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = 'Successful promo code entered';\n } else {\n promoCodeTooltip = 'Error code not valid';\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel.hotelID).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms.filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row]);\n\n useEffect(() => {\n if (row) {\n findRoomsOnClick();\n }\n }, [row?.getPromoCode()]);\n\n useEffect(() => {\n if (!(rooms && rooms.length > 0)) return;\n\n const room = rooms[0];\n\n let nonPromoRates: RoomRate[] = [];\n let toSetFeaturedRate: RoomRate[] = [];\n\n if (FeaturedPromoFeature.isActive()) {\n for (const currentRate of room.getRates()) {\n if (currentRate.promoCode?.toLowerCase() === basketContext.selectedBasketRow?.getPromoCode()?.toLowerCase()) {\n toSetFeaturedRate.unshift(currentRate);\n } else {\n nonPromoRates.push(currentRate);\n }\n }\n\n if (toSetFeaturedRate.length > 0) {\n setFeaturedRates(toSetFeaturedRate);\n }\n } else {\n nonPromoRates = room.getRates();\n }\n\n try {\n const search: SearchParameters = {\n checkInTime: row?.getStartDate()?.format('YYYY-M-D'),\n checkOutTime: row?.getEndDate()?.format('YYYY-M-D'),\n numAdults: row?.getAdults(),\n numChildren: row?.getChildren(),\n numRooms: 1,\n promoCode: promoCode,\n };\n\n const eventRooms: RoomListSearch[] =\n rooms?.map((room) => {\n const { name, code } = room;\n\n const foundRoom: RoomListSearch = {\n name,\n code,\n lowestPrice: room.getLowestPrice(),\n highestPrice: room.getHighestPrice(),\n currency: ccx.currentCurrency,\n\n rates:\n room.getRates()?.map((rate) => {\n const { name, code } = rate;\n return {\n name,\n code,\n\n price: {\n averagePrice: rate.getAveragePrice(),\n totalPrice: rate.getTotalPrice(),\n currency: ccx.currentCurrency,\n },\n };\n }) ?? [],\n };\n\n return foundRoom;\n }) ?? [];\n\n const event = new RoomListSearchEvent(search, eventRooms);\n raise(event);\n } catch (ex) {\n console.warn(ex);\n }\n\n setStandardRates(nonPromoRates);\n }, [rooms]);\n\n useEffect(() => {\n if (hotel?.colors) {\n // Do this manually as Guide Step manages this for Fullpage.\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel, hotel?.colors]);\n\n const updatePeopleValues = ({ adults, children }: { adults?: number; children?: number; promoCode?: string }) => {\n if (adults && adults !== row.getAdults()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setAdults(adults);\n }\n\n if ((children || children === 0) && children !== row.getChildren()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setChildren(children);\n }\n\n basketContext.updateBasketRow(row);\n };\n\n const updateDateValues = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n if (startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n basketContext.updateBasketRow(row, false);\n }\n };\n\n if (!row?.getArrivalDate() && !row?.getDepartureDate()) {\n const today = Date.now();\n row?.setStartDate(dayjs(today));\n row?.setEndDate(dayjs(today).add(1, 'day'));\n }\n\n const isCompact = bounds.width < 1000 ? '--compact' : '';\n\n const findRoomsOnClick = async () => {\n setLoading(true);\n setRooms((await API.Availability.fetchAvailabilityData(row, hotel.hotelID)).filter((room) => room.code === props.engine.getRoomCode()));\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return 'Book Now';\n };\n\n const updateNumberOfAdultsOnChange = (value: any) => {\n updatePeopleValues({ adults: value });\n };\n const updateNumberOfChildrenOnChange = (value: any) => {\n updatePeopleValues({ children: value });\n };\n\n const updatePromoCode = (code: string) => {\n DataLayer.instance.sendInteraction('Promo Code updated', InteractionType.FORM_FIELD, InteractionStep.ROOMS);\n\n if (row) {\n row.setPromoCode(code);\n basketContext.updateBasketRow(row);\n\n if (code) {\n setIsPromoModalOpen(false);\n }\n }\n };\n\n const onAddToBasketOverrideHandler = (rate: RoomRate) => {\n row.setRate(rate);\n basketContext.updateBasketRow(row);\n DataLayer.instance.sendRoomRateAddToCart(rate, row.getNumberOfDays(), row.getStartDate(), row.getEndDate());\n\n const session = props.engine.getSessionProvider();\n session\n .updateSession({\n step: StepConfirmation.getName(), // TODO:\n })\n .then(() => {\n // TODO: Remove this URL coupling\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${StepConfirmation.getStepUrl()}?session=${session.getCurrentSessionID()}`, '_self');\n });\n };\n const openPromoModalOnClick = () => {\n setIsPromoModalOpen(true);\n };\n const setPromoCodeOnClose = () => {\n setPromoCode(row?.getPromoCode());\n setIsPromoModalOpen(false);\n };\n const cancelPromoPopupOnClick = () => {\n DataLayer.instance.sendInteraction('Cancel Promo Popup', InteractionType.BUTTON, InteractionStep.ROOMS);\n setIsPromoModalOpen(false);\n };\n\n const changePromoCode = (val: any) => {\n updatePromoCode(val);\n };\n\n const maxOccupancy = hotel?.maxOccupancy ?? 1;\n\n return useMemo(\n () => (\n <>\n <div className={`room-builder-progress ${isCompact}`}>\n <div className={`u-flex w-100 flex-wrap room-builder-progress--item --current`} ref={ref}>\n <div className=\"u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-\">\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className=\"u-w-100@xl- room-builder-progress--value u-marg-left--none\"\n >\n <Tooltip title=\"Select Arrival and departure dates by clicking here\" wrapperClasses={'u-w-100@xl-'}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer\">\n <Text color={row?.getArrivalDate() ? Color.Accent : Color.Graphite} className=\"u-mw-75 u-align-center\" bold={!!row?.getArrivalDate()}>\n <span>{row?.getArrivalDate() ? row.getArrivalDate() : 'Arrival Date'}</span>\n </Text>\n <Icon icon={IconType.ArrowRight2} />\n <Text\n color={row?.getDepartureDate() ? Color.Accent : Color.Graphite}\n className=\"u-marg-right u-mw-75 u-align-center\"\n bold={!!row?.getDepartureDate()}\n >\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n </Tooltip>\n </FloatingDatePicker>\n <Tooltip title=\"Update number of adults\" wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfAdultsOnChange}\n items={[...Array(maxOccupancy - (row?.getChildren() ? row.getChildren() : 0))].map((v: any, value: number) => {\n value += 1;\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Adult, t),\n value,\n };\n })}\n />\n </div>\n </Tooltip>\n <Tooltip title=\"Update number of children\" wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select\n onChange={updateNumberOfChildrenOnChange}\n items={[...Array(maxOccupancy + 1 - (row?.getAdults() ? row.getAdults() : 0))].map((v: any, value: number) => {\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Child, t),\n value,\n };\n })}\n />\n </div>\n </Tooltip>\n <Tooltip title={promoCodeTooltip} wrapperClasses={'u-w-100@xl-'}>\n <div className=\"room-builder-progress--value u-cursor-pointer\" ref={thisElement} onClick={openPromoModalOnClick}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl-\">\n <Text className=\"u-pad-right--light\" type={TextType.Body} color={row?.getPromoCode() ? row?.getPromoCodeColour() : Color.Navy}>\n {row?.getPromoCode() ? row?.getPromoCode() : 'Promo Code'}\n </Text>\n <Icon icon={IconType.Dropdown} color={Color.DarkGrey} />\n </div>\n </div>\n </Tooltip>\n <Overlay open={isPromoModalOpen} container={RoomstayThemeEngine.EngineContainer} followElement={thisElement.current} onClose={setPromoCodeOnClose}>\n <div className=\"u-pad--heavy\">\n <div>\n <PromoCodeInput\n value={basketContext.selectedBasketRow?.getPromoCode()}\n onChange={changePromoCode}\n valid={\n basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new'\n ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid'\n : null\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText={true} size=\"small\" onClick={cancelPromoPopupOnClick}>\n Cancel\n </BEButton>\n </div>\n </div>\n </Overlay>\n </div>\n <div className={`u-flex flex-xl-nowrap flex-row ${isCompact ? 'w-100' : ''}`}>\n <BEButton filled={true} primary={true} isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n Check Rates\n </BEButton>\n </div>\n </div>\n <div className=\"u-border-rounded\">\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n featuredRates={featuredRates}\n rates={standardRates}\n roomCode={rooms[0].code}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n />\n ) : (\n <RatesNotFound />\n )}\n </>\n </AutoAutoHeight>\n ) : (\n <LargeLoader />\n )}\n </div>\n </div>\n </>\n ),\n [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]\n );\n}\n\nexport const renderInlineRoomMiniEngineElement = (container: Element, engine: InlineRoomMiniEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <HashRouter>\n <NotificationContextWrapper>\n <ErrorContextWrapper>\n <CompanyContextWrapper configCompany={engine.getConfig().company}>\n <BasketContextWrapper>\n <InlineRoomMiniEngineElement engine={engine} />\n </BasketContextWrapper>\n </CompanyContextWrapper>\n </ErrorContextWrapper>\n </NotificationContextWrapper>\n </HashRouter>\n </BookingEngineContextWrapper>,\n container\n );\n};\n"]}
@@ -7,7 +7,7 @@ export type RoomstayEventCallback = (event: RoomstayEvent) => Promise<void | boo
7
7
  */
8
8
  declare class RoomstayEventManager {
9
9
  raise(event: RoomstayEvent): Promise<void>;
10
- addEvent(eventType: RoomstayEvent | string, callback: RoomstayEventCallback): boolean;
10
+ addEvent(eventType: RoomstayEvent | string, callback: RoomstayEventCallback, id?: string): boolean;
11
11
  }
12
12
  declare const manager: RoomstayEventManager;
13
13
  export default manager;
@@ -27,9 +27,9 @@ class RoomstayEventManager {
27
27
  }
28
28
  const name = eventPrototype.constructor.getLabel();
29
29
  if (GlobalRoomstayEvents[name]) {
30
- for (const callback of GlobalRoomstayEvents[name]) {
30
+ for (const storedEvent of GlobalRoomstayEvents[name]) {
31
31
  try {
32
- yield callback(event);
32
+ yield storedEvent.callback(event);
33
33
  }
34
34
  catch (ex) {
35
35
  // TODO: Custom logger
@@ -39,7 +39,7 @@ class RoomstayEventManager {
39
39
  }
40
40
  });
41
41
  }
42
- addEvent(eventType, callback) {
42
+ addEvent(eventType, callback, id) {
43
43
  var _a, _b;
44
44
  if (!callback || typeof callback !== 'function') {
45
45
  return false;
@@ -58,7 +58,26 @@ class RoomstayEventManager {
58
58
  if (!Object.prototype.hasOwnProperty.call(GlobalRoomstayEvents, name)) {
59
59
  GlobalRoomstayEvents[name] = [];
60
60
  }
61
- GlobalRoomstayEvents[name].push(callback);
61
+ const event = {
62
+ id: null,
63
+ callback,
64
+ };
65
+ if (id && typeof id === 'string') {
66
+ event.id = id;
67
+ const eventIndex = (() => {
68
+ const numOfEvents = GlobalRoomstayEvents[name].length;
69
+ for (let i = 0; i < numOfEvents; i++) {
70
+ if (GlobalRoomstayEvents[name][i].id === id) {
71
+ return i;
72
+ }
73
+ }
74
+ return numOfEvents;
75
+ })();
76
+ GlobalRoomstayEvents[name][eventIndex] = event;
77
+ }
78
+ else {
79
+ GlobalRoomstayEvents[name].push(event);
80
+ }
62
81
  return true;
63
82
  }
64
83
  catch (ex) {
@@ -1 +1 @@
1
- {"version":3,"file":"RoomstayEventManager.js","sourceRoot":"/","sources":["src/events/RoomstayEventManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,wDAAqD;AAKrD,MAAM,oBAAoB,GAAgD,EAAE,CAAC;AAE7E;;;;GAIG;AACH,MAAM,oBAAoB;IACT,KAAK,CAAC,KAAoB;;;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA,MAAA,MAAA,cAAc,CAAC,WAAW,EAAC,QAAQ,kDAAI,CAAA,EAAE;gBACrI,sBAAsB;gBACtB,MAAM,IAAI,6BAAa,CAAC,mDAAmD,CAAC,CAAC;aAChF;YAED,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;gBAC5B,KAAK,MAAM,QAAQ,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;oBAC/C,IAAI;wBACA,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACzB;oBAAC,OAAO,EAAE,EAAE;wBACT,sBAAsB;wBACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACrB;iBACJ;aACJ;;KACJ;IAEM,QAAQ,CAAC,SAAiC,EAAE,QAA+B;;QAC9E,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAC7C,OAAO,KAAK,CAAC;SAChB;QAED,IAAI;YACA,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/B,IAAI,GAAG,SAAS,CAAC;aACpB;iBAAM;gBACH,IAAI,GAAG,MAAA,MAAC,SAAkC,EAAC,QAAQ,kDAAI,CAAC;aAC3D;YAED,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE;gBACnE,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACnC;YAED,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE1C,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,EAAE,EAAE;YACT,oDAAoD;YACpD,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE3C,kBAAe,OAAO,CAAC","sourcesContent":["import { RoomstayError } from 'errors/RoomstayError';\nimport { RoomstayEvent } from 'events/RoomstayEvent';\n\nexport type RoomstayEventCallback = (event: RoomstayEvent) => Promise<void | boolean>;\n\nconst GlobalRoomstayEvents: { [name: string]: RoomstayEventCallback[] } = {};\n\n/**\n * Roomstay event manager, always used as a global object, but wrapped in a class.\n *\n * Future improvements - Adding on fail / on\n */\nclass RoomstayEventManager {\n public async raise(event: RoomstayEvent) {\n const eventPrototype = Object.getPrototypeOf(event);\n\n if (!eventPrototype || !Object.prototype.hasOwnProperty.call(eventPrototype, 'constructor') || !eventPrototype.constructor.getLabel?.()) {\n // TODO: Custom logger\n throw new RoomstayError('Failed to raise event as object passed is invalid');\n }\n\n const name = eventPrototype.constructor.getLabel();\n\n if (GlobalRoomstayEvents[name]) {\n for (const callback of GlobalRoomstayEvents[name]) {\n try {\n await callback(event);\n } catch (ex) {\n // TODO: Custom logger\n console.error(ex);\n }\n }\n }\n }\n\n public addEvent(eventType: RoomstayEvent | string, callback: RoomstayEventCallback) {\n if (!callback || typeof callback !== 'function') {\n return false;\n }\n\n try {\n let name = '';\n if (typeof eventType === 'string') {\n name = eventType;\n } else {\n name = (eventType as typeof RoomstayEvent).getLabel?.();\n }\n\n if (!name) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(GlobalRoomstayEvents, name)) {\n GlobalRoomstayEvents[name] = [];\n }\n\n GlobalRoomstayEvents[name].push(callback);\n\n return true;\n } catch (ex) {\n // TODO: Add logging if user enters something whack\n return false;\n }\n }\n}\n\nconst manager = new RoomstayEventManager();\n\nexport default manager;\n"]}
1
+ {"version":3,"file":"RoomstayEventManager.js","sourceRoot":"/","sources":["src/events/RoomstayEventManager.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,wDAAqD;AAUrD,MAAM,oBAAoB,GAAgD,EAAE,CAAC;AAE7E;;;;GAIG;AACH,MAAM,oBAAoB;IACT,KAAK,CAAC,KAAoB;;;YACnC,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA,MAAA,MAAA,cAAc,CAAC,WAAW,EAAC,QAAQ,kDAAI,CAAA,EAAE;gBACrI,sBAAsB;gBACtB,MAAM,IAAI,6BAAa,CAAC,mDAAmD,CAAC,CAAC;aAChF;YAED,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAEnD,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;gBAC5B,KAAK,MAAM,WAAW,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;oBAClD,IAAI;wBACA,MAAM,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACrC;oBAAC,OAAO,EAAE,EAAE;wBACT,sBAAsB;wBACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACrB;iBACJ;aACJ;;KACJ;IAEM,QAAQ,CAAC,SAAiC,EAAE,QAA+B,EAAE,EAAW;;QAC3F,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YAC7C,OAAO,KAAK,CAAC;SAChB;QAED,IAAI;YACA,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/B,IAAI,GAAG,SAAS,CAAC;aACpB;iBAAM;gBACH,IAAI,GAAG,MAAA,MAAC,SAAkC,EAAC,QAAQ,kDAAI,CAAC;aAC3D;YAED,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,EAAE;gBACnE,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACnC;YAED,MAAM,KAAK,GAA0B;gBACjC,EAAE,EAAE,IAAI;gBACR,QAAQ;aACX,CAAC;YAEF,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;gBAC9B,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;gBAEd,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;oBACrB,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;oBAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;wBAClC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;4BACzC,OAAO,CAAC,CAAC;yBACZ;qBACJ;oBAED,OAAO,WAAW,CAAC;gBACvB,CAAC,CAAC,EAAE,CAAC;gBAEL,oBAAoB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;aAClD;iBAAM;gBACH,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1C;YAED,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,EAAE,EAAE;YACT,oDAAoD;YACpD,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE3C,kBAAe,OAAO,CAAC","sourcesContent":["import { RoomstayError } from 'errors/RoomstayError';\nimport { RoomstayEvent } from 'events/RoomstayEvent';\n\nexport type RoomstayEventCallback = (event: RoomstayEvent) => Promise<void | boolean>;\n\ntype RoomstayEventSortType = {\n id?: string;\n callback: RoomstayEventCallback;\n};\n\nconst GlobalRoomstayEvents: { [name: string]: RoomstayEventSortType[] } = {};\n\n/**\n * Roomstay event manager, always used as a global object, but wrapped in a class.\n *\n * Future improvements - Adding on fail / on\n */\nclass RoomstayEventManager {\n public async raise(event: RoomstayEvent) {\n const eventPrototype = Object.getPrototypeOf(event);\n\n if (!eventPrototype || !Object.prototype.hasOwnProperty.call(eventPrototype, 'constructor') || !eventPrototype.constructor.getLabel?.()) {\n // TODO: Custom logger\n throw new RoomstayError('Failed to raise event as object passed is invalid');\n }\n\n const name = eventPrototype.constructor.getLabel();\n\n if (GlobalRoomstayEvents[name]) {\n for (const storedEvent of GlobalRoomstayEvents[name]) {\n try {\n await storedEvent.callback(event);\n } catch (ex) {\n // TODO: Custom logger\n console.error(ex);\n }\n }\n }\n }\n\n public addEvent(eventType: RoomstayEvent | string, callback: RoomstayEventCallback, id?: string) {\n if (!callback || typeof callback !== 'function') {\n return false;\n }\n\n try {\n let name = '';\n if (typeof eventType === 'string') {\n name = eventType;\n } else {\n name = (eventType as typeof RoomstayEvent).getLabel?.();\n }\n\n if (!name) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(GlobalRoomstayEvents, name)) {\n GlobalRoomstayEvents[name] = [];\n }\n\n const event: RoomstayEventSortType = {\n id: null,\n callback,\n };\n\n if (id && typeof id === 'string') {\n event.id = id;\n\n const eventIndex = (() => {\n const numOfEvents = GlobalRoomstayEvents[name].length;\n\n for (let i = 0; i < numOfEvents; i++) {\n if (GlobalRoomstayEvents[name][i].id === id) {\n return i;\n }\n }\n\n return numOfEvents;\n })();\n\n GlobalRoomstayEvents[name][eventIndex] = event;\n } else {\n GlobalRoomstayEvents[name].push(event);\n }\n\n return true;\n } catch (ex) {\n // TODO: Add logging if user enters something whack\n return false;\n }\n }\n}\n\nconst manager = new RoomstayEventManager();\n\nexport default manager;\n"]}
@@ -0,0 +1,7 @@
1
+ import { IPromotion } from 'models/Promotion/IPromotion.type';
2
+ import { RoomstayEvent } from '../../RoomstayEvent';
3
+ export declare class MemberOnlyFenceSignUp extends RoomstayEvent {
4
+ promotion?: IPromotion;
5
+ constructor(promotion?: IPromotion);
6
+ static getLabel(): string;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemberOnlyFenceSignUp = void 0;
4
+ const RoomstayEvent_1 = require("../../RoomstayEvent");
5
+ class MemberOnlyFenceSignUp extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor(promotion) {
7
+ super();
8
+ this.promotion = promotion;
9
+ }
10
+ static getLabel() {
11
+ return 'MemberOnlyFence/SignUp';
12
+ }
13
+ }
14
+ exports.MemberOnlyFenceSignUp = MemberOnlyFenceSignUp;
15
+ //# sourceMappingURL=MemberOnlyFenceSignUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemberOnlyFenceSignUp.js","sourceRoot":"/","sources":["src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEpD,MAAa,qBAAsB,SAAQ,6BAAa;IAEpD,YAAmB,SAAsB;QACrC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,wBAAwB,CAAC;IACpC,CAAC;CACJ;AAXD,sDAWC","sourcesContent":["import { IPromotion } from 'models/Promotion/IPromotion.type';\nimport { RoomstayEvent } from '../../RoomstayEvent';\n\nexport class MemberOnlyFenceSignUp extends RoomstayEvent {\n public promotion?: IPromotion;\n public constructor(promotion?: IPromotion) {\n super();\n\n this.promotion = promotion;\n }\n\n static getLabel(): string {\n return 'MemberOnlyFence/SignUp';\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { IPromotion } from 'models/Promotion/IPromotion.type';
2
+ import { RoomstayEvent } from '../../RoomstayEvent';
3
+ export declare class PromotionAddEvent extends RoomstayEvent {
4
+ promotion: IPromotion;
5
+ constructor(promotion: IPromotion);
6
+ static getLabel(): string;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromotionAddEvent = void 0;
4
+ const RoomstayEvent_1 = require("../../RoomstayEvent");
5
+ class PromotionAddEvent extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor(promotion) {
7
+ super();
8
+ this.promotion = promotion;
9
+ }
10
+ static getLabel() {
11
+ return 'Promotion/Add';
12
+ }
13
+ }
14
+ exports.PromotionAddEvent = PromotionAddEvent;
15
+ //# sourceMappingURL=PromotionAddedEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromotionAddedEvent.js","sourceRoot":"/","sources":["src/events/actions/Promotion/PromotionAddedEvent.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEpD,MAAa,iBAAkB,SAAQ,6BAAa;IAEhD,YAAmB,SAAqB;QACpC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ;AAXD,8CAWC","sourcesContent":["import { IPromotion } from 'models/Promotion/IPromotion.type';\nimport { RoomstayEvent } from '../../RoomstayEvent';\n\nexport class PromotionAddEvent extends RoomstayEvent {\n public promotion: IPromotion;\n public constructor(promotion: IPromotion) {\n super();\n\n this.promotion = promotion;\n }\n\n static getLabel(): string {\n return 'Promotion/Add';\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { IPromotion } from 'models/Promotion/IPromotion.type';
2
+ import { RoomstayEvent } from '../../RoomstayEvent';
3
+ export declare class PromotionClickedEvent extends RoomstayEvent {
4
+ promotion: IPromotion;
5
+ constructor(promotion: IPromotion);
6
+ static getLabel(): string;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromotionClickedEvent = void 0;
4
+ const RoomstayEvent_1 = require("../../RoomstayEvent");
5
+ class PromotionClickedEvent extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor(promotion) {
7
+ super();
8
+ this.promotion = promotion;
9
+ }
10
+ static getLabel() {
11
+ return 'Promotion/Click';
12
+ }
13
+ }
14
+ exports.PromotionClickedEvent = PromotionClickedEvent;
15
+ //# sourceMappingURL=PromotionClickedEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromotionClickedEvent.js","sourceRoot":"/","sources":["src/events/actions/Promotion/PromotionClickedEvent.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEpD,MAAa,qBAAsB,SAAQ,6BAAa;IAEpD,YAAmB,SAAqB;QACpC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,iBAAiB,CAAC;IAC7B,CAAC;CACJ;AAXD,sDAWC","sourcesContent":["import { IPromotion } from 'models/Promotion/IPromotion.type';\nimport { RoomstayEvent } from '../../RoomstayEvent';\n\nexport class PromotionClickedEvent extends RoomstayEvent {\n public promotion: IPromotion;\n public constructor(promotion: IPromotion) {\n super();\n\n this.promotion = promotion;\n }\n\n static getLabel(): string {\n return 'Promotion/Click';\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { IPromotion } from 'models/Promotion/IPromotion.type';
2
+ import { RoomstayEvent } from '../../RoomstayEvent';
3
+ export declare class PromotionRemoveEvent extends RoomstayEvent {
4
+ promotion: IPromotion;
5
+ constructor(promotion: IPromotion);
6
+ static getLabel(): string;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromotionRemoveEvent = void 0;
4
+ const RoomstayEvent_1 = require("../../RoomstayEvent");
5
+ class PromotionRemoveEvent extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor(promotion) {
7
+ super();
8
+ this.promotion = promotion;
9
+ }
10
+ static getLabel() {
11
+ return 'Promotion/Remove';
12
+ }
13
+ }
14
+ exports.PromotionRemoveEvent = PromotionRemoveEvent;
15
+ //# sourceMappingURL=PromotionRemovedEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromotionRemovedEvent.js","sourceRoot":"/","sources":["src/events/actions/Promotion/PromotionRemovedEvent.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEpD,MAAa,oBAAqB,SAAQ,6BAAa;IAEnD,YAAmB,SAAqB;QACpC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,kBAAkB,CAAC;IAC9B,CAAC;CACJ;AAXD,oDAWC","sourcesContent":["import { IPromotion } from 'models/Promotion/IPromotion.type';\nimport { RoomstayEvent } from '../../RoomstayEvent';\n\nexport class PromotionRemoveEvent extends RoomstayEvent {\n public promotion: IPromotion;\n public constructor(promotion: IPromotion) {\n super();\n\n this.promotion = promotion;\n }\n\n static getLabel(): string {\n return 'Promotion/Remove';\n }\n}\n"]}
@@ -11,3 +11,4 @@ export * from 'events/actions/RemoveFromCartEvent';
11
11
  export * from 'events/actions/InitialHotelDetailsEvent';
12
12
  export * from 'events/actions/GuestSearchEvent';
13
13
  export * from 'events/actions/RoomListSearchEvent';
14
+ export * from './actions/Promotion/PromotionAddedEvent';
@@ -27,4 +27,5 @@ __exportStar(require("events/actions/RemoveFromCartEvent"), exports);
27
27
  __exportStar(require("events/actions/InitialHotelDetailsEvent"), exports);
28
28
  __exportStar(require("events/actions/GuestSearchEvent"), exports);
29
29
  __exportStar(require("events/actions/RoomListSearchEvent"), exports);
30
+ __exportStar(require("./actions/Promotion/PromotionAddedEvent"), exports);
30
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,iEAA+C;AAC/C,sEAAoD;AACpD,kEAAgD;AAChD,kEAAgD;AAChD,mEAAiD;AACjD,wEAAsD;AACtD,+EAA6D;AAE7D,gEAA8C;AAC9C,qEAAmD;AACnD,0EAAwD;AACxD,kEAAgD;AAChD,qEAAmD","sourcesContent":["export * from 'events/views/StepCheckoutViewEvent';\nexport * from 'events/views/StepDateViewEvent';\nexport * from 'events/views/StepHotelInfoViewEvent';\nexport * from 'events/views/StepHotelViewEvent';\nexport * from 'events/views/StepAddonViewEvent';\nexport * from 'events/views/StepThanksViewEvent';\nexport * from 'events/views/FindReservationViewEvent';\nexport * from 'events/views/FindReservationResultsViewEvent';\n\nexport * from 'events/actions/AddToCartEvent';\nexport * from 'events/actions/RemoveFromCartEvent';\nexport * from 'events/actions/InitialHotelDetailsEvent';\nexport * from 'events/actions/GuestSearchEvent';\nexport * from 'events/actions/RoomListSearchEvent';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,iEAA+C;AAC/C,sEAAoD;AACpD,kEAAgD;AAChD,kEAAgD;AAChD,mEAAiD;AACjD,wEAAsD;AACtD,+EAA6D;AAE7D,gEAA8C;AAC9C,qEAAmD;AACnD,0EAAwD;AACxD,kEAAgD;AAChD,qEAAmD;AAEnD,0EAAwD","sourcesContent":["export * from 'events/views/StepCheckoutViewEvent';\nexport * from 'events/views/StepDateViewEvent';\nexport * from 'events/views/StepHotelInfoViewEvent';\nexport * from 'events/views/StepHotelViewEvent';\nexport * from 'events/views/StepAddonViewEvent';\nexport * from 'events/views/StepThanksViewEvent';\nexport * from 'events/views/FindReservationViewEvent';\nexport * from 'events/views/FindReservationResultsViewEvent';\n\nexport * from 'events/actions/AddToCartEvent';\nexport * from 'events/actions/RemoveFromCartEvent';\nexport * from 'events/actions/InitialHotelDetailsEvent';\nexport * from 'events/actions/GuestSearchEvent';\nexport * from 'events/actions/RoomListSearchEvent';\n\nexport * from './actions/Promotion/PromotionAddedEvent';\n"]}
@@ -2,5 +2,5 @@ import { RoomstayEvent } from 'events/RoomstayEvent';
2
2
  import { RoomstayEventCallback } from 'events/RoomstayEventManager';
3
3
  export declare const useEvent: () => {
4
4
  raise: (event: RoomstayEvent) => void;
5
- on: (eventType: RoomstayEvent | string, callback: RoomstayEventCallback) => void;
5
+ on: (eventType: RoomstayEvent | string, callback: RoomstayEventCallback, id?: string) => void;
6
6
  };
@@ -8,8 +8,8 @@ const useEvent = () => {
8
8
  raise: (event) => {
9
9
  RoomstayEventManager_1.default.raise(event);
10
10
  },
11
- on: (eventType, callback) => {
12
- RoomstayEventManager_1.default.addEvent(eventType, callback);
11
+ on: (eventType, callback, id) => {
12
+ RoomstayEventManager_1.default.addEvent(eventType, callback, id);
13
13
  },
14
14
  };
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"EventHook.js","sourceRoot":"/","sources":["src/hooks/EventHook.tsx"],"names":[],"mappings":";;;AACA,sEAA6E;AAE7E,8BAA8B;AACvB,MAAM,QAAQ,GAAG,GAAG,EAAE;IACzB,OAAO;QACH,KAAK,EAAE,CAAC,KAAoB,EAAE,EAAE;YAC5B,8BAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,EAAE,EAAE,CAAC,SAAiC,EAAE,QAA+B,EAAE,EAAE;YACvE,8BAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AATW,QAAA,QAAQ,YASnB","sourcesContent":["import { RoomstayEvent } from 'events/RoomstayEvent';\nimport manager, { RoomstayEventCallback } from 'events/RoomstayEventManager';\n\n// Thanks to Cerz for the idea\nexport const useEvent = () => {\n return {\n raise: (event: RoomstayEvent) => {\n manager.raise(event);\n },\n on: (eventType: RoomstayEvent | string, callback: RoomstayEventCallback) => {\n manager.addEvent(eventType, callback);\n },\n };\n};\n"]}
1
+ {"version":3,"file":"EventHook.js","sourceRoot":"/","sources":["src/hooks/EventHook.tsx"],"names":[],"mappings":";;;AACA,sEAA6E;AAE7E,8BAA8B;AACvB,MAAM,QAAQ,GAAG,GAAG,EAAE;IACzB,OAAO;QACH,KAAK,EAAE,CAAC,KAAoB,EAAE,EAAE;YAC5B,8BAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,EAAE,EAAE,CAAC,SAAiC,EAAE,QAA+B,EAAE,EAAW,EAAE,EAAE;YACpF,8BAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AATW,QAAA,QAAQ,YASnB","sourcesContent":["import { RoomstayEvent } from 'events/RoomstayEvent';\nimport manager, { RoomstayEventCallback } from 'events/RoomstayEventManager';\n\n// Thanks to Cerz for the idea\nexport const useEvent = () => {\n return {\n raise: (event: RoomstayEvent) => {\n manager.raise(event);\n },\n on: (eventType: RoomstayEvent | string, callback: RoomstayEventCallback, id?: string) => {\n manager.addEvent(eventType, callback, id);\n },\n };\n};\n"]}
@@ -34,6 +34,7 @@ export * from 'providers/CurrencyProvider';
34
34
  export { default as CurrencyProvider } from 'providers/CurrencyProvider';
35
35
  export { default as FeatureProvider } from 'providers/FeatureProvider';
36
36
  export { default as RatePillProvider } from 'providers/RatePillProvider';
37
+ export * from './providers/PromotionProvider';
37
38
  export { default as ConfirmationVerifyFeature } from 'providers/feature/ConfirmationVerifyFeature';
38
39
  export { default as DatePickerTypeFeature } from 'providers/feature/DatePickerTypeFeature';
39
40
  export { default as FeaturedPromoFeature } from 'providers/feature/FeaturedPromoFeature';
@@ -69,7 +70,7 @@ export * from 'events/index';
69
70
  /** @deprecated use `roomstay.events` instead */
70
71
  export { default as RoomstayEventManager } from './events/RoomstayEventManager';
71
72
  export declare const events: {
72
- on: (eventType: string | import("./events/RoomstayEvent").RoomstayEvent, callback: import("./events/RoomstayEventManager").RoomstayEventCallback) => boolean;
73
+ on: (eventType: string | import("./events/RoomstayEvent").RoomstayEvent, callback: import("./events/RoomstayEventManager").RoomstayEventCallback, id?: string) => boolean;
73
74
  raise: (event: import("./events/RoomstayEvent").RoomstayEvent) => Promise<void>;
74
75
  };
75
76
  export declare const Version: any;
package/dist/src/index.js CHANGED
@@ -84,6 +84,7 @@ var FeatureProvider_1 = require("providers/FeatureProvider");
84
84
  Object.defineProperty(exports, "FeatureProvider", { enumerable: true, get: function () { return FeatureProvider_1.default; } });
85
85
  var RatePillProvider_1 = require("providers/RatePillProvider");
86
86
  Object.defineProperty(exports, "RatePillProvider", { enumerable: true, get: function () { return RatePillProvider_1.default; } });
87
+ __exportStar(require("./providers/PromotionProvider"), exports);
87
88
  // Features
88
89
  var ConfirmationVerifyFeature_1 = require("providers/feature/ConfirmationVerifyFeature");
89
90
  Object.defineProperty(exports, "ConfirmationVerifyFeature", { enumerable: true, get: function () { return ConfirmationVerifyFeature_1.default; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import 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\n// TODO: Look into resolving this.\n// @ts-ignore\nimport * as ReactRaw from 'react';\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\n// @ts-ignore\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport * from 'engines/FullPageBookingEngine/FullPageBookingEngine';\nexport * from 'engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nexport * from 'engines/RecentSearchesEngine/RecentSearchesEngine';\nexport * from 'engines/CustomEngine/CustomEngine';\n\nexport { default as Icon } from 'components/generic/Icon/Icon';\nexport * from 'components/generic/Icon/Icon';\nexport * from 'components/generic/Text';\n\nexport { default as TextBox } from 'components/generic/TextBox';\nexport { default as TextArea } from 'components/generic/TextArea';\nexport { default as InputGroup } from 'components/generic/InputGroup/InputGroup';\nexport { default as RadioFields } from 'components/generic/radio/RadioFields';\nexport { default as Checkbox } from 'components/generic/Checkbox/Checkbox';\n\nexport { default as LineBreak } from 'components/generic/LineBreak';\nexport { default as AutoAutoHeight } from 'animations/AutoAutoHeight';\nexport { default as Headline } from 'components/generic/Headline';\n\nexport * from 'components/generic/Alert';\nexport { default as Alert } from 'components/generic/Alert';\nexport { default as BEButton } from 'components/generic/BEButton';\n\nexport { BE_NO_ROOMS_FOUND_BLOCK } from './components/steps/room/NoRoomsFoundBlock';\nexport { default as NoRoomsFoundBlock } from './components/steps/room/NoRoomsFoundBlock';\n\nexport { default as StepConfirmationCountrySelector } from 'components/steps/confirmation/StepConfirmationCountrySelector';\n\nexport * from 'components/steps/confirmation/StepConfirmationCommentsComponent';\nexport * from 'components/summary/BESummaryPerkBlock';\n\nexport * from 'components/summary/BESummary';\n\nexport * from 'components/steps/room/StepRoomBestRateAlert';\nexport { default as StepNoRoomBestRateAlert } from 'components/steps/room/StepRoomBestRateAlert';\n\n// Loaders\nexport { default as SmallSpinner } from 'components/generic/loader/SmallSpinner';\n\n// Providers\nexport * from 'providers/LanguageProvider';\nexport * from 'providers/CurrencyProvider';\nexport { default as CurrencyProvider } from 'providers/CurrencyProvider';\nexport { default as FeatureProvider } from 'providers/FeatureProvider';\nexport { default as RatePillProvider } from 'providers/RatePillProvider';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from 'providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from 'providers/feature/DatePickerTypeFeature';\nexport { default as FeaturedPromoFeature } from 'providers/feature/FeaturedPromoFeature';\nexport { default as InlineAddonStepFeature } from 'providers/feature/InlineAddonStepFeature';\nexport { default as RoomUpsellFeature } from 'providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from 'providers/feature/ShowIATANumberOnCheckoutFeature';\nexport { default as E164PhoneNumberFieldFeature } from 'providers/feature/E164PhoneNumberFieldFeature';\n\n// Contexts\nexport * from '@frontend/contexts';\n\nexport { default as SessionProvider } from 'providers/SessionProvider';\nexport * from 'providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from 'providers/RoomstayThemeEngine';\nexport { registerReplacement, withDI } from 'providers/DIProvider';\n\nexport { default as DataLayer } from 'util/DataLayer';\nexport * from 'util/DataLayer';\n\n// Models\nexport * from 'models/Client/Hotel/Hotel';\nexport * from 'models/Client/Hotel/HotelPerk';\n\nexport * from 'models/Client/Hotel/DistanceUnitType.types';\nexport * from 'models/Client/Hotel/WeekdayStartsOn.types';\n\nexport * from 'models/Client/Hotel/Company';\n\nexport { default as API } from 'api/BookingAPI';\n\n// Steps\nexport { default as StepManager } from 'util/StepManager';\n\nexport { default as StepAddon } from 'pages/steps/StepAddon/StepAddon';\nexport { default as StepDate } from 'pages/steps/StepDate/StepDate';\nexport { default as StepConfirmation } from 'pages/steps/StepConfirmation/StepConfirmation';\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';\n\nexport * from 'translations/Translation';\n\n// Util\n\nexport * from 'util/Color';\n\n// Hooks\n\nexport * from 'hooks/CurrentHotelHook';\nexport * from 'hooks/EventHook';\n\nexport * from 'events/index';\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\n//@ts-ignore\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":";;;;;;;;;;;;;;;;;AAAA,oFAA6E;AAC7E,4DAAqD;AACrD,4DAAqD;AACrD,kEAA2D;AAC3D,kDAA2C;AAE3C,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,wEAAiE;AAEjE,aAAa;AACA,QAAA,KAAK,GAAG,QAAQ,CAAC;AAE9B,+CAA+C;AAAtC,+GAAA,cAAc,OAAA;AACvB,qDAAwC;AAA/B,wGAAA,IAAI,OAAA;AAEb,aAAa;AACb,sFAAoE;AACpE,oFAAkE;AAClE,oFAAkE;AAClE,oEAAkD;AAElD,qDAA+D;AAAtD,4FAAA,OAAO,OAAQ;AACxB,+DAA6C;AAC7C,0DAAwC;AAExC,sDAAgE;AAAvD,kGAAA,OAAO,OAAW;AAC3B,wDAAkE;AAAzD,oGAAA,OAAO,OAAY;AAC5B,uEAAiF;AAAxE,wGAAA,OAAO,OAAc;AAC9B,oEAA8E;AAArE,0GAAA,OAAO,OAAe;AAC/B,iEAA2E;AAAlE,oGAAA,OAAO,OAAY;AAE5B,0DAAoE;AAA3D,sGAAA,OAAO,OAAa;AAC7B,4DAAsE;AAA7D,gHAAA,OAAO,OAAkB;AAClC,wDAAkE;AAAzD,oGAAA,OAAO,OAAY;AAE5B,2DAAyC;AACzC,kDAA4D;AAAnD,8FAAA,OAAO,OAAS;AACzB,wDAAkE;AAAzD,oGAAA,OAAO,OAAY;AAE5B,+EAAoF;AAA3E,4HAAA,uBAAuB,OAAA;AAChC,+EAAyF;AAAhF,sHAAA,OAAO,OAAqB;AAErC,iHAA2H;AAAlH,kJAAA,OAAO,OAAmC;AAEnD,kGAAgF;AAChF,wEAAsD;AAEtD,+DAA6C;AAE7C,8EAA4D;AAC5D,qFAAiG;AAAxF,gIAAA,OAAO,OAA2B;AAE3C,UAAU;AACV,uEAAiF;AAAxE,4GAAA,OAAO,OAAgB;AAEhC,YAAY;AACZ,6DAA2C;AAC3C,6DAA2C;AAC3C,+DAAyE;AAAhE,oHAAA,OAAO,OAAoB;AACpC,6DAAuE;AAA9D,kHAAA,OAAO,OAAmB;AACnC,+DAAyE;AAAhE,oHAAA,OAAO,OAAoB;AACpC,gEAA8C;AAE9C,WAAW;AAEX,yFAAmG;AAA1F,sIAAA,OAAO,OAA6B;AAC7C,iFAA2F;AAAlF,8HAAA,OAAO,OAAyB;AACzC,+EAAyF;AAAhF,4HAAA,OAAO,OAAwB;AACxC,mFAA6F;AAApF,gIAAA,OAAO,OAA0B;AAC1C,yEAAmF;AAA1E,sHAAA,OAAO,OAAqB;AACrC,qGAA+G;AAAtG,kJAAA,OAAO,OAAmC;AACnD,6FAAuG;AAA9F,0IAAA,OAAO,OAA+B;AAE/C,WAAW;AACX,qDAAmC;AAEnC,6DAAuE;AAA9D,kHAAA,OAAO,OAAmB;AACnC,gEAA8C;AAC9C,qEAA+E;AAAtE,0HAAA,OAAO,OAAuB;AACvC,mDAAmE;AAA1D,iHAAA,mBAAmB,OAAA;AAAE,oGAAA,MAAM,OAAA;AAEpC,4CAAsD;AAA7C,sGAAA,OAAO,OAAa;AAC7B,iDAA+B;AAE/B,SAAS;AACT,4DAA0C;AAC1C,gEAA8C;AAE9C,6EAA2D;AAC3D,4EAA0D;AAE1D,8DAA4C;AAE5C,6CAAgD;AAAvC,iGAAA,OAAO,OAAO;AAEvB,QAAQ;AACR,gDAA0D;AAAjD,0GAAA,OAAO,OAAe;AAE/B,6DAAuE;AAA9D,sGAAA,OAAO,OAAa;AAC7B,0DAAoE;AAA3D,oGAAA,OAAO,OAAY;AAC5B,kFAA4F;AAAnF,oHAAA,OAAO,OAAoB;AACpC,6DAAuE;AAA9D,sGAAA,OAAO,OAAa;AAC7B,0DAAoE;AAA3D,oGAAA,OAAO,OAAY;AAC5B,gEAA0E;AAAjE,wGAAA,OAAO,OAAc;AAE9B,2DAAyC;AAEzC,OAAO;AAEP,6CAA2B;AAE3B,QAAQ;AAER,yDAAuC;AACvC,kDAAgC;AAEhC,+CAA6B;AAE7B,gDAAgD;AAChD,sEAAgF;AAAvE,4HAAA,OAAO,OAAwB;AAE3B,QAAA,MAAM,GAAG;IAClB,EAAE,EAAE,8BAAoB,CAAC,QAAQ;IACjC,KAAK,EAAE,8BAAoB,CAAC,KAAK;CACpC,CAAC;AAEF,YAAY;AACC,QAAA,OAAO,GAAG,UAAU,CAAC;AAElC,qBAAW,CAAC,YAAY,GAAG;IACvB,CAAC,EAAE,kBAAQ;IACX,EAAE,EAAE,kBAAQ;IACZ,EAAE,EAAE,0BAAgB;IACpB,EAAE,EAAE,oBAAU;CACjB,CAAC","sourcesContent":["import 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\n// TODO: Look into resolving this.\n// @ts-ignore\nimport * as ReactRaw from 'react';\nimport RoomstayEventManager from './events/RoomstayEventManager';\n\n// @ts-ignore\nexport const react = ReactRaw;\n\nexport { useTranslation } from 'react-i18next';\nexport { Link } from 'react-router-dom';\n\n// Components\nexport * from 'engines/FullPageBookingEngine/FullPageBookingEngine';\nexport * from 'engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nexport * from 'engines/RecentSearchesEngine/RecentSearchesEngine';\nexport * from 'engines/CustomEngine/CustomEngine';\n\nexport { default as Icon } from 'components/generic/Icon/Icon';\nexport * from 'components/generic/Icon/Icon';\nexport * from 'components/generic/Text';\n\nexport { default as TextBox } from 'components/generic/TextBox';\nexport { default as TextArea } from 'components/generic/TextArea';\nexport { default as InputGroup } from 'components/generic/InputGroup/InputGroup';\nexport { default as RadioFields } from 'components/generic/radio/RadioFields';\nexport { default as Checkbox } from 'components/generic/Checkbox/Checkbox';\n\nexport { default as LineBreak } from 'components/generic/LineBreak';\nexport { default as AutoAutoHeight } from 'animations/AutoAutoHeight';\nexport { default as Headline } from 'components/generic/Headline';\n\nexport * from 'components/generic/Alert';\nexport { default as Alert } from 'components/generic/Alert';\nexport { default as BEButton } from 'components/generic/BEButton';\n\nexport { BE_NO_ROOMS_FOUND_BLOCK } from './components/steps/room/NoRoomsFoundBlock';\nexport { default as NoRoomsFoundBlock } from './components/steps/room/NoRoomsFoundBlock';\n\nexport { default as StepConfirmationCountrySelector } from 'components/steps/confirmation/StepConfirmationCountrySelector';\n\nexport * from 'components/steps/confirmation/StepConfirmationCommentsComponent';\nexport * from 'components/summary/BESummaryPerkBlock';\n\nexport * from 'components/summary/BESummary';\n\nexport * from 'components/steps/room/StepRoomBestRateAlert';\nexport { default as StepNoRoomBestRateAlert } from 'components/steps/room/StepRoomBestRateAlert';\n\n// Loaders\nexport { default as SmallSpinner } from 'components/generic/loader/SmallSpinner';\n\n// Providers\nexport * from 'providers/LanguageProvider';\nexport * from 'providers/CurrencyProvider';\nexport { default as CurrencyProvider } from 'providers/CurrencyProvider';\nexport { default as FeatureProvider } from 'providers/FeatureProvider';\nexport { default as RatePillProvider } from 'providers/RatePillProvider';\nexport * from './providers/PromotionProvider';\n\n// Features\n\nexport { default as ConfirmationVerifyFeature } from 'providers/feature/ConfirmationVerifyFeature';\nexport { default as DatePickerTypeFeature } from 'providers/feature/DatePickerTypeFeature';\nexport { default as FeaturedPromoFeature } from 'providers/feature/FeaturedPromoFeature';\nexport { default as InlineAddonStepFeature } from 'providers/feature/InlineAddonStepFeature';\nexport { default as RoomUpsellFeature } from 'providers/feature/RoomUpsellFeature';\nexport { default as ShowIATANumberOnCheckoutFeature } from 'providers/feature/ShowIATANumberOnCheckoutFeature';\nexport { default as E164PhoneNumberFieldFeature } from 'providers/feature/E164PhoneNumberFieldFeature';\n\n// Contexts\nexport * from '@frontend/contexts';\n\nexport { default as SessionProvider } from 'providers/SessionProvider';\nexport * from 'providers/RoomstayThemeEngine';\nexport { default as RoomstayThemeEngine } from 'providers/RoomstayThemeEngine';\nexport { registerReplacement, withDI } from 'providers/DIProvider';\n\nexport { default as DataLayer } from 'util/DataLayer';\nexport * from 'util/DataLayer';\n\n// Models\nexport * from 'models/Client/Hotel/Hotel';\nexport * from 'models/Client/Hotel/HotelPerk';\n\nexport * from 'models/Client/Hotel/DistanceUnitType.types';\nexport * from 'models/Client/Hotel/WeekdayStartsOn.types';\n\nexport * from 'models/Client/Hotel/Company';\n\nexport { default as API } from 'api/BookingAPI';\n\n// Steps\nexport { default as StepManager } from 'util/StepManager';\n\nexport { default as StepAddon } from 'pages/steps/StepAddon/StepAddon';\nexport { default as StepDate } from 'pages/steps/StepDate/StepDate';\nexport { default as StepConfirmation } from 'pages/steps/StepConfirmation/StepConfirmation';\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';\n\nexport * from 'translations/Translation';\n\n// Util\n\nexport * from 'util/Color';\n\n// Hooks\n\nexport * from 'hooks/CurrentHotelHook';\nexport * from 'hooks/EventHook';\n\nexport * from 'events/index';\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\n//@ts-ignore\nexport const Version = RS_VERSION;\n\nStepManager.currentSteps = {\n 0: StepDate,\n 10: StepRoom,\n 20: StepConfirmation,\n 30: StepThanks,\n};\n"]}