@roomstay/frontend 2.3.0-2 → 2.3.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 (87) hide show
  1. package/dist/201.bundle.js +1 -1
  2. package/dist/213.bundle.js +1 -1
  3. package/dist/370.bundle.js +1 -1
  4. package/dist/446.bundle.js +1 -1
  5. package/dist/449.bundle.js +1 -1
  6. package/dist/572.bundle.js +1 -1
  7. package/dist/903.bundle.js +1 -1
  8. package/dist/975.bundle.js +1 -1
  9. package/dist/main.bundle.js +1 -1
  10. package/dist/src/components/generic/ScrollToTop.js +5 -1
  11. package/dist/src/components/generic/ScrollToTop.js.map +1 -1
  12. package/dist/src/components/generic/Tabs/Tab.d.ts +1 -0
  13. package/dist/src/components/generic/Tabs/Tab.js.map +1 -1
  14. package/dist/src/components/generic/Tabs/TabLink.js +2 -2
  15. package/dist/src/components/generic/Tabs/TabLink.js.map +1 -1
  16. package/dist/src/components/steps/confirmation/StepConfirmationForm.js +3 -3
  17. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  18. package/dist/src/components/steps/hotel/HotelCard.js +2 -2
  19. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  20. package/dist/src/components/steps/room/InactivityWindow.js +9 -11
  21. package/dist/src/components/steps/room/InactivityWindow.js.map +1 -1
  22. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js +2 -2
  23. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js.map +1 -1
  24. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js +2 -4
  25. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js.map +1 -1
  26. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +2 -1
  27. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  28. package/dist/src/components/summary/BEMobileSummaryModal.js +73 -60
  29. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  30. package/dist/src/components/summary/BESummaryPrivacyPolicy.js +4 -5
  31. package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
  32. package/dist/src/components/summary/BESummaryRoomRow.js +5 -5
  33. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  34. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +41 -19
  35. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  36. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +16 -17
  37. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  38. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +3 -3
  39. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
  40. package/dist/src/hooks/CurrentHotelHook.d.ts +5 -0
  41. package/dist/src/hooks/CurrentHotelHook.js +37 -30
  42. package/dist/src/hooks/CurrentHotelHook.js.map +1 -1
  43. package/dist/src/hooks/HistoryConsistentPush.d.ts +1 -1
  44. package/dist/src/hooks/HistoryConsistentPush.js +6 -2
  45. package/dist/src/hooks/HistoryConsistentPush.js.map +1 -1
  46. package/dist/src/pages/hotel/HotelInfo.js +4 -4
  47. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  48. package/dist/src/routes/NaturallyProgressedStepRoute.js +2 -2
  49. package/dist/src/routes/NaturallyProgressedStepRoute.js.map +1 -1
  50. package/dist/src/stories/BookingWizard.stories.js +2 -2
  51. package/dist/src/stories/BookingWizard.stories.js.map +1 -1
  52. package/dist/src/translations/Translation.d.ts +4 -0
  53. package/dist/src/translations/Translation.js +4 -0
  54. package/dist/src/translations/Translation.js.map +1 -1
  55. package/dist/src/translations/languages/en-gb.js +5 -1
  56. package/dist/src/translations/languages/en-gb.js.map +1 -1
  57. package/dist/src/util/GetStepRoom.d.ts +3 -0
  58. package/dist/src/util/GetStepRoom.js +11 -0
  59. package/dist/src/util/GetStepRoom.js.map +1 -0
  60. package/dist/test.bundle.js +1 -1
  61. package/dist/tests/offline/entry/{RSCompany.js → OfflineEngineDefaults.js} +16 -57
  62. package/dist/tests/offline/entry/OfflineEngineDefaults.js.map +1 -0
  63. package/dist/tests/offline/entry/OfflineEngineWrapper.d.ts +1 -0
  64. package/dist/tests/offline/entry/{ReactWrapper.js → OfflineEngineWrapper.js} +17 -79
  65. package/dist/tests/offline/entry/OfflineEngineWrapper.js.map +1 -0
  66. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.d.ts +3 -0
  67. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.js +17 -0
  68. package/dist/tests/offline/entry/components/RoomstayDemoNavbar/index.js.map +1 -0
  69. package/dist/tests/offline/entry/components/TestPicker.js +99 -14
  70. package/dist/tests/offline/entry/components/TestPicker.js.map +1 -1
  71. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js +2 -2
  72. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js.map +1 -1
  73. package/dist/tests/offline/entry/{allEngines.js → offline-entry.js} +3 -3
  74. package/dist/tests/offline/entry/offline-entry.js.map +1 -0
  75. package/dist/tests/offline/entry/pages/BookingWizard/index.d.ts +4 -0
  76. package/dist/tests/offline/entry/pages/BookingWizard/index.js +73 -0
  77. package/dist/tests/offline/entry/pages/BookingWizard/index.js.map +1 -0
  78. package/dist/tests/offline/entry/pages/RoomRate/index.d.ts +4 -0
  79. package/dist/tests/offline/entry/pages/RoomRate/index.js +93 -0
  80. package/dist/tests/offline/entry/pages/RoomRate/index.js.map +1 -0
  81. package/package.json +1 -1
  82. package/dist/tests/offline/entry/RSCompany.js.map +0 -1
  83. package/dist/tests/offline/entry/ReactWrapper.d.ts +0 -1
  84. package/dist/tests/offline/entry/ReactWrapper.js.map +0 -1
  85. package/dist/tests/offline/entry/allEngines.js.map +0 -1
  86. /package/dist/tests/offline/entry/{RSCompany.d.ts → OfflineEngineDefaults.d.ts} +0 -0
  87. /package/dist/tests/offline/entry/{allEngines.d.ts → offline-entry.d.ts} +0 -0
@@ -45,7 +45,7 @@ const Icon_1 = require("../../components/generic/Icon/Icon");
45
45
  const Text_1 = __importStar(require("../../components/generic/Text"));
46
46
  const ScreenSize_1 = __importDefault(require("../../util/ScreenSize"));
47
47
  const SessionProvider_1 = __importDefault(require("../../providers/SessionProvider"));
48
- const StepRoom_1 = __importDefault(require("../../pages/steps/StepRoom/StepRoom"));
48
+ const GetStepRoom_1 = __importDefault(require("../../util/GetStepRoom"));
49
49
  const dayjs_1 = __importDefault(require("dayjs"));
50
50
  const hooks_1 = require("../../hooks/index.js");
51
51
  const contexts_1 = require("../../contexts/index.js");
@@ -116,11 +116,11 @@ const RecentSearchesEngineElement = ({ engine }) => {
116
116
  yield manager.initialize(session.id);
117
117
  manager
118
118
  .updateSession({
119
- step: StepRoom_1.default.getName(),
119
+ step: (0, GetStepRoom_1.default)().getName(),
120
120
  })
121
121
  .then(() => {
122
122
  var _a;
123
- window.open(`${(_a = hotel === null || hotel === void 0 ? void 0 : hotel.checkoutUrl) !== null && _a !== void 0 ? _a : '/checkout/'}#${StepRoom_1.default.getStepUrl()}?session=${session.id}`, '_self');
123
+ window.open(`${(_a = hotel === null || hotel === void 0 ? void 0 : hotel.checkoutUrl) !== null && _a !== void 0 ? _a : '/checkout/'}#${(0, GetStepRoom_1.default)().getStepUrl()}?session=${session.id}`, '_self');
124
124
  });
125
125
  });
