@roomstay/frontend 1.4.0 → 1.5.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 (78) hide show
  1. package/dist/{661.bundle.js → 171.bundle.js} +1 -1
  2. package/dist/201.bundle.js +1 -1
  3. package/dist/449.bundle.js +1 -1
  4. package/dist/main.bundle.js +1 -1
  5. package/dist/src/components/steps/room/RoomList.js +35 -0
  6. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  7. package/dist/src/components/steps/room/StepRoomErrorForm.js +4 -2
  8. package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
  9. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +13 -0
  10. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  11. package/dist/src/events/RoomstayEventManager.d.ts +1 -1
  12. package/dist/src/events/RoomstayEventManager.js.map +1 -1
  13. package/dist/src/events/actions/GuestSearchEvent.d.ts +7 -0
  14. package/dist/src/events/actions/GuestSearchEvent.js +15 -0
  15. package/dist/src/events/actions/GuestSearchEvent.js.map +1 -0
  16. package/dist/src/events/actions/InitialHotelDetailsEvent.d.ts +7 -0
  17. package/dist/src/events/actions/InitialHotelDetailsEvent.js +15 -0
  18. package/dist/src/events/actions/InitialHotelDetailsEvent.js.map +1 -0
  19. package/dist/src/events/actions/RoomListSearchEvent.d.ts +9 -0
  20. package/dist/src/events/actions/RoomListSearchEvent.js +16 -0
  21. package/dist/src/events/actions/RoomListSearchEvent.js.map +1 -0
  22. package/dist/src/events/index.d.ts +8 -0
  23. package/dist/src/events/index.js +8 -0
  24. package/dist/src/events/index.js.map +1 -1
  25. package/dist/src/events/views/FindReservationResultsViewEvent.d.ts +7 -0
  26. package/dist/src/events/views/FindReservationResultsViewEvent.js +15 -0
  27. package/dist/src/events/views/FindReservationResultsViewEvent.js.map +1 -0
  28. package/dist/src/events/views/FindReservationViewEvent.d.ts +5 -0
  29. package/dist/src/events/views/FindReservationViewEvent.js +14 -0
  30. package/dist/src/events/views/FindReservationViewEvent.js.map +1 -0
  31. package/dist/src/events/views/StepAddonViewEvent.d.ts +7 -0
  32. package/dist/src/events/views/StepAddonViewEvent.js +15 -0
  33. package/dist/src/events/views/StepAddonViewEvent.js.map +1 -0
  34. package/dist/src/events/views/StepDateViewEvent.d.ts +5 -0
  35. package/dist/src/events/views/StepDateViewEvent.js +14 -0
  36. package/dist/src/events/views/StepDateViewEvent.js.map +1 -0
  37. package/dist/src/events/views/StepHotelInfoViewEvent.d.ts +5 -0
  38. package/dist/src/events/views/StepHotelInfoViewEvent.js +14 -0
  39. package/dist/src/events/views/StepHotelInfoViewEvent.js.map +1 -0
  40. package/dist/src/events/views/StepHotelViewEvent.d.ts +5 -0
  41. package/dist/src/events/views/StepHotelViewEvent.js +14 -0
  42. package/dist/src/events/views/StepHotelViewEvent.js.map +1 -0
  43. package/dist/src/events/views/StepThanksViewEvent.d.ts +7 -0
  44. package/dist/src/events/views/StepThanksViewEvent.js +15 -0
  45. package/dist/src/events/views/StepThanksViewEvent.js.map +1 -0
  46. package/dist/src/index.d.ts +5 -0
  47. package/dist/src/index.js +9 -3
  48. package/dist/src/index.js.map +1 -1
  49. package/dist/src/models/Api/IEventReservation.d.ts +7 -0
  50. package/dist/src/models/Api/IEventReservation.js +3 -0
  51. package/dist/src/models/Api/IEventReservation.js.map +1 -0
  52. package/dist/src/models/Client/Hotel/Hotel.d.ts +11 -0
  53. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  54. package/dist/src/models/RoomListSearch.d.ts +18 -0
  55. package/dist/src/models/RoomListSearch.js +3 -0
  56. package/dist/src/models/RoomListSearch.js.map +1 -0
  57. package/dist/src/models/SearchParameters.d.ts +8 -0
  58. package/dist/src/models/SearchParameters.js +3 -0
  59. package/dist/src/models/SearchParameters.js.map +1 -0
  60. package/dist/src/pages/findReservation/FindReservation.js +4 -0
  61. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  62. package/dist/src/pages/findReservation/FindReservationResults.js +27 -0
  63. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  64. package/dist/src/pages/hotel/HotelInfo.js +6 -0
  65. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  66. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +8 -0
  67. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
  68. package/dist/src/pages/steps/StepDate/StepDateComponent.js +6 -0
  69. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  70. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +9 -4
  71. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
  72. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +19 -0
  73. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  74. package/dist/src/translations/languages/en-gb.js +1 -1
  75. package/dist/src/translations/languages/en-gb.js.map +1 -1
  76. package/dist/test.bundle.js +1 -1
  77. package/dist/vendors.bundle.js +1 -1
  78. package/package.json +1 -1
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepDateViewEvent = void 0;
4
+ const RoomstayEvent_1 = require("../RoomstayEvent");
5
+ class StepDateViewEvent extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor() {
7
+ super();
8
+ }
9
+ static getLabel() {
10
+ return 'View/Date';
11
+ }
12
+ }
13
+ exports.StepDateViewEvent = StepDateViewEvent;
14
+ //# sourceMappingURL=StepDateViewEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepDateViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepDateViewEvent.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,MAAa,iBAAkB,SAAQ,6BAAa;IAChD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,WAAW,CAAC;IACvB,CAAC;CACJ;AARD,8CAQC","sourcesContent":["import { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepDateViewEvent extends RoomstayEvent {\n public constructor() {\n super();\n }\n\n static getLabel(): string {\n return 'View/Date';\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { RoomstayEvent } from '../RoomstayEvent';
2
+ export declare class StepHotelInfoViewEvent extends RoomstayEvent {
3
+ constructor();
4
+ static getLabel(): string;
5
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepHotelInfoViewEvent = void 0;
4
+ const RoomstayEvent_1 = require("../RoomstayEvent");
5
+ class StepHotelInfoViewEvent extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor() {
7
+ super();
8
+ }
9
+ static getLabel() {
10
+ return 'View/HotelInfo';
11
+ }
12
+ }
13
+ exports.StepHotelInfoViewEvent = StepHotelInfoViewEvent;
14
+ //# sourceMappingURL=StepHotelInfoViewEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepHotelInfoViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepHotelInfoViewEvent.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,MAAa,sBAAuB,SAAQ,6BAAa;IACrD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ;AARD,wDAQC","sourcesContent":["import { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepHotelInfoViewEvent extends RoomstayEvent {\n public constructor() {\n super();\n }\n\n static getLabel(): string {\n return 'View/HotelInfo';\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { RoomstayEvent } from '../RoomstayEvent';
2
+ export declare class StepHotelViewEvent extends RoomstayEvent {
3
+ constructor();
4
+ static getLabel(): string;
5
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepHotelViewEvent = void 0;
4
+ const RoomstayEvent_1 = require("../RoomstayEvent");
5
+ class StepHotelViewEvent extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor() {
7
+ super();
8
+ }
9
+ static getLabel() {
10
+ return 'View/Hotel';
11
+ }
12
+ }
13
+ exports.StepHotelViewEvent = StepHotelViewEvent;
14
+ //# sourceMappingURL=StepHotelViewEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepHotelViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepHotelViewEvent.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAEjD,MAAa,kBAAmB,SAAQ,6BAAa;IACjD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ;AARD,gDAQC","sourcesContent":["import { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepHotelViewEvent extends RoomstayEvent {\n public constructor() {\n super();\n }\n\n static getLabel(): string {\n return 'View/Hotel';\n }\n}\n"]}
@@ -0,0 +1,7 @@
1
+ import { IEventReservation } from 'models/Api/IEventReservation';
2
+ import { RoomstayEvent } from '../RoomstayEvent';
3
+ export declare class StepThanksViewEvent extends RoomstayEvent {
4
+ reservations: IEventReservation[];
5
+ constructor(res: IEventReservation[]);
6
+ static getLabel(): string;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepThanksViewEvent = void 0;
4
+ const RoomstayEvent_1 = require("../RoomstayEvent");
5
+ class StepThanksViewEvent extends RoomstayEvent_1.RoomstayEvent {
6
+ constructor(res) {
7
+ super();
8
+ this.reservations = res;
9
+ }
10
+ static getLabel() {
11
+ return 'View/Thanks';
12
+ }
13
+ }
14
+ exports.StepThanksViewEvent = StepThanksViewEvent;
15
+ //# sourceMappingURL=StepThanksViewEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepThanksViewEvent.js","sourceRoot":"/","sources":["src/events/views/StepThanksViewEvent.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AAEjD,MAAa,mBAAoB,SAAQ,6BAAa;IAElD,YAAmB,GAAwB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,aAAa,CAAC;IACzB,CAAC;CACJ;AAXD,kDAWC","sourcesContent":["import { IEventReservation } from 'models/Api/IEventReservation';\nimport { RoomstayEvent } from '../RoomstayEvent';\n\nexport class StepThanksViewEvent extends RoomstayEvent {\n public reservations: IEventReservation[];\n public constructor(res: IEventReservation[]) {\n super();\n\n this.reservations = res;\n }\n\n static getLabel(): string {\n return 'View/Thanks';\n }\n}\n"]}
@@ -66,6 +66,11 @@ export * from './translations/Translation';
66
66
  export * from './util/Color';
67
67
  export * from './hooks/CurrentHotelHook';
68
68
  export * from './hooks/EventHook';
69
+ /** @deprecated use `roomstay.events` instead */
69
70
  export { default as RoomstayEventManager } from './events/RoomstayEventManager';
71
+ export declare const events: {
72
+ on: (eventType: string | import("./events/RoomstayEvent").RoomstayEvent, callback: import("./events/RoomstayEventManager").RoomstayEventCallback) => boolean;
73
+ raise: (event: import("./events/RoomstayEvent").RoomstayEvent) => Promise<void>;
74
+ };
70
75
  export * from './events/index';
71
76
  export declare const Version: any;
package/dist/src/index.js CHANGED
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Version = exports.react = void 0;
13
+ exports.Version = exports.events = exports.react = void 0;
14
14
  const StepConfirmation_1 = require("./pages/steps/StepConfirmation/StepConfirmation");
15
15
  const StepDate_1 = require("./pages/steps/StepDate/StepDate");
16
16
  const StepRoom_1 = require("./pages/steps/StepRoom/StepRoom");
@@ -19,6 +19,7 @@ const StepManager_1 = require("./util/StepManager");
19
19
  // TODO: Look into resolving this.
20
20
  // @ts-ignore
21
21
  const ReactRaw = require("react");
22
+ const RoomstayEventManager_1 = require("./events/RoomstayEventManager");
22
23
  // @ts-ignore
23
24
  exports.react = ReactRaw;
24
25
  var react_i18next_1 = require("react-i18next");
@@ -138,8 +139,13 @@ __exportStar(require("./util/Color"), exports);
138
139
  // Hooks
139
140
  __exportStar(require("./hooks/CurrentHotelHook"), exports);
140
141
  __exportStar(require("./hooks/EventHook"), exports);
141
- var RoomstayEventManager_1 = require("./events/RoomstayEventManager");
142
- Object.defineProperty(exports, "RoomstayEventManager", { enumerable: true, get: function () { return RoomstayEventManager_1.default; } });
142
+ /** @deprecated use `roomstay.events` instead */
143
+ var RoomstayEventManager_2 = require("./events/RoomstayEventManager");
144
+ Object.defineProperty(exports, "RoomstayEventManager", { enumerable: true, get: function () { return RoomstayEventManager_2.default; } });
145
+ exports.events = {
146
+ on: RoomstayEventManager_1.default.addEvent,
147
+ raise: RoomstayEventManager_1.default.raise,
148
+ };
143
149
  __exportStar(require("./events/index"), exports);
144
150
  //@ts-ignore
145
151
  exports.Version = RS_VERSION;
@@ -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';\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';\nexport * from './components/generic/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';\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 ConfirmationFormContext } from './contexts/ConfirmationFormContext';\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 { default as RoomstayEventManager } from './events/RoomstayEventManager';\nexport * from './events/index';\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":"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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';\nexport * from './components/generic/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';\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 ConfirmationFormContext } from './contexts/ConfirmationFormContext';\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\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 './events/index';\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"]}
@@ -0,0 +1,7 @@
1
+ export declare type IEventReservation = {
2
+ reservationId: string;
3
+ checkInTime: string;
4
+ checkOutTime: string;
5
+ totalPrice: number;
6
+ priceCurrency: string;
7
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEventReservation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEventReservation.js","sourceRoot":"/","sources":["src/models/Api/IEventReservation.ts"],"names":[],"mappings":"","sourcesContent":["export type IEventReservation = {\n reservationId: string;\n checkInTime: string;\n checkOutTime: string;\n totalPrice: number;\n priceCurrency: string;\n};\n"]}
@@ -87,3 +87,14 @@ export declare type Hotel = ConfigHotel & {
87
87
  isLoading: boolean;
88
88
  };
89
89
  };
