@roomstay/frontend 2.3.0 → 2.3.2

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 (32) hide show
  1. package/dist/213.bundle.js +1 -1
  2. package/dist/370.bundle.js +1 -1
  3. package/dist/572.bundle.js +1 -1
  4. package/dist/main.bundle.js +1 -1
  5. package/dist/src/components/steps/confirmation/PaymentInformation.js +5 -5
  6. package/dist/src/components/steps/confirmation/PaymentInformation.js.map +1 -1
  7. package/dist/src/components/summary/BESummaryPrivacyPolicy.js +4 -5
  8. package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
  9. package/dist/src/hooks/CurrentHotelHook.d.ts +5 -0
  10. package/dist/src/hooks/CurrentHotelHook.js +37 -30
  11. package/dist/src/hooks/CurrentHotelHook.js.map +1 -1
  12. package/dist/src/translations/languages/en-gb.js +1 -1
  13. package/dist/src/translations/languages/en-gb.js.map +1 -1
  14. package/dist/test.bundle.js +1 -1
  15. package/dist/tests/offline/entry/OfflineEngineDefaults.js +11 -6
  16. package/dist/tests/offline/entry/OfflineEngineDefaults.js.map +1 -1
  17. package/dist/tests/offline/entry/OfflineEngineWrapper.js +5 -60
  18. package/dist/tests/offline/entry/OfflineEngineWrapper.js.map +1 -1
  19. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.d.ts +3 -0
  20. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.js +17 -0
  21. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.js.map +1 -0
  22. package/dist/tests/offline/entry/components/TestPicker.js +83 -57
  23. package/dist/tests/offline/entry/components/TestPicker.js.map +1 -1
  24. package/dist/tests/offline/entry/pages/{Inline → BookingWizard}/index.d.ts +1 -1
  25. package/dist/tests/offline/entry/pages/BookingWizard/index.js +73 -0
  26. package/dist/tests/offline/entry/pages/BookingWizard/index.js.map +1 -0
  27. package/dist/tests/offline/entry/pages/RoomRate/index.d.ts +4 -0
  28. package/dist/tests/offline/entry/pages/{Inline → RoomRate}/index.js +5 -8
  29. package/dist/tests/offline/entry/pages/RoomRate/index.js.map +1 -0
  30. package/dist/vendors.bundle.js +1 -1
  31. package/package.json +1 -1
  32. package/dist/tests/offline/entry/pages/Inline/index.js.map +0 -1
