@roomstay/frontend 2.3.28 → 2.3.30

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 (47) hide show
  1. package/dist/975.bundle.js +1 -1
  2. package/dist/main.bundle.js +1 -1
  3. package/dist/src/components/generic/PlanpayPrice/PlanpayPrice.js +6 -0
  4. package/dist/src/components/generic/PlanpayPrice/PlanpayPrice.js.map +1 -1
  5. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +2 -2
  6. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  7. package/dist/src/index.d.ts +1 -0
  8. package/dist/src/index.js +3 -1
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/models/Client/Hotel/Hotel.d.ts +7 -3
  11. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  12. package/dist/src/pages/steps/Step.d.ts +3 -3
  13. package/dist/src/pages/steps/Step.js.map +1 -1
  14. package/dist/src/providers/FeatureProvider.js +2 -0
  15. package/dist/src/providers/FeatureProvider.js.map +1 -1
  16. package/dist/src/providers/feature/PlanPayPricePreviewFeature.d.ts +7 -0
  17. package/dist/src/providers/feature/PlanPayPricePreviewFeature.js +13 -0
  18. package/dist/src/providers/feature/PlanPayPricePreviewFeature.js.map +1 -0
  19. package/dist/test.bundle.js +1 -1
  20. package/package.json +1 -1
  21. package/dist/tests/offline/RoomstayBestRateAlert.d.ts +0 -1
  22. package/dist/tests/offline/RoomstayBestRateAlert.js +0 -48
  23. package/dist/tests/offline/RoomstayBestRateAlert.js.map +0 -1
  24. package/dist/tests/offline/entry/OfflineEngineWrapper.d.ts +0 -1
  25. package/dist/tests/offline/entry/OfflineEngineWrapper.js +0 -102
  26. package/dist/tests/offline/entry/OfflineEngineWrapper.js.map +0 -1
  27. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.d.ts +0 -3
  28. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.js +0 -17
  29. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.js.map +0 -1
  30. package/dist/tests/offline/entry/components/TestPicker.d.ts +0 -1
  31. package/dist/tests/offline/entry/components/TestPicker.js +0 -299
  32. package/dist/tests/offline/entry/components/TestPicker.js.map +0 -1
  33. package/dist/tests/offline/entry/context/EngineContext.d.ts +0 -9
  34. package/dist/tests/offline/entry/context/EngineContext.js +0 -37
  35. package/dist/tests/offline/entry/context/EngineContext.js.map +0 -1
  36. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.d.ts +0 -1
  37. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js +0 -68
  38. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js.map +0 -1
  39. package/dist/tests/offline/entry/offline-entry.d.ts +0 -1
  40. package/dist/tests/offline/entry/offline-entry.js +0 -50
  41. package/dist/tests/offline/entry/offline-entry.js.map +0 -1
  42. package/dist/tests/offline/entry/pages/BookingWizard/index.d.ts +0 -4
  43. package/dist/tests/offline/entry/pages/BookingWizard/index.js +0 -73
  44. package/dist/tests/offline/entry/pages/BookingWizard/index.js.map +0 -1
  45. package/dist/tests/offline/entry/pages/RoomRate/index.d.ts +0 -4
  46. package/dist/tests/offline/entry/pages/RoomRate/index.js +0 -93
  47. package/dist/tests/offline/entry/pages/RoomRate/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roomstay/frontend",