126
126
  return (react_1.default.createElement("div", { key: validRow === null || validRow === void 0 ? void 0 : validRow.getID(), className: "col-lg-6" },
@@ -1 +1 @@
1
- {"version":3,"file":"RecentSearchesEngineElement.js","sourceRoot":"/","sources":["src/engines/RecentSearchesEngine/RecentSearchesEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport { render } from 'react-dom';\n\nimport type { RecentSearchesEngine } from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\nimport RecentSearchesCard from '@/components/generic/RecentSearchesCard';\nimport BEButton from '@/components/generic/BEButton';\nimport { Color } from '@/util/Color';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport BasketRow from '@/models/BasketRow';\nimport ScreenSize from '@/util/ScreenSize';\nimport SessionProvider from '@/providers/SessionProvider';\nimport { RoomstaySession } from '@/models/RoomstaySession';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport dayjs from 'dayjs';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { BookingEngineContext, BookingEngineContextWrapper } from '@frontend/contexts';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from '@/translations/Translation';\n\nexport interface RecentSearchesEngineElementProps {\n engine: RecentSearchesEngine;\n}\n\nexport const RecentSearchesEngineElement = ({ engine }: RecentSearchesEngineElementProps) => {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const [currentSessions, setCurrentSessions] = useState<RoomstaySession[]>([]);\n\n const beContext = useContext(BookingEngineContext);\n\n useEffect(() => {\n resetSessions();\n }, []);\n\n const resetSessions = () => {\n engine\n .getSessionProvider()\n .getAllSessions()\n .then((sessions) => {\n const sessionsToUse: RoomstaySession[] = [];\n\n sessions.forEach((session) => {\n if (!hotel || (hotel?.hotelID === session.hotelID && session.basketRows?.length > 0)) {\n let hasValidRow = false;\n session.basketRows.forEach((basket) => {\n if (basket.isValid() && basket.getStartDate().isAfter(dayjs())) {\n hasValidRow = true;\n }\n });\n\n if (hasValidRow) {\n sessionsToUse.push(session);\n }\n }\n });\n\n sessionsToUse.reverse();\n\n setCurrentSessions(sessionsToUse);\n });\n };\n\n const smallBlurb = (\n <Text color={Color.White} type={TextType.Small}>\n Lorem, ipsum dolor sit amet consectetur adipisicing elit.\n </Text>\n );\n\n const onRemoveCard = async (session: RoomstaySession) => {\n const provider = new SessionProvider();\n await provider.initialize(session.id);\n\n provider.deleteSession();\n\n resetSessions();\n };\n\n const redirectToCheckout = () => {\n window.open(hotel?.checkoutUrl);\n };\n\n return currentSessions.length ? (\n <div style={{ backgroundColor: Color.Navy }}>\n <div className=\"container\">\n <div className=\"u-pad-top-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Text color={Color.White} bold>\n {t(Translation.RecentSearch.RecentSearches)}\n </Text>\n {beContext.screenSize <= ScreenSize.Medium && smallBlurb}\n </div>\n <div className=\"row u-marg-bottom\">\n {!!currentSessions?.length &&\n currentSessions.slice(0, 2).map((session: RoomstaySession) => {\n let validRow: BasketRow | undefined = undefined;\n\n for (const row of session.basketRows) {\n if (row.isValid()) {\n validRow = row;\n break;\n }\n }\n\n const removeCard = () => {\n onRemoveCard(session);\n };\n\n const onViewRates = async () => {\n const manager = new SessionProvider();\n await manager.initialize(session.id);\n\n manager\n .updateSession({\n step: StepRoom.getName(),\n })\n .then(() => {\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${StepRoom.getStepUrl()}?session=${session.id}`, '_self');\n });\n };\n\n return (\n <div key={validRow?.getID()} className=\"col-lg-6\">\n <RecentSearchesCard basketRow={validRow as BasketRow} onRemove={removeCard} onViewRatesClicked={onViewRates} />\n </div>\n );\n })}\n </div>\n <div className=\"u-flex u-flex-align-center flex-column flex-md-row justify-align-content-md-center\">\n {beContext.screenSize > ScreenSize.Medium && smallBlurb}\n <BEButton icon={IconType.ArrowRight} iconPosition=\"right\" primary filled onClick={redirectToCheckout}>\n {t(Translation.RecentSearch.SeeAllRooms, {\n hotelName: hotel?.name,\n })}\n </BEButton>\n </div>\n </div>\n </div>\n </div>\n ) : (\n <></>\n );\n};\n\nexport const renderRecentSearchesEngineElement = (container: Element, engine: RecentSearchesEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <RecentSearchesEngineElement engine={engine} />\n </BookingEngineContextWrapper>,\n container\n );\n};\n"]}
1
+ {"version":3,"file":"RecentSearchesEngineElement.js","sourceRoot":"/","sources":["src/engines/RecentSearchesEngine/RecentSearchesEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\nimport { render } from 'react-dom';\n\nimport type { RecentSearchesEngine } from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\nimport RecentSearchesCard from '@/components/generic/RecentSearchesCard';\nimport BEButton from '@/components/generic/BEButton';\nimport { Color } from '@/util/Color';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport BasketRow from '@/models/BasketRow';\nimport ScreenSize from '@/util/ScreenSize';\nimport SessionProvider from '@/providers/SessionProvider';\nimport { RoomstaySession } from '@/models/RoomstaySession';\nimport getStepRoom from '@/util/GetStepRoom';\nimport dayjs from 'dayjs';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { BookingEngineContext, BookingEngineContextWrapper } from '@frontend/contexts';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from '@/translations/Translation';\n\nexport interface RecentSearchesEngineElementProps {\n engine: RecentSearchesEngine;\n}\n\nexport const RecentSearchesEngineElement = ({ engine }: RecentSearchesEngineElementProps) => {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const [currentSessions, setCurrentSessions] = useState<RoomstaySession[]>([]);\n\n const beContext = useContext(BookingEngineContext);\n\n useEffect(() => {\n resetSessions();\n }, []);\n\n const resetSessions = () => {\n engine\n .getSessionProvider()\n .getAllSessions()\n .then((sessions) => {\n const sessionsToUse: RoomstaySession[] = [];\n\n sessions.forEach((session) => {\n if (!hotel || (hotel?.hotelID === session.hotelID && session.basketRows?.length > 0)) {\n let hasValidRow = false;\n session.basketRows.forEach((basket) => {\n if (basket.isValid() && basket.getStartDate().isAfter(dayjs())) {\n hasValidRow = true;\n }\n });\n\n if (hasValidRow) {\n sessionsToUse.push(session);\n }\n }\n });\n\n sessionsToUse.reverse();\n\n setCurrentSessions(sessionsToUse);\n });\n };\n\n const smallBlurb = (\n <Text color={Color.White} type={TextType.Small}>\n Lorem, ipsum dolor sit amet consectetur adipisicing elit.\n </Text>\n );\n\n const onRemoveCard = async (session: RoomstaySession) => {\n const provider = new SessionProvider();\n await provider.initialize(session.id);\n\n provider.deleteSession();\n\n resetSessions();\n };\n\n const redirectToCheckout = () => {\n window.open(hotel?.checkoutUrl);\n };\n\n return currentSessions.length ? (\n <div style={{ backgroundColor: Color.Navy }}>\n <div className=\"container\">\n <div className=\"u-pad-top-bottom--heavy\">\n <div className=\"u-marg-bottom\">\n <Text color={Color.White} bold>\n {t(Translation.RecentSearch.RecentSearches)}\n </Text>\n {beContext.screenSize <= ScreenSize.Medium && smallBlurb}\n </div>\n <div className=\"row u-marg-bottom\">\n {!!currentSessions?.length &&\n currentSessions.slice(0, 2).map((session: RoomstaySession) => {\n let validRow: BasketRow | undefined = undefined;\n\n for (const row of session.basketRows) {\n if (row.isValid()) {\n validRow = row;\n break;\n }\n }\n\n const removeCard = () => {\n onRemoveCard(session);\n };\n\n const onViewRates = async () => {\n const manager = new SessionProvider();\n await manager.initialize(session.id);\n\n manager\n .updateSession({\n step: getStepRoom().getName(),\n })\n .then(() => {\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${getStepRoom().getStepUrl()}?session=${session.id}`, '_self');\n });\n };\n\n return (\n <div key={validRow?.getID()} className=\"col-lg-6\">\n <RecentSearchesCard basketRow={validRow as BasketRow} onRemove={removeCard} onViewRatesClicked={onViewRates} />\n </div>\n );\n })}\n </div>\n <div className=\"u-flex u-flex-align-center flex-column flex-md-row justify-align-content-md-center\">\n {beContext.screenSize > ScreenSize.Medium && smallBlurb}\n <BEButton icon={IconType.ArrowRight} iconPosition=\"right\" primary filled onClick={redirectToCheckout}>\n {t(Translation.RecentSearch.SeeAllRooms, {\n hotelName: hotel?.name,\n })}\n </BEButton>\n </div>\n </div>\n </div>\n </div>\n ) : (\n <></>\n );\n};\n\nexport const renderRecentSearchesEngineElement = (container: Element, engine: RecentSearchesEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <RecentSearchesEngineElement engine={engine} />\n </BookingEngineContextWrapper>,\n container\n );\n};\n"]}
@@ -3,4 +3,9 @@ export declare const useCurrentHotel: () => {
3
3
  isAccentColorDark: boolean;
4
4
  isAccent2ColorDark: boolean;
5
5
  changeHotel: (newHotelID: string) => void;
6
+ } | {
7
+ hotel?: undefined;
8
+ isAccentColorDark?: undefined;
9
+ isAccent2ColorDark?: undefined;
10
+ changeHotel?: undefined;
6
11
  };
@@ -7,37 +7,44 @@ const NoCompanyContextError_1 = require("../errors/NoCompanyContextError");
7
7
  const Color_1 = require("../util/Color");
8
8
  const useCurrentHotel = () => {
9
9
  var _a, _b;
10
- const companyContext = (0, react_1.useContext)(contexts_1.CompanyContext);
11
- if (!companyContext) {
12
- throw new NoCompanyContextError_1.NoCompanyContextError();
13
- }
14
- const hotel = (0, react_1.useMemo)(() => {
15
- for (const companyHotel of companyContext.hotels) {
16
- if (companyContext.selectedHotelID + '' === companyHotel.hotelID + '') {
17
- return companyHotel;
18
- }
10
+ try {
11
+ const companyContext = (0, react_1.useContext)(contexts_1.CompanyContext);
12
+ if (!companyContext) {
13
+ throw new NoCompanyContextError_1.NoCompanyContextError();
19
14
  }
20
- }, [companyContext === null || companyContext === void 0 ? void 0 : companyContext.hotels, companyContext === null || companyContext === void 0 ? void 0 : companyContext.selectedHotelID]);
21
- const isAccentColorDark = (0, react_1.useMemo)(() => {
22
- var _a;
23
- if (!((_a = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _a === void 0 ? void 0 : _a.accent))
24
- return false;
25
- return (0, Color_1.lightOrDark)(hotel.colors.accent) === 'dark';
26
- }, [(_a = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _a === void 0 ? void 0 : _a.accent]);
27
- const isAccent2ColorDark = (0, react_1.useMemo)(() => {
28
- var _a;
29
- if (!((_a = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _a === void 0 ? void 0 : _a.accent2))
30
- return false;
31
- return (0, Color_1.lightOrDark)(hotel.colors.accent2) === 'dark';
32
- }, [(_b = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _b === void 0 ? void 0 : _b.accent2]);
33
- return {
34
- hotel,
35
- isAccentColorDark,
36
- isAccent2ColorDark,
37
- changeHotel: (newHotelID) => {
38
- companyContext.changeHotel(newHotelID);
39
- },
40
- };
15
+ const hotel = (0, react_1.useMemo)(() => {
16
+ for (const companyHotel of companyContext.hotels) {
17
+ if (companyContext.selectedHotelID + '' === companyHotel.hotelID + '') {
18
+ return companyHotel;
19
+ }
20
+ }
21
+ }, [companyContext === null || companyContext === void 0 ? void 0 : companyContext.hotels, companyContext === null || companyContext === void 0 ? void 0 : companyContext.selectedHotelID]);
22
+ const isAccentColorDark = (0, react_1.useMemo)(() => {
23
+ var _a;
24
+ if (!((_a = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _a === void 0 ? void 0 : _a.accent))
25
+ return false;
26
+ return (0, Color_1.lightOrDark)(hotel.colors.accent) === 'dark';
27
+ }, [(_a = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _a === void 0 ? void 0 : _a.accent]);
28
+ const isAccent2ColorDark = (0, react_1.useMemo)(() => {
29
+ var _a;
30
+ if (!((_a = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _a === void 0 ? void 0 : _a.accent2))
31
+ return false;
32
+ return (0, Color_1.lightOrDark)(hotel.colors.accent2) === 'dark';
33
+ }, [(_b = hotel === null || hotel === void 0 ? void 0 : hotel.colors) === null || _b === void 0 ? void 0 : _b.accent2]);
34
+ return {
35
+ hotel,
36
+ isAccentColorDark,
37
+ isAccent2ColorDark,
38
+ changeHotel: (newHotelID) => {
39
+ companyContext.changeHotel(newHotelID);
40
+ },
41
+ };
42
+ }
43
+ catch (ex) {
44
+ // Masssive try /catch to isolate non-contextual uses of this hook
45
+ console.error(ex);
46
+ return {};
47
+ }
41
48
  };
42
49
  exports.useCurrentHotel = useCurrentHotel;
43
50
  //# sourceMappingURL=CurrentHotelHook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CurrentHotelHook.js","sourceRoot":"/","sources":["src/hooks/CurrentHotelHook.tsx"],"names":[],"mappings":";;;AAAA,iCAA4C;AAC5C,iDAAoD;AACpD,0EAAuE;AACvE,wCAA2C;AAEpC,MAAM,eAAe,GAAG,GAAG,EAAE;;IAChC,MAAM,cAAc,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAC;IAElD,IAAI,CAAC,cAAc,EAAE;QACjB,MAAM,IAAI,6CAAqB,EAAE,CAAC;KACrC;IAED,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACvB,KAAK,MAAM,YAAY,IAAI,cAAc,CAAC,MAAM,EAAE;YAC9C,IAAI,cAAc,CAAC,eAAe,GAAG,EAAE,KAAK,YAAY,CAAC,OAAO,GAAG,EAAE,EAAE;gBACnE,OAAO,YAAY,CAAC;aACvB;SACJ;IACL,CAAC,EAAE,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,CAAC,CAAC,CAAC;IAE9D,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;;QACnC,IAAI,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,CAAA;YAAE,OAAO,KAAK,CAAC;QAEzC,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IACvD,CAAC,EAAE,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,CAAC,CAAC,CAAC;IAE5B,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;;QACpC,IAAI,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,OAAO,CAAA;YAAE,OAAO,KAAK,CAAC;QAE1C,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC;IACxD,CAAC,EAAE,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,OAAO,CAAC,CAAC,CAAC;IAE7B,OAAO;QACH,KAAK;QACL,iBAAiB;QACjB,kBAAkB;QAElB,WAAW,EAAE,CAAC,UAAkB,EAAE,EAAE;YAChC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AApCW,QAAA,eAAe,mBAoC1B","sourcesContent":["import { useContext, useMemo } from 'react';\nimport { CompanyContext } from '@frontend/contexts';\nimport { NoCompanyContextError } from '@/errors/NoCompanyContextError';\nimport { lightOrDark } from '@/util/Color';\n\nexport const useCurrentHotel = () => {\n const companyContext = useContext(CompanyContext);\n\n if (!companyContext) {\n throw new NoCompanyContextError();\n }\n\n const hotel = useMemo(() => {\n for (const companyHotel of companyContext.hotels) {\n if (companyContext.selectedHotelID + '' === companyHotel.hotelID + '') {\n return companyHotel;\n }\n }\n }, [companyContext?.hotels, companyContext?.selectedHotelID]);\n\n const isAccentColorDark = useMemo(() => {\n if (!hotel?.colors?.accent) return false;\n\n return lightOrDark(hotel.colors.accent) === 'dark';\n }, [hotel?.colors?.accent]);\n\n const isAccent2ColorDark = useMemo(() => {\n if (!hotel?.colors?.accent2) return false;\n\n return lightOrDark(hotel.colors.accent2) === 'dark';\n }, [hotel?.colors?.accent2]);\n\n return {\n hotel,\n isAccentColorDark,\n isAccent2ColorDark,\n\n changeHotel: (newHotelID: string) => {\n companyContext.changeHotel(newHotelID);\n },\n };\n};\n"]}
1
+ {"version":3,"file":"CurrentHotelHook.js","sourceRoot":"/","sources":["src/hooks/CurrentHotelHook.tsx"],"names":[],"mappings":";;;AAAA,iCAA4C;AAC5C,iDAAoD;AACpD,0EAAuE;AACvE,wCAA2C;AAEpC,MAAM,eAAe,GAAG,GAAG,EAAE;;IAChC,IAAI;QACA,MAAM,cAAc,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAC;QAElD,IAAI,CAAC,cAAc,EAAE;YACjB,MAAM,IAAI,6CAAqB,EAAE,CAAC;SACrC;QAED,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;YACvB,KAAK,MAAM,YAAY,IAAI,cAAc,CAAC,MAAM,EAAE;gBAC9C,IAAI,cAAc,CAAC,eAAe,GAAG,EAAE,KAAK,YAAY,CAAC,OAAO,GAAG,EAAE,EAAE;oBACnE,OAAO,YAAY,CAAC;iBACvB;aACJ;QACL,CAAC,EAAE,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,eAAe,CAAC,CAAC,CAAC;QAE9D,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;;YACnC,IAAI,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,CAAA;gBAAE,OAAO,KAAK,CAAC;YAEzC,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;QACvD,CAAC,EAAE,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,CAAC,CAAC,CAAC;QAE5B,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;;YACpC,IAAI,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,OAAO,CAAA;gBAAE,OAAO,KAAK,CAAC;YAE1C,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC;QACxD,CAAC,EAAE,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,OAAO,CAAC,CAAC,CAAC;QAE7B,OAAO;YACH,KAAK;YACL,iBAAiB;YACjB,kBAAkB;YAElB,WAAW,EAAE,CAAC,UAAkB,EAAE,EAAE;gBAChC,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC3C,CAAC;SACJ,CAAC;KACL;IAAC,OAAO,EAAE,EAAE;QACT,kEAAkE;QAClE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,EAAE,CAAC;KACb;AACL,CAAC,CAAC;AA1CW,QAAA,eAAe,mBA0C1B","sourcesContent":["import { useContext, useMemo } from 'react';\nimport { CompanyContext } from '@frontend/contexts';\nimport { NoCompanyContextError } from '@/errors/NoCompanyContextError';\nimport { lightOrDark } from '@/util/Color';\n\nexport const useCurrentHotel = () => {\n try {\n const companyContext = useContext(CompanyContext);\n\n if (!companyContext) {\n throw new NoCompanyContextError();\n }\n\n const hotel = useMemo(() => {\n for (const companyHotel of companyContext.hotels) {\n if (companyContext.selectedHotelID + '' === companyHotel.hotelID + '') {\n return companyHotel;\n }\n }\n }, [companyContext?.hotels, companyContext?.selectedHotelID]);\n\n const isAccentColorDark = useMemo(() => {\n if (!hotel?.colors?.accent) return false;\n\n return lightOrDark(hotel.colors.accent) === 'dark';\n }, [hotel?.colors?.accent]);\n\n const isAccent2ColorDark = useMemo(() => {\n if (!hotel?.colors?.accent2) return false;\n\n return lightOrDark(hotel.colors.accent2) === 'dark';\n }, [hotel?.colors?.accent2]);\n\n return {\n hotel,\n isAccentColorDark,\n isAccent2ColorDark,\n\n changeHotel: (newHotelID: string) => {\n companyContext.changeHotel(newHotelID);\n },\n };\n } catch (ex) {\n // Masssive try /catch to isolate non-contextual uses of this hook\n console.error(ex);\n return {};\n }\n};\n"]}
@@ -1 +1 @@
1
- export declare function useHistoryConsistentPush(): (pathname: string) => void;
1
+ export declare function useHistoryConsistentPush(): (pathname: string, preventScrollTop?: boolean) => void;
@@ -4,8 +4,12 @@ exports.useHistoryConsistentPush = void 0;
4
4
  const react_router_dom_1 = require("react-router-dom");
5
5
  function useHistoryConsistentPush() {
6
6
  const history = (0, react_router_dom_1.useHistory)();
7
- return (pathname) => {
8
- history.push(Object.assign(Object.assign({}, history.location), { pathname }));
7
+ return (pathname, preventScrollTop) => {
8
+ history.push(Object.assign(Object.assign({}, history.location), { pathname, state: {
9
+ preventScrollTop: {
10
+ [pathname]: preventScrollTop,
11
+ },
12
+ } }));
9
13
  };
10
14
  }
11
15
  exports.useHistoryConsistentPush = useHistoryConsistentPush;
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryConsistentPush.js","sourceRoot":"/","sources":["src/hooks/HistoryConsistentPush.ts"],"names":[],"mappings":";;;AAAA,uDAA8C;AAE9C,SAAgB,wBAAwB;IACpC,MAAM,OAAO,GAAG,IAAA,6BAAU,GAAE,CAAC;IAC7B,OAAO,CAAC,QAAgB,EAAE,EAAE;QACxB,OAAO,CAAC,IAAI,iCACL,OAAO,CAAC,QAAQ,KACnB,QAAQ,IACV,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AARD,4DAQC","sourcesContent":["import { useHistory } from 'react-router-dom';\n\nexport function useHistoryConsistentPush() {\n const history = useHistory();\n return (pathname: string) => {\n history.push({\n ...history.location,\n pathname,\n });\n };\n}\n"]}
1
+ {"version":3,"file":"HistoryConsistentPush.js","sourceRoot":"/","sources":["src/hooks/HistoryConsistentPush.ts"],"names":[],"mappings":";;;AAAA,uDAA8C;AAE9C,SAAgB,wBAAwB;IACpC,MAAM,OAAO,GAAG,IAAA,6BAAU,GAAE,CAAC;IAC7B,OAAO,CAAC,QAAgB,EAAE,gBAA0B,EAAE,EAAE;QACpD,OAAO,CAAC,IAAI,iCACL,OAAO,CAAC,QAAQ,KACnB,QAAQ,EACR,KAAK,EAAE;gBACH,gBAAgB,EAAE;oBACd,CAAC,QAAQ,CAAC,EAAE,gBAAgB;iBAC/B;aACJ,IACH,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAbD,4DAaC","sourcesContent":["import { useHistory } from 'react-router-dom';\n\nexport function useHistoryConsistentPush() {\n const history = useHistory();\n return (pathname: string, preventScrollTop?: boolean) => {\n history.push({\n ...history.location,\n pathname,\n state: {\n preventScrollTop: {\n [pathname]: preventScrollTop,\n },\n },\n });\n };\n}\n"]}
@@ -136,13 +136,13 @@ function HotelInfo() {
136
136
  !!(hotel === null || hotel === void 0 ? void 0 : hotel.locationDescription) && (react_1.default.createElement(react_1.default.Fragment, null,
137
137
  react_1.default.createElement("div", { className: "u-marg-top" },
138
138
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
139
- react_1.default.createElement("strong", null, "Location"))),
139
+ react_1.default.createElement("strong", null, t(Translation_1.Translation.Step.Hotel.Location)))),
140
140
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
141
141
  react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: (_d = hotel === null || hotel === void 0 ? void 0 : hotel.locationDescription) === null || _d === void 0 ? void 0 : _d.replace('\r\n', '<br/><br/>') } }))))),
142
142
  !!((_e = hotel === null || hotel === void 0 ? void 0 : hotel.perks) === null || _e === void 0 ? void 0 : _e.length) && (react_1.default.createElement(react_1.default.Fragment, null,
143
143
  react_1.default.createElement("div", { className: "u-marg-bottom u-marg-bottom--heavy" },
144
144
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
145
- react_1.default.createElement("strong", null, "And you get all these for free:"))),
145
+ react_1.default.createElement("strong", null, t(Translation_1.Translation.Step.Hotel.AndYouGetAll)))),
146
146
  react_1.default.createElement("div", { className: "row" }, hotel === null || hotel === void 0 ? void 0 : hotel.perks.map((perk) => {
147
147
  return (react_1.default.createElement("div", { className: "col-6 col-md-4", key: perk.name },
148
148
  react_1.default.createElement("div", { className: "u-flex u-marg-bottom" },
@@ -152,7 +152,7 @@ function HotelInfo() {
152
152
  }))))),
153
153
  !!((_f = hotel === null || hotel === void 0 ? void 0 : hotel.hotelServices) === null || _f === void 0 ? void 0 : _f.length) && (react_1.default.createElement("div", { className: "u-marg-bottom u-marg-bottom--heavy" },
154
154
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
155
- react_1.default.createElement(Headline_1.default, { bold: true }, "Hotel Amenities")),
155
+ react_1.default.createElement(Headline_1.default, { bold: true }, t(Translation_1.Translation.Step.Hotel.HotelAmenities))),
156
156
  react_1.default.createElement("div", { className: "row" }, hotel === null || hotel === void 0 ? void 0 : hotel.hotelServices.map((hotelService, index) => {
157
157
  return (react_1.default.createElement("div", { key: index, className: "col-md-6" },
158
158
  react_1.default.createElement("div", { className: "u-flex u-marg-bottom" },
@@ -162,7 +162,7 @@ function HotelInfo() {
162
162
  })))),
163
163
  !!(hotel === null || hotel === void 0 ? void 0 : hotel.policies) && (react_1.default.createElement("div", { className: "u-marg-bottom u-marg-bottom--heavy" },
164
164
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
165
- react_1.default.createElement(Headline_1.default, { bold: true }, "Policies")),
165
+ react_1.default.createElement(Headline_1.default, { bold: true }, t(Translation_1.Translation.Step.Hotel.Policies))),
166
166
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small },
167
167
  react_1.default.createElement("a", { href: hotel === null || hotel === void 0 ? void 0 : hotel.policies, target: "_blank", style: { color: hotel === null || hotel === void 0 ? void 0 : hotel.colors.accent }, rel: "noreferrer" }, hotel === null || hotel === void 0 ? void 0 : hotel.policies))))),
168
168
  react_1.default.createElement("div", { className: "col-lg-6" },
@@ -1 +1 @@
1
- {"version":3,"file":"HotelInfo.js","sourceRoot":"/","sources":["src/pages/hotel/HotelInfo.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AACnD,wCAAqC;AACrC,uEAAgE;AAChE,kEAA2D;AAC3D,6EAAqD;AACrD,iGAAyE;AACzE,wEAA0C;AAC1C,2HAAmG;AACnG,2CAA4D;AAC5D,6EAAqD;AACrD,qEAA6C;AAC7C,iDAA+C;AAC/C,0DAAuD;AACvD,2EAAqE;AACrE,6CAA0D;AAC1D,uEAAuE;AAEvE,SAAwB,SAAS;;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,qBAAqB,GAAG,IAAA,gDAAwB,GAAE,CAAC;IACzD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,QAAQ,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC;IAElC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,EAAE,CAAC;IAEnE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3F,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAW,EAAE,CAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;QACjC,qBAAqB,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC3B,UAAU,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,KAAK,GAAG,IAAI,+BAAsB,EAAE,CAAC;QAC3C,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACX,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAE,MAAM,EAAE;YACvB,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;SACnC;QAED,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAE;YACd,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,EAAE;gBAC5C,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC3B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;aACN;SACJ;QAED,SAAS,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,qBAAqB,CAAC,qBAAW,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QAC/B,MAAM,wBAAwB,GAAG,GAAG,EAAE;YAClC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,uBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,yBAAS,CAAC,KAAK,CAAC,CAAC;QAE7E,OAAO,CACH,uCACI,KAAK,EAAE,EAAE,eAAe,EAAE,QAAQ,UAAU,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EACrE,SAAS,EAAC,6DAA6D,EACvE,OAAO,EAAE,wBAAwB,GACnC,CACL,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACH;QACI,uCAAK,KAAK,EAAE,EAAE,eAAe,EAAE,QAAQ,QAAQ,IAAI,uBAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,yBAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAC,qBAAqB;YAC7I,uCAAK,SAAS,EAAC,WAAW;gBACtB,uCAAK,SAAS,EAAC,4DAA4D;oBACvE,sCAAI,SAAS,EAAC,oBAAoB,IAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAM;oBACrD,sCAAI,SAAS,EAAC,wBAAwB,IAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,OAAO,CAAM,CACnE,CACJ,CACJ;QACN,uCAAK,SAAS,EAAC,yDAAyD;YACpE,uCAAK,SAAS,EAAC,WAAW;gBACtB,uCAAK,SAAS,EAAC,KAAK;oBAChB,uCAAK,SAAS,EAAC,oCAAoC;wBAC/C;4BACI,sCAAI,SAAS,EAAC,6BAA6B;gCACvC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,GAAG,EAAE,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,aAAK,CAAC,MAAM,GAAI;gCAC9D,wCAAM,SAAS,EAAC,0BAA0B;oCACrC,KAAK;oCACN,yCAAM;oCACL,KAAK;;oCAAG,UAAU;;oCAAI,OAAO,CAC3B,CACN;4BACL,sCAAI,SAAS,EAAC,6BAA6B;gCACvC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,aAAK,CAAC,MAAM,GAAI;gCAChE,wCAAM,SAAS,EAAC,0BAA0B,IAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAQ,CAC/D;4BACL,sCAAI,SAAS,EAAC,6BAA6B;gCACvC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,MAAM,EAAE,IAAI,EAAC,OAAO,EAAC,KAAK,EAAE,aAAK,CAAC,MAAM,GAAI;gCACjE,wCAAM,SAAS,EAAC,0BAA0B;oCACtC,qCAAG,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,IACjE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CACZ,CACD,CACN;4BACL,sCAAI,SAAS,EAAC,QAAQ;gCAClB,8BAAC,kBAAQ,IAAC,IAAI,EAAE,eAAQ,CAAC,UAAU,EAAE,OAAO,QAAC,MAAM,QAAC,YAAY,EAAC,OAAO,EAAC,OAAO,EAAE,cAAc,IAC3F,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CACrB,CACV,CACJ,CACH;oBACN,uCAAK,SAAS,EAAC,UAAU;wBACrB,uCAAK,SAAS,EAAC,WAAW;4BACtB,uCAAK,SAAS,EAAC,iEAAiE,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gCACvG,8BAAC,0BAAgB,OAAG,CAClB;4BACN,uCAAK,SAAS,EAAC,6CAA6C;gCACxD,8BAAC,yCAA+B,IAAC,KAAK,EAAE,KAAK,GAAI,CAC/C,CACJ,CACJ,CACJ,CACJ,CACJ;QACN,uCAAK,SAAS,EAAC,oDAAoD;YAC/D,uCAAK,SAAS,EAAC,WAAW;gBACtB,uCAAK,SAAS,EAAC,KAAK;oBAChB,uCAAK,SAAS,EAAC,UAAU;wBACrB,uCAAK,SAAS,EAAC,oCAAoC;4BAC/C,uCAAK,SAAS,EAAC,oCAAoC;gCAC/C,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAY,CACzD;4BACN,uCAAK,SAAS,EAAC,oCAAoC;gCAC/C,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;oCACtB,wCAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,0CAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,KAAI,EAAE,EAAE,GAAI,CACnG;gCACN,CAAC,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,CAAA,IAAI,CAC7B;oCACI,uCAAK,SAAS,EAAC,YAAY;wCACvB,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;4CACtB,yDAAyB,CACtB,CACL;oCACN,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wCACtB,wCAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,0CAAE,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,GAAI,CACrG,CACR,CACN,CACC;4BACL,CAAC,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,MAAM,CAAA,IAAI,CACvB;gCACI,uCAAK,SAAS,EAAC,oCAAoC;oCAC/C,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;wCACtB,gFAAgD,CAC7C,CACL;gCACN,uCAAK,SAAS,EAAC,KAAK,IACf,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oCACvB,OAAO,CACH,uCAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI;wCAC1C,uCAAK,SAAS,EAAC,sBAAsB;4CACjC,uCAAK,SAAS,EAAC,gBAAgB,IAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,8BAAC,cAAI,IAAC,IAAI,EAAE,IAAI,CAAC,IAAgB,GAAI,CAAO;4CACnH,wCAAM,SAAS,EAAC,cAAc;gDAC1B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,IAAI,CAAC,IAAI,CAAQ,CAC3C,CACL,CACJ,CACT,CAAC;gCACN,CAAC,CAAC,CACA,CACP,CACN,CACC;wBACL,CAAC,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,0CAAE,MAAM,CAAA,IAAI,CAC/B,uCAAK,SAAS,EAAC,oCAAoC;4BAC/C,uCAAK,SAAS,EAAC,sBAAsB;gCACjC,8BAAC,kBAAQ,IAAC,IAAI,4BAA2B,CACvC;4BACN,uCAAK,SAAS,EAAC,KAAK,IACf,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;gCAC9C,OAAO,CACH,uCAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,UAAU;oCACjC,uCAAK,SAAS,EAAC,sBAAsB;wCACjC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,aAAK,CAAC,KAAK,EAAE,eAAe,EAAE,aAAK,CAAC,MAAM,EAAE,YAAY,EAAC,OAAO,EAAC,SAAS,QAAC,IAAI,EAAC,MAAM,GAAG;wCAC5H,wCAAM,SAAS,EAAC,iCAAiC;4CAC7C,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,IAAG,YAAY,CAAC,IAAI,CAAQ,CACnD,CACL,CACJ,CACT,CAAC;4BACN,CAAC,CAAC,CACA,CACJ,CACT;wBACA,CAAC,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAA,IAAI,CAClB,uCAAK,SAAS,EAAC,oCAAoC;4BAC/C,uCAAK,SAAS,EAAC,sBAAsB;gCACjC,8BAAC,kBAAQ,IAAC,IAAI,qBAAoB,CAChC;4BACN,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK;gCACtB,qCAAG,IAAI,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,MAAM,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAC,YAAY,IAC7F,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAChB,CACD,CACL,CACT,CACC;oBACN,uCAAK,SAAS,EAAC,UAAU;wBACrB,uCAAK,SAAS,EAAC,oCAAoC;4BAC/C,uCAAK,SAAS,EAAC,oCAAoC;gCAC/C,8BAAC,kBAAQ,IAAC,IAAI,UAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAY,CAC3D;4BACL,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;4BAClC,uCAAK,SAAS,EAAC,KAAK;gCACf,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oCACrB,IAAI,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE;wCACvB,OAAO,CACH,uCAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,OAAO,IAC7B,QAAQ,CAAC,KAAK,CAAC,CACd,CACT,CAAC;qCACL;gCACL,CAAC,CAAC;gCACD,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,uCAAK,SAAS,EAAC,OAAO;oCAClB,uCAAK,SAAS,EAAC,yBAAyB,EAAC,OAAO,EAAE,iBAAiB;wCAC9D,QAAQ,CAAC,CAAC,CAAC;wCACZ;;4CAAS,MAAM,CAAC,MAAM,GAAG,CAAC,CAAQ,CAChC,CACJ,CACT,CACC,CACJ,CACJ,CACJ,CACJ,CACJ;QACL,CAAC,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAA,IAAI,CACjB,8BAAC,0BAAU,IACP,OAAO,EAAE,kBAAkB,CAAC,OAAO,EACnC,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAC/B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAa,CAAC,WAAW,CAAC,KAAK,EAAE,yBAAS,CAAC,QAAQ,CAAC,CAAC,EACpF,IAAI,EAAC,OAAO,GACd,CACL,CACF,CACN,CAAC;AACN,CAAC;AAlPD,4BAkPC","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Color } from '@/util/Color';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Headline from '@/components/generic/Headline';\nimport HotelLocationMap from '@/components/generic/map/HotelLocationMap';\nimport FsLightbox from 'fslightbox-react';\nimport TransportDistanceFromHotelBlock from '@/components/summary/TransportDistanceFromHotelBlock';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport BEButton from '@/components/generic/BEButton';\nimport StepManager from '@/util/StepManager';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport ImageProvider, { ImageSize } from '@/providers/ImageProvider';\nimport { StepHotelInfoViewEvent } from '@frontend/events';\nimport { useHistoryConsistentPush } from 'hooks/HistoryConsistentPush';\n\nexport default function HotelInfo() {\n const { hotel } = useCurrentHotel();\n const historyConsistentPush = useHistoryConsistentPush();\n const { t } = useTranslation();\n\n const imageUrl = hotel?.heroImage;\n\n const { line1, line2, postalCode, country } = hotel?.address ?? {};\n\n const [lightboxController, setLightboxController] = useState({ toggler: false, slide: 1 });\n const [images, setImages] = useState<string[]>([]);\n\n const openSlider = (slide: number) => {\n setLightboxController((controller) => ({ toggler: !controller.toggler, slide: slide + 1 }));\n };\n const openSliderOnClick = () => {\n openSlider(4);\n };\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepHotelInfoViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n const newImages: string[] = [];\n\n if (hotel?.images?.length) {\n newImages.push(...hotel.images);\n }\n\n if (hotel?.rooms) {\n for (const room of Object.values(hotel?.rooms)) {\n room.images?.forEach((image) => {\n newImages.push(image);\n });\n }\n }\n\n setImages(newImages);\n }, [hotel?.images, hotel?.rooms]);\n\n const onBookNowClick = () => {\n historyConsistentPush(StepManager.getFirstStep().getStepUrl());\n };\n\n const getImage = (index: number) => {\n const openSliderOnClickHandler = () => {\n openSlider(index);\n };\n\n const resizedUrl = ImageProvider.resizeImage(images[index], ImageSize.Small);\n\n return (\n <div\n style={{ backgroundImage: `url('${resizedUrl}')`, paddingTop: '75%' }}\n className=\"c-images u-block u-w-100 u-marg-bottom u-marg-bottom--heavy\"\n onClick={openSliderOnClickHandler}\n />\n );\n };\n\n return (\n <>\n <div style={{ backgroundImage: `url('${imageUrl && ImageProvider.resizeImage(imageUrl, ImageSize.Original)}')` }} className=\"c-masthead has-tint\">\n <div className=\"container\">\n <div className=\"c-masthead__body u-fill-white u-pad--heavy u-shadow-accent\">\n <h1 className=\"c-masthead__header\">{hotel?.name}</h1>\n <h2 className=\"c-masthead__sub-header\">{hotel?.address?.country}</h2>\n </div>\n </div>\n </div>\n <div className=\"u-fill-snow u-pad--heavy-med u-pad-top-bottom--heavy@m-\">\n <div className=\"container\">\n <div className=\"row\">\n <div className=\"col-md-6 u-flex align-items-center\">\n <ul>\n <li className=\"u-flex u-marg-bottom--heavy\">\n <Icon icon={IconType.Map} size=\"1.3em\" color={Color.Accent} />\n <span className=\"u-flex__item u-marg-left\">\n {line1}\n <br />\n {line2} {postalCode}, {country}\n </span>\n </li>\n <li className=\"u-flex u-marg-bottom--heavy\">\n <Icon icon={IconType.Phone} size=\"1.3em\" color={Color.Accent} />\n <span className=\"u-flex__item u-marg-left\">{hotel?.phone}</span>\n </li>\n <li className=\"u-flex u-marg-bottom--heavy\">\n <Icon icon={IconType.Hotel2} size=\"1.3em\" color={Color.Accent} />\n <span className=\"u-flex__item u-marg-left\">\n <a href={hotel?.hotelUrl} style={{ color: 'var(--rs-color-accent-1)' }}>\n {hotel?.name}\n </a>\n </span>\n </li>\n <li className=\"u-flex\">\n <BEButton icon={IconType.ArrowRight} primary filled iconPosition=\"right\" onClick={onBookNowClick}>\n {t(Translation.Misc.BookNow)}\n </BEButton>\n </li>\n </ul>\n </div>\n <div className=\"col-md-6\">\n <div className=\"c-overlap\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy u-marg-top u-marg-top--heavy\" style={{ height: '240px' }}>\n <HotelLocationMap />\n </div>\n <div className=\"u-flex u-flex-column justify-content-center\">\n <TransportDistanceFromHotelBlock hotel={hotel} />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div className=\"u-pad u-pad--heavy-plus u-pad-top-bottom--heavy@m-\">\n <div className=\"container\">\n <div className=\"row\">\n <div className=\"col-lg-6\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Hotel.About)}</Headline>\n </div>\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Text type={TextType.Small}>\n <span dangerouslySetInnerHTML={{ __html: hotel?.description?.replace('\\r\\n', '<br/><br/>') || '' }} />\n </Text>\n {!!hotel?.locationDescription && (\n <>\n <div className=\"u-marg-top\">\n <Text type={TextType.Small}>\n <strong>Location</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>\n <span dangerouslySetInnerHTML={{ __html: hotel?.locationDescription?.replace('\\r\\n', '<br/><br/>') }} />\n </Text>\n </>\n )}\n </div>\n {!!hotel?.perks?.length && (\n <>\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Text type={TextType.Small}>\n <strong>And you get all these for free:</strong>\n </Text>\n </div>\n <div className=\"row\">\n {hotel?.perks.map((perk) => {\n return (\n <div className=\"col-6 col-md-4\" key={perk.name}>\n <div className=\"u-flex u-marg-bottom\">\n <div className=\"room-perk-icon\">{perk.iconElement ? perk.iconElement : <Icon icon={perk.icon as IconType} />}</div>\n <span className=\"u-flex__item\">\n <Text type={TextType.Small}>{perk.name}</Text>\n </span>\n </div>\n </div>\n );\n })}\n </div>\n </>\n )}\n </div>\n {!!hotel?.hotelServices?.length && (\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>Hotel Amenities</Headline>\n </div>\n <div className=\"row\">\n {hotel?.hotelServices.map((hotelService, index) => {\n return (\n <div key={index} className=\"col-md-6\">\n <div className=\"u-flex u-marg-bottom\">\n <Icon icon={IconType.Check} color={Color.White} backgroundColor={Color.Accent} borderRadius=\"round\" noPadding size=\"16px\" />\n <span className=\"u-flex__item u-marg-left--light\">\n <Text type={TextType.Small}>{hotelService.name}</Text>\n </span>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n )}\n {!!hotel?.policies && (\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>Policies</Headline>\n </div>\n <Text type={TextType.Small}>\n <a href={hotel?.policies} target=\"_blank\" style={{ color: hotel?.colors.accent }} rel=\"noreferrer\">\n {hotel?.policies}\n </a>\n </Text>\n </div>\n )}\n </div>\n <div className=\"col-lg-6\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Hotel.Gallery)}</Headline>\n </div>\n {images.length >= 1 && getImage(0)}\n <div className=\"row\">\n {[1, 2, 3].map((index) => {\n if (images.length > index) {\n return (\n <div key={index} className=\"col-6\">\n {getImage(index)}\n </div>\n );\n }\n })}\n {images.length > 5 && (\n <div className=\"col-6\">\n <div className=\"c-images c-images--more\" onClick={openSliderOnClick}>\n {getImage(4)}\n <span>+ {images.length - 5}</span>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n {!!images?.length && (\n <FsLightbox\n toggler={lightboxController.toggler}\n slide={lightboxController.slide}\n sources={images.map((image) => ImageProvider.resizeImage(image, ImageSize.Original))}\n type=\"image\"\n />\n )}\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"HotelInfo.js","sourceRoot":"/","sources":["src/pages/hotel/HotelInfo.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Color } from '@/util/Color';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Headline from '@/components/generic/Headline';\nimport HotelLocationMap from '@/components/generic/map/HotelLocationMap';\nimport FsLightbox from 'fslightbox-react';\nimport TransportDistanceFromHotelBlock from '@/components/summary/TransportDistanceFromHotelBlock';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport BEButton from '@/components/generic/BEButton';\nimport StepManager from '@/util/StepManager';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport ImageProvider, { ImageSize } from '@/providers/ImageProvider';\nimport { StepHotelInfoViewEvent } from '@frontend/events';\nimport { useHistoryConsistentPush } from 'hooks/HistoryConsistentPush';\n\nexport default function HotelInfo() {\n const { hotel } = useCurrentHotel();\n const historyConsistentPush = useHistoryConsistentPush();\n const { t } = useTranslation();\n\n const imageUrl = hotel?.heroImage;\n\n const { line1, line2, postalCode, country } = hotel?.address ?? {};\n\n const [lightboxController, setLightboxController] = useState({ toggler: false, slide: 1 });\n const [images, setImages] = useState<string[]>([]);\n\n const openSlider = (slide: number) => {\n setLightboxController((controller) => ({ toggler: !controller.toggler, slide: slide + 1 }));\n };\n const openSliderOnClick = () => {\n openSlider(4);\n };\n\n const { raise } = useEvent();\n\n useEffect(() => {\n const event = new StepHotelInfoViewEvent();\n raise(event);\n }, []);\n\n useEffect(() => {\n const newImages: string[] = [];\n\n if (hotel?.images?.length) {\n newImages.push(...hotel.images);\n }\n\n if (hotel?.rooms) {\n for (const room of Object.values(hotel?.rooms)) {\n room.images?.forEach((image) => {\n newImages.push(image);\n });\n }\n }\n\n setImages(newImages);\n }, [hotel?.images, hotel?.rooms]);\n\n const onBookNowClick = () => {\n historyConsistentPush(StepManager.getFirstStep().getStepUrl());\n };\n\n const getImage = (index: number) => {\n const openSliderOnClickHandler = () => {\n openSlider(index);\n };\n\n const resizedUrl = ImageProvider.resizeImage(images[index], ImageSize.Small);\n\n return (\n <div\n style={{ backgroundImage: `url('${resizedUrl}')`, paddingTop: '75%' }}\n className=\"c-images u-block u-w-100 u-marg-bottom u-marg-bottom--heavy\"\n onClick={openSliderOnClickHandler}\n />\n );\n };\n\n return (\n <>\n <div style={{ backgroundImage: `url('${imageUrl && ImageProvider.resizeImage(imageUrl, ImageSize.Original)}')` }} className=\"c-masthead has-tint\">\n <div className=\"container\">\n <div className=\"c-masthead__body u-fill-white u-pad--heavy u-shadow-accent\">\n <h1 className=\"c-masthead__header\">{hotel?.name}</h1>\n <h2 className=\"c-masthead__sub-header\">{hotel?.address?.country}</h2>\n </div>\n </div>\n </div>\n <div className=\"u-fill-snow u-pad--heavy-med u-pad-top-bottom--heavy@m-\">\n <div className=\"container\">\n <div className=\"row\">\n <div className=\"col-md-6 u-flex align-items-center\">\n <ul>\n <li className=\"u-flex u-marg-bottom--heavy\">\n <Icon icon={IconType.Map} size=\"1.3em\" color={Color.Accent} />\n <span className=\"u-flex__item u-marg-left\">\n {line1}\n <br />\n {line2} {postalCode}, {country}\n </span>\n </li>\n <li className=\"u-flex u-marg-bottom--heavy\">\n <Icon icon={IconType.Phone} size=\"1.3em\" color={Color.Accent} />\n <span className=\"u-flex__item u-marg-left\">{hotel?.phone}</span>\n </li>\n <li className=\"u-flex u-marg-bottom--heavy\">\n <Icon icon={IconType.Hotel2} size=\"1.3em\" color={Color.Accent} />\n <span className=\"u-flex__item u-marg-left\">\n <a href={hotel?.hotelUrl} style={{ color: 'var(--rs-color-accent-1)' }}>\n {hotel?.name}\n </a>\n </span>\n </li>\n <li className=\"u-flex\">\n <BEButton icon={IconType.ArrowRight} primary filled iconPosition=\"right\" onClick={onBookNowClick}>\n {t(Translation.Misc.BookNow)}\n </BEButton>\n </li>\n </ul>\n </div>\n <div className=\"col-md-6\">\n <div className=\"c-overlap\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy u-marg-top u-marg-top--heavy\" style={{ height: '240px' }}>\n <HotelLocationMap />\n </div>\n <div className=\"u-flex u-flex-column justify-content-center\">\n <TransportDistanceFromHotelBlock hotel={hotel} />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div className=\"u-pad u-pad--heavy-plus u-pad-top-bottom--heavy@m-\">\n <div className=\"container\">\n <div className=\"row\">\n <div className=\"col-lg-6\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Hotel.About)}</Headline>\n </div>\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Text type={TextType.Small}>\n <span dangerouslySetInnerHTML={{ __html: hotel?.description?.replace('\\r\\n', '<br/><br/>') || '' }} />\n </Text>\n {!!hotel?.locationDescription && (\n <>\n <div className=\"u-marg-top\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Hotel.Location)}</strong>\n </Text>\n </div>\n <Text type={TextType.Small}>\n <span dangerouslySetInnerHTML={{ __html: hotel?.locationDescription?.replace('\\r\\n', '<br/><br/>') }} />\n </Text>\n </>\n )}\n </div>\n {!!hotel?.perks?.length && (\n <>\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Text type={TextType.Small}>\n <strong>{t(Translation.Step.Hotel.AndYouGetAll)}</strong>\n </Text>\n </div>\n <div className=\"row\">\n {hotel?.perks.map((perk) => {\n return (\n <div className=\"col-6 col-md-4\" key={perk.name}>\n <div className=\"u-flex u-marg-bottom\">\n <div className=\"room-perk-icon\">{perk.iconElement ? perk.iconElement : <Icon icon={perk.icon as IconType} />}</div>\n <span className=\"u-flex__item\">\n <Text type={TextType.Small}>{perk.name}</Text>\n </span>\n </div>\n </div>\n );\n })}\n </div>\n </>\n )}\n </div>\n {!!hotel?.hotelServices?.length && (\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Hotel.HotelAmenities)}</Headline>\n </div>\n <div className=\"row\">\n {hotel?.hotelServices.map((hotelService, index) => {\n return (\n <div key={index} className=\"col-md-6\">\n <div className=\"u-flex u-marg-bottom\">\n <Icon icon={IconType.Check} color={Color.White} backgroundColor={Color.Accent} borderRadius=\"round\" noPadding size=\"16px\" />\n <span className=\"u-flex__item u-marg-left--light\">\n <Text type={TextType.Small}>{hotelService.name}</Text>\n </span>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n )}\n {!!hotel?.policies && (\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Hotel.Policies)}</Headline>\n </div>\n <Text type={TextType.Small}>\n <a href={hotel?.policies} target=\"_blank\" style={{ color: hotel?.colors.accent }} rel=\"noreferrer\">\n {hotel?.policies}\n </a>\n </Text>\n </div>\n )}\n </div>\n <div className=\"col-lg-6\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <div className=\"u-marg-bottom u-marg-bottom--heavy\">\n <Headline bold>{t(Translation.Step.Hotel.Gallery)}</Headline>\n </div>\n {images.length >= 1 && getImage(0)}\n <div className=\"row\">\n {[1, 2, 3].map((index) => {\n if (images.length > index) {\n return (\n <div key={index} className=\"col-6\">\n {getImage(index)}\n </div>\n );\n }\n })}\n {images.length > 5 && (\n <div className=\"col-6\">\n <div className=\"c-images c-images--more\" onClick={openSliderOnClick}>\n {getImage(4)}\n <span>+ {images.length - 5}</span>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n {!!images?.length && (\n <FsLightbox\n toggler={lightboxController.toggler}\n slide={lightboxController.slide}\n sources={images.map((image) => ImageProvider.resizeImage(image, ImageSize.Original))}\n type=\"image\"\n />\n )}\n </>\n );\n}\n"]}
@@ -8,7 +8,7 @@ const react_router_1 = require("react-router");
8
8
  const StepGuide_1 = __importDefault(require("../pages/steps/StepGuide"));
9
9
  const StepSelector_1 = __importDefault(require("../components/navigation/StepSelector"));
10
10
  const InactivityWindow_1 = __importDefault(require("../components/steps/room/InactivityWindow"));
11
- const StepRoom_1 = __importDefault(require("../pages/steps/StepRoom/StepRoom"));
11
+ const GetStepRoom_1 = __importDefault(require("../util/GetStepRoom"));
12
12
  const StepAddon_1 = __importDefault(require("../pages/steps/StepAddon/StepAddon"));
13
13
  const StepConfirmation_1 = __importDefault(require("../pages/steps/StepConfirmation/StepConfirmation"));
14
14
  const StepRoute = (props) => {
@@ -16,7 +16,7 @@ const StepRoute = (props) => {
16
16
  return (react_1.default.createElement(StepGuide_1.default, { step: props.step },
17
17
  react_1.default.createElement(StepSelector_1.default, null),
18
18
  react_1.default.createElement(StepContent, Object.assign({}, routeProps)),
19
- [StepRoom_1.default.getName(), StepAddon_1.default.getName(), StepConfirmation_1.default.getName()].includes(props.step.getName()) && react_1.default.createElement(InactivityWindow_1.default, null)));
19
+ [(0, GetStepRoom_1.default)().getName(), StepAddon_1.default.getName(), StepConfirmation_1.default.getName()].includes(props.step.getName()) && react_1.default.createElement(InactivityWindow_1.default, null)));
20
20
  };
21
21
  const StepContent = props.step.getComponent();
22
22
  return react_1.default.createElement(react_router_1.Route, { path: props.step.getStepUrl(), render: renderFunction });
@@ -1 +1 @@
1
- {"version":3,"file":"NaturallyProgressedStepRoute.js","sourceRoot":"/","sources":["src/routes/NaturallyProgressedStepRoute.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,+CAAqC;AACrC,wEAAgD;AAChD,wFAAgE;AAEhE,gGAAwE;AACxE,+EAAuD;AACvD,kFAA0D;AAC1D,uGAA+E;AAM/E,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IACxC,MAAM,cAAc,GAAG,CAAC,UAAe,EAAE,EAAE;QACvC,OAAO,CACH,8BAAC,mBAAS,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI;YACvB,8BAAC,sBAAY,OAAG;YAChB,8BAAC,WAAW,oBAAK,UAAU,EAAI;YAC9B,CAAC,kBAAQ,CAAC,OAAO,EAAE,EAAE,mBAAS,CAAC,OAAO,EAAE,EAAE,0BAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,8BAAC,0BAAgB,OAAG,CACrH,CACf,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAS,CAAC;IAErD,OAAO,8BAAC,oBAAK,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,cAAc,GAAI,CAAC;AAC5E,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["import React from 'react';\nimport { Route } from 'react-router';\nimport StepGuide from '@/pages/steps/StepGuide';\nimport StepSelector from '@/components/navigation/StepSelector';\nimport Step from '@/pages/steps/Step';\nimport InactivityWindow from '@/components/steps/room/InactivityWindow';\nimport StepRoom from '@/pages/steps/StepRoom/StepRoom';\nimport StepAddon from '@/pages/steps/StepAddon/StepAddon';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\n\nexport interface StepRouteProps {\n step: Step;\n}\n\nconst StepRoute = (props: StepRouteProps) => {\n const renderFunction = (routeProps: any) => {\n return (\n <StepGuide step={props.step}>\n <StepSelector />\n <StepContent {...routeProps} />\n {[StepRoom.getName(), StepAddon.getName(), StepConfirmation.getName()].includes(props.step.getName()) && <InactivityWindow />}\n </StepGuide>\n );\n };\n\n const StepContent = props.step.getComponent() as any;\n\n return <Route path={props.step.getStepUrl()} render={renderFunction} />;\n};\n\nexport default StepRoute;\n"]}
1
+ {"version":3,"file":"NaturallyProgressedStepRoute.js","sourceRoot":"/","sources":["src/routes/NaturallyProgressedStepRoute.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,+CAAqC;AACrC,wEAAgD;AAChD,wFAAgE;AAEhE,gGAAwE;AACxE,qEAA6C;AAC7C,kFAA0D;AAC1D,uGAA+E;AAM/E,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IACxC,MAAM,cAAc,GAAG,CAAC,UAAe,EAAE,EAAE;QACvC,OAAO,CACH,8BAAC,mBAAS,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI;YACvB,8BAAC,sBAAY,OAAG;YAChB,8BAAC,WAAW,oBAAK,UAAU,EAAI;YAC9B,CAAC,IAAA,qBAAW,GAAE,CAAC,OAAO,EAAE,EAAE,mBAAS,CAAC,OAAO,EAAE,EAAE,0BAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,8BAAC,0BAAgB,OAAG,CAC1H,CACf,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,EAAS,CAAC;IAErD,OAAO,8BAAC,oBAAK,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,cAAc,GAAI,CAAC;AAC5E,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["import React from 'react';\nimport { Route } from 'react-router';\nimport StepGuide from '@/pages/steps/StepGuide';\nimport StepSelector from '@/components/navigation/StepSelector';\nimport Step from '@/pages/steps/Step';\nimport InactivityWindow from '@/components/steps/room/InactivityWindow';\nimport getStepRoom from '@/util/GetStepRoom';\nimport StepAddon from '@/pages/steps/StepAddon/StepAddon';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\n\nexport interface StepRouteProps {\n step: Step;\n}\n\nconst StepRoute = (props: StepRouteProps) => {\n const renderFunction = (routeProps: any) => {\n return (\n <StepGuide step={props.step}>\n <StepSelector />\n <StepContent {...routeProps} />\n {[getStepRoom().getName(), StepAddon.getName(), StepConfirmation.getName()].includes(props.step.getName()) && <InactivityWindow />}\n </StepGuide>\n );\n };\n\n const StepContent = props.step.getComponent() as any;\n\n return <Route path={props.step.getStepUrl()} render={renderFunction} />;\n};\n\nexport default StepRoute;\n"]}
@@ -17,13 +17,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.ThemeMini = exports.FixedCompany = exports.Button = exports.Vertical = exports.Horizontal = void 0;
18
18
  const BookingWizard_1 = __importDefault(require("../components/generic/BookingWizard/BookingWizard"));
19
19
  const react_1 = __importDefault(require("react"));
20
- const RSCompany_1 = require("../../tests/offline/entry/RSCompany");
20
+ const OfflineEngineDefaults_1 = require("../../tests/offline/entry/OfflineEngineDefaults");
21
21
  exports.default = {
22
22
  title: 'generic/BookingWizard',
23
23
  component: BookingWizard_1.default,
24
24
  argTypes: {},
25
25
  };
26
- const globalProperties = RSCompany_1.rsCompany.hotels.reduce((map, hotel) => {
26
+ const globalProperties = OfflineEngineDefaults_1.rsCompany.hotels.reduce((map, hotel) => {
27
27
  var _a, _b, _c, _d;
28
28
  map[(_a = hotel.address) === null || _a === void 0 ? void 0 : _a.city] = map[(_b = hotel.address) === null || _b === void 0 ? void 0 : _b.city] || [];
29
29
  (_d = map[(_c = hotel.address) === null || _c === void 0 ? void 0 : _c.city]) === null || _d === void 0 ? void 0 : _d.push({ id: hotel.hotelID, name: hotel.name });
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizard.stories.js","sourceRoot":"/","sources":["src/stories/BookingWizard.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,qGAA0H;AAC1H,kDAA0B;AAC1B,mEAAgE;AAGhE,kBAAe;IACX,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,uBAAa;IACxB,QAAQ,EAAE,EAAE;CACwB,CAAC;AAEzC,MAAM,gBAAgB,GAAG,qBAAS,CAAC,MAAM,CAAC,MAAM,CAA2B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;;IACtF,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAc,CAAC,GAAG,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAc,CAAC,IAAI,EAAE,CAAC;IAE9E,MAAA,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAc,CAAC,0CAAE,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5F,OAAO,GAAG,CAAC;AACf,CAAC,EAAE,EAAE,CAAC,CAAC;AAEP,MAAM,QAAQ,GAAyC,CAAC,EAAuB,EAAE,EAAE;QAA3B,EAAE,UAAU,OAAW,EAAN,IAAI,cAArB,cAAuB,CAAF;IAAO,OAAA,8BAAC,uBAAa,kBAAC,UAAU,EAAE,UAAU,IAAM,IAAI,EAAI,CAAA;CAAA,CAAC;AAE3H,QAAA,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,kBAAU,CAAC,IAAI,GAAG;IACd,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AAEW,QAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,gBAAQ,CAAC,IAAI,GAAG;IACZ,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AAEW,QAAA,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,cAAM,CAAC,IAAI,GAAG;IACV,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,EAA4C,EAAE,EAAE;QAAhD,EAAE,UAAU,OAAgC,EAA3B,KAAK,cAAtB,cAAwB,CAAF;IAC/C,OAAO,8BAAC,uBAAa,kBAAC,UAAU,EAAE,gBAAgB,IAAM,KAAK,EAAI,CAAC;AACtE,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEW,QAAA,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,iBAAS,CAAC,IAAI,GAAG;IACb,MAAM,EAAE,sBAAsB;IAC9B,uCAAuC;IACvC,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AACF,iBAAS,CAAC,UAAU,GAAG;IACnB,WAAW,EAAE;QACT,OAAO,EAAE,MAAM;KAClB;CACJ,CAAC","sourcesContent":["import { ComponentMeta, ComponentStory } from '@storybook/react';\nimport BookingWizard, { BookingWizardProps, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\nimport React from 'react';\nimport { rsCompany } from '../../tests/offline/entry/RSCompany';\nimport { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\n\nexport default {\n title: 'generic/BookingWizard',\n component: BookingWizard,\n argTypes: {},\n} as ComponentMeta<typeof BookingWizard>;\n\nconst globalProperties = rsCompany.hotels.reduce<TBookingWizardProperties>((map, hotel) => {\n map[hotel.address?.city as string] = map[hotel.address?.city as string] || [];\n\n map[hotel.address?.city as string]?.push({ id: hotel.hotelID as string, name: hotel.name });\n\n return map;\n}, {});\n\nconst Template: ComponentStory<typeof BookingWizard> = ({ properties, ...args }) => <BookingWizard properties={properties} {...args} />;\n\nexport const Horizontal = Template.bind({});\nHorizontal.args = {\n layout: 'horizontal',\n properties: globalProperties,\n};\n\nexport const Vertical = Template.bind({});\nVertical.args = {\n layout: 'vertical',\n properties: globalProperties,\n};\n\nexport const Button = Template.bind({});\nButton.args = {\n layout: 'button',\n properties: globalProperties,\n};\n\nexport const FixedCompany = ({ properties, ...props }: BookingWizardProps) => {\n return <BookingWizard properties={globalProperties} {...props} />;\n};\n\nexport const ThemeMini = Template.bind({});\nThemeMini.args = {\n layout: 'horizontal-condensed',\n // theme: EBookingWizardTheme.Specific,\n properties: globalProperties,\n};\nThemeMini.parameters = {\n backgrounds: {\n default: 'dark',\n },\n};\n"]}
1
+ {"version":3,"file":"BookingWizard.stories.js","sourceRoot":"/","sources":["src/stories/BookingWizard.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,qGAA0H;AAC1H,kDAA0B;AAC1B,2FAA4E;AAG5E,kBAAe;IACX,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,uBAAa;IACxB,QAAQ,EAAE,EAAE;CACwB,CAAC;AAEzC,MAAM,gBAAgB,GAAG,iCAAS,CAAC,MAAM,CAAC,MAAM,CAA2B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;;IACtF,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAc,CAAC,GAAG,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAc,CAAC,IAAI,EAAE,CAAC;IAE9E,MAAA,GAAG,CAAC,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAc,CAAC,0CAAE,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5F,OAAO,GAAG,CAAC;AACf,CAAC,EAAE,EAAE,CAAC,CAAC;AAEP,MAAM,QAAQ,GAAyC,CAAC,EAAuB,EAAE,EAAE;QAA3B,EAAE,UAAU,OAAW,EAAN,IAAI,cAArB,cAAuB,CAAF;IAAO,OAAA,8BAAC,uBAAa,kBAAC,UAAU,EAAE,UAAU,IAAM,IAAI,EAAI,CAAA;CAAA,CAAC;AAE3H,QAAA,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,kBAAU,CAAC,IAAI,GAAG;IACd,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AAEW,QAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,gBAAQ,CAAC,IAAI,GAAG;IACZ,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AAEW,QAAA,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,cAAM,CAAC,IAAI,GAAG;IACV,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,EAA4C,EAAE,EAAE;QAAhD,EAAE,UAAU,OAAgC,EAA3B,KAAK,cAAtB,cAAwB,CAAF;IAC/C,OAAO,8BAAC,uBAAa,kBAAC,UAAU,EAAE,gBAAgB,IAAM,KAAK,EAAI,CAAC;AACtE,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB;AAEW,QAAA,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,iBAAS,CAAC,IAAI,GAAG;IACb,MAAM,EAAE,sBAAsB;IAC9B,uCAAuC;IACvC,UAAU,EAAE,gBAAgB;CAC/B,CAAC;AACF,iBAAS,CAAC,UAAU,GAAG;IACnB,WAAW,EAAE;QACT,OAAO,EAAE,MAAM;KAClB;CACJ,CAAC","sourcesContent":["import { ComponentMeta, ComponentStory } from '@storybook/react';\nimport BookingWizard, { BookingWizardProps, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\nimport React from 'react';\nimport { rsCompany } from '../../tests/offline/entry/OfflineEngineDefaults';\nimport { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\n\nexport default {\n title: 'generic/BookingWizard',\n component: BookingWizard,\n argTypes: {},\n} as ComponentMeta<typeof BookingWizard>;\n\nconst globalProperties = rsCompany.hotels.reduce<TBookingWizardProperties>((map, hotel) => {\n map[hotel.address?.city as string] = map[hotel.address?.city as string] || [];\n\n map[hotel.address?.city as string]?.push({ id: hotel.hotelID as string, name: hotel.name });\n\n return map;\n}, {});\n\nconst Template: ComponentStory<typeof BookingWizard> = ({ properties, ...args }) => <BookingWizard properties={properties} {...args} />;\n\nexport const Horizontal = Template.bind({});\nHorizontal.args = {\n layout: 'horizontal',\n properties: globalProperties,\n};\n\nexport const Vertical = Template.bind({});\nVertical.args = {\n layout: 'vertical',\n properties: globalProperties,\n};\n\nexport const Button = Template.bind({});\nButton.args = {\n layout: 'button',\n properties: globalProperties,\n};\n\nexport const FixedCompany = ({ properties, ...props }: BookingWizardProps) => {\n return <BookingWizard properties={globalProperties} {...props} />;\n};\n\nexport const ThemeMini = Template.bind({});\nThemeMini.args = {\n layout: 'horizontal-condensed',\n // theme: EBookingWizardTheme.Specific,\n properties: globalProperties,\n};\nThemeMini.parameters = {\n backgrounds: {\n default: 'dark',\n },\n};\n"]}
@@ -144,6 +144,10 @@ export declare const Translation: {
144
144
  ViewRooms: string;
145
145
  About: string;
146
146
  Gallery: string;
147
+ AndYouGetAll: string;
148
+ HotelAmenities: string;
149
+ Policies: string;
150
+ Location: string;
147
151
  };
148
152
  Room: {
149
153
  SelectRoom: string;
@@ -147,6 +147,10 @@ exports.Translation = {
147
147
  ViewRooms: 'Step.Hotel.ViewRooms',
148
148
  About: 'Step.Hotel.About',
149
149
  Gallery: 'Step.Hotel.Gallery',
150
+ AndYouGetAll: 'Step.Hotel.AndYouGetAll',
151
+ HotelAmenities: 'Step.Hotel.HotelAmenities',
152
+ Policies: 'Step.Hotel.Policies',
153
+ Location: 'Step.Hotel.Location',
150
154
  },
151
155
  Room: {
152
156
  SelectRoom: 'Step.Room.SelectRoom',