90
+ /**
91
+ * Used for DetailsHotel event
92
+ */
93
+ export declare type InitialHotelDetailsEventPayload = {
94
+ name: string;
95
+ hotelID: number | string;
96
+ hotelUrl: string;
97
+ currency: string;
98
+ language: Language;
99
+ address?: HotelAddress;
100
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"Hotel.js","sourceRoot":"/","sources":["src/models/Client/Hotel/Hotel.ts"],"names":[],"mappings":"","sourcesContent":["import type { Language } from '../../../providers/LanguageProvider';\nimport type { HotelPerk } from './HotelPerk';\nimport type { HotelRoomOverwrite } from './HotelRoomOverwrite';\nimport type { ReactChild } from 'react';\nimport type ColorProfile from './ColorProfile';\nimport type HotelAddress from './HotelAddress';\nimport type { HotelRoomsDTO, HotelServiceDTO } from '../../Api/HotelDTO';\nimport type { HasDatalayerTags } from './Company';\nimport type { TransportDistances } from '../../Api/HotelOverrideDTO';\nimport type { MemberOnlyModalInputs } from '../../../components/steps/room/MemberSignInModal/MemberSignInModal.types';\nimport type { DistanceUnitType } from './DistanceUnitType.types';\nimport type { WeekdayStartsOn } from './WeekdayStartsOn.types';\nimport type { HotelDataSource } from './HotelDataSource.types';\n\nexport interface ConfigHotel extends HasDatalayerTags {\n hotelID: number | string;\n providerHotelID: string;\n\n /* Fields subject to change when pulled from API */\n name: string;\n description?: string;\n locationDescription?: string;\n\n address?: HotelAddress;\n latitude?: number;\n longitude?: number;\n\n phone?: string;\n\n checkInTime?: string;\n checkOutTime?: string;\n\n paymentCardTypes?: string[];\n\n policies?: string;\n\n maxOccupancy?: number;\n\n /* End of Changing Fields */\n\n startsWeekOnDay?: WeekdayStartsOn;\n\n hotelUrl: string;\n defaultDatepickerType?: 'Month' | 'Week';\n // TODO: need to do magic to see if we need to append / prepend stuff, for now we assume that it's only used while on the site.\n checkoutUrl?: string;\n defaultCurrency: string;\n defaultLanguage: Language;\n logo: string | ReactChild;\n heroImage: string;\n privacyPolicyUrl: string;\n bookNowPayLaterUrl?: string;\n bestRateNoBSUrl?: string;\n\n colors: ColorProfile;\n memberOnlyRates?: string[];\n memberOnlyPromoCode?: string;\n\n memberOnlySignupInputs?: MemberOnlyModalInputs;\n\n crossSellHotelIds?: string[];\n\n googleMapsImage?: string;\n\n hideByLine?: boolean;\n\n /**\n * Wether to show the Breakfast / Lunch / Dinner included\n */\n showMealPill?: boolean;\n\n /**\n * Distances for the Summary, and Hotel Info pages\n */\n transportDistances?: TransportDistances;\n\n distanceUnitType: DistanceUnitType;\n perks: HotelPerk[];\n\n vgsVaultName: string;\n showAddonLoader: boolean;\n overwrites?: { [code: string]: Partial<HotelRoomOverwrite> };\n\n forwardFindReservationToSynxis?: boolean;\n\n additionalOptions?: { [name: string]: any };\n\n images?: string[];\n\n googleReCaptcha?: {\n loadForMembers?: boolean;\n siteKey?: string;\n };\n\n /**\n * Callback to trigger specific events on load of a hotel.\n *\n * This is where you can specify custom fields, language overrides, feature toggles etc.\n */\n onLoad?: () => void;\n}\n\nexport type Hotel = ConfigHotel & {\n hotelID: string;\n\n hasLoadedDetails?: boolean;\n\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n rooms: HotelRoomsDTO;\n dataSource: HotelDataSource;\n\n lowestPrice?: {\n value: number;\n isLoading: boolean;\n };\n};\n"]}
1
+ {"version":3,"file":"Hotel.js","sourceRoot":"/","sources":["src/models/Client/Hotel/Hotel.ts"],"names":[],"mappings":"","sourcesContent":["import type { Language } from '../../../providers/LanguageProvider';\nimport type { HotelPerk } from './HotelPerk';\nimport type { HotelRoomOverwrite } from './HotelRoomOverwrite';\nimport type { ReactChild } from 'react';\nimport type ColorProfile from './ColorProfile';\nimport type HotelAddress from './HotelAddress';\nimport type { HotelRoomsDTO, HotelServiceDTO } from '../../Api/HotelDTO';\nimport type { HasDatalayerTags } from './Company';\nimport type { TransportDistances } from '../../Api/HotelOverrideDTO';\nimport type { MemberOnlyModalInputs } from '../../../components/steps/room/MemberSignInModal/MemberSignInModal.types';\nimport type { DistanceUnitType } from './DistanceUnitType.types';\nimport type { WeekdayStartsOn } from './WeekdayStartsOn.types';\nimport type { HotelDataSource } from './HotelDataSource.types';\n\nexport interface ConfigHotel extends HasDatalayerTags {\n hotelID: number | string;\n providerHotelID: string;\n\n /* Fields subject to change when pulled from API */\n name: string;\n description?: string;\n locationDescription?: string;\n\n address?: HotelAddress;\n latitude?: number;\n longitude?: number;\n\n phone?: string;\n\n checkInTime?: string;\n checkOutTime?: string;\n\n paymentCardTypes?: string[];\n\n policies?: string;\n\n maxOccupancy?: number;\n\n /* End of Changing Fields */\n\n startsWeekOnDay?: WeekdayStartsOn;\n\n hotelUrl: string;\n defaultDatepickerType?: 'Month' | 'Week';\n // TODO: need to do magic to see if we need to append / prepend stuff, for now we assume that it's only used while on the site.\n checkoutUrl?: string;\n defaultCurrency: string;\n defaultLanguage: Language;\n logo: string | ReactChild;\n heroImage: string;\n privacyPolicyUrl: string;\n bookNowPayLaterUrl?: string;\n bestRateNoBSUrl?: string;\n\n colors: ColorProfile;\n memberOnlyRates?: string[];\n memberOnlyPromoCode?: string;\n\n memberOnlySignupInputs?: MemberOnlyModalInputs;\n\n crossSellHotelIds?: string[];\n\n googleMapsImage?: string;\n\n hideByLine?: boolean;\n\n /**\n * Wether to show the Breakfast / Lunch / Dinner included\n */\n showMealPill?: boolean;\n\n /**\n * Distances for the Summary, and Hotel Info pages\n */\n transportDistances?: TransportDistances;\n\n distanceUnitType: DistanceUnitType;\n perks: HotelPerk[];\n\n vgsVaultName: string;\n showAddonLoader: boolean;\n overwrites?: { [code: string]: Partial<HotelRoomOverwrite> };\n\n forwardFindReservationToSynxis?: boolean;\n\n additionalOptions?: { [name: string]: any };\n\n images?: string[];\n\n googleReCaptcha?: {\n loadForMembers?: boolean;\n siteKey?: string;\n };\n\n /**\n * Callback to trigger specific events on load of a hotel.\n *\n * This is where you can specify custom fields, language overrides, feature toggles etc.\n */\n onLoad?: () => void;\n}\n\nexport type Hotel = ConfigHotel & {\n hotelID: string;\n\n hasLoadedDetails?: boolean;\n\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n rooms: HotelRoomsDTO;\n dataSource: HotelDataSource;\n\n lowestPrice?: {\n value: number;\n isLoading: boolean;\n };\n};\n\n/**\n * Used for DetailsHotel event\n */\nexport type InitialHotelDetailsEventPayload = {\n name: string;\n hotelID: number | string;\n hotelUrl: string;\n currency: string;\n language: Language;\n address?: HotelAddress;\n};\n"]}
@@ -0,0 +1,18 @@
1
+ export declare type RoomListSearch = {
2
+ name: string;
3
+ code: string;
4
+ lowestPrice: number;
5
+ highestPrice: number;
6
+ currency: string;
7
+ rates: RoomRateSearch[];
8
+ };
9
+ export declare type RoomRateSearch = {
10
+ name: string;
11
+ code: string;
12
+ price: RoomRateSearchPrice;
13
+ };
14
+ export declare type RoomRateSearchPrice = {
15
+ averagePrice: number;
16
+ totalPrice: number;
17
+ currency: string;
18
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=RoomListSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoomListSearch.js","sourceRoot":"/","sources":["src/models/RoomListSearch.ts"],"names":[],"mappings":"","sourcesContent":["export type RoomListSearch = {\n name: string;\n code: string;\n lowestPrice: number;\n highestPrice: number;\n currency: string;\n rates: RoomRateSearch[];\n};\n\nexport type RoomRateSearch = {\n name: string;\n code: string;\n price: RoomRateSearchPrice;\n};\n\nexport type RoomRateSearchPrice = {\n averagePrice: number;\n totalPrice: number;\n currency: string;\n};\n"]}
@@ -0,0 +1,8 @@
1
+ export declare type SearchParameters = {
2
+ checkInTime: string;
3
+ checkOutTime: string;
4
+ numAdults: number;
5
+ numChildren: number;
6
+ numRooms: number;
7
+ promoCode: string;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SearchParameters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchParameters.js","sourceRoot":"/","sources":["src/models/SearchParameters.ts"],"names":[],"mappings":"","sourcesContent":["export type SearchParameters = {\n checkInTime: string;\n checkOutTime: string;\n numAdults: number;\n numChildren: number;\n numRooms: number;\n promoCode: string;\n};\n"]}
@@ -28,6 +28,7 @@ const LineBreak_1 = require("../../components/generic/LineBreak");
28
28
  const hooks_1 = require("@frontend/hooks");
29
29
  const Translation_1 = require("../../translations/Translation");
30
30
  const StepManager_1 = require("../../util/StepManager");
31
+ const events_1 = require("../../events");
31
32
  function FindReservation() {
32
33
  const { hotel } = hooks_1.useCurrentHotel();
33
34
  const { t } = react_i18next_1.useTranslation();
@@ -67,12 +68,15 @@ function FindReservation() {
67
68
  const handleSubmitOnClick = () => {
68
69
  handleSubmit(onSubmit)();
69
70
  };
71
+ const { raise } = hooks_1.useEvent();
70
72
  react_1.useEffect(() => {
71
73
  const background = document.createElement('div');
72
74
  background.classList.add('dbe-background');
73
75
  background.style.backgroundImage = `url('${hotel === null || hotel === void 0 ? void 0 : hotel.heroImage}')`;
74
76
  RoomstayThemeEngine_1.default.EngineContainer.classList.add('--transparent-bg');
75
77
  RoomstayThemeEngine_1.default.EngineContainer.appendChild(background);
78
+ const event = new events_1.FindReservationViewEvent();
79
+ raise(event);
76
80
  return () => {
77
81
  try {
78
82
  RoomstayThemeEngine_1.default.EngineContainer.removeChild(background);
@@ -1 +1 @@
1
- {"version":3,"file":"FindReservation.js","sourceRoot":"/","sources":["src/pages/findReservation/FindReservation.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Headline from '../../components/generic/Headline';\nimport TextBox from '../../components/generic/TextBox';\nimport Text, { TextType } from '../../components/generic/Text';\nimport { Color } from '../../util/Color';\nimport BEButton from '../../components/generic/BEButton';\nimport { useForm } from 'react-hook-form';\nimport { useState, useEffect } from 'react';\nimport { IconType } from '../../components/generic/Icon';\nimport API from '../../api/BookingAPI';\nimport AutoAutoHeight from '../../animations/AutoAutoHeight';\nimport Alert, { AlertType } from '../../components/generic/Alert';\nimport { useHistory } from 'react-router';\nimport RoomstayThemeEngine from '../../providers/RoomstayThemeEngine';\nimport LineBreak from '../../components/generic/LineBreak';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { Translation } from '../../translations/Translation';\nimport StepManager from '../../util/StepManager';\n\nexport default function FindReservation() {\n const { hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n\n const { register, formState, handleSubmit, getValues } = useForm({\n mode: 'onChange',\n });\n\n const errors = formState.errors;\n\n const getValidationClass = (name: string) => {\n if (errors && formState.touchedFields[name]) {\n if (errors[name]) {\n return 'error';\n } else {\n return 'success';\n }\n } else {\n return null;\n }\n };\n\n const [isLoading, setIsLoading] = useState(false);\n const [apiErrorMessages, setApiErrorMessages] = useState('');\n\n const history = useHistory();\n\n const onSubmit = () => {\n setIsLoading(true);\n setApiErrorMessages('');\n\n API.Reservation.findReservation(getValues('Ref'), getValues('Email'), hotel.hotelID)\n .then((data) => {\n history.push(`/find-reservation/${getValues('Ref')}/${getValues('Email')}`);\n })\n .catch(({ Message }) => {\n console.log(Message);\n setApiErrorMessages(Message);\n setIsLoading(false);\n });\n };\n const handleSubmitOnClick = () => {\n handleSubmit(onSubmit)();\n };\n\n useEffect(() => {\n const background = document.createElement('div');\n background.classList.add('dbe-background');\n background.style.backgroundImage = `url('${hotel?.heroImage}')`;\n\n RoomstayThemeEngine.EngineContainer.classList.add('--transparent-bg');\n RoomstayThemeEngine.EngineContainer.appendChild(background);\n\n return () => {\n try {\n RoomstayThemeEngine.EngineContainer.removeChild(background);\n RoomstayThemeEngine.EngineContainer.classList.remove('--transparent-bg');\n } catch (ex) {\n console.log('Unable to remove bg');\n }\n };\n }, []);\n\n // TODO: Add a generic handler for this to avoid setting it in every new page\n useEffect(() => {\n if (hotel) {\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel?.colors]);\n\n useEffect(() => {\n if (hotel?.forwardFindReservationToSynxis) {\n window.open(`https://be.synxis.com/signin?hotel=` + hotel.hotelID);\n }\n }, [hotel]);\n\n const onBack = async () => {\n history.push(StepManager.getFirstStep().getStepUrl());\n };\n\n return (\n <div className=\"u-pad-left u-pad-right\">\n <div className=\"container u-marg-top--heavy u-pad-bottom--massive\">\n <form onSubmit={handleSubmit(onSubmit)}>\n <div className=\"row u-pad-bottom--massive\">\n <div className=\"col-md-6 col-xl-4 u-fill-white u-pad--heavy u-shadow-accent-large\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline size=\"extra-large\">{t(Translation.FindReservation.FindYourReservation)}</Headline>\n </div>\n <AutoAutoHeight open={!!apiErrorMessages}>\n <div className=\"u-flex\">\n <Alert type={AlertType.Danger} icon={IconType.Error}>\n <Text type={TextType.Small}>{apiErrorMessages}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.FindReservation.Confirmation)}</strong>\n </Text>\n </div>\n <TextBox\n placeholder=\"51244AB23101\"\n required={true}\n validationStatus={getValidationClass('Ref')}\n {...register('Ref', {\n required: true,\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.FindReservation.EmailAddress)}</strong>\n </Text>\n </div>\n <TextBox\n placeholder=\"example@mail.com\"\n required={true}\n validationStatus={getValidationClass('Email')}\n name={'Email'}\n {...register('Email', {\n required: true,\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: t(Translation.FindReservation.InvalidEmailAddress),\n },\n })}\n />\n </div>\n <div className=\"u-flex justify-content-end w-100\">\n <BEButton\n primary={true}\n filled={true}\n mobileWidth={true}\n isLoading={isLoading}\n icon={IconType.ArrowRight}\n iconPosition=\"right\"\n onClick={handleSubmitOnClick}\n >\n {t(Translation.FindReservation.FindReservation)}\n </BEButton>\n <button type=\"submit\" className=\"u-none\">\n {t(Translation.FindReservation.Submit)}\n </button>\n </div>\n <LineBreak />\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.FindReservation.Question)}</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>{t(Translation.FindReservation.Answer1)}</Text>\n <Text type={TextType.Small}>{t(Translation.FindReservation.Answer2)}</Text>\n <LineBreak />\n <BEButton\n textColor={Color.Accent}\n primary={false}\n filled={false}\n mobileWidth={true}\n size=\"small\"\n icon={IconType.ArrowLeft2}\n iconPosition=\"left\"\n onClick={onBack}\n isText={true}\n >\n {t(Translation.FindReservation.Back)}\n </BEButton>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"FindReservation.js","sourceRoot":"/","sources":["src/pages/findReservation/FindReservation.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Headline from '../../components/generic/Headline';\nimport TextBox from '../../components/generic/TextBox';\nimport Text, { TextType } from '../../components/generic/Text';\nimport { Color } from '../../util/Color';\nimport BEButton from '../../components/generic/BEButton';\nimport { useForm } from 'react-hook-form';\nimport { useState, useEffect } from 'react';\nimport { IconType } from '../../components/generic/Icon';\nimport API from '../../api/BookingAPI';\nimport AutoAutoHeight from '../../animations/AutoAutoHeight';\nimport Alert, { AlertType } from '../../components/generic/Alert';\nimport { useHistory } from 'react-router';\nimport RoomstayThemeEngine from '../../providers/RoomstayThemeEngine';\nimport LineBreak from '../../components/generic/LineBreak';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { Translation } from '../../translations/Translation';\nimport StepManager from '../../util/StepManager';\nimport { FindReservationViewEvent } from '../../events';\n\nexport default function FindReservation() {\n const { hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n\n const { register, formState, handleSubmit, getValues } = useForm({\n mode: 'onChange',\n });\n\n const errors = formState.errors;\n\n const getValidationClass = (name: string) => {\n if (errors && formState.touchedFields[name]) {\n if (errors[name]) {\n return 'error';\n } else {\n return 'success';\n }\n } else {\n return null;\n }\n };\n\n const [isLoading, setIsLoading] = useState(false);\n const [apiErrorMessages, setApiErrorMessages] = useState('');\n\n const history = useHistory();\n\n const onSubmit = () => {\n setIsLoading(true);\n setApiErrorMessages('');\n\n API.Reservation.findReservation(getValues('Ref'), getValues('Email'), hotel.hotelID)\n .then((data) => {\n history.push(`/find-reservation/${getValues('Ref')}/${getValues('Email')}`);\n })\n .catch(({ Message }) => {\n console.log(Message);\n setApiErrorMessages(Message);\n setIsLoading(false);\n });\n };\n\n const handleSubmitOnClick = () => {\n handleSubmit(onSubmit)();\n };\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const background = document.createElement('div');\n background.classList.add('dbe-background');\n background.style.backgroundImage = `url('${hotel?.heroImage}')`;\n\n RoomstayThemeEngine.EngineContainer.classList.add('--transparent-bg');\n RoomstayThemeEngine.EngineContainer.appendChild(background);\n\n const event = new FindReservationViewEvent();\n raise(event);\n\n return () => {\n try {\n RoomstayThemeEngine.EngineContainer.removeChild(background);\n RoomstayThemeEngine.EngineContainer.classList.remove('--transparent-bg');\n } catch (ex) {\n console.log('Unable to remove bg');\n }\n };\n }, []);\n\n // TODO: Add a generic handler for this to avoid setting it in every new page\n useEffect(() => {\n if (hotel) {\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel?.colors]);\n\n useEffect(() => {\n if (hotel?.forwardFindReservationToSynxis) {\n window.open(`https://be.synxis.com/signin?hotel=` + hotel.hotelID);\n }\n }, [hotel]);\n\n const onBack = async () => {\n history.push(StepManager.getFirstStep().getStepUrl());\n };\n\n return (\n <div className=\"u-pad-left u-pad-right\">\n <div className=\"container u-marg-top--heavy u-pad-bottom--massive\">\n <form onSubmit={handleSubmit(onSubmit)}>\n <div className=\"row u-pad-bottom--massive\">\n <div className=\"col-md-6 col-xl-4 u-fill-white u-pad--heavy u-shadow-accent-large\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline size=\"extra-large\">{t(Translation.FindReservation.FindYourReservation)}</Headline>\n </div>\n <AutoAutoHeight open={!!apiErrorMessages}>\n <div className=\"u-flex\">\n <Alert type={AlertType.Danger} icon={IconType.Error}>\n <Text type={TextType.Small}>{apiErrorMessages}</Text>\n </Alert>\n </div>\n </AutoAutoHeight>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.FindReservation.Confirmation)}</strong>\n </Text>\n </div>\n <TextBox\n placeholder=\"51244AB23101\"\n required={true}\n validationStatus={getValidationClass('Ref')}\n {...register('Ref', {\n required: true,\n })}\n />\n </div>\n <div className=\"u-marg-bottom\">\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Label} color={Color.DarkGrey}>\n <strong>{t(Translation.FindReservation.EmailAddress)}</strong>\n </Text>\n </div>\n <TextBox\n placeholder=\"example@mail.com\"\n required={true}\n validationStatus={getValidationClass('Email')}\n name={'Email'}\n {...register('Email', {\n required: true,\n pattern: {\n value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\n message: t(Translation.FindReservation.InvalidEmailAddress),\n },\n })}\n />\n </div>\n <div className=\"u-flex justify-content-end w-100\">\n <BEButton\n primary={true}\n filled={true}\n mobileWidth={true}\n isLoading={isLoading}\n icon={IconType.ArrowRight}\n iconPosition=\"right\"\n onClick={handleSubmitOnClick}\n >\n {t(Translation.FindReservation.FindReservation)}\n </BEButton>\n <button type=\"submit\" className=\"u-none\">\n {t(Translation.FindReservation.Submit)}\n </button>\n </div>\n <LineBreak />\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.FindReservation.Question)}</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>{t(Translation.FindReservation.Answer1)}</Text>\n <Text type={TextType.Small}>{t(Translation.FindReservation.Answer2)}</Text>\n <LineBreak />\n <BEButton\n textColor={Color.Accent}\n primary={false}\n filled={false}\n mobileWidth={true}\n size=\"small\"\n icon={IconType.ArrowLeft2}\n iconPosition=\"left\"\n onClick={onBack}\n isText={true}\n >\n {t(Translation.FindReservation.Back)}\n </BEButton>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n}\n"]}
@@ -20,16 +20,21 @@ const react_i18next_1 = require("react-i18next");
20
20
  const hooks_1 = require("@frontend/hooks");
21
21
  const CommonAddonSummary_1 = require("components/steps/common/CommonAddonSummary/CommonAddonSummary");
22
22
  const TotalCalculator_1 = require("util/TotalCalculator");
23
+ const events_1 = require("../../events");
24
+ const dayjs = require("dayjs");
25
+ const contexts_1 = require("@frontend/contexts");
23
26
  function FindReservationResults() {
24
27
  var _a;
25
28
  const params = react_router_1.useParams();
26
29
  const history = react_router_1.useHistory();
27
30
  const { hotel } = hooks_1.useCurrentHotel();
31
+ const ccx = react_1.useContext(contexts_1.CompanyContext);
28
32
  const { t } = react_i18next_1.useTranslation();
29
33
  const [bookingInformation, setBookingInformation] = react_1.useState(null);
30
34
  const [isLoading, setIsLoading] = react_1.useState(false);
31
35
  const [cancellationMessage, setCancellationMessage] = react_1.useState('');
32
36
  const [cancellationTrigger, setCancellationTrigger] = react_1.useState(0);
37
+ const [data, setData] = react_1.useState(null);
33
38
  const pushHistoryOnClick = () => {
34
39
  history.push('../');
35
40
  };
@@ -42,6 +47,7 @@ function FindReservationResults() {
42
47
  if (!isCancelled) {
43
48
  setBookingInformation(data);
44
49
  setIsLoading(false);
50
+ setData(data);
45
51
  }
46
52
  })
47
53
  .catch(() => {
@@ -63,6 +69,27 @@ function FindReservationResults() {
63
69
  }
64
70
  return 0;
65
71
  }, [bookingInformation]);
72
+ const { raise } = hooks_1.useEvent();
73
+ react_1.useEffect(() => {
74
+ var _a, _b;
75
+ if (!data)
76
+ return;
77
+ const reservations = (_b = (_a = data.reservations) === null || _a === void 0 ? void 0 : _a.map((obj) => {
78
+ const nightKeys = Object.keys(obj.nights);
79
+ const dateFormat = 'YYYY-MM-DDTHH:mm:ss';
80
+ return {
81
+ reservationId: obj.reservationNumber,
82
+ checkInTime: dayjs(nightKeys[0]).format(dateFormat),
83
+ checkOutTime: dayjs(nightKeys[nightKeys.length - 1])
84
+ .add(1, 'day')
85
+ .format(dateFormat),
86
+ totalPrice: obj.total.afterTax,
87
+ priceCurrency: ccx.currentCurrency,
88
+ };
89
+ })) !== null && _b !== void 0 ? _b : [];
90
+ const event = new events_1.FindReservationResultsViewEvent(reservations);
91
+ raise(event);
92
+ }, [data]);
66
93
  return (React.createElement("div", { className: "container u-pad--heavy-plus u-pad-left u-pad-right" }, isLoading ? (React.createElement(LargeLoader_1.default, null)) : (React.createElement(React.Fragment, null,
67
94
  React.createElement("div", { className: "u-marg-bottom" },
68
95
  React.createElement(BackButton_1.default, { onClick: pushHistoryOnClick })),
@@ -1 +1 @@
1
- {"version":3,"file":"FindReservationResults.js","sourceRoot":"/","sources":["src/pages/findReservation/FindReservationResults.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useParams, useHistory } from 'react-router';\nimport { useEffect, useState, useCallback } from 'react';\nimport API from '../../api/BookingAPI';\nimport { Color } from '../../util/Color';\nimport ReservationsDTO, { ReservationDTO, ReservationAddonDTO } from '../../models/Api/ReservationsDTO';\nimport LargeLoader from '../../components/generic/loader/LargeLoader';\nimport AutoAutoHeight from '../../animations/AutoAutoHeight';\nimport Alert from '../../components/generic/Alert';\nimport ReservationRow from './ReservationRow';\nimport BackButton from '../../components/generic/BackButton';\nimport Headline from '../../components/generic/Headline';\nimport LineBreak from '../../components/generic/LineBreak';\nimport Text, { TextType } from '../../components/generic/Text';\nimport Currency from '../../components/generic/Currency';\nimport { Translation } from '../../translations/Translation';\nimport { TextAlign } from '../../util/TextAlignment';\nimport { useTranslation } from 'react-i18next';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { CommonAddonSummary } from 'components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { calculateTotalForReservation } from 'util/TotalCalculator';\n\nexport default function FindReservationResults() {\n const params: any = useParams();\n const history = useHistory();\n\n const { hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n\n const [bookingInformation, setBookingInformation] = useState<ReservationsDTO>(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const [cancellationMessage, setCancellationMessage] = useState('');\n const [cancellationTrigger, setCancellationTrigger] = useState(0);\n const pushHistoryOnClick = () => {\n history.push('../');\n };\n useEffect(() => {\n let isCancelled = false;\n\n setIsLoading(true);\n if (params?.ref) {\n API.Reservation.findReservation(params.ref, params.email, hotel.hotelID)\n .then((data: ReservationsDTO) => {\n if (!isCancelled) {\n setBookingInformation(data);\n setIsLoading(false);\n }\n })\n .catch(() => {\n history.push('/find-reservation/');\n });\n } else {\n history.push('/find-reservation/');\n }\n\n return () => {\n isCancelled = true;\n };\n }, [cancellationTrigger]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\n\n const total = useCallback(() => {\n if (bookingInformation?.reservations) {\n return calculateTotalForReservation(bookingInformation);\n }\n\n return 0;\n }, [bookingInformation]);\n\n return (\n <div className=\"container u-pad--heavy-plus u-pad-left u-pad-right\">\n {isLoading ? (\n <LargeLoader />\n ) : (\n <>\n <div className=\"u-marg-bottom\">\n <BackButton onClick={pushHistoryOnClick} />\n </div>\n <Headline size=\"extra-large\">{t(Translation.FindReservation.YourItinerary)}</Headline>\n <Headline color={Color.DarkGrey}>#{bookingInformation?.itineraryNumber}</Headline>\n <div className=\"row u-marg-top--heavy\">\n <AutoAutoHeight open={!!cancellationMessage}>\n <Alert>{cancellationMessage}</Alert>\n </AutoAutoHeight>\n {bookingInformation?.reservations?.map((obj: ReservationDTO) => {\n if (obj.addons) {\n const nights = Object.keys(obj.nights);\n obj.addons.forEach((addon) => addons.push({ ...addon, nights: nights.length }));\n }\n\n if (obj.comments) {\n obj.comments.map((comment: string) => {\n comments.push(comment);\n });\n }\n\n return (\n <div className=\"col-lg-6\" key={obj.reservationNumber}>\n <ReservationRow reservation={obj} key={obj.reservationNumber} />\n </div>\n );\n })}\n </div>\n <LineBreak />\n <CommonAddonSummary addons={addons} />\n {comments.length >= 1 && (\n <>\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Label} color={Color.Grey}>\n {t(Translation.Step.Confirmation.Comments)}\n </Text>\n </div>\n {comments.map((comment, index: number) => (\n <Text key={index} type={TextType.Small}>\n {comment}\n </Text>\n ))}\n <LineBreak />\n </>\n )}\n <Text type={TextType.Small} align={TextAlign.Right}>\n {t(Translation.Misc.Total)}\n </Text>\n <Headline bold={true} size={'large'} align={TextAlign.Right}>\n <Currency>{total}</Currency>\n </Headline>\n <Text type={TextType.Small} align={TextAlign.Right} color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.IncludingTaxes)}\n </Text>\n </>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"FindReservationResults.js","sourceRoot":"/","sources":["src/pages/findReservation/FindReservationResults.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useParams, useHistory } from 'react-router';\nimport { useContext, useEffect, useState, useCallback } from 'react';\nimport API from '../../api/BookingAPI';\nimport { Color } from '../../util/Color';\nimport ReservationsDTO, { ReservationDTO, ReservationAddonDTO } from '../../models/Api/ReservationsDTO';\nimport LargeLoader from '../../components/generic/loader/LargeLoader';\nimport AutoAutoHeight from '../../animations/AutoAutoHeight';\nimport Alert from '../../components/generic/Alert';\nimport ReservationRow from './ReservationRow';\nimport BackButton from '../../components/generic/BackButton';\nimport Headline from '../../components/generic/Headline';\nimport LineBreak from '../../components/generic/LineBreak';\nimport Text, { TextType } from '../../components/generic/Text';\nimport Currency from '../../components/generic/Currency';\nimport { Translation } from '../../translations/Translation';\nimport { TextAlign } from '../../util/TextAlignment';\nimport { useTranslation } from 'react-i18next';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport { CommonAddonSummary } from 'components/steps/common/CommonAddonSummary/CommonAddonSummary';\nimport { calculateTotalForReservation } from 'util/TotalCalculator';\nimport { FindReservationResultsViewEvent } from '../../events';\nimport { IEventReservation } from 'models/Api/IEventReservation';\nimport * as dayjs from 'dayjs';\nimport { CompanyContext } from '@frontend/contexts';\n\nexport default function FindReservationResults() {\n const params: any = useParams();\n const history = useHistory();\n\n const { hotel } = useCurrentHotel();\n const ccx = useContext(CompanyContext);\n\n const { t } = useTranslation();\n\n const [bookingInformation, setBookingInformation] = useState<ReservationsDTO>(null);\n const [isLoading, setIsLoading] = useState(false);\n\n const [cancellationMessage, setCancellationMessage] = useState('');\n const [cancellationTrigger, setCancellationTrigger] = useState(0);\n\n const [data, setData] = useState(null);\n const pushHistoryOnClick = () => {\n history.push('../');\n };\n useEffect(() => {\n let isCancelled = false;\n\n setIsLoading(true);\n if (params?.ref) {\n API.Reservation.findReservation(params.ref, params.email, hotel.hotelID)\n .then((data: ReservationsDTO) => {\n if (!isCancelled) {\n setBookingInformation(data);\n setIsLoading(false);\n setData(data);\n }\n })\n .catch(() => {\n history.push('/find-reservation/');\n });\n } else {\n history.push('/find-reservation/');\n }\n\n return () => {\n isCancelled = true;\n };\n }, [cancellationTrigger]);\n\n const addons: ReservationAddonDTO[] = [];\n const comments: string[] = [];\n\n const total = useCallback(() => {\n if (bookingInformation?.reservations) {\n return calculateTotalForReservation(bookingInformation);\n }\n\n return 0;\n }, [bookingInformation]);\n\n const { raise } = useEvent();\n useEffect(() => {\n if (!data) return;\n\n const reservations: IEventReservation[] =\n data.reservations?.map((obj: ReservationDTO) => {\n const nightKeys = Object.keys(obj.nights);\n const dateFormat = 'YYYY-MM-DDTHH:mm:ss';\n\n return {\n reservationId: obj.reservationNumber,\n checkInTime: dayjs(nightKeys[0]).format(dateFormat),\n checkOutTime: dayjs(nightKeys[nightKeys.length - 1])\n .add(1, 'day')\n .format(dateFormat),\n totalPrice: obj.total.afterTax,\n priceCurrency: ccx.currentCurrency,\n };\n }) ?? [];\n\n const event = new FindReservationResultsViewEvent(reservations);\n raise(event);\n }, [data]);\n\n return (\n <div className=\"container u-pad--heavy-plus u-pad-left u-pad-right\">\n {isLoading ? (\n <LargeLoader />\n ) : (\n <>\n <div className=\"u-marg-bottom\">\n <BackButton onClick={pushHistoryOnClick} />\n </div>\n <Headline size=\"extra-large\">{t(Translation.FindReservation.YourItinerary)}</Headline>\n <Headline color={Color.DarkGrey}>#{bookingInformation?.itineraryNumber}</Headline>\n <div className=\"row u-marg-top--heavy\">\n <AutoAutoHeight open={!!cancellationMessage}>\n <Alert>{cancellationMessage}</Alert>\n </AutoAutoHeight>\n {bookingInformation?.reservations?.map((obj: ReservationDTO) => {\n if (obj.addons) {\n const nights = Object.keys(obj.nights);\n obj.addons.forEach((addon) => addons.push({ ...addon, nights: nights.length }));\n }\n\n if (obj.comments) {\n obj.comments.map((comment: string) => {\n comments.push(comment);\n });\n }\n\n return (\n <div className=\"col-lg-6\" key={obj.reservationNumber}>\n <ReservationRow reservation={obj} key={obj.reservationNumber} />\n </div>\n );\n })}\n </div>\n <LineBreak />\n <CommonAddonSummary addons={addons} />\n {comments.length >= 1 && (\n <>\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Label} color={Color.Grey}>\n {t(Translation.Step.Confirmation.Comments)}\n </Text>\n </div>\n {comments.map((comment, index: number) => (\n <Text key={index} type={TextType.Small}>\n {comment}\n </Text>\n ))}\n <LineBreak />\n </>\n )}\n <Text type={TextType.Small} align={TextAlign.Right}>\n {t(Translation.Misc.Total)}\n </Text>\n <Headline bold={true} size={'large'} align={TextAlign.Right}>\n <Currency>{total}</Currency>\n </Headline>\n <Text type={TextType.Small} align={TextAlign.Right} color={Color.DarkGrey}>\n {t(Translation.Step.Thanks.IncludingTaxes)}\n </Text>\n </>\n )}\n </div>\n );\n}\n"]}
@@ -17,6 +17,7 @@ const react_i18next_1 = require("react-i18next");
17
17
  const Translation_1 = require("../../translations/Translation");
18
18
  const ImageProvider_1 = require("../../providers/ImageProvider");
19
19
  const RoomstayThemeEngine_1 = require("../../providers/RoomstayThemeEngine");
20
+ const events_1 = require("../../events");
20
21
  function HotelInfo() {
21
22
  var _a, _b, _c, _d, _e, _f;
22
23
  const { hotel } = hooks_1.useCurrentHotel();
@@ -32,6 +33,11 @@ function HotelInfo() {
32
33
  const openSliderOnClick = () => {
33
34
  openSlider(4);
34
35
  };
36
+ const { raise } = hooks_1.useEvent();
37
+ react_1.useEffect(() => {
38
+ const event = new events_1.StepHotelInfoViewEvent();
39
+ raise(event);
40
+ }, []);
35
41
  react_1.useEffect(() => {
36
42
  var _a, _b;
37
43
  const newImages = [];