@@ -0,0 +1,73 @@
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
+ exports.BookingWizardWrapper = void 0;
30
+ const index_1 = require("../../../../../src/index");
31
+ const react_1 = __importStar(require("react"));
32
+ const RoomstayDemoNavbar_1 = require("../../components/RoomstayDemoNavbar");
33
+ const index_module_scss_1 = __importDefault(require("./index.module.scss"));
34
+ const BookingWizardWrapper = ({ company }) => {
35
+ return (react_1.default.createElement("div", { className: "roomstay-booking-container" },
36
+ react_1.default.createElement("div", { className: index_module_scss_1.default['container'] },
37
+ react_1.default.createElement(RoomstayDemoNavbar_1.RoomstayDemoNavbar, { logo: company.logo }),
38
+ react_1.default.createElement("div", { className: index_module_scss_1.default['container-image'], style: { backgroundImage: `url('${company.hotels[0].heroImage}')` } }),
39
+ react_1.default.createElement("div", { className: "container" },
40
+ react_1.default.createElement("div", { className: index_module_scss_1.default['container-body'] },
41
+ react_1.default.createElement("h1", { className: index_module_scss_1.default['engine-title'] }, company.name),
42
+ react_1.default.createElement(BookingWizardRender, { company: company }))))));
43
+ };
44
+ exports.BookingWizardWrapper = BookingWizardWrapper;
45
+ function BookingWizardRender({ company }) {
46
+ const recent = (0, react_1.useRef)(null);
47
+ (0, react_1.useEffect)(() => {
48
+ if (recent.current) {
49
+ const properties = {};
50
+ properties[''] = company.hotels.map((hotel) => {
51
+ return {
52
+ id: hotel.hotelID,
53
+ name: hotel.name,
54
+ colors: hotel.colors,
55
+ };
56
+ });
57
+ const wizardBookingEngine = new index_1.BookingWizardEngine(recent.current);
58
+ wizardBookingEngine.setConfig({
59
+ layout: 'horizontal',
60
+ theme: 'specific',
61
+ widgetType: 'group',
62
+ onSubmit: (e) => {
63
+ window.location.href = `?engine=fp&hotel=${e.id}#/step/room/?arrive=${e.checkIn.format('YYYY-MM-DD')}&depart=${e.checkout.format('YYYY-MM-DD')}&adults=${e.guests.adults}&children=${e.guests.children}`;
64
+ },
65
+ defaultColors: company.colors,
66
+ properties,
67
+ });
68
+ wizardBookingEngine.start();
69
+ }
70
+ }, [recent]);
71
+ return react_1.default.createElement("div", { ref: recent });
72
+ }
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["tests/offline/entry/pages/BookingWizard/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA8E;AAG9E,+CAAiD;AACjD,4EAAyE;AAEzE,4EAAyC;AAElC,MAAM,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAA8B,EAAE,EAAE;IAC5E,OAAO,CACH,uCAAK,SAAS,EAAC,4BAA4B;QACvC,uCAAK,SAAS,EAAE,2BAAM,CAAC,WAAW,CAAC;YAC/B,8BAAC,uCAAkB,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAI;YAC1C,uCAAK,SAAS,EAAE,2BAAM,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,GAAQ;YACtH,uCAAK,SAAS,EAAC,WAAW;gBACtB,uCAAK,SAAS,EAAE,2BAAM,CAAC,gBAAgB,CAAC;oBACpC,sCAAI,SAAS,EAAE,2BAAM,CAAC,cAAc,CAAC,IAAG,OAAO,CAAC,IAAI,CAAM;oBAC1D,8BAAC,mBAAmB,IAAC,OAAO,EAAE,OAAO,GAAI,CACvC,CACJ,CACJ,CACJ,CACT,CAAC;AACN,CAAC,CAAC;AAfW,QAAA,oBAAoB,wBAe/B;AAEF,SAAS,mBAAmB,CAAC,EAAE,OAAO,EAA8B;IAChE,MAAM,MAAM,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAE5B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,MAAM,CAAC,OAAO,EAAE;YAChB,MAAM,UAAU,GAA6B,EAAE,CAAC;YAEhD,UAAU,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC1C,OAAO;oBACH,EAAE,EAAE,KAAK,CAAC,OAAO;oBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACvB,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,IAAI,2BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACpE,mBAAmB,CAAC,SAAS,CAAC;gBAC1B,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,WAC1I,CAAC,CAAC,MAAM,CAAC,MACb,aAAa,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrC,CAAC;gBACD,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,UAAU;aACb,CAAC,CAAC;YACH,mBAAmB,CAAC,KAAK,EAAE,CAAC;SAC/B;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,uCAAK,GAAG,EAAE,MAAM,GAAI,CAAC;AAChC,CAAC","sourcesContent":["import { BookingWizardEngine, Color, ConfigCompany, Headline } from '@/index';\nimport { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport { TextAlign } from '@/util/TextAlignment';\nimport React, { useRef, useEffect } from 'react';\nimport { RoomstayDemoNavbar } from '../../components/RoomstayDemoNavbar';\n\nimport styles from './index.module.scss';\n\nexport const BookingWizardWrapper = ({ company }: { company: ConfigCompany }) => {\n return (\n <div className=\"roomstay-booking-container\">\n <div className={styles['container']}>\n <RoomstayDemoNavbar logo={company.logo} />\n <div className={styles['container-image']} style={{ backgroundImage: `url('${company.hotels[0].heroImage}')` }}></div>\n <div className=\"container\">\n <div className={styles['container-body']}>\n <h1 className={styles['engine-title']}>{company.name}</h1>\n <BookingWizardRender company={company} />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nfunction BookingWizardRender({ company }: { company: ConfigCompany }) {\n const recent = useRef(null);\n\n useEffect(() => {\n if (recent.current) {\n const properties: TBookingWizardProperties = {};\n\n properties[''] = company.hotels.map((hotel) => {\n return {\n id: hotel.hotelID,\n name: hotel.name,\n colors: hotel.colors,\n };\n });\n\n const wizardBookingEngine = new BookingWizardEngine(recent.current);\n wizardBookingEngine.setConfig({\n layout: 'horizontal',\n theme: 'specific',\n widgetType: 'group',\n onSubmit: (e) => {\n window.location.href = `?engine=fp&hotel=${e.id}#/step/room/?arrive=${e.checkIn.format('YYYY-MM-DD')}&depart=${e.checkout.format('YYYY-MM-DD')}&adults=${\n e.guests.adults\n }&children=${e.guests.children}`;\n },\n defaultColors: company.colors,\n properties,\n });\n wizardBookingEngine.start();\n }\n }, [recent]);\n\n return <div ref={recent} />;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { ConfigCompany } from '../../../../../src/index';
2
+ export declare const RoomRateEngineWrapper: ({ company }: {
3
+ company: ConfigCompany;
4
+ }) => JSX.Element;
@@ -26,15 +26,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.InlineEngineWrapper = void 0;
29
+ exports.RoomRateEngineWrapper = void 0;
30
30
  const HotelAPI_1 = __importDefault(require("../../../../../src/api/HotelAPI"));
31
31
  const Portal_1 = require("../../../../../src/components/generic/Portal/Portal");
32
32
  const ImageGallerySlider_1 = __importDefault(require("../../../../../src/components/steps/room/ImageGallerySlider"));
33
33
  const index_1 = require("../../../../../src/index");
34
34
  const react_1 = __importStar(require("react"));
35
+ const RoomstayDemoNavbar_1 = require("../../components/RoomstayDemoNavbar");
35
36
  const OfflineEngineDefaults_1 = require("../../OfflineEngineDefaults");
36
37
  const index_module_scss_1 = __importDefault(require("./index.module.scss"));
37
- const InlineEngineWrapper = ({ company }) => {
38
+ const RoomRateEngineWrapper = ({ company }) => {
38
39
  const hotelID = company.hotels[0].hotelID;
39
40
  const [hotelData, setHotelData] = (0, react_1.useState)();
40
41
  const [roomData, setRoomData] = (0, react_1.useState)();
@@ -61,11 +62,7 @@ const InlineEngineWrapper = ({ company }) => {
61
62
  }
62
63
  return (react_1.default.createElement("div", { className: "roomstay-booking-container" },
63
64
  react_1.default.createElement("div", { className: index_module_scss_1.default['container-body'] },
64
- react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar'] },
65
- react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar-inner'] },
66
- react_1.default.createElement("div", { className: index_module_scss_1.default['container-navbar-logo'] },
67
- react_1.default.createElement("img", { src: company.logo, alt: "logo" })),
68
- 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)))))),
65
+ react_1.default.createElement(RoomstayDemoNavbar_1.RoomstayDemoNavbar, { logo: company.logo }),
69
66
  react_1.default.createElement("div", { className: index_module_scss_1.default['hero'], style: { backgroundImage: `url(${roomData.images[0]})` } },
70
67
  react_1.default.createElement("h1", { className: index_module_scss_1.default['hero-title'] }, roomData.name)),
71
68
  react_1.default.createElement("div", { className: index_module_scss_1.default['body-content'] },
@@ -80,7 +77,7 @@ const InlineEngineWrapper = ({ company }) => {
80
77
  react_1.default.createElement("div", { style: { marginTop: '128px' } },
81
78
  react_1.default.createElement(InlineRender, { id: roomData.code }))))))));
