@roomstay/frontend 2.0.0-2 → 2.0.1

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 (94) 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/confirmation/StepConfirmationForm.js +7 -2
  15. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  16. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js +18 -12
  17. package/dist/src/components/steps/room/MemberSignInModal/MemberSignInModal.js.map +1 -1
  18. package/dist/src/components/steps/room/RoomList.js +1 -1
  19. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  20. package/dist/src/components/steps/room/StepRoomErrorForm.js +2 -1
  21. package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
  22. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +8 -8
  23. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  24. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
  25. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.d.ts +7 -0
  26. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +31 -0
  27. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -0
  28. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +14 -7
  29. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
  30. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  31. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +12 -8
  32. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  33. package/dist/src/contexts/CompanyContext/CompanyContextType.type.d.ts +3 -1
  34. package/dist/src/contexts/CompanyContext/CompanyContextType.type.js.map +1 -1
  35. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +9 -1
  36. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  37. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +3 -2
  38. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  39. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  40. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +71 -1
  41. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  42. package/dist/src/events/RoomstayEventManager.d.ts +1 -1
  43. package/dist/src/events/RoomstayEventManager.js +23 -4
  44. package/dist/src/events/RoomstayEventManager.js.map +1 -1
  45. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.d.ts +7 -0
  46. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.js +15 -0
  47. package/dist/src/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp.js.map +1 -0
  48. package/dist/src/events/actions/Promotion/PromotionAddedEvent.d.ts +7 -0
  49. package/dist/src/events/actions/Promotion/PromotionAddedEvent.js +15 -0
  50. package/dist/src/events/actions/Promotion/PromotionAddedEvent.js.map +1 -0
  51. package/dist/src/events/actions/Promotion/PromotionClickedEvent.d.ts +7 -0
  52. package/dist/src/events/actions/Promotion/PromotionClickedEvent.js +15 -0
  53. package/dist/src/events/actions/Promotion/PromotionClickedEvent.js.map +1 -0
  54. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.d.ts +7 -0
  55. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.js +15 -0
  56. package/dist/src/events/actions/Promotion/PromotionRemovedEvent.js.map +1 -0
  57. package/dist/src/events/index.d.ts +1 -0
  58. package/dist/src/events/index.js +1 -0
  59. package/dist/src/events/index.js.map +1 -1
  60. package/dist/src/hooks/EventHook.d.ts +1 -1
  61. package/dist/src/hooks/EventHook.js +2 -2
  62. package/dist/src/hooks/EventHook.js.map +1 -1
  63. package/dist/src/index.d.ts +2 -1
  64. package/dist/src/index.js +1 -0
  65. package/dist/src/index.js.map +1 -1
  66. package/dist/src/models/Promotion/IPromotion.type.d.ts +27 -0
  67. package/dist/src/models/Promotion/IPromotion.type.js +3 -0
  68. package/dist/src/models/Promotion/IPromotion.type.js.map +1 -0
  69. package/dist/src/pages/findReservation/FindReservation.js +2 -1
  70. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  71. package/dist/src/providers/LanguageProvider.d.ts +14 -3
  72. package/dist/src/providers/LanguageProvider.js +3 -19
  73. package/dist/src/providers/LanguageProvider.js.map +1 -1
  74. package/dist/src/providers/PromotionProvider.d.ts +14 -0
  75. package/dist/src/providers/PromotionProvider.js +213 -0
  76. package/dist/src/providers/PromotionProvider.js.map +1 -0
  77. package/dist/src/util/ObjectHelper.d.ts +4 -0
  78. package/dist/src/util/ObjectHelper.js +25 -0
  79. package/dist/src/util/ObjectHelper.js.map +1 -0
  80. package/dist/src/util/Validation.d.ts +1 -0
  81. package/dist/src/util/Validation.js +2 -1
  82. package/dist/src/util/Validation.js.map +1 -1
  83. package/dist/test.bundle.js +1 -1
  84. package/dist/tests/jest/helpers/ObjectHelper.test.d.ts +1 -0
  85. package/dist/tests/jest/helpers/ObjectHelper.test.js +72 -0
  86. package/dist/tests/jest/helpers/ObjectHelper.test.js.map +1 -0
  87. package/dist/tests/offline/entry/RSCompany.js +41 -1
  88. package/dist/tests/offline/entry/RSCompany.js.map +1 -1
  89. package/dist/vendors.bundle.js +1 -1
  90. package/package.json +1 -1
  91. package/dist/src/components/steps/confirmation/StepConfirmationPaymentDetails.d.ts +0 -8
  92. package/dist/src/components/steps/confirmation/StepConfirmationPaymentDetails.js +0 -241
  93. package/dist/src/components/steps/confirmation/StepConfirmationPaymentDetails.js.map +0 -1
  94. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +0 -41
@@ -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":"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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';\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"]}
@@ -0,0 +1,27 @@
1
+ import * as dayjs from 'dayjs';
2
+ export type IPromotionApplication = {
3
+ checkInDate?: string;
4
+ checkOutDate?: string;
5
+ adults?: number;
6
+ children?: number;
7
+ promoCode?: string;
8
+ };
9
+ export type IPromotionTestCriteria = {
10
+ checkInDate: dayjs.Dayjs;
11
+ checkOutDate: dayjs.Dayjs;
12
+ adults: number;
13
+ children: number;
14
+ promoCode: string;
15
+ };
16
+ export type IPromotion = {
17
+ name: string;
18
+ description: string;
19
+ requireMemberPromotion?: boolean;
20
+ memberOnlyModalTitle?: string;
21
+ memberOnlyModalSubtitle?: string;
22
+ memberOnlyModalButtonText?: string;
23
+ memberOnlyDisableDefaultPromo?: boolean;
24
+ memberOnlyModalImage?: string;
25
+ testCriteria: (criteria: IPromotionTestCriteria) => Promise<boolean>;
26
+ onApply: (criteria: IPromotionTestCriteria) => IPromotionApplication;
27
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IPromotion.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPromotion.type.js","sourceRoot":"/","sources":["src/models/Promotion/IPromotion.type.ts"],"names":[],"mappings":"","sourcesContent":["import * as dayjs from 'dayjs';\n\nexport type IPromotionApplication = {\n checkInDate?: string;\n checkOutDate?: string;\n\n adults?: number;\n children?: number;\n\n promoCode?: string;\n};\n\nexport type IPromotionTestCriteria = {\n checkInDate: dayjs.Dayjs;\n checkOutDate: dayjs.Dayjs;\n\n adults: number;\n children: number;\n\n promoCode: string;\n};\n\nexport type IPromotion = {\n name: string;\n description: string;\n\n requireMemberPromotion?: boolean;\n\n memberOnlyModalTitle?: string;\n memberOnlyModalSubtitle?: string;\n memberOnlyModalButtonText?: string;\n memberOnlyDisableDefaultPromo?: boolean;\n memberOnlyModalImage?: string;\n\n testCriteria: (criteria: IPromotionTestCriteria) => Promise<boolean>;\n onApply: (criteria: IPromotionTestCriteria) => IPromotionApplication;\n};\n"]}
@@ -36,6 +36,7 @@ const ForgotPasswordForm_1 = require("components/User/Forms/ForgotPasswordForm")
36
36
  const events_1 = require("@frontend/events");
37
37
  const UnauthenticatedUserModal_1 = require("components/generic/modal/SigninModal/UnauthenticatedUserModal");
38
38
  const MemberPortalFeature_1 = require("providers/feature/MemberPortalFeature");
39
+ const Validation_1 = require("util/Validation");
39
40
  exports.QUERY_PARAM_NAME = 'path';
40
41
  var EFindReservationPath;
41
42
  (function (EFindReservationPath) {
@@ -166,7 +167,7 @@ function FindReservation() {
166
167
  React.createElement(TextBox_1.default, Object.assign({ placeholder: "example@mail.com", required: true, validationStatus: getValidationClass('Email'), name: 'Email' }, register('Email', {
167
168
  required: true,
168
169
  pattern: {
169
- value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i,
170
+ value: Validation_1.EMAIL_REGEX,
170
171
  message: t(Translation_1.Translation.FindReservation.InvalidEmailAddress),
171
172
  },
172
173
  })))),
@@ -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 { useEffect, useRef, useState } 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 { IconType } from 'components/generic/Icon/Icon';\nimport API from 'api/BookingAPI';\nimport AutoAutoHeight from 'animations/AutoAutoHeight';\nimport Alert, { AlertType } from 'components/generic/Alert';\nimport { useHistory, useParams } from 'react-router-dom';\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 { SignInForm } from 'components/User/Forms/SignInForm';\nimport { SignUpForm } from 'components/User/Forms/SignUpForm';\nimport FadeAnimation from 'animations/Fade';\nimport { ForgotPasswordForm } from 'components/User/Forms/ForgotPasswordForm';\nimport { FindReservationViewEvent } from '@frontend/events';\nimport { EViewingScreen } from 'components/generic/modal/SigninModal/UnauthenticatedUserModal';\nimport MemberPortalFeature from 'providers/feature/MemberPortalFeature';\n\nexport const QUERY_PARAM_NAME = 'path';\n\nexport enum EFindReservationPath {\n FindReservation = 'find-reservation',\n Login = 'login',\n Register = 'register',\n Forgot = 'forgot',\n}\n\nconst pathToScreenMapping: { [path in EFindReservationPath]: EViewingScreen } = {\n [EFindReservationPath.FindReservation]: EViewingScreen.Default,\n [EFindReservationPath.Login]: EViewingScreen.SignIn,\n [EFindReservationPath.Register]: EViewingScreen.SignUp,\n [EFindReservationPath.Forgot]: EViewingScreen.ForgotPassword,\n};\n\ninterface IQueryParams {\n [QUERY_PARAM_NAME]: EFindReservationPath;\n}\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 { path }: IQueryParams = useParams<IQueryParams>();\n const firstTime = useRef<boolean>(true);\n const nextViewingScreen = useRef<EViewingScreen>();\n\n const [isLoading, setIsLoading] = useState(false);\n const [apiErrorMessages, setApiErrorMessages] = useState('');\n const [viewingScreen, setViewingScreen] = useState<EViewingScreen>(pathToScreenMapping[path]);\n\n useEffect(() => {\n if (firstTime.current) {\n firstTime.current = false;\n setViewingScreen(pathToScreenMapping[path]);\n } else {\n setViewingScreen(null);\n nextViewingScreen.current = pathToScreenMapping[path];\n }\n }, [path]);\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 { 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 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 const handleSubmitOnClick = () => {\n handleSubmit(onSubmit)();\n };\n\n const onSignInClicked = () => {\n history.push(`/${EFindReservationPath.Login}`);\n };\n\n const onBackToItineraryClicked = () => {\n history.push(`/${EFindReservationPath.FindReservation}`);\n };\n\n const onSignUpClicked = () => {\n history.push(`/${EFindReservationPath.Register}`);\n };\n\n const onForgotPasswordClicked = () => {\n history.push(`/${EFindReservationPath.Forgot}`);\n };\n\n const onExit = () => {\n setViewingScreen(nextViewingScreen.current);\n };\n\n const defaultContents = (\n <form onSubmit={handleSubmit(onSubmit)}>\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.Navy}>\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.Navy}>\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 primary={true} filled={true} mobileWidth={true} isLoading={isLoading} icon={IconType.ArrowRight} iconPosition=\"right\" onClick={handleSubmitOnClick}>\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 {MemberPortalFeature.isActive() && (\n <div className=\"u-marg-bottom--heavy\">\n <BEButton isText={true} primary={true} size={'small'} onClick={onSignInClicked}>\n Or sign in for more\n </BEButton>\n </div>\n )}\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 </form>\n );\n\n const signInForm = (\n <>\n <SignInForm onForgotPassword={onForgotPasswordClicked} />\n <LineBreak />\n <div className=\"u-marg-bottom--heavy\">\n <BEButton isText={true} primary={true} size={'small'} onClick={onBackToItineraryClicked}>\n Or use Confirmation/Itinerary Number\n </BEButton>\n </div>\n <Text type={TextType.Small} bold={true} className=\"u-marg-bottom--light\">\n No online account?\n </Text>\n <Text type={TextType.Small}>\n <BEButton isText={true} size={'small'} primary={true} onClick={onSignUpClicked}>\n Sign up\n </BEButton>{' '}\n to save time on your next booking.\n </Text>\n </>\n );\n\n const signUpForm = (\n <>\n <SignUpForm />\n <LineBreak />\n <Text type={TextType.Small} bold={true} className=\"u-marg-bottom--light\">\n Already have an account?\n </Text>\n <Text type={TextType.Small}>\n <BEButton isText={true} size={'small'} primary={true} onClick={onSignInClicked}>\n Sign in\n </BEButton>{' '}\n to login with your account.\n </Text>\n </>\n );\n\n const forgotPasswordForm = (\n <>\n <ForgotPasswordForm onCancelled={onSignInClicked} />\n <LineBreak />\n <Text type={TextType.Small} bold={true} className=\"u-marg-bottom--light\">\n No online account?\n </Text>\n <Text type={TextType.Small}>\n <BEButton isText={true} size={'small'} primary={true} onClick={onSignUpClicked}>\n Sign up\n </BEButton>{' '}\n to save time on your next booking.\n </Text>\n </>\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 <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 u-border-rounded\">\n <AutoAutoHeight open={true} startOpen={true}>\n <FadeAnimation open={viewingScreen === 'Default'} onExitCompletely={onExit}>\n {defaultContents}\n </FadeAnimation>\n <FadeAnimation open={viewingScreen === 'SignIn'} onExitCompletely={onExit}>\n {signInForm}\n </FadeAnimation>\n <FadeAnimation open={viewingScreen === 'SignUp'} onExitCompletely={onExit}>\n {signUpForm}\n </FadeAnimation>\n <FadeAnimation open={viewingScreen === 'ForgotPassword'} onExitCompletely={onExit}>\n {forgotPasswordForm}\n </FadeAnimation>\n </AutoAutoHeight>\n </div>\n </div>\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 { useEffect, useRef, useState } 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 { IconType } from 'components/generic/Icon/Icon';\nimport API from 'api/BookingAPI';\nimport AutoAutoHeight from 'animations/AutoAutoHeight';\nimport Alert, { AlertType } from 'components/generic/Alert';\nimport { useHistory, useParams } from 'react-router-dom';\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 { SignInForm } from 'components/User/Forms/SignInForm';\nimport { SignUpForm } from 'components/User/Forms/SignUpForm';\nimport FadeAnimation from 'animations/Fade';\nimport { ForgotPasswordForm } from 'components/User/Forms/ForgotPasswordForm';\nimport { FindReservationViewEvent } from '@frontend/events';\nimport { EViewingScreen } from 'components/generic/modal/SigninModal/UnauthenticatedUserModal';\nimport MemberPortalFeature from 'providers/feature/MemberPortalFeature';\nimport { EMAIL_REGEX } from 'util/Validation';\n\nexport const QUERY_PARAM_NAME = 'path';\n\nexport enum EFindReservationPath {\n FindReservation = 'find-reservation',\n Login = 'login',\n Register = 'register',\n Forgot = 'forgot',\n}\n\nconst pathToScreenMapping: { [path in EFindReservationPath]: EViewingScreen } = {\n [EFindReservationPath.FindReservation]: EViewingScreen.Default,\n [EFindReservationPath.Login]: EViewingScreen.SignIn,\n [EFindReservationPath.Register]: EViewingScreen.SignUp,\n [EFindReservationPath.Forgot]: EViewingScreen.ForgotPassword,\n};\n\ninterface IQueryParams {\n [QUERY_PARAM_NAME]: EFindReservationPath;\n}\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 { path }: IQueryParams = useParams<IQueryParams>();\n const firstTime = useRef<boolean>(true);\n const nextViewingScreen = useRef<EViewingScreen>();\n\n const [isLoading, setIsLoading] = useState(false);\n const [apiErrorMessages, setApiErrorMessages] = useState('');\n const [viewingScreen, setViewingScreen] = useState<EViewingScreen>(pathToScreenMapping[path]);\n\n useEffect(() => {\n if (firstTime.current) {\n firstTime.current = false;\n setViewingScreen(pathToScreenMapping[path]);\n } else {\n setViewingScreen(null);\n nextViewingScreen.current = pathToScreenMapping[path];\n }\n }, [path]);\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 { 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 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 const handleSubmitOnClick = () => {\n handleSubmit(onSubmit)();\n };\n\n const onSignInClicked = () => {\n history.push(`/${EFindReservationPath.Login}`);\n };\n\n const onBackToItineraryClicked = () => {\n history.push(`/${EFindReservationPath.FindReservation}`);\n };\n\n const onSignUpClicked = () => {\n history.push(`/${EFindReservationPath.Register}`);\n };\n\n const onForgotPasswordClicked = () => {\n history.push(`/${EFindReservationPath.Forgot}`);\n };\n\n const onExit = () => {\n setViewingScreen(nextViewingScreen.current);\n };\n\n const defaultContents = (\n <form onSubmit={handleSubmit(onSubmit)}>\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.Navy}>\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.Navy}>\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: EMAIL_REGEX,\n message: t(Translation.FindReservation.InvalidEmailAddress),\n },\n })}\n />\n </div>\n <div className=\"u-flex justify-content-end w-100\">\n <BEButton primary={true} filled={true} mobileWidth={true} isLoading={isLoading} icon={IconType.ArrowRight} iconPosition=\"right\" onClick={handleSubmitOnClick}>\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 {MemberPortalFeature.isActive() && (\n <div className=\"u-marg-bottom--heavy\">\n <BEButton isText={true} primary={true} size={'small'} onClick={onSignInClicked}>\n Or sign in for more\n </BEButton>\n </div>\n )}\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 </form>\n );\n\n const signInForm = (\n <>\n <SignInForm onForgotPassword={onForgotPasswordClicked} />\n <LineBreak />\n <div className=\"u-marg-bottom--heavy\">\n <BEButton isText={true} primary={true} size={'small'} onClick={onBackToItineraryClicked}>\n Or use Confirmation/Itinerary Number\n </BEButton>\n </div>\n <Text type={TextType.Small} bold={true} className=\"u-marg-bottom--light\">\n No online account?\n </Text>\n <Text type={TextType.Small}>\n <BEButton isText={true} size={'small'} primary={true} onClick={onSignUpClicked}>\n Sign up\n </BEButton>{' '}\n to save time on your next booking.\n </Text>\n </>\n );\n\n const signUpForm = (\n <>\n <SignUpForm />\n <LineBreak />\n <Text type={TextType.Small} bold={true} className=\"u-marg-bottom--light\">\n Already have an account?\n </Text>\n <Text type={TextType.Small}>\n <BEButton isText={true} size={'small'} primary={true} onClick={onSignInClicked}>\n Sign in\n </BEButton>{' '}\n to login with your account.\n </Text>\n </>\n );\n\n const forgotPasswordForm = (\n <>\n <ForgotPasswordForm onCancelled={onSignInClicked} />\n <LineBreak />\n <Text type={TextType.Small} bold={true} className=\"u-marg-bottom--light\">\n No online account?\n </Text>\n <Text type={TextType.Small}>\n <BEButton isText={true} size={'small'} primary={true} onClick={onSignUpClicked}>\n Sign up\n </BEButton>{' '}\n to save time on your next booking.\n </Text>\n </>\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 <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 u-border-rounded\">\n <AutoAutoHeight open={true} startOpen={true}>\n <FadeAnimation open={viewingScreen === 'Default'} onExitCompletely={onExit}>\n {defaultContents}\n </FadeAnimation>\n <FadeAnimation open={viewingScreen === 'SignIn'} onExitCompletely={onExit}>\n {signInForm}\n </FadeAnimation>\n <FadeAnimation open={viewingScreen === 'SignUp'} onExitCompletely={onExit}>\n {signUpForm}\n </FadeAnimation>\n <FadeAnimation open={viewingScreen === 'ForgotPassword'} onExitCompletely={onExit}>\n {forgotPasswordForm}\n </FadeAnimation>\n </AutoAutoHeight>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -1,5 +1,15 @@
1
1
  import { Translation } from 'translations/Translation';
2
2
  import { DeepPartial } from 'react-hook-form';
3
+ type TTranslation = typeof Translation;
4
+ type TI18nMappedLanguage = {
5
+ translation: TTranslation;
6
+ };
7
+ type TI18nMappedLanguages = {
8
+ [key in Language]?: TI18nMappedLanguage;
9
+ };
10
+ type TLanguageTranslations = {
11
+ [key in Language]?: TTranslation;
12
+ };
3
13
  export declare enum Language {
4
14
  en_us = "en-US",
5
15
  zh_cn = "zh-CN",
@@ -14,13 +24,14 @@ export declare class LanguageProvider {
14
24
  static filterLanguages: Language[];
15
25
  static changeLanguage(lang: Language): void;
16
26
  static getPrettyLanguageName(lang: Language): "" | "English" | "简体中文" | "繁體中文" | "Español" | "Français";
17
- static getI18nMappedLanguages(): any;
27
+ static getI18nMappedLanguages(): TI18nMappedLanguages;
18
28
  private static getOverridesForLanguage;
19
29
  /**
20
30
  * Create a way to override translations for specific languages, and hotels.
21
31
  * @param lang
22
32
  * @param overrideTree
23
33
  */
24
- static registerOverride(lang: Language, overrideTree: DeepPartial<typeof Translation>): void;
25
- static getLanguages(): any;
34
+ static registerOverride(lang: Language, overrideTree: DeepPartial<TTranslation>): void;
35
+ static getLanguages(): TLanguageTranslations;
26
36
  }
37
+ export {};
@@ -4,6 +4,7 @@ exports.LanguageProvider = exports.Language = void 0;
4
4
  const en_gb_1 = require("translations/languages/en-gb");
5
5
  const i18next_1 = require("i18next");
6
6
  const RoomstayThemeEngine_1 = require("providers/RoomstayThemeEngine");
7
+ const ObjectHelper_1 = require("../util/ObjectHelper");
7
8
  var Language;
8
9
  (function (Language) {
9
10
  Language["en_us"] = "en-US";
@@ -48,24 +49,7 @@ class LanguageProvider {
48
49
  static getOverridesForLanguage(lang) {
49
50
  const languages = this.getLanguages();
50
51
  const translation = languages[lang];
51
- if (LanguageProvider.overrides[lang]) {
52
- const goDeeperAndCheckIsObject = (currentDepth, history) => {
53
- Object.keys(currentDepth).forEach((currentDepthKey) => {
54
- if (typeof currentDepth[currentDepthKey] === 'object') {
55
- goDeeperAndCheckIsObject(currentDepth[currentDepthKey], [...history, currentDepthKey]);
56
- }
57
- else {
58
- let mutable;
59
- history.forEach((depth) => {
60
- mutable = (mutable !== null && mutable !== void 0 ? mutable : translation)[depth];
61
- });
62
- mutable[currentDepthKey] = currentDepth[currentDepthKey];
63
- }
64
- });
65
- };
66
- goDeeperAndCheckIsObject(LanguageProvider.overrides[lang], []);
67
- }
68
- return translation;
52
+ return (0, ObjectHelper_1.mergeDeep)(translation, LanguageProvider.overrides[lang]);
69
53
  }
70
54
  /**
71
55
  * Create a way to override translations for specific languages, and hotels.
@@ -73,7 +57,7 @@ class LanguageProvider {
73
57
  * @param overrideTree
74
58
  */
75
59
  static registerOverride(lang, overrideTree) {
76
- LanguageProvider.overrides[lang] = overrideTree;
60
+ LanguageProvider.overrides[lang] = (0, ObjectHelper_1.mergeDeep)(LanguageProvider.overrides[lang], overrideTree);
77
61
  // Check required for making sure Lang is loaded first.
78
62
  if (i18next_1.default && i18next_1.default.addResourceBundle) {
79
63
  i18next_1.default.addResourceBundle(lang, 'translation', this.getOverridesForLanguage(lang));
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageProvider.js","sourceRoot":"/","sources":["src/providers/LanguageProvider.ts"],"names":[],"mappings":";;;AAAA,wDAAqD;AAErD,qCAA2B;AAC3B,uEAAgE;AAIhE,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,qBAAS,CAAA;IACT,qBAAS,CAAA;IACT,kCAAsB,CAAA;AAC1B,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB;AAED,MAAa,gBAAgB;IAalB,MAAM,CAAC,cAAc,CAAC,IAAc;QACvC,6BAAmB,CAAC,YAAY,GAAG,IAAI,CAAC;QACxC,iBAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,IAAc;QAC9C,QAAQ,IAAI,EAAE;YACV,KAAK,QAAQ,CAAC,KAAK;gBACf,OAAO,SAAS,CAAC;YACrB,KAAK,QAAQ,CAAC,KAAK;gBACf,OAAO,MAAM,CAAC;YAClB,KAAK,QAAQ,CAAC,KAAK;gBACf,OAAO,MAAM,CAAC;YAClB,KAAK,QAAQ,CAAC,EAAE;gBACZ,OAAO,SAAS,CAAC;YACrB,KAAK,QAAQ,CAAC,EAAE;gBACZ,OAAO,UAAU,CAAC;YACtB;gBACI,OAAO,EAAE,CAAC;SACjB;IACL,CAAC;IAEM,MAAM,CAAC,sBAAsB;QAChC,MAAM,eAAe,GAAQ,EAAE,CAAC;QAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAa,EAAE,EAAE;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAEtD,eAAe,CAAC,GAAG,CAAC,GAAG;gBACnB,WAAW;aACd,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,OAAO,eAAe,CAAC;IAC3B,CAAC;IAEO,MAAM,CAAC,uBAAuB,CAAC,IAAc;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAClC,MAAM,wBAAwB,GAAG,CAAC,YAAiB,EAAE,OAAiB,EAAE,EAAE;gBACtE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;oBAClD,IAAI,OAAO,YAAY,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;wBACnD,wBAAwB,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;qBAC1F;yBAAM;wBACH,IAAI,OAAY,CAAC;wBACjB,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;4BACtB,OAAO,GAAG,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC9C,CAAC,CAAC,CAAC;wBAEH,OAAO,CAAC,eAAe,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;qBAC5D;gBACL,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YAEF,wBAAwB,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;SAClE;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAc,EAAE,YAA6C;QACxF,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;QAEhD,uDAAuD;QACvD,IAAI,iBAAI,IAAI,iBAAI,CAAC,iBAAiB,EAAE;YAChC,iBAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;SACnF;IACL,CAAC;IAEM,MAAM,CAAC,YAAY;QACtB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE;YAClC,MAAM,iBAAiB,GAAQ,EAAE,CAAC;YAElC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC9B,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,OAAO,iBAAiB,CAAC;SAC5B;aAAM;YACH,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;IACL,CAAC;;AAvGL,4CAwGC;AAvGkB,0BAAS,GAA4B,EAAE,CAAC;AAExC,0BAAS,GAAqC;IACzD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAS;IAC3B,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAS;IACxB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAS;IACxB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAS;IAC3B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAS;CAC9B,CAAC;AAEY,gCAAe,GAAe,EAAE,CAAC","sourcesContent":["import common_en from 'translations/languages/en-gb';\n\nimport i18n from 'i18next';\nimport RoomstayThemeEngine from 'providers/RoomstayThemeEngine';\nimport { Translation } from 'translations/Translation';\nimport { DeepPartial } from 'react-hook-form';\n\nexport enum Language {\n en_us = 'en-US',\n zh_cn = 'zh-CN',\n zh_tw = 'zh-TW',\n es = 'es',\n fr = 'fr',\n clear = 'testing_only', // TODO remove before live\n}\n\nexport class LanguageProvider {\n private static overrides: { [name: string]: any } = {};\n\n private static languages: { [langType in Language]?: any } = {\n [Language.en_us]: common_en,\n [Language.es]: common_en,\n [Language.fr]: common_en,\n [Language.zh_cn]: common_en,\n [Language.zh_tw]: common_en,\n };\n\n public static filterLanguages: Language[] = [];\n\n public static changeLanguage(lang: Language) {\n RoomstayThemeEngine.selectedLang = lang;\n i18n.changeLanguage(lang);\n }\n\n public static getPrettyLanguageName(lang: Language) {\n switch (lang) {\n case Language.en_us:\n return 'English';\n case Language.zh_cn:\n return '简体中文';\n case Language.zh_tw:\n return '繁體中文';\n case Language.es:\n return 'Español';\n case Language.fr:\n return 'Français';\n default:\n return '';\n }\n }\n\n public static getI18nMappedLanguages(): any {\n const workingMappings: any = {};\n\n const languages = this.getLanguages();\n\n Object.keys(languages).forEach((key: Language) => {\n const translation = this.getOverridesForLanguage(key);\n\n workingMappings[key] = {\n translation,\n };\n });\n\n return workingMappings;\n }\n\n private static getOverridesForLanguage(lang: Language) {\n const languages = this.getLanguages();\n const translation = languages[lang];\n\n if (LanguageProvider.overrides[lang]) {\n const goDeeperAndCheckIsObject = (currentDepth: any, history: string[]) => {\n Object.keys(currentDepth).forEach((currentDepthKey) => {\n if (typeof currentDepth[currentDepthKey] === 'object') {\n goDeeperAndCheckIsObject(currentDepth[currentDepthKey], [...history, currentDepthKey]);\n } else {\n let mutable: any;\n history.forEach((depth) => {\n mutable = (mutable ?? translation)[depth];\n });\n\n mutable[currentDepthKey] = currentDepth[currentDepthKey];\n }\n });\n };\n\n goDeeperAndCheckIsObject(LanguageProvider.overrides[lang], []);\n }\n\n return translation;\n }\n\n /**\n * Create a way to override translations for specific languages, and hotels.\n * @param lang\n * @param overrideTree\n */\n public static registerOverride(lang: Language, overrideTree: DeepPartial<typeof Translation>) {\n LanguageProvider.overrides[lang] = overrideTree;\n\n // Check required for making sure Lang is loaded first.\n if (i18n && i18n.addResourceBundle) {\n i18n.addResourceBundle(lang, 'translation', this.getOverridesForLanguage(lang));\n }\n }\n\n public static getLanguages(): any {\n if (this.filterLanguages.length >= 1) {\n const filteredLanguages: any = {};\n\n this.filterLanguages.map((lang) => {\n filteredLanguages[lang] = this.languages[lang];\n });\n\n return filteredLanguages;\n } else {\n return this.languages;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"LanguageProvider.js","sourceRoot":"/","sources":["src/providers/LanguageProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import common_en from 'translations/languages/en-gb';\n\nimport i18n from 'i18next';\nimport RoomstayThemeEngine from 'providers/RoomstayThemeEngine';\nimport { Translation } from 'translations/Translation';\nimport { DeepPartial } from 'react-hook-form';\nimport { mergeDeep } from '../util/ObjectHelper';\n\ntype TTranslation = typeof Translation;\ntype TI18nMappedLanguage = {\n translation: TTranslation;\n};\ntype TI18nMappedLanguages = {\n [key in Language]?: TI18nMappedLanguage;\n};\n\ntype TLanguageTranslations = {\n [key in Language]?: TTranslation;\n};\n\nexport enum Language {\n en_us = 'en-US',\n zh_cn = 'zh-CN',\n zh_tw = 'zh-TW',\n es = 'es',\n fr = 'fr',\n clear = 'testing_only', // TODO remove before live\n}\n\nexport class LanguageProvider {\n private static overrides: { [name: string]: TTranslation } = {};\n\n private static languages: { [langType in Language]?: TTranslation } = {\n [Language.en_us]: common_en,\n [Language.es]: common_en,\n [Language.fr]: common_en,\n [Language.zh_cn]: common_en,\n [Language.zh_tw]: common_en,\n };\n\n public static filterLanguages: Language[] = [];\n\n public static changeLanguage(lang: Language) {\n RoomstayThemeEngine.selectedLang = lang;\n i18n.changeLanguage(lang);\n }\n\n public static getPrettyLanguageName(lang: Language) {\n switch (lang) {\n case Language.en_us:\n return 'English';\n case Language.zh_cn:\n return '简体中文';\n case Language.zh_tw:\n return '繁體中文';\n case Language.es:\n return 'Español';\n case Language.fr:\n return 'Français';\n default:\n return '';\n }\n }\n\n public static getI18nMappedLanguages(): TI18nMappedLanguages {\n const workingMappings: TI18nMappedLanguages = {};\n\n const languages = this.getLanguages();\n\n Object.keys(languages).forEach((key: Language) => {\n const translation = this.getOverridesForLanguage(key);\n\n workingMappings[key] = {\n translation,\n };\n });\n\n return workingMappings;\n }\n\n private static getOverridesForLanguage(lang: Language) {\n const languages = this.getLanguages();\n const translation = languages[lang];\n return mergeDeep<TTranslation>(translation, LanguageProvider.overrides[lang]);\n }\n\n /**\n * Create a way to override translations for specific languages, and hotels.\n * @param lang\n * @param overrideTree\n */\n public static registerOverride(lang: Language, overrideTree: DeepPartial<TTranslation>) {\n LanguageProvider.overrides[lang] = mergeDeep<TTranslation>(LanguageProvider.overrides[lang], overrideTree);\n\n // Check required for making sure Lang is loaded first.\n if (i18n && i18n.addResourceBundle) {\n i18n.addResourceBundle(lang, 'translation', this.getOverridesForLanguage(lang));\n }\n }\n\n public static getLanguages(): TLanguageTranslations {\n if (this.filterLanguages.length >= 1) {\n const filteredLanguages: TLanguageTranslations = {};\n\n this.filterLanguages.map((lang) => {\n filteredLanguages[lang] = this.languages[lang];\n });\n\n return filteredLanguages;\n } else {\n return this.languages;\n }\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { BasketContextType } from '@frontend/contexts';
2
+ import BasketRow from 'models/BasketRow';
3
+ import { IPromotion } from 'models/Promotion/IPromotion.type';
4
+ export declare const registerPromotion: (promotion: IPromotion) => void;
5
+ export declare const removePromotion: (promotion: IPromotion) => void;
6
+ /**
7
+ * Used by the Basket context to bind to state.
8
+ */
9
+ export declare const usePromotionContainer: ({ selectedBasketRow, updateBasketRow }: {
10
+ selectedBasketRow: BasketRow;
11
+ updateBasketRow: BasketContextType['updateBasketRow'];
12
+ }) => {
13
+ loadedPromotion: IPromotion;
14
+ };