3
- "version": "2.3.28",
3
+ "version": "2.3.30",
4
4
  "author": {
5
5
  "name": "Roomstay",
6
6
  "email": "rob@roomstay.io",
@@ -1 +0,0 @@
1
- export default function RoomstayBestRateAlert(): JSX.Element;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importDefault(require("react"));
30
- const react_i18next_1 = require("react-i18next");
31
- const Alert_1 = __importDefault(require("../../src/components/generic/Alert"));
32
- const Icon_1 = require("../../src/components/generic/Icon/Icon");
33
- const Text_1 = __importStar(require("../../src/components/generic/Text"));
34
- const Translation_1 = require("../../src/translations/Translation");
35
- const react_2 = require("react");
36
- const contexts_1 = require("../../src/contexts/index.js");
37
- const STEP_ROOM_BEST_RATE_ALERT = 'StepRoomBestRateAlert';
38
- function RoomstayBestRateAlert() {
39
- const basketContext = (0, react_2.useContext)(contexts_1.BasketContext);
40
- const { t } = (0, react_i18next_1.useTranslation)();
41
- const isEditingRow = !!(basketContext.selectedBasketRow && basketContext.selectedBasketRow.isValid());
42
- return (react_1.default.createElement(Alert_1.default, { icon: Icon_1.IconType.Money, noMargin: !isEditingRow },
43
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
44
- react_1.default.createElement("strong", null, t(Translation_1.Translation.Misc.Alerts.BestRatePerks)),
45
- " - Lowest prices and the Roomstay perks only when you book here on roomstay.io")));
46
- }
47
- exports.default = RoomstayBestRateAlert;
48
- //# sourceMappingURL=RoomstayBestRateAlert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RoomstayBestRateAlert.js","sourceRoot":"/","sources":["tests/offline/RoomstayBestRateAlert.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAE1B,iDAA+C;AAC/C,+EAAuD;AACvD,iEAAkE;AAClE,0EAAmE;AACnE,oEAAiE;AACjE,iCAAmC;AAEnC,iDAAmD;AAEnD,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AAE1D,SAAwB,qBAAqB;IACzC,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtG,OAAO,CACH,8BAAC,eAAK,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,YAAY;QAChD,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;YACtB,8CAAS,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAU;6FACxD,CACH,CACX,CAAC;AACN,CAAC;AAZD,wCAYC","sourcesContent":["import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport Alert from '../../src/components/generic/Alert';\nimport { IconType } from '../../src/components/generic/Icon/Icon';\nimport Text, { TextType } from '../../src/components/generic/Text';\nimport { Translation } from '../../src/translations/Translation';\nimport { useContext } from 'react';\n\nimport { BasketContext } from '@frontend/contexts';\n\nconst STEP_ROOM_BEST_RATE_ALERT = 'StepRoomBestRateAlert';\n\nexport default function RoomstayBestRateAlert() {\n const basketContext = useContext(BasketContext);\n const { t } = useTranslation();\n const isEditingRow = !!(basketContext.selectedBasketRow && basketContext.selectedBasketRow.isValid());\n\n return (\n <Alert icon={IconType.Money} noMargin={!isEditingRow}>\n <Text type={TextType.Small}>\n <strong>{t(Translation.Misc.Alerts.BestRatePerks)}</strong> - Lowest prices and the Roomstay perks only when you book here on roomstay.io\n </Text>\n </Alert>\n );\n}\n"]}
@@ -1 +0,0 @@
1
- export default function TestEngineWrapper(): JSX.Element;
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
30
- const react_router_dom_1 = require("react-router-dom");
31
- const FullPageBookingEngine_1 = require("../../../src/engines/FullPageBookingEngine/FullPageBookingEngine");
32
- const RecentSearchesEngine_1 = require("../../../src/engines/RecentSearchesEngine/RecentSearchesEngine");
33
- const FeatureProvider_1 = __importDefault(require("../../../src/providers/FeatureProvider"));
34
- const RoomstayThemeEngine_1 = __importDefault(require("../../../src/providers/RoomstayThemeEngine"));
35
- const DefaultValueManager_1 = require("../../../src/util/DefaultValueManager");
36
- const TestPicker_1 = require("./components/TestPicker");
37
- const memberPortalWidgetRenderer_1 = require("./engineRenderer/memberPortalWidgetRenderer");
38
- const OfflineEngineDefaults_1 = require("./OfflineEngineDefaults");
39
- const BookingWizard_1 = require("./pages/BookingWizard");
40
- const RoomRate_1 = require("./pages/RoomRate");
41
- function FullPageRender() {
42
- const fullpage = (0, react_1.useRef)(null);
43
- (0, react_1.useEffect)(() => {
44
- if (fullpage.current) {
45
- const fullpageBE = new FullPageBookingEngine_1.FullPageBookingEngine(fullpage.current);
46
- const urlParams = new URLSearchParams(window.location.search);
47
- const customHotel = urlParams.get('hotel');
48
- if (customHotel) {
49
- OfflineEngineDefaults_1.rsCompany.hotels[0].hotelID = customHotel;
50
- }
51
- (0, DefaultValueManager_1.registerDefaultValuesReplacement)(DefaultValueManager_1.DEFAULT_VALUES_NAMES.ADULTS, 2);
52
- fullpageBE.setConfig({ company: OfflineEngineDefaults_1.rsCompany });
53
- fullpageBE.start();
54
- FeatureProvider_1.default.load('RoomUpsellFeature');
55
- FeatureProvider_1.default.load('InlineAddonStepFeature');
56
- FeatureProvider_1.default.load('MemberPortalFeature');
57
- }
58
- }, [fullpage]);
59
- return react_1.default.createElement("div", { ref: fullpage });
60
- }
61
- function RecentSearchesRender() {
62
- const recent = (0, react_1.useRef)(null);
63
- (0, react_1.useEffect)(() => {
64
- if (recent.current) {
65
- const fullpageBE = new RecentSearchesEngine_1.RecentSearchesEngine(recent.current);
66
- fullpageBE.setConfig({ company: OfflineEngineDefaults_1.rsCompany });
67
- RoomstayThemeEngine_1.default.registerStyles();
68
- fullpageBE.start();
69
- }
70
- }, [recent]);
71
- return react_1.default.createElement("div", { ref: recent });
72
- }
73
- function TestEngineWrapper() {
74
- const urlParams = new URLSearchParams(window.location.search);
75
- const customHotel = urlParams.get('hotel');
76
- if (customHotel) {
77
- OfflineEngineDefaults_1.rsCompany.hotels[0].hotelID = customHotel;
78
- }
79
- return (react_1.default.createElement("div", null,
80
- react_1.default.createElement("div", { className: "hi-widget-container" },
81
- react_1.default.createElement("div", { className: "hi-launcher-container" })),
82
- react_1.default.createElement(react_router_dom_1.BrowserRouter, null,
83
- react_1.default.createElement(TestPicker_1.TestPicker, null),
84
- react_1.default.createElement(react_router_dom_1.Route, { path: "/", render: (p) => {
85
- const search = p.location.search;
86
- const query = new URLSearchParams(search);
87
- switch (query.get('engine')) {
88
- case 'fp':
89
- return react_1.default.createElement(FullPageRender, null);
90
- case 'rr':
91
- return react_1.default.createElement(RoomRate_1.RoomRateEngineWrapper, { company: OfflineEngineDefaults_1.rsCompany });
92
- case 'rc':
93
- return react_1.default.createElement(RecentSearchesRender, null);
94
- case 'bw':
95
- return react_1.default.createElement(BookingWizard_1.BookingWizardWrapper, { company: OfflineEngineDefaults_1.rsCompany });
96
- case 'mp':
97
- return react_1.default.createElement(memberPortalWidgetRenderer_1.MemberPortalWidgetRenderer, null);
98
- }
99
- } }))));
100
- }
101
- exports.default = TestEngineWrapper;
102
- //# sourceMappingURL=OfflineEngineWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OfflineEngineWrapper.js","sourceRoot":"/","sources":["tests/offline/entry/OfflineEngineWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { BrowserRouter, Route } from 'react-router-dom';\n\nimport { FullPageBookingEngine } from '@/engines/FullPageBookingEngine/FullPageBookingEngine';\nimport { RecentSearchesEngine } from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { DEFAULT_VALUES_NAMES, registerDefaultValuesReplacement } from '@/util/DefaultValueManager';\n\nimport { TestPicker } from './components/TestPicker';\nimport { MemberPortalWidgetRenderer } from './engineRenderer/memberPortalWidgetRenderer';\nimport { rsCompany } from './OfflineEngineDefaults';\nimport { BookingWizardWrapper } from './pages/BookingWizard';\nimport { RoomRateEngineWrapper } from './pages/RoomRate';\n\nfunction FullPageRender() {\n const fullpage = useRef(null);\n\n useEffect(() => {\n if (fullpage.current) {\n const fullpageBE = new FullPageBookingEngine(fullpage.current);\n\n const urlParams = new URLSearchParams(window.location.search);\n const customHotel = urlParams.get('hotel');\n\n if (customHotel) {\n rsCompany.hotels[0].hotelID = customHotel;\n }\n\n registerDefaultValuesReplacement(DEFAULT_VALUES_NAMES.ADULTS, 2);\n\n fullpageBE.setConfig({ company: rsCompany });\n fullpageBE.start();\n\n FeatureProvider.load('RoomUpsellFeature');\n FeatureProvider.load('InlineAddonStepFeature');\n FeatureProvider.load('MemberPortalFeature');\n }\n }, [fullpage]);\n\n return <div ref={fullpage} />;\n}\n\nfunction RecentSearchesRender() {\n const recent = useRef(null);\n\n useEffect(() => {\n if (recent.current) {\n const fullpageBE = new RecentSearchesEngine(recent.current);\n fullpageBE.setConfig({ company: rsCompany });\n RoomstayThemeEngine.registerStyles();\n fullpageBE.start();\n }\n }, [recent]);\n\n return <div ref={recent} />;\n}\n\nexport default function TestEngineWrapper() {\n const urlParams = new URLSearchParams(window.location.search);\n const customHotel = urlParams.get('hotel');\n\n if (customHotel) {\n rsCompany.hotels[0].hotelID = customHotel;\n }\n\n return (\n <div>\n <div className=\"hi-widget-container\">\n <div className=\"hi-launcher-container\"></div>\n </div>\n <BrowserRouter>\n <TestPicker />\n <Route\n path=\"/\"\n render={(p) => {\n const search = p.location.search;\n const query = new URLSearchParams(search);\n switch (query.get('engine')) {\n case 'fp':\n return <FullPageRender />;\n case 'rr':\n return <RoomRateEngineWrapper company={rsCompany} />;\n case 'rc':\n return <RecentSearchesRender />;\n case 'bw':\n return <BookingWizardWrapper company={rsCompany} />;\n case 'mp':\n return <MemberPortalWidgetRenderer />;\n }\n }}\n />\n </BrowserRouter>\n </div>\n );\n}\n"]}
@@ -1,3 +0,0 @@
1
- export declare const RoomstayDemoNavbar: ({ logo }: {
2
- logo: string;
3
- }) => JSX.Element;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RoomstayDemoNavbar = void 0;
7
- const index_module_scss_1 = __importDefault(require("./index.module.scss"));
8
- const react_1 = __importDefault(require("react"));
9
- const RoomstayDemoNavbar = ({ logo }) => {
10
- return (react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar'] },
11
- react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar-inner'] },
12
- react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar-logo'] },
13
- react_1.default.createElement("img", { src: logo, alt: "logo" })),
14
- react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar-menu'] }, ['Home', 'Rooms', 'About', 'Contact'].map((item) => (react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar-menu-item'], key: item }, item)))))));
15
- };
16
- exports.RoomstayDemoNavbar = RoomstayDemoNavbar;
17
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["tests/offline/entry/components/RoomstayDemoNavbar/index.tsx"],"names":[],"mappings":";;;;;;AAAA,4EAAyC;AAEzC,kDAA0B;AAEnB,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;IAC7D,OAAO,CACH,uCAAK,SAAS,EAAE,2BAAM,CAAC,kBAAkB,CAAC;QACtC,uCAAK,SAAS,EAAE,2BAAM,CAAC,wBAAwB,CAAC;YAC5C,uCAAK,SAAS,EAAE,2BAAM,CAAC,uBAAuB,CAAC;gBAC3C,uCAAK,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,MAAM,GAAG,CAC3B;YACN,uCAAK,SAAS,EAAE,2BAAM,CAAC,uBAAuB,CAAC,IAC1C,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjD,uCAAK,SAAS,EAAE,2BAAM,CAAC,4BAA4B,CAAC,EAAE,GAAG,EAAE,IAAI,IAC1D,IAAI,CACH,CACT,CAAC,CACA,CACJ,CACJ,CACT,CAAC;AACN,CAAC,CAAC;AAjBW,QAAA,kBAAkB,sBAiB7B","sourcesContent":["import styles from './index.module.scss';\n\nimport React from 'react';\n\nexport const RoomstayDemoNavbar = ({ logo }: { logo: string }) => {\n return (\n <div className={styles['container-navbar']}>\n <div className={styles['container-navbar-inner']}>\n <div className={styles['container-navbar-logo']}>\n <img src={logo} alt=\"logo\" />\n </div>\n <div className={styles['container-navbar-menu']}>\n {['Home', 'Rooms', 'About', 'Contact'].map((item) => (\n <div className={styles['container-navbar-menu-item']} key={item}>\n {item}\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- export declare const TestPicker: () => JSX.Element;
@@ -1,299 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.TestPicker = void 0;
39
- const TestPicker_module_scss_1 = __importDefault(require("./TestPicker.module.scss"));
40
- const react_1 = __importStar(require("react"));
41
- const SimpleModal_1 = __importDefault(require("../../../../src/components/generic/modal/SimpleModal"));
42
- const index_1 = require("index");
43
- const Select_1 = require("../../../../src/components/generic/Select/Select");
44
- const AsyncAuth_1 = require("../../../../src/util/AsyncAuth");
45
- const LocalStorageProvider_1 = require("../../../../src/providers/storage/LocalStorageProvider");
46
- const UpdateQueryParameters_1 = require("../../../../src/hooks/UpdateQueryParameters");
47
- const Query_1 = require("../../../../src/hooks/Query");
48
- const MemberPortalFeature_1 = __importDefault(require("../../../../src/providers/feature/MemberPortalFeature"));
49
- const FullPageBookingEngineElementEvents_1 = require("../../../../src/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
50
- const ModifyBookingFeature_1 = __importDefault(require("../../../../src/providers/feature/ModifyBookingFeature"));
51
- const OfflineEngineDefaults_1 = require("../OfflineEngineDefaults");
52
- const classnames_1 = __importDefault(require("classnames"));
53
- const engines = [
54
- { value: 'fp', text: 'Booking Engine', color: '#fd7e14' },
55
- { value: 'rr', text: 'RoomRate', color: '#6610f2' },
56
- { value: 'bw', text: 'RoomFinder', color: '#dc3545' },
57
- { value: 'mp', text: 'GuestButton', color: '#198754' },
58
- { value: 'rc', text: 'RecentSearches', color: '#d63384' },
59
- ];
60
- const hotels = [
61
- {
62
- name: 'Naumi Hotels',
63
- options: [
64
- { value: '41e21cbe-3c18-4a47-a7a2-295ce46ae8f2', text: 'Naumi Auckland Airport' },
65
- { value: '1d4285f4-8660-4222-bbd7-3b96ae06d94e', text: 'The Central Private Hotel' },
66
- { value: '6f3329e0-2f72-4a68-a659-45020db00246', text: 'Central Studio Hotel Sydney' },
67
- { value: '3792a869-6834-4012-b2ed-0dcccb23cae4', text: 'The Dairy Private Hotel' },
68
- { value: 'aa04adb0-4f08-456d-8401-475d150fec4d', text: 'Naumi Hotel Wellington' },
69
- { value: '6f3631bc-e773-4ea0-9163-3d9965d41175', text: 'Naumi Singapore' },
70
- { value: '8d546ce0-1fe4-466f-a12b-4190cc532bbc', text: 'Naumi Singapore Per Person' },
71
- { value: '814dbcb4-3ba7-4b4a-a7ee-551396115c7d', text: 'Naumi Studio Wellington' },
72
- ],
73
- },
74
- {
75
- name: 'Ovolo Hotels',
76
- options: [
77
- { value: 'f7641862-cc3b-4f13-91b4-64e1a9d901bd', text: 'The Inchcolm' },
78
- { value: '3a47e623-3c52-415b-ad90-c841e5ff5ba6', text: 'Ovolo The Valley' },
79
- { value: '9112eb12-c173-4493-9df8-703680f6bc03', text: 'Mamaka by Ovolo' },
80
- { value: '05c82275-a919-456c-b78c-711e8e0526d7', text: 'Ovolo South Yarra' },
81
- { value: '0309fabc-885f-4798-b70e-9c867ba92d16', text: 'Ovolo Central' },
82
- { value: 'f43885ad-099b-44c7-b0fc-5919598aa22f', text: 'Ovolo Southside' },
83
- { value: 'bbc7274f-a934-4f52-bc4d-3ae6c03604ff', text: 'The Sheung Wan' },
84
- { value: 'fc53e95d-9286-4099-9acd-29cef0cafbd3', text: 'Laneways by Ovolo' },
85
- { value: '318e0e62-7336-4a91-9535-9ea62a7777cd', text: 'Ovolo Woolloomooloo' },
86
- { value: '206a9106-70bf-4f5a-8b90-626cc55f967a', text: 'The Woolstore 1888' },
87
- { value: '75afc9c6-13af-4343-a2d6-be6ad48c1c11', text: 'Nishi Apartments' },
88
- { value: '59ed3835-3339-4f40-abaa-2a013c514059', text: 'Ovolo Nishi' },
89
- ],
90
- },
91
- {
92
- name: 'Crystalbrook Hotels',
93
- options: [
94
- { value: '2fafb397-da91-4ac4-8ee7-e197a0664b20', text: 'Crystalbrook Flynn' },
95
- { value: '62043741-6cff-4fb6-a16e-c480ed2840e1', text: 'Crystalbrook Riley' },
96
- { value: '0f66d697-4963-4ffe-ad39-da118cf6f9e9', text: 'Crystalbrook Byron' },
97
- { value: '4ea1bbd9-3015-40ad-a372-aea85f8d81e5', text: 'Crystalbrook Kingsley' },
98
- { value: '0df24023-2b00-4005-9e11-b03e985ea872', text: 'Crystalbrook Vincent' },
99
- { value: 'ffb49371-b8e4-4f9c-a77f-f5f8bc1b95d3', text: 'Crystalbrook Albion' },
100
- { value: 'e72c82f0-4ff0-4e4f-9927-66917585e127', text: 'Crystalbrook Bailey' },
101
- ],
102
- },
103
- {
104
- name: 'Northern Escape',
105
- options: [
106
- { value: 'de670d66-f080-4fb6-8dd8-3701951ad171', text: 'Beechmont Estate' },
107
- { value: '9a93f659-ca9a-455b-8e05-1f6e2b6610b1', text: 'Daintree Ecolodge' },
108
- { value: 'fbbb57ce-6076-4438-aa35-6914e4863729', text: 'Mt Mulligan Lodge' },
109
- { value: '7c26c3f4-09cc-414d-8ed2-aceec23dd47c', text: 'Orpheus Island Lodge' },
110
- ],
111
- },
112
- {
113
- name: 'Hampshire Holiday Parks',
114
- options: [
115
- { value: '7cef9d36-7fa1-4049-b9a2-9bc60a4bba6f', text: 'Glendhu Bay Holiday Park' },
116
- { value: 'ab9fe300-8be0-46c2-8fa5-7998439d7ca4', text: 'Wanaka Holiday Park' },
117
- { value: '0f683d3f-b997-4d00-9601-69ed1d7f826e', text: 'Arrowtown Holiday Park' },
118
- { value: '1e79858b-b761-4b0f-9da2-1b9ce85a4e9c', text: 'Queenstown Holiday Park' },
119
- ],
120
- },
121
- ];
122
- const availableFeatures = [
123
- {
124
- feature: index_1.E164PhoneNumberFieldFeature,
125
- label: 'Phone number input in E164 format?',
126
- },
127
- {
128
- feature: index_1.ConfirmationVerifyFeature,
129
- label: 'Show Confirmation Checkbox on checkout?',
130
- },
131
- {
132
- feature: index_1.ShowIATANumberOnCheckoutFeature,
133
- label: 'Show IATA number input field on checkout?',
134
- },
135
- {
136
- feature: index_1.RoomUpsellFeature,
137
- label: 'Enable Room Upsell on checkout?',
138
- },
139
- {
140
- feature: index_1.InlineAddonStepFeature,
141
- label: 'Enable Inline Addon Step?',
142
- },
143
- {
144
- feature: MemberPortalFeature_1.default,
145
- label: 'Enable GuestPortal?',
146
- },
147
- {
148
- feature: index_1.FullPageEngineSmallSpacingFeature,
149
- label: 'Reduce the size of the spacing on booking engine steps',
150
- },
151
- {
152
- feature: ModifyBookingFeature_1.default,
153
- label: 'Enable Modify Booking?',
154
- },
155
- ];
156
- const availableThemes = [
157
- { text: 'Medium', value: index_1.RoomstayTheme.Medium },
158
- { text: 'Light', value: index_1.RoomstayTheme.Light },
159
- ];
160
- const TestPicker = () => {
161
- var _a;
162
- const [, setInc] = (0, react_1.useState)(0);
163
- const [isModalOpen, setIsModalOpen] = (0, react_1.useState)(false);
164
- const updateQueryParameters = (0, UpdateQueryParameters_1.useUpdateQueryParameters)();
165
- const query = (0, Query_1.useQuery)();
166
- const onChangeEngine = (value) => {
167
- query.set('engine', value);
168
- updateQueryParameters({
169
- engine: value,
170
- });
171
- setIsModalOpen(false);
172
- };
173
- const onModalClose = () => {
174
- setIsModalOpen(false);
175
- };
176
- const onTriggerClick = () => {
177
- setIsModalOpen((open) => !open);
178
- };
179
- const onThemeChanged = (theme) => {
180
- index_1.RoomstayThemeEngine.ThemeType = theme;
181
- const containers = document.querySelectorAll('.roomstay-booking-container');
182
- for (const container of containers) {
183
- const isMedTheme = theme === index_1.RoomstayTheme.Medium;
184
- const isLightTheme = theme === index_1.RoomstayTheme.Light;
185
- const contClassList = container.classList;
186
- contClassList.toggle('--theme-medium', isMedTheme);
187
- contClassList.toggle('--theme-light', isLightTheme);
188
- }
189
- refresh();
190
- };
191
- /**
192
- * Reason for this is if we make global changes, state doesn't update 👀
193
- */
194
- const refresh = () => {
195
- setInc((i) => i + 1);
196
- try {
197
- FullPageBookingEngineElementEvents_1.FullPageBookingEngineElementEvents.reload();
198
- }
199
- catch (ex) {
200
- console.error(ex);
201
- }
202
- };
203
- const [cognitoUser, setCognitoUser] = (0, react_1.useState)(null);
204
- const getUser = () => __awaiter(void 0, void 0, void 0, function* () {
205
- const Auth = yield (0, AsyncAuth_1.getAuth)();
206
- Auth.currentAuthenticatedUser()
207
- .then((user) => {
208
- setCognitoUser(user);
209
- })
210
- .catch(() => {
211
- setCognitoUser(null);
212
- });
213
- });
214
- (0, react_1.useEffect)(() => {
215
- let cancelled = false;
216
- getUser();
217
- return () => {
218
- cancelled = true;
219
- };
220
- }, [isModalOpen]);
221
- (0, react_1.useEffect)(() => {
222
- if (!query.get('engine')) {
223
- onChangeEngine(engines[0].value);
224
- }
225
- const provider = new LocalStorageProvider_1.LocalStorageProvider();
226
- provider.read('SavedFeatures').then((stateFeatureMap) => {
227
- availableFeatures.forEach(({ feature }) => {
228
- if (stateFeatureMap === null || stateFeatureMap === void 0 ? void 0 : stateFeatureMap[feature.getName()]) {
229
- index_1.FeatureProvider.load(feature);
230
- }
231
- else {
232
- index_1.FeatureProvider.unLoad(feature);
233
- }
234
- });
235
- });
236
- }, []);
237
- const updateSavedFeatures = () => {
238
- const featureMap = {};
239
- availableFeatures.forEach(({ feature }) => {
240
- featureMap[feature.getName()] = feature.isActive();
241
- });
242
- const provider = new LocalStorageProvider_1.LocalStorageProvider();
243
- provider.write('SavedFeatures', featureMap);
244
- console.log('saved features');
245
- };
246
- const onHotelChanged = (value) => {
247
- query.set('hotel', value);
248
- updateQueryParameters({
249
- hotel: value,
250
- });
251
- window.location.reload();
252
- };
253
- return (react_1.default.createElement(react_1.default.Fragment, null,
254
- react_1.default.createElement("div", { className: TestPicker_module_scss_1.default.powerToggle, onClick: onTriggerClick },
255
- react_1.default.createElement("img", { src: "https://clients.app.roomstay.io/assets/roomstay-logo.png" })),
256
- react_1.default.createElement(SimpleModal_1.default, { open: isModalOpen, onClose: onModalClose, title: "Development Control Panel" },
257
- react_1.default.createElement("div", { className: TestPicker_module_scss_1.default.engineControlBody },
258
- react_1.default.createElement("div", { className: "row" },
259
- react_1.default.createElement("div", { className: "col-md-6" },
260
- react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
261
- react_1.default.createElement("div", { className: "u-marg-bottom--light" },
262
- react_1.default.createElement(index_1.Headline, { bold: true }, "Engine Enhancements")),
263
- react_1.default.createElement("div", null, availableFeatures.map((aF, index) => {
264
- const onFeatureChange = (state) => {
265
- if (state.target.checked) {
266
- index_1.FeatureProvider.load(aF.feature.getName());
267
- }
268
- else {
269
- index_1.FeatureProvider.unLoad(aF.feature.getName());
270
- }
271
- refresh();
272
- updateSavedFeatures();
273
- };
274
- return react_1.default.createElement(index_1.Checkbox, { key: index, label: aF.label, checked: aF.feature.isActive(), onChange: onFeatureChange });
275
- }))),
276
- react_1.default.createElement("div", { className: "u-marg-bottom--light" },
277
- react_1.default.createElement(index_1.Headline, { bold: true }, "Engine Theme")),
278
- react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
279
- react_1.default.createElement(index_1.InputSelect, { options: availableThemes, value: index_1.RoomstayThemeEngine.ThemeType, onChange: onThemeChanged, keyName: "value", labelName: "text" }))),
280
- react_1.default.createElement("div", { className: "col-md-6" },
281
- react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
282
- react_1.default.createElement("div", { className: "u-marg-bottom--light" },
283
- react_1.default.createElement(index_1.Headline, { bold: true }, "Engine Type:")),
284
- react_1.default.createElement("div", { className: TestPicker_module_scss_1.default['engine-picker-grid'] }, engines.map((engine) => {
285
- const _onClick = () => {
286
- onChangeEngine(engine.value);
287
- };
288
- const classes = (0, classnames_1.default)(TestPicker_module_scss_1.default['engine-picker-card'], {
289
- [TestPicker_module_scss_1.default['--selected']]: query.get('engine') === engine.value,
290
- });
291
- return (react_1.default.createElement("div", { onClick: _onClick, className: classes, key: engine.value, style: { backgroundColor: engine.color } }, engine.text));
292
- }))),
293
- react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
294
- react_1.default.createElement("div", { className: "u-marg-bottom--light" },
295
- react_1.default.createElement(index_1.Headline, { bold: true }, "Selected Hotel:")),
296
- react_1.default.createElement(Select_1.Select, { nativeOnMobile: true, options: hotels, value: (_a = query.get('hotel')) !== null && _a !== void 0 ? _a : OfflineEngineDefaults_1.rsCompany.hotels[0].hotelID, onChange: onHotelChanged, keyName: "value", labelName: "text" }))))))));
297
- };
298
- exports.TestPicker = TestPicker;
299
- //# sourceMappingURL=TestPicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestPicker.js","sourceRoot":"/","sources":["tests/offline/entry/components/TestPicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import styles from './TestPicker.module.scss';\nimport React, { useEffect, useState } from 'react';\nimport { CognitoUser } from '@aws-amplify/auth';\n\nimport SimpleModal from '@/components/generic/modal/SimpleModal';\nimport {\n Checkbox,\n ConfirmationVerifyFeature,\n E164PhoneNumberFieldFeature,\n FeatureProvider,\n Headline,\n InlineAddonStepFeature,\n RoomstayTheme,\n RoomstayThemeEngine,\n RoomUpsellFeature,\n ShowIATANumberOnCheckoutFeature,\n FullPageEngineSmallSpacingFeature,\n InputSelect,\n} from 'index';\nimport { Feature } from '@/providers/feature/Feature';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport { getAuth } from '@/util/AsyncAuth';\nimport { LocalStorageProvider } from '@/providers/storage/LocalStorageProvider';\nimport { useUpdateQueryParameters } from '@/hooks/UpdateQueryParameters';\nimport { useQuery } from '@/hooks/Query';\nimport MemberPortalFeature from '@/providers/feature/MemberPortalFeature';\nimport { FullPageBookingEngineElementEvents } from '@/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents';\nimport ModifyBookingFeature from '@/providers/feature/ModifyBookingFeature';\nimport { rsCompany } from '../OfflineEngineDefaults';\nimport { default as cx } from 'classnames';\n\nconst engines = [\n { value: 'fp', text: 'Booking Engine', color: '#fd7e14' },\n { value: 'rr', text: 'RoomRate', color: '#6610f2' },\n { value: 'bw', text: 'RoomFinder', color: '#dc3545' },\n { value: 'mp', text: 'GuestButton', color: '#198754' },\n { value: 'rc', text: 'RecentSearches', color: '#d63384' },\n];\n\nconst hotels = [\n {\n name: 'Naumi Hotels',\n options: [\n { value: '41e21cbe-3c18-4a47-a7a2-295ce46ae8f2', text: 'Naumi Auckland Airport' },\n { value: '1d4285f4-8660-4222-bbd7-3b96ae06d94e', text: 'The Central Private Hotel' },\n { value: '6f3329e0-2f72-4a68-a659-45020db00246', text: 'Central Studio Hotel Sydney' },\n { value: '3792a869-6834-4012-b2ed-0dcccb23cae4', text: 'The Dairy Private Hotel' },\n { value: 'aa04adb0-4f08-456d-8401-475d150fec4d', text: 'Naumi Hotel Wellington' },\n { value: '6f3631bc-e773-4ea0-9163-3d9965d41175', text: 'Naumi Singapore' },\n { value: '8d546ce0-1fe4-466f-a12b-4190cc532bbc', text: 'Naumi Singapore Per Person' },\n { value: '814dbcb4-3ba7-4b4a-a7ee-551396115c7d', text: 'Naumi Studio Wellington' },\n ],\n },\n {\n name: 'Ovolo Hotels',\n options: [\n { value: 'f7641862-cc3b-4f13-91b4-64e1a9d901bd', text: 'The Inchcolm' },\n\n { value: '3a47e623-3c52-415b-ad90-c841e5ff5ba6', text: 'Ovolo The Valley' },\n\n { value: '9112eb12-c173-4493-9df8-703680f6bc03', text: 'Mamaka by Ovolo' },\n { value: '05c82275-a919-456c-b78c-711e8e0526d7', text: 'Ovolo South Yarra' },\n\n { value: '0309fabc-885f-4798-b70e-9c867ba92d16', text: 'Ovolo Central' },\n { value: 'f43885ad-099b-44c7-b0fc-5919598aa22f', text: 'Ovolo Southside' },\n { value: 'bbc7274f-a934-4f52-bc4d-3ae6c03604ff', text: 'The Sheung Wan' },\n { value: 'fc53e95d-9286-4099-9acd-29cef0cafbd3', text: 'Laneways by Ovolo' },\n\n { value: '318e0e62-7336-4a91-9535-9ea62a7777cd', text: 'Ovolo Woolloomooloo' },\n { value: '206a9106-70bf-4f5a-8b90-626cc55f967a', text: 'The Woolstore 1888' },\n { value: '75afc9c6-13af-4343-a2d6-be6ad48c1c11', text: 'Nishi Apartments' },\n { value: '59ed3835-3339-4f40-abaa-2a013c514059', text: 'Ovolo Nishi' },\n ],\n },\n {\n name: 'Crystalbrook Hotels',\n options: [\n { value: '2fafb397-da91-4ac4-8ee7-e197a0664b20', text: 'Crystalbrook Flynn' },\n { value: '62043741-6cff-4fb6-a16e-c480ed2840e1', text: 'Crystalbrook Riley' },\n { value: '0f66d697-4963-4ffe-ad39-da118cf6f9e9', text: 'Crystalbrook Byron' },\n { value: '4ea1bbd9-3015-40ad-a372-aea85f8d81e5', text: 'Crystalbrook Kingsley' },\n { value: '0df24023-2b00-4005-9e11-b03e985ea872', text: 'Crystalbrook Vincent' },\n { value: 'ffb49371-b8e4-4f9c-a77f-f5f8bc1b95d3', text: 'Crystalbrook Albion' },\n { value: 'e72c82f0-4ff0-4e4f-9927-66917585e127', text: 'Crystalbrook Bailey' },\n ],\n },\n {\n name: 'Northern Escape',\n options: [\n { value: 'de670d66-f080-4fb6-8dd8-3701951ad171', text: 'Beechmont Estate' },\n { value: '9a93f659-ca9a-455b-8e05-1f6e2b6610b1', text: 'Daintree Ecolodge' },\n { value: 'fbbb57ce-6076-4438-aa35-6914e4863729', text: 'Mt Mulligan Lodge' },\n { value: '7c26c3f4-09cc-414d-8ed2-aceec23dd47c', text: 'Orpheus Island Lodge' },\n ],\n },\n {\n name: 'Hampshire Holiday Parks',\n options: [\n { value: '7cef9d36-7fa1-4049-b9a2-9bc60a4bba6f', text: 'Glendhu Bay Holiday Park' },\n { value: 'ab9fe300-8be0-46c2-8fa5-7998439d7ca4', text: 'Wanaka Holiday Park' },\n { value: '0f683d3f-b997-4d00-9601-69ed1d7f826e', text: 'Arrowtown Holiday Park' },\n { value: '1e79858b-b761-4b0f-9da2-1b9ce85a4e9c', text: 'Queenstown Holiday Park' },\n ],\n },\n];\n\ninterface IThemeSelectOption {\n text: string;\n value: RoomstayTheme;\n}\n\nconst availableFeatures: { feature: Feature; label: string }[] = [\n {\n feature: E164PhoneNumberFieldFeature,\n\n label: 'Phone number input in E164 format?',\n },\n {\n feature: ConfirmationVerifyFeature,\n label: 'Show Confirmation Checkbox on checkout?',\n },\n {\n feature: ShowIATANumberOnCheckoutFeature,\n label: 'Show IATA number input field on checkout?',\n },\n {\n feature: RoomUpsellFeature,\n label: 'Enable Room Upsell on checkout?',\n },\n {\n feature: InlineAddonStepFeature,\n label: 'Enable Inline Addon Step?',\n },\n {\n feature: MemberPortalFeature,\n label: 'Enable GuestPortal?',\n },\n {\n feature: FullPageEngineSmallSpacingFeature,\n label: 'Reduce the size of the spacing on booking engine steps',\n },\n {\n feature: ModifyBookingFeature,\n label: 'Enable Modify Booking?',\n },\n];\n\nconst availableThemes: IThemeSelectOption[] = [\n { text: 'Medium', value: RoomstayTheme.Medium },\n { text: 'Light', value: RoomstayTheme.Light },\n];\n\nexport const TestPicker = () => {\n const [, setInc] = useState(0);\n\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const updateQueryParameters = useUpdateQueryParameters();\n const query = useQuery();\n\n const onChangeEngine = (value: string) => {\n query.set('engine', value);\n updateQueryParameters({\n engine: value,\n });\n setIsModalOpen(false);\n };\n\n const onModalClose = () => {\n setIsModalOpen(false);\n };\n\n const onTriggerClick = () => {\n setIsModalOpen((open) => !open);\n };\n\n const onThemeChanged = (theme: RoomstayTheme) => {\n RoomstayThemeEngine.ThemeType = theme;\n const containers = document.querySelectorAll('.roomstay-booking-container');\n\n for (const container of containers) {\n const isMedTheme = theme === RoomstayTheme.Medium;\n const isLightTheme = theme === RoomstayTheme.Light;\n\n const contClassList = container.classList;\n\n contClassList.toggle('--theme-medium', isMedTheme);\n contClassList.toggle('--theme-light', isLightTheme);\n }\n refresh();\n };\n\n /**\n * Reason for this is if we make global changes, state doesn't update 👀\n */\n const refresh = () => {\n setInc((i) => i + 1);\n try {\n FullPageBookingEngineElementEvents.reload();\n } catch (ex) {\n console.error(ex);\n }\n };\n\n const [cognitoUser, setCognitoUser] = useState<CognitoUser | any>(null);\n\n const getUser = async () => {\n const Auth = await getAuth();\n Auth.currentAuthenticatedUser()\n .then((user) => {\n setCognitoUser(user);\n })\n .catch(() => {\n setCognitoUser(null);\n });\n };\n\n useEffect(() => {\n let cancelled = false;\n getUser();\n return () => {\n cancelled = true;\n };\n }, [isModalOpen]);\n\n useEffect(() => {\n if (!query.get('engine')) {\n onChangeEngine(engines[0].value);\n }\n\n const provider = new LocalStorageProvider();\n provider.read<{ [name: string]: boolean }>('SavedFeatures').then((stateFeatureMap) => {\n availableFeatures.forEach(({ feature }) => {\n if (stateFeatureMap?.[feature.getName()]) {\n FeatureProvider.load(feature);\n } else {\n FeatureProvider.unLoad(feature);\n }\n });\n });\n }, []);\n\n const updateSavedFeatures = () => {\n const featureMap: { [name: string]: boolean } = {};\n\n availableFeatures.forEach(({ feature }) => {\n featureMap[feature.getName()] = feature.isActive();\n });\n\n const provider = new LocalStorageProvider();\n provider.write('SavedFeatures', featureMap);\n\n console.log('saved features');\n };\n\n const onHotelChanged = (value: string) => {\n query.set('hotel', value);\n updateQueryParameters({\n hotel: value,\n });\n window.location.reload();\n };\n\n return (\n <>\n <div className={styles.powerToggle} onClick={onTriggerClick}>\n <img src=\"https://clients.app.roomstay.io/assets/roomstay-logo.png\" />\n </div>\n <SimpleModal open={isModalOpen} onClose={onModalClose} title=\"Development Control Panel\">\n <div className={styles.engineControlBody}>\n <div className=\"row\">\n <div className=\"col-md-6\">\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Headline bold>Engine Enhancements</Headline>\n </div>\n <div>\n {availableFeatures.map((aF, index) => {\n const onFeatureChange = (state: React.ChangeEvent<HTMLInputElement>) => {\n if (state.target.checked) {\n FeatureProvider.load(aF.feature.getName());\n } else {\n FeatureProvider.unLoad(aF.feature.getName());\n }\n\n refresh();\n updateSavedFeatures();\n };\n\n return <Checkbox key={index} label={aF.label} checked={aF.feature.isActive()} onChange={onFeatureChange} />;\n })}\n </div>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Headline bold>Engine Theme</Headline>\n </div>\n <div className=\"u-marg-bottom--heavy\">\n <InputSelect<IThemeSelectOption, 'value'>\n options={availableThemes}\n value={RoomstayThemeEngine.ThemeType}\n onChange={onThemeChanged}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </div>\n <div className=\"col-md-6\">\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Headline bold>Engine Type:</Headline>\n </div>\n <div className={styles['engine-picker-grid']}>\n {engines.map((engine) => {\n const _onClick = () => {\n onChangeEngine(engine.value);\n };\n\n const classes = cx(styles['engine-picker-card'], {\n [styles['--selected']]: query.get('engine') === engine.value,\n });\n\n return (\n <div onClick={_onClick} className={classes} key={engine.value} style={{ backgroundColor: engine.color }}>\n {engine.text}\n </div>\n );\n })}\n </div>\n </div>\n <div className=\"u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--light\">\n <Headline bold>Selected Hotel:</Headline>\n </div>\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={hotels}\n value={(query.get('hotel') as string) ?? rsCompany.hotels[0].hotelID}\n onChange={onHotelChanged}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </div>\n </div>\n </div>\n </SimpleModal>\n </>\n );\n};\n"]}
@@ -1,9 +0,0 @@
1
- import { Dispatch, FC, SetStateAction } from 'react';
2
- import { Placement } from '@popperjs/core';
3
- interface EngineContextProps {
4
- authPlacement?: Placement;
5
- setAuthPlacement?: Dispatch<SetStateAction<Placement>>;
6
- }
7
- export declare const EngineContextWrapper: FC;
8
- export declare const useEngineContext: () => EngineContextProps;
9
- export {};
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.useEngineContext = exports.EngineContextWrapper = void 0;
27
- const react_1 = __importStar(require("react"));
28
- const EngineContext = (0, react_1.createContext)({});
29
- const EngineContextWrapper = (props) => {
30
- const { children } = props;
31
- const [authPlacement, setAuthPlacement] = (0, react_1.useState)('bottom-end');
32
- return react_1.default.createElement(EngineContext.Provider, { value: { authPlacement, setAuthPlacement } }, children);
33
- };
34
- exports.EngineContextWrapper = EngineContextWrapper;
35
- const useEngineContext = () => (0, react_1.useContext)(EngineContext);
36
- exports.useEngineContext = useEngineContext;
37
- //# sourceMappingURL=EngineContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EngineContext.js","sourceRoot":"/","sources":["tests/offline/entry/context/EngineContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiG;AAQjG,MAAM,aAAa,GAAG,IAAA,qBAAa,EAAqB,EAAE,CAAC,CAAC;AAErD,MAAM,oBAAoB,GAAO,CAAC,KAAK,EAAE,EAAE;IAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE3B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAY,YAAY,CAAC,CAAC;IAE5E,OAAO,8BAAC,aAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAG,QAAQ,CAA0B,CAAC;AACnH,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEK,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,aAAa,CAAC,CAAC;AAAnD,QAAA,gBAAgB,oBAAmC","sourcesContent":["import React, { createContext, Dispatch, FC, SetStateAction, useContext, useState } from 'react';\nimport { Placement } from '@popperjs/core';\n\ninterface EngineContextProps {\n authPlacement?: Placement;\n setAuthPlacement?: Dispatch<SetStateAction<Placement>>;\n}\n\nconst EngineContext = createContext<EngineContextProps>({});\n\nexport const EngineContextWrapper: FC = (props) => {\n const { children } = props;\n\n const [authPlacement, setAuthPlacement] = useState<Placement>('bottom-end');\n\n return <EngineContext.Provider value={{ authPlacement, setAuthPlacement }}>{children}</EngineContext.Provider>;\n};\n\nexport const useEngineContext = () => useContext(EngineContext);\n"]}