82
79
  };
83
- exports.InlineEngineWrapper = InlineEngineWrapper;
80
+ exports.RoomRateEngineWrapper = RoomRateEngineWrapper;
84
81
  const InlineRender = ({ id }) => {
85
82
  const inline = (0, react_1.useRef)(null);
86
83
  (0, react_1.useEffect)(() => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["tests/offline/entry/pages/RoomRate/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import HotelAPI from '@/api/HotelAPI';\nimport { RoomstayPortal } from '@/components/generic/Portal/Portal';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { Color, ConfigCompany, HotelDTO, HotelRoomDTO, Icon, IconType, InlineRoomMiniEngine, Language, RoomstayThemeEngine, Text } from '@/index';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { RoomstayDemoNavbar } from '../../components/RoomstayDemoNavbar';\nimport { rsCompany } from '../../OfflineEngineDefaults';\n\nimport styles from './index.module.scss';\n\nexport const RoomRateEngineWrapper = ({ company }: { company: ConfigCompany }) => {\n const hotelID = company.hotels[0].hotelID;\n\n const [hotelData, setHotelData] = useState<HotelDTO>();\n const [roomData, setRoomData] = useState<HotelRoomDTO>();\n\n useEffect(() => {\n const hotelApi = new HotelAPI();\n hotelApi\n .fetchData(Language.en_us, { hotelID } as any)\n .then((data) => {\n setHotelData(data);\n })\n .finally(() => {});\n }, []);\n\n useEffect(() => {\n if (hotelData?.rooms) {\n setRoomData(Object.values(hotelData.rooms)[0]);\n }\n }, [hotelData]);\n\n if (!roomData) {\n return (\n <RoomstayPortal target={document.body}>\n <div className={styles['loader-container']}>\n <div className={styles['spinner']}>\n <Icon icon={IconType.Spinner} size=\"128px\" color={Color.Accent} />\n </div>\n <Text>Loading Room Rates.</Text>\n </div>\n </RoomstayPortal>\n );\n }\n\n return (\n <div className=\"roomstay-booking-container\">\n <div className={styles['container-body']}>\n <RoomstayDemoNavbar logo={company.logo} />\n <div className={styles['hero']} style={{ backgroundImage: `url(${roomData.images[0]})` }}>\n <h1 className={styles['hero-title']}>{roomData.name}</h1>\n </div>\n\n <div className={styles['body-content']}>\n <div className=\"row\">\n <div className=\"col-md-6\">\n <h2 style={{ fontSize: '48px' }}>{roomData.name}</h2>\n <div dangerouslySetInnerHTML={{ __html: roomData.shortDescription }}></div>\n <div dangerouslySetInnerHTML={{ __html: roomData.longDescription }}></div>\n\n <div style={{ height: '500px', marginTop: '64px' }}>\n <ImageGallerySlider images={roomData.images} />\n </div>\n </div>\n <div className=\"col-md-6\">\n <div style={{ marginTop: '128px' }}>\n <InlineRender id={roomData.code} />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nconst InlineRender = ({ id }: { id: string }) => {\n const inline = useRef(null);\n\n useEffect(() => {\n if (inline.current) {\n const fullpageBE = new InlineRoomMiniEngine(inline.current, id);\n fullpageBE.setConfig({ company: rsCompany });\n RoomstayThemeEngine.registerStyles();\n fullpageBE.start();\n }\n }, [inline]);\n\n return <div ref={inline} />;\n};\n"]}