@roomstay/frontend 2.2.4 → 2.2.5

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/src/components/steps/room/roomDetails/RoomDetails.js +2 -1
  2. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  3. package/dist/src/stories/BookingWizard.stories.js +2 -2
  4. package/dist/src/stories/BookingWizard.stories.js.map +1 -1
  5. package/dist/tests/offline/entry/{RSCompany.js → OfflineEngineDefaults.js} +6 -47
  6. package/dist/tests/offline/entry/OfflineEngineDefaults.js.map +1 -0
  7. package/dist/tests/offline/entry/OfflineEngineWrapper.d.ts +1 -0
  8. package/dist/tests/offline/entry/{ReactWrapper.js → OfflineEngineWrapper.js} +14 -21
  9. package/dist/tests/offline/entry/OfflineEngineWrapper.js.map +1 -0
  10. package/dist/tests/offline/entry/components/TestPicker.js +61 -2
  11. package/dist/tests/offline/entry/components/TestPicker.js.map +1 -1
  12. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js +2 -2
  13. package/dist/tests/offline/entry/engineRenderer/memberPortalWidgetRenderer.js.map +1 -1
  14. package/dist/tests/offline/entry/{allEngines.js → offline-entry.js} +3 -3
  15. package/dist/tests/offline/entry/offline-entry.js.map +1 -0
  16. package/dist/tests/offline/entry/pages/Inline/index.d.ts +4 -0
  17. package/dist/tests/offline/entry/pages/Inline/index.js +96 -0
  18. package/dist/tests/offline/entry/pages/Inline/index.js.map +1 -0
  19. package/package.json +1 -1
  20. package/dist/151.bundle.js +0 -1
  21. package/dist/201.bundle.js +0 -1
  22. package/dist/213.bundle.js +0 -1
  23. package/dist/279.bundle.js +0 -1
  24. package/dist/370.bundle.js +0 -1
  25. package/dist/423.bundle.js +0 -1
  26. package/dist/449.bundle.js +0 -1
  27. package/dist/535.bundle.js +0 -2
  28. package/dist/535.bundle.js.LICENSE.txt +0 -30
  29. package/dist/548.bundle.js +0 -1
  30. package/dist/625.bundle.js +0 -1
  31. package/dist/686.bundle.js +0 -1
  32. package/dist/815.bundle.js +0 -1
  33. package/dist/855.bundle.js +0 -1
  34. package/dist/873.bundle.js +0 -1
  35. package/dist/882.bundle.js +0 -1
  36. package/dist/93.bundle.js +0 -1
  37. package/dist/972.bundle.js +0 -1
  38. package/dist/main.bundle.js +0 -1
  39. package/dist/test.bundle.js +0 -1
  40. package/dist/tests/offline/entry/RSCompany.js.map +0 -1
  41. package/dist/tests/offline/entry/ReactWrapper.d.ts +0 -1
  42. package/dist/tests/offline/entry/ReactWrapper.js.map +0 -1
  43. package/dist/tests/offline/entry/allEngines.js.map +0 -1
  44. package/dist/vendors.bundle.js +0 -2
  45. package/dist/vendors.bundle.js.LICENSE.txt +0 -80
  46. /package/dist/tests/offline/entry/{RSCompany.d.ts → OfflineEngineDefaults.d.ts} +0 -0
  47. /package/dist/tests/offline/entry/{allEngines.d.ts → offline-entry.d.ts} +0 -0
@@ -167,8 +167,9 @@ function RoomDetails(props) {
167
167
  identifier: rate.code,
168
168
  priceSpecification: {
169
169
  '@type': 'UnitPriceSpecification',
170
+ price: convertCurrencyPrice(rate.getAveragePrice(true)),
170
171
  basePrice: convertCurrencyPrice(rate.getTotalPrice(true)),
171
- totalPrice: convertCurrencyPrice(rate.getTotalPrice()),
172
+ totalPrice: convertCurrencyPrice(rate.getAveragePrice()),
172
173
  priceCurrency: ccx.currentCurrency,
173
174
  unitText: 'Nightly',
174
175
  },
@@ -1 +1 @@
1
- {"version":3,"file":"RoomDetails.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/RoomDetails.tsx"],"names":[],"mappings":"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","sourcesContent":["import Headline from '@/components/generic/Headline';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Color, lightOrDark } from '@/util/Color';\nimport BEButton from '@/components/generic/BEButton';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport RoomRates from '@/components/steps/room/roomDetails/roomRates/RoomRates';\nimport RoomModal from '@/components/steps/room/RoomModal';\nimport Currency from '@/components/generic/Currency';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport ScreenSize from '@/util/ScreenSize';\nimport { Room } from '@/models/Room/Room';\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport { BasketContext, BookingEngineContext, CompanyContext } from '@frontend/contexts';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport { RoomDetailsPerkBlock } from '@/components/steps/room/roomDetails/RoomDetailsPerkBlock';\nimport { RoomDetailsBedsBlock } from '@/components/steps/room/roomDetails/RoomDetailsBedsBlock';\nimport { RoomRate, RoomRatePriceInclusion } from '@/models/Room/RoomRate';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport RoomRatePills from '@/components/steps/room/roomDetails/roomRates/RoomRatePills';\nimport { ImageSize } from '@/providers/ImageProvider';\nimport { HotelPerk } from '@/models/Client/Hotel/HotelPerk';\nimport * as currencyHelper from '@/util/CurrencyHelper';\n\nexport interface RoomDetailsProps {\n room: Room;\n disableMarginBottom?: boolean;\n}\n\nexport default function RoomDetails(props: RoomDetailsProps) {\n const [featuredRates, setFeaturedRates] = useState<RoomRate[]>([]);\n const [standardRates, setStandardRates] = useState<RoomRate[]>([]);\n\n const [viewingRates, setViewingRates] = useState<boolean | number | null>(null);\n const [viewingDescription, setViewingDescription] = useState(false);\n\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n\n const { room } = props;\n\n const classes = classNames('room-details', {\n ['+is-open']: viewingRates,\n });\n\n useEffect(() => {\n if (basketContext.selectedBasketRow?.getRoom() && basketContext.selectedBasketRow.getRoom().code === props.room.code) {\n setViewingRates(true);\n }\n\n DataLayer.instance.addRoomImpression(room);\n }, [basketContext.selectedBasketRow]);\n\n useEffect(() => {\n let nonPromoRates: RoomRate[] = [];\n const toSetFeaturedRate: RoomRate[] = [];\n\n if (FeaturedPromoFeature.isActive()) {\n for (const currentRate of room.getRates()) {\n if (currentRate.promoCode?.toLowerCase() === basketContext.selectedBasketRow?.getPromoCode()?.toLowerCase()) {\n toSetFeaturedRate.unshift(currentRate);\n } else {\n nonPromoRates.push(currentRate);\n }\n }\n\n if (toSetFeaturedRate.length > 0) {\n setViewingRates(true);\n setFeaturedRates(toSetFeaturedRate);\n }\n } else {\n nonPromoRates = room.getRates();\n }\n\n setStandardRates(nonPromoRates);\n }, [room.getRates()]);\n\n const perks = hotel?.perks?.slice(0, 5);\n\n const trimmedDescription = room.getShortDescription();\n\n const isMobile = context.screenSize <= ScreenSize.Large;\n\n const ratesOpen = viewingRates || (context.screenSize <= ScreenSize.Medium && viewingRates === null);\n const moreDetailsOnClick = () => {\n DataLayer.instance.sendInteraction('More Room Details', InteractionType.LINK, InteractionStep.ROOMS);\n setViewingDescription(true);\n };\n const sendRoomClickOnClick = () => {\n if (!ratesOpen) {\n DataLayer.instance.sendRoomClick(room, basketContext.startDate, basketContext.endDate);\n }\n setViewingRates(!ratesOpen);\n };\n const closeDescriptionOnClose = () => {\n setViewingDescription(false);\n };\n\n const lowestPrice = Math.round(room.getLowestPrice(false, true));\n const currencySize = context.screenSize > ScreenSize.Medium && lowestPrice.toLocaleString().length < 7 ? 'large' : 'normal';\n\n const convertCurrencyPrice = (value: number) => Math.round(currencyHelper.convertPrice(value, true, ccx.currentCurrency, hotel?.defaultCurrency as string));\n\n return (\n <div className={`room-details-container ${props.disableMarginBottom ? '' : 'u-marg-bottom'}`}>\n <div className={classes}>\n <div className=\"room-details--image\">\n <ImageGallerySlider images={props.room.getImages()} imageSize={ImageSize.Medium} />\n </div>\n <div className=\"room-details--content u-pad--heavy u-pad@l-\">\n <div className=\"u-marg-bottom\">\n {context.screenSize > ScreenSize.Large && (\n <>\n <div className=\"u-marg-bottom\">\n <RoomRatePills room={room} limit={2} />\n </div>\n </>\n )}\n <div className=\"room-details--content-title u-marg-bottom--light\">\n <Headline bold>{room.name}</Headline>\n </div>\n <RoomDetailsBedsBlock room={room} />\n <div className=\"room-details--content-description u-marg-bottom--light\">\n <Text color={Color.DarkGrey} type={TextType.Small}>\n <span dangerouslySetInnerHTML={{ __html: trimmedDescription?.replace(/<br(\\/|)>/g, '') || '' }} />\n </Text>\n </div>\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-6 u-flex u-marg-bottom@m- flex-column align-items-start\">\n <div className=\"room-details--content-perks u-marg-bottom@m-\">\n {isMobile && (\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Small} bold color={Color.Accent}>\n {t(Translation.Misc.Perks.AndYouGetAll)}\n </Text>\n </div>\n )}\n <RoomDetailsPerkBlock perks={perks as HotelPerk[]} />\n </div>\n <BEButton icon={IconType.ArrowRight2} isText primary size=\"tiny\" iconPosition=\"right\" onClick={moreDetailsOnClick}>\n {t(Translation.Step.Room.RoomInfo.MoreDetails)}\n </BEButton>\n </div>\n <div className=\"col-md-6 u-flex justify-content-end flex-column align-items-start align-items-md-end\">\n <Text type={TextType.Small} color={Color.Navy} inline>\n {t(Translation.Misc.From)}\n </Text>\n <div className=\"room-details--content-price flex-row align-items-end\">\n <Headline size={currencySize} bold>\n <Currency hideDecimals>{lowestPrice}</Currency>\n </Headline>\n <Text color={Color.DarkGrey} inline>\n /{t(Translation.Misc.Night)}\n </Text>\n </div>\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Small} color={Color.Grey} inline className=\"u-nowrap\">\n {room.getLowestPriceType() === RoomRatePriceInclusion.IncludingFeesAndTaxes\n ? t(Translation.Step.Room.RoomInfo.IncludesTaxes)\n : t(Translation.Step.Room.ExcludingTaxes)}\n </Text>\n </div>\n <div className=\"u-marg-top--light u-flex justify-content-end u-w-100@m-\">\n <BEButton\n name=\"ViewRatesNowButton\"\n primary\n primaryActive={!!ratesOpen}\n filled\n stopIconAnimation\n icon={ratesOpen ? IconType.ArrowUp2 : IconType.ArrowDown2}\n iconPosition=\"right\"\n onClick={sendRoomClickOnClick}\n wide={context.screenSize <= ScreenSize.Large}\n textColor={ratesOpen ? (lightOrDark(hotel?.colors.accent3.slice(1) as string) === 'light' ? Color.Navy : Color.White) : undefined}\n >\n {ratesOpen ? t(Translation.Step.Room.RoomInfo.CloseRates) : t(Translation.Step.Room.RoomInfo.ViewRates)}\n </BEButton>\n </div>\n </div>\n </div>\n </div>\n </div>\n <AutoAutoHeight open={!!ratesOpen}>\n <RoomRates roomCode={room.code as string} rates={standardRates} featuredRates={featuredRates} />\n </AutoAutoHeight>\n <RoomModal open={viewingDescription} room={props.room} rates={standardRates} featuredRates={featuredRates} onClose={closeDescriptionOnClose} />\n {room.getRates().map((rate) => {\n return (\n <script key={room.code + '-' + rate.code} type=\"application/ld+json\">\n {JSON.stringify({\n '@context': 'http://schema.org/',\n '@type': 'Offer',\n itemOffered: {\n '@type': 'HotelRoom',\n name: room.name,\n },\n name: rate.name,\n identifier: rate.code,\n priceSpecification: {\n '@type': 'UnitPriceSpecification',\n basePrice: convertCurrencyPrice(rate.getTotalPrice(true)),\n totalPrice: convertCurrencyPrice(rate.getTotalPrice()),\n priceCurrency: ccx.currentCurrency,\n unitText: 'Nightly',\n },\n })}\n </script>\n );\n })}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"RoomDetails.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/RoomDetails.tsx"],"names":[],"mappings":"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","sourcesContent":["import Headline from '@/components/generic/Headline';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { Color, lightOrDark } from '@/util/Color';\nimport BEButton from '@/components/generic/BEButton';\nimport { IconType } from '@/components/generic/Icon/Icon';\nimport React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport RoomRates from '@/components/steps/room/roomDetails/roomRates/RoomRates';\nimport RoomModal from '@/components/steps/room/RoomModal';\nimport Currency from '@/components/generic/Currency';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { useTranslation } from 'react-i18next';\nimport { Translation } from 'translations/Translation';\nimport ScreenSize from '@/util/ScreenSize';\nimport { Room } from '@/models/Room/Room';\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport { BasketContext, BookingEngineContext, CompanyContext } from '@frontend/contexts';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport { RoomDetailsPerkBlock } from '@/components/steps/room/roomDetails/RoomDetailsPerkBlock';\nimport { RoomDetailsBedsBlock } from '@/components/steps/room/roomDetails/RoomDetailsBedsBlock';\nimport { RoomRate, RoomRatePriceInclusion } from '@/models/Room/RoomRate';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport RoomRatePills from '@/components/steps/room/roomDetails/roomRates/RoomRatePills';\nimport { ImageSize } from '@/providers/ImageProvider';\nimport { HotelPerk } from '@/models/Client/Hotel/HotelPerk';\nimport * as currencyHelper from '@/util/CurrencyHelper';\n\nexport interface RoomDetailsProps {\n room: Room;\n disableMarginBottom?: boolean;\n}\n\nexport default function RoomDetails(props: RoomDetailsProps) {\n const [featuredRates, setFeaturedRates] = useState<RoomRate[]>([]);\n const [standardRates, setStandardRates] = useState<RoomRate[]>([]);\n\n const [viewingRates, setViewingRates] = useState<boolean | number | null>(null);\n const [viewingDescription, setViewingDescription] = useState(false);\n\n const { t } = useTranslation();\n\n const context = useContext(BookingEngineContext);\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n\n const { room } = props;\n\n const classes = classNames('room-details', {\n ['+is-open']: viewingRates,\n });\n\n useEffect(() => {\n if (basketContext.selectedBasketRow?.getRoom() && basketContext.selectedBasketRow.getRoom().code === props.room.code) {\n setViewingRates(true);\n }\n\n DataLayer.instance.addRoomImpression(room);\n }, [basketContext.selectedBasketRow]);\n\n useEffect(() => {\n let nonPromoRates: RoomRate[] = [];\n const toSetFeaturedRate: RoomRate[] = [];\n\n if (FeaturedPromoFeature.isActive()) {\n for (const currentRate of room.getRates()) {\n if (currentRate.promoCode?.toLowerCase() === basketContext.selectedBasketRow?.getPromoCode()?.toLowerCase()) {\n toSetFeaturedRate.unshift(currentRate);\n } else {\n nonPromoRates.push(currentRate);\n }\n }\n\n if (toSetFeaturedRate.length > 0) {\n setViewingRates(true);\n setFeaturedRates(toSetFeaturedRate);\n }\n } else {\n nonPromoRates = room.getRates();\n }\n\n setStandardRates(nonPromoRates);\n }, [room.getRates()]);\n\n const perks = hotel?.perks?.slice(0, 5);\n\n const trimmedDescription = room.getShortDescription();\n\n const isMobile = context.screenSize <= ScreenSize.Large;\n\n const ratesOpen = viewingRates || (context.screenSize <= ScreenSize.Medium && viewingRates === null);\n const moreDetailsOnClick = () => {\n DataLayer.instance.sendInteraction('More Room Details', InteractionType.LINK, InteractionStep.ROOMS);\n setViewingDescription(true);\n };\n const sendRoomClickOnClick = () => {\n if (!ratesOpen) {\n DataLayer.instance.sendRoomClick(room, basketContext.startDate, basketContext.endDate);\n }\n setViewingRates(!ratesOpen);\n };\n const closeDescriptionOnClose = () => {\n setViewingDescription(false);\n };\n\n const lowestPrice = Math.round(room.getLowestPrice(false, true));\n const currencySize = context.screenSize > ScreenSize.Medium && lowestPrice.toLocaleString().length < 7 ? 'large' : 'normal';\n\n const convertCurrencyPrice = (value: number) => Math.round(currencyHelper.convertPrice(value, true, ccx.currentCurrency, hotel?.defaultCurrency as string));\n\n return (\n <div className={`room-details-container ${props.disableMarginBottom ? '' : 'u-marg-bottom'}`}>\n <div className={classes}>\n <div className=\"room-details--image\">\n <ImageGallerySlider images={props.room.getImages()} imageSize={ImageSize.Medium} />\n </div>\n <div className=\"room-details--content u-pad--heavy u-pad@l-\">\n <div className=\"u-marg-bottom\">\n {context.screenSize > ScreenSize.Large && (\n <>\n <div className=\"u-marg-bottom\">\n <RoomRatePills room={room} limit={2} />\n </div>\n </>\n )}\n <div className=\"room-details--content-title u-marg-bottom--light\">\n <Headline bold>{room.name}</Headline>\n </div>\n <RoomDetailsBedsBlock room={room} />\n <div className=\"room-details--content-description u-marg-bottom--light\">\n <Text color={Color.DarkGrey} type={TextType.Small}>\n <span dangerouslySetInnerHTML={{ __html: trimmedDescription?.replace(/<br(\\/|)>/g, '') || '' }} />\n </Text>\n </div>\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-6 u-flex u-marg-bottom@m- flex-column align-items-start\">\n <div className=\"room-details--content-perks u-marg-bottom@m-\">\n {isMobile && (\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Small} bold color={Color.Accent}>\n {t(Translation.Misc.Perks.AndYouGetAll)}\n </Text>\n </div>\n )}\n <RoomDetailsPerkBlock perks={perks as HotelPerk[]} />\n </div>\n <BEButton icon={IconType.ArrowRight2} isText primary size=\"tiny\" iconPosition=\"right\" onClick={moreDetailsOnClick}>\n {t(Translation.Step.Room.RoomInfo.MoreDetails)}\n </BEButton>\n </div>\n <div className=\"col-md-6 u-flex justify-content-end flex-column align-items-start align-items-md-end\">\n <Text type={TextType.Small} color={Color.Navy} inline>\n {t(Translation.Misc.From)}\n </Text>\n <div className=\"room-details--content-price flex-row align-items-end\">\n <Headline size={currencySize} bold>\n <Currency hideDecimals>{lowestPrice}</Currency>\n </Headline>\n <Text color={Color.DarkGrey} inline>\n /{t(Translation.Misc.Night)}\n </Text>\n </div>\n <div className=\"u-marg-bottom\">\n <Text type={TextType.Small} color={Color.Grey} inline className=\"u-nowrap\">\n {room.getLowestPriceType() === RoomRatePriceInclusion.IncludingFeesAndTaxes\n ? t(Translation.Step.Room.RoomInfo.IncludesTaxes)\n : t(Translation.Step.Room.ExcludingTaxes)}\n </Text>\n </div>\n <div className=\"u-marg-top--light u-flex justify-content-end u-w-100@m-\">\n <BEButton\n name=\"ViewRatesNowButton\"\n primary\n primaryActive={!!ratesOpen}\n filled\n stopIconAnimation\n icon={ratesOpen ? IconType.ArrowUp2 : IconType.ArrowDown2}\n iconPosition=\"right\"\n onClick={sendRoomClickOnClick}\n wide={context.screenSize <= ScreenSize.Large}\n textColor={ratesOpen ? (lightOrDark(hotel?.colors.accent3.slice(1) as string) === 'light' ? Color.Navy : Color.White) : undefined}\n >\n {ratesOpen ? t(Translation.Step.Room.RoomInfo.CloseRates) : t(Translation.Step.Room.RoomInfo.ViewRates)}\n </BEButton>\n </div>\n </div>\n </div>\n </div>\n </div>\n <AutoAutoHeight open={!!ratesOpen}>\n <RoomRates roomCode={room.code as string} rates={standardRates} featuredRates={featuredRates} />\n </AutoAutoHeight>\n <RoomModal open={viewingDescription} room={props.room} rates={standardRates} featuredRates={featuredRates} onClose={closeDescriptionOnClose} />\n {room.getRates().map((rate) => {\n return (\n <script key={room.code + '-' + rate.code} type=\"application/ld+json\">\n {JSON.stringify({\n '@context': 'http://schema.org/',\n '@type': 'Offer',\n itemOffered: {\n '@type': 'HotelRoom',\n name: room.name,\n },\n name: rate.name,\n identifier: rate.code,\n priceSpecification: {\n '@type': 'UnitPriceSpecification',\n price: convertCurrencyPrice(rate.getAveragePrice(true)),\n basePrice: convertCurrencyPrice(rate.getTotalPrice(true)),\n totalPrice: convertCurrencyPrice(rate.getAveragePrice()),\n priceCurrency: ccx.currentCurrency,\n unitText: 'Nightly',\n },\n })}\n </script>\n );\n })}\n </div>\n );\n}\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"]}
@@ -1,17 +1,7 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.rsCompany = void 0;
13
4
  const index_1 = require("index");
14
- const PromotionProvider_1 = require("../../../src/providers/PromotionProvider");
15
5
  const HotelSpec = {
16
6
  hotelID: TEST_OFFLINE_HOTEL_ID,
17
7
  providerHotelID: '1',
@@ -23,7 +13,6 @@ const HotelSpec = {
23
13
  showAddonLoader: true,
24
14
  startsWeekOnDay: index_1.WeekdayStartsOn.Monday,
25
15
  heroImage: 'https://ovolohotels.com/wp-content/uploads/2020/02/Banner-e1587412618532.jpg',
26
- //memberOnlyModalImage: "",
27
16
  privacyPolicyUrl: '/privacy',
28
17
  colors: {
29
18
  accent: '#7c39ff',
@@ -45,7 +34,6 @@ const HotelSpec = {
45
34
  defaultCurrency: 'NZD',
46
35
  hotelUrl: 'https://roomstay.io',
47
36
  checkoutUrl: '/fullpage/',
48
- // crossSellHotelIds : ['8472N'],
49
37
  transportDistances: {
50
38
  plane: 6.9,
51
39
  train: 1.1,
@@ -118,35 +106,6 @@ const HotelSpec = {
118
106
  ],
119
107
  paymentCardTypes: [index_1.EPaymentCardType.Visa, index_1.EPaymentCardType.JCB, index_1.EPaymentCardType.AmericanExpress, index_1.EPaymentCardType.Mastercard],
120
108
  paymentMethods: [],
121
- onLoad: () => {
122
- index_1.RoomstayEventManager.addEvent(index_1.GuestSearchEvent, (event) => __awaiter(void 0, void 0, void 0, function* () {
123
- console.log({ search: event.search });
124
- const promotion = {
125
- name: 'Boxing day Member Offer - Four for the price of three',
126
- description: 'Only pay for 3 nights when you place a stay of 4 nights. 4th is on us!',
127
- requireMemberPromotion: true,
128
- memberOnlyModalButtonText: 'Apply now!',
129
- memberOnlyModalTitle: 'Boxing Day Member Offer - Get the promotion now!',
130
- memberOnlyModalImage: 'https://blog.near.com/wp-content/uploads/2019/09/the-knockout-that-wasnt-boxing-day.png',
131
- memberOnlyDisableDefaultPromo: true,
132
- testCriteria: (criteria) => __awaiter(void 0, void 0, void 0, function* () {
133
- return criteria.checkOutDate.diff(criteria.checkInDate, 'days') !== 4;
134
- }),
135
- onApply: (criteria) => {
136
- return {
137
- checkOutDate: criteria.checkInDate.add(5, 'days').format('YYYY-MM-DD'),
138
- promoCode: '4for3',
139
- };
140
- },
141
- };
142
- if (event.search.numAdults >= 2) {
143
- (0, PromotionProvider_1.registerPromotion)(promotion);
144
- }
145
- else {
146
- (0, PromotionProvider_1.removePromotion)(promotion);
147
- }
148
- }));
149
- },
150
109
  address: {
151
110
  city: 'Cairns',
152
111
  country: 'Australia',
@@ -159,17 +118,17 @@ const HotelSpec = {
159
118
  maxOccupancy: 5,
160
119
  memberOnlyModalUsePrimaryColor: true,
161
120
  };
162
- const HotelSpec2 = Object.assign(Object.assign({}, HotelSpec), { address: Object.assign(Object.assign({}, HotelSpec.address), { city: 'South Yarra' }), hotelID: '123', name: 'Roomstay Demo 2' });
121
+ const HotelSpec2 = Object.assign(Object.assign({}, HotelSpec), { address: Object.assign(Object.assign({}, HotelSpec.address), { city: 'South Yarra' }), name: 'Roomstay Demo 2', hotelID: '41e21cbe-3c18-4a47-a7a2-295ce46ae8f2' });
163
122
  exports.rsCompany = {
164
123
  colors: {
165
124
  accent: '#BEEEEF',
166
125
  accent2: '#BEEEeF',
167
126
  accent3: '#BEEEeF',
168
127
  },
169
- logo: 'https://www.crystalbrookcollection.com/skins/crystal-brook-collection/assets/desktop/images/logo.svg',
170
- name: 'Roomstay Incorporated',
171
- companyShort: 'Hey Company Inc',
172
- hotels: [HotelSpec, Object.assign(Object.assign({}, HotelSpec), { hotelID: '41e21cbe-3c18-4a47-a7a2-295ce46ae8f2' })],
128
+ logo: 'https://clients.app.roomstay.io/assets/roomstay-logo-long.png',
129
+ name: 'Roomstay Demo',
130
+ companyShort: 'Roomstay Demo Ltd',
131
+ hotels: [HotelSpec, HotelSpec2],
173
132
  selectedHotel: HotelSpec,
174
133
  };
175
- //# sourceMappingURL=RSCompany.js.map
134
+ //# sourceMappingURL=OfflineEngineDefaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OfflineEngineDefaults.js","sourceRoot":"/","sources":["tests/offline/entry/OfflineEngineDefaults.ts"],"names":[],"mappings":"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","sourcesContent":["import { ConfigHotel, Language, DistanceUnitType, WeekdayStartsOn, IconType, ConfigCompany, Hotel, EPaymentCardType } from 'index';\n\ndeclare const TEST_OFFLINE_HOTEL_ID: string;\n\nconst HotelSpec: ConfigHotel = {\n hotelID: TEST_OFFLINE_HOTEL_ID,\n providerHotelID: '1',\n\n name: 'Roomstay Demo',\n logo: '',\n defaultDatepickerType: 'Month',\n defaultLanguage: Language.en_us,\n distanceUnitType: DistanceUnitType.Metric,\n showAddonLoader: true,\n startsWeekOnDay: WeekdayStartsOn.Monday,\n\n heroImage: 'https://ovolohotels.com/wp-content/uploads/2020/02/Banner-e1587412618532.jpg',\n privacyPolicyUrl: '/privacy',\n colors: {\n accent: '#7c39ff',\n accent2: '#efe7ff',\n accent3: '#5725b9',\n success: '#00d7e1',\n },\n googleReCaptcha: {\n loadForMembers: true,\n siteKey: '6LdjaFsgAAAAANdKGv9XMKkc5iKdTA0Wh5XR0vc2',\n },\n vgs: {\n vaultNames: {\n standard: 'tntmupn9ras',\n members: 'tntjyo5u2pi',\n },\n },\n memberOnlyPromoCode: 'BAR',\n defaultCurrency: 'NZD',\n hotelUrl: 'https://roomstay.io',\n checkoutUrl: '/fullpage/',\n\n transportDistances: {\n plane: 6.9,\n train: 1.1,\n bus: 0.29,\n taxi: 0,\n },\n overwrites: {\n PRS: {\n RoomDimensions: '50 m²',\n },\n DBL: {\n RoomDimensions: '65 m²',\n },\n JRS: {\n RoomDimensions: '60 m²',\n },\n SGL: {\n RoomDimensions: '26 m²',\n },\n A1K: {\n RoomDimensions: '55 m²',\n },\n ABC: {\n RoomDimensions: '100 m²',\n },\n },\n showMealPill: true,\n googleMapsImage: '/public/client/woolloomooloo/maps-static-thumbnail.png',\n perks: [\n {\n icon: IconType.Breakfast,\n name: 'Breakfast',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/breakfast_large.png',\n },\n {\n icon: IconType.WiFi,\n name: 'Superspeed Wifi',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/wifi_large.png',\n },\n {\n icon: IconType.Bar,\n name: 'Social Hour',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/socialhour_large.png',\n },\n {\n icon: IconType.Fridge,\n name: 'In-room mini bar',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/minibar_large.png',\n },\n {\n icon: IconType.Laundry,\n name: 'Self-service laundry',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/laundry_large.png',\n },\n {\n icon: IconType.Gym,\n name: '24-hour Gym',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/gym_large.png',\n },\n {\n icon: IconType.Snacks,\n name: 'All day snacks',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/snacks_large.png',\n },\n {\n icon: IconType.LootBag,\n name: 'Free Loot Bag',\n image: 'https://ovolohotels.com/wp-content/themes/wonderful/assets/img/wonderful/perks/lootbag_large.png',\n },\n ],\n paymentCardTypes: [EPaymentCardType.Visa, EPaymentCardType.JCB, EPaymentCardType.AmericanExpress, EPaymentCardType.Mastercard],\n paymentMethods: [],\n address: {\n city: 'Cairns',\n country: 'Australia',\n line1: '163 Abbott Street',\n line2: ' Cairns',\n line3: '',\n postalCode: '04870',\n state: 'Queensland',\n },\n maxOccupancy: 5,\n memberOnlyModalUsePrimaryColor: true,\n} as unknown as ConfigHotel;\n\nconst HotelSpec2 = {\n ...HotelSpec,\n address: { ...HotelSpec.address, city: 'South Yarra' },\n name: 'Roomstay Demo 2',\n hotelID: '41e21cbe-3c18-4a47-a7a2-295ce46ae8f2',\n};\n\nexport const rsCompany: ConfigCompany = {\n colors: {\n accent: '#BEEEEF',\n accent2: '#BEEEeF',\n accent3: '#BEEEeF',\n },\n logo: 'https://clients.app.roomstay.io/assets/roomstay-logo-long.png',\n name: 'Roomstay Demo',\n companyShort: 'Roomstay Demo Ltd',\n hotels: [HotelSpec, HotelSpec2],\n selectedHotel: HotelSpec as Hotel,\n};\n"]}
@@ -0,0 +1 @@
1
+ export default function TestEngineWrapper(): JSX.Element;
@@ -10,11 +10,11 @@ const RecentSearchesEngine_1 = require("../../../src/engines/RecentSearchesEngin
10
10
  const FullPageBookingEngine_1 = require("../../../src/engines/FullPageBookingEngine/FullPageBookingEngine");
11
11
  const FeatureProvider_1 = __importDefault(require("../../../src/providers/FeatureProvider"));
12
12
  const RoomstayThemeEngine_1 = __importDefault(require("../../../src/providers/RoomstayThemeEngine"));
13
- const index_1 = require("../../../src/index");
14
- const RSCompany_1 = require("./RSCompany");
13
+ const OfflineEngineDefaults_1 = require("./OfflineEngineDefaults");
15
14
  const TestPicker_1 = require("./components/TestPicker");
16
15
  const BookingWizardEngine_1 = require("../../../src/engines/BookingWizardEngine/BookingWizardEngine");
17
16
  const memberPortalWidgetRenderer_1 = require("./engineRenderer/memberPortalWidgetRenderer");
17
+ const Inline_1 = require("./pages/Inline");
18
18
  function FullPageRender() {
19
19
  const fullpage = (0, react_2.useRef)(null);
20
20
  (0, react_2.useEffect)(() => {
@@ -23,9 +23,9 @@ function FullPageRender() {
23
23
  const urlParams = new URLSearchParams(window.location.search);
24
24
  const customHotel = urlParams.get('hotel');
25
25
  if (customHotel) {
26
- RSCompany_1.rsCompany.hotels[0].hotelID = customHotel;
26
+ OfflineEngineDefaults_1.rsCompany.hotels[0].hotelID = customHotel;
27
27
  }
28
- fullpageBE.setConfig({ company: RSCompany_1.rsCompany });
28
+ fullpageBE.setConfig({ company: OfflineEngineDefaults_1.rsCompany });
29
29
  fullpageBE.start();
30
30
  FeatureProvider_1.default.load('RoomUpsellFeature');
31
31
  FeatureProvider_1.default.load('InlineAddonStepFeature');
@@ -34,24 +34,12 @@ function FullPageRender() {
34
34
  }, [fullpage]);
35
35
  return react_1.default.createElement("div", { ref: fullpage });
36
36
  }
37
- function InlineRender() {
38
- const inline = (0, react_2.useRef)(null);
39
- (0, react_2.useEffect)(() => {
40
- if (inline.current) {
41
- const fullpageBE = new index_1.InlineRoomMiniEngine(inline.current, 'VDK');
42
- fullpageBE.setConfig({ company: RSCompany_1.rsCompany });
43
- RoomstayThemeEngine_1.default.registerStyles();
44
- fullpageBE.start();
45
- }
46
- }, [inline]);
47
- return react_1.default.createElement("div", { ref: inline });
48
- }
49
37
  function RecentSearchesRender() {
50
38
  const recent = (0, react_2.useRef)(null);
51
39
  (0, react_2.useEffect)(() => {
52
40
  if (recent.current) {
53
41
  const fullpageBE = new RecentSearchesEngine_1.RecentSearchesEngine(recent.current);
54
- fullpageBE.setConfig({ company: RSCompany_1.rsCompany });
42
+ fullpageBE.setConfig({ company: OfflineEngineDefaults_1.rsCompany });
55
43
  RoomstayThemeEngine_1.default.registerStyles();
56
44
  fullpageBE.start();
57
45
  }
@@ -113,7 +101,12 @@ function BookingWizardRender() {
113
101
  }, [recent]);
114
102
  return react_1.default.createElement("div", { ref: recent });
115
103
  }
116
- function ReactWrapper() {
104
+ function TestEngineWrapper() {
105
+ const urlParams = new URLSearchParams(window.location.search);
106
+ const customHotel = urlParams.get('hotel');
107
+ if (customHotel) {
108
+ OfflineEngineDefaults_1.rsCompany.hotels[0].hotelID = customHotel;
109
+ }
117
110
  return (react_1.default.createElement("div", null,
118
111
  react_1.default.createElement("div", { className: "hi-widget-container" },
119
112
  react_1.default.createElement("div", { className: "hi-launcher-container" })),
@@ -126,7 +119,7 @@ function ReactWrapper() {
126
119
  case 'fp':
127
120
  return react_1.default.createElement(FullPageRender, null);
128
121
  case 'in':
129
- return react_1.default.createElement(InlineRender, null);
122
+ return react_1.default.createElement(Inline_1.InlineEngineWrapper, { company: OfflineEngineDefaults_1.rsCompany });
130
123
  case 'rc':
131
124
  return react_1.default.createElement(RecentSearchesRender, null);
132
125
  case 'bw':
@@ -136,5 +129,5 @@ function ReactWrapper() {
136
129
  }
137
130
  } }))));
138
131
  }
139
- exports.default = ReactWrapper;
140
- //# sourceMappingURL=ReactWrapper.js.map
132
+ exports.default = TestEngineWrapper;
133
+ //# sourceMappingURL=OfflineEngineWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OfflineEngineWrapper.js","sourceRoot":"/","sources":["tests/offline/entry/OfflineEngineWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { BrowserRouter, Route } from 'react-router-dom';\n\nimport { RecentSearchesEngine } from '@/engines/RecentSearchesEngine/RecentSearchesEngine';\nimport { FullPageBookingEngine } from '@/engines/FullPageBookingEngine/FullPageBookingEngine';\nimport FeatureProvider from '@/providers/FeatureProvider';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { rsCompany } from './OfflineEngineDefaults';\nimport { TestPicker } from './components/TestPicker';\nimport { BookingWizardEngine } from '@/engines/BookingWizardEngine/BookingWizardEngine';\nimport { MemberPortalWidgetRenderer } from './engineRenderer/memberPortalWidgetRenderer';\nimport { InlineEngineWrapper } from './pages/Inline';\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 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\nfunction BookingWizardRender() {\n const recent = useRef(null);\n\n useEffect(() => {\n if (recent.current) {\n const wizardBookingEngine = new BookingWizardEngine(recent.current);\n wizardBookingEngine.setConfig({\n layout: 'horizontal',\n theme: 'specific',\n widgetType: 'group',\n onSubmit: (e) => {\n console.log(e);\n },\n defaultColors: {\n accent: '#A0FC68',\n accent2: '#AAFC68',\n accent3: '#F0FC68',\n },\n properties: {\n Cairns: [\n {\n id: '6f3631bc-e773-4ea0-9163-3d9965d41175',\n name: 'Apple Pie',\n colors: {\n accent: '#beeeef',\n accent2: '#aaeeef',\n accent3: '#cceeef',\n },\n },\n {\n id: '5512',\n name: 'Bubble Pie',\n colors: {\n accent: '#beeeef',\n accent2: '#aaeeef',\n accent3: '#cceeef',\n },\n },\n ],\n },\n selectedProperty: {\n id: '6f3631bc-e773-4ea0-9163-3d9965d41175',\n name: 'Apple Pie',\n colors: {\n accent: '#beeeef',\n accent2: '#aaeeef',\n accent3: '#cceeef',\n },\n },\n });\n RoomstayThemeEngine.registerStyles();\n wizardBookingEngine.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 'in':\n return <InlineEngineWrapper company={rsCompany} />;\n case 'rc':\n return <RecentSearchesRender />;\n case 'bw':\n return <BookingWizardRender />;\n case 'mp':\n return <MemberPortalWidgetRenderer />;\n }\n }}\n />\n </BrowserRouter>\n </div>\n );\n}\n"]}
@@ -48,6 +48,7 @@ const Query_1 = require("../../../../src/hooks/Query");
48
48
  const MemberPortalFeature_1 = __importDefault(require("../../../../src/providers/feature/MemberPortalFeature"));
49
49
  const FullPageBookingEngineElementEvents_1 = require("../../../../src/engines/FullPageBookingEngine/FullPageBookingEngineElementEvents");
50
50
  const ModifyBookingFeature_1 = __importDefault(require("../../../../src/providers/feature/ModifyBookingFeature"));
51
+ const OfflineEngineDefaults_1 = require("../OfflineEngineDefaults");
51
52
  const engines = [
52
53
  { value: 'fp', text: 'Full Page' },
53
54
  { value: 'in', text: 'Inline Mini Wizard' },
@@ -55,6 +56,51 @@ const engines = [
55
56
  { value: 'bw', text: 'Booking Wizard' },
56
57
  { value: 'mp', text: 'Member Portal' },
57
58
  ];
59
+ const hotels = [
60
+ { value: '41e21cbe-3c18-4a47-a7a2-295ce46ae8f2', text: 'Naumi Auckland Airport' },
61
+ { value: '1d4285f4-8660-4222-bbd7-3b96ae06d94e', text: 'The Central Private Hotel' },
62
+ { value: '6f3329e0-2f72-4a68-a659-45020db00246', text: 'Central Studio Hotel Sydney' },
63
+ { value: '3792a869-6834-4012-b2ed-0dcccb23cae4', text: 'The Dairy Private Hotel' },
64
+ { value: 'aa04adb0-4f08-456d-8401-475d150fec4d', text: 'Naumi Hotel Wellington' },
65
+ { value: '6f3631bc-e773-4ea0-9163-3d9965d41175', text: 'Naumi Singapore' },
66
+ { value: '8d546ce0-1fe4-466f-a12b-4190cc532bbc', text: 'Naumi Singapore Per Person' },
67
+ { value: '814dbcb4-3ba7-4b4a-a7ee-551396115c7d', text: 'Naumi Studio Wellington' },
68
+ { value: 'f7641862-cc3b-4f13-91b4-64e1a9d901bd', text: 'The Inchcolm' },
69
+ { value: '34fe9966-3a35-4db3-8043-a67c96047a52', text: 'The Inchcolm Production' },
70
+ { value: '3a47e623-3c52-415b-ad90-c841e5ff5ba6', text: 'Ovolo The Valley' },
71
+ { value: '344fc710-f7c9-46db-9822-ae0d7f72d9dd', text: 'Ovolo The Valley Production' },
72
+ { value: '9112eb12-c173-4493-9df8-703680f6bc03', text: 'Mamaka by Ovolo' },
73
+ { value: '05c82275-a919-456c-b78c-711e8e0526d7', text: 'Ovolo South Yarra' },
74
+ { value: 'd1349ed7-1376-4b08-b735-751e34ce7e26', text: 'Ovolo South Yarra Production' },
75
+ { value: '0309fabc-885f-4798-b70e-9c867ba92d16', text: 'Ovolo Central' },
76
+ { value: 'f43885ad-099b-44c7-b0fc-5919598aa22f', text: 'Ovolo Southside' },
77
+ { value: 'bbc7274f-a934-4f52-bc4d-3ae6c03604ff', text: 'The Sheung Wan' },
78
+ { value: 'fc53e95d-9286-4099-9acd-29cef0cafbd3', text: 'Laneways by Ovolo' },
79
+ { value: 'bec8e104-9065-42c4-813e-dbd39298b271', text: 'Ovolo Laneways Production' },
80
+ { value: '318e0e62-7336-4a91-9535-9ea62a7777cd', text: 'Ovolo Woolloomooloo' },
81
+ { value: 'f31153e4-f23b-44dd-9be6-f8ce1d0a592d', text: 'Ovolo Woolloomooloo Production' },
82
+ { value: '206a9106-70bf-4f5a-8b90-626cc55f967a', text: 'The Woolstore 1888' },
83
+ { value: '0bb61424-75b1-4f6a-bb41-98a705842ac9', text: 'The Woolstore 1888 Production' },
84
+ { value: '75afc9c6-13af-4343-a2d6-be6ad48c1c11', text: 'Nishi Apartments' },
85
+ { value: '0b1458a8-ee4e-4421-b879-6bb1329db1b9', text: 'Nishi Apartments Production' },
86
+ { value: '59ed3835-3339-4f40-abaa-2a013c514059', text: 'Ovolo Nishi' },
87
+ { value: 'd46c62f4-f74c-4339-a5f3-c55266a5007e', text: 'Ovolo Nishi Production' },
88
+ { value: '2fafb397-da91-4ac4-8ee7-e197a0664b20', text: 'Crystalbrook Flynn' },
89
+ { value: '62043741-6cff-4fb6-a16e-c480ed2840e1', text: 'Crystalbrook Riley' },
90
+ { value: '0f66d697-4963-4ffe-ad39-da118cf6f9e9', text: 'Crystalbrook Byron' },
91
+ { value: '4ea1bbd9-3015-40ad-a372-aea85f8d81e5', text: 'Crystalbrook Kingsley' },
92
+ { value: '0df24023-2b00-4005-9e11-b03e985ea872', text: 'Crystalbrook Vincent' },
93
+ { value: 'ffb49371-b8e4-4f9c-a77f-f5f8bc1b95d3', text: 'Crystalbrook Albion' },
94
+ { value: 'e72c82f0-4ff0-4e4f-9927-66917585e127', text: 'Crystalbrook Bailey' },
95
+ { value: 'de670d66-f080-4fb6-8dd8-3701951ad171', text: 'Beechmont Estate' },
96
+ { value: '9a93f659-ca9a-455b-8e05-1f6e2b6610b1', text: 'Daintree Ecolodge' },
97
+ { value: 'fbbb57ce-6076-4438-aa35-6914e4863729', text: 'Mt Mulligan Lodge' },
98
+ { value: '7c26c3f4-09cc-414d-8ed2-aceec23dd47c', text: 'Orpheus Island Lodge' },
99
+ { value: '7cef9d36-7fa1-4049-b9a2-9bc60a4bba6f', text: 'Glendhu Bay Holiday Park' },
100
+ { value: 'ab9fe300-8be0-46c2-8fa5-7998439d7ca4', text: 'Wanaka Holiday Park' },
101
+ { value: '0f683d3f-b997-4d00-9601-69ed1d7f826e', text: 'Arrowtown Holiday Park' },
102
+ { value: '1e79858b-b761-4b0f-9da2-1b9ce85a4e9c', text: 'Queenstown Holiday Park' },
103
+ ];
58
104
  const availableFeatures = [
59
105
  {
60
106
  feature: index_1.E164PhoneNumberFieldFeature,
@@ -94,6 +140,7 @@ const availableThemes = [
94
140
  { text: 'Light', value: index_1.RoomstayTheme.Light },
95
141
  ];
96
142
  const TestPicker = () => {
143
+ var _a;
97
144
  const [, setInc] = (0, react_1.useState)(0);
98
145
  const [isModalOpen, setIsModalOpen] = (0, react_1.useState)(false);
99
146
  const updateQueryParameters = (0, UpdateQueryParameters_1.useUpdateQueryParameters)();
@@ -178,8 +225,16 @@ const TestPicker = () => {
178
225
  provider.write('SavedFeatures', featureMap);
179
226
  console.log('saved features');
180
227
  };
228
+ const onHotelChanged = (value) => {
229
+ query.set('hotel', value);
230
+ updateQueryParameters({
231
+ hotel: value,
232
+ });
233
+ window.location.reload();
234
+ };
181
235
  return (react_1.default.createElement(react_1.default.Fragment, null,
182
- react_1.default.createElement("div", { className: TestPicker_module_scss_1.default.powerToggle, onClick: onTriggerClick }),
236
+ react_1.default.createElement("div", { className: TestPicker_module_scss_1.default.powerToggle, onClick: onTriggerClick },
237
+ react_1.default.createElement("img", { src: "https://clients.app.roomstay.io/assets/roomstay-logo.png" })),
183
238
  react_1.default.createElement(SimpleModal_1.default, { open: isModalOpen, onClose: onModalClose, title: "Development Control Panel" },
184
239
  react_1.default.createElement("div", { className: TestPicker_module_scss_1.default.engineControlBody },
185
240
  react_1.default.createElement("div", { className: "row" },
@@ -204,7 +259,11 @@ const TestPicker = () => {
204
259
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
205
260
  react_1.default.createElement("div", { className: "u-marg-bottom--light" },
206
261
  react_1.default.createElement(index_1.Headline, { bold: true }, "Engine Type:")),
207
- react_1.default.createElement(Select_1.Select, { nativeOnMobile: true, options: engines, value: query.get('engine'), onChange: onChangeEngine, keyName: "value", labelName: "text" })))),
262
+ react_1.default.createElement(Select_1.Select, { nativeOnMobile: true, options: engines, value: query.get('engine'), onChange: onChangeEngine, keyName: "value", labelName: "text" })),
263
+ react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
264
+ react_1.default.createElement("div", { className: "u-marg-bottom--light" },
265
+ react_1.default.createElement(index_1.Headline, { bold: true }, "Selected Hotel:")),
266
+ 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" })))),
208
267
  react_1.default.createElement("div", { className: "u-marg-bottom--light" },
209
268
  react_1.default.createElement(index_1.Headline, { bold: true }, "Engine Theme")),
210
269
  react_1.default.createElement("div", { className: "u-marg-bottom--heavy" },
@@ -1 +1 @@
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';\n\nconst engines = [\n { value: 'fp', text: 'Full Page' },\n { value: 'in', text: 'Inline Mini Wizard' },\n { value: 'rc', text: 'Recent Searches' },\n { value: 'bw', text: 'Booking Wizard' },\n { value: 'mp', text: 'Member Portal' },\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 Member Portal?',\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 return (\n <>\n <div className={styles.powerToggle} onClick={onTriggerClick}></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 Feature</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>\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 <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={engines}\n value={query.get('engine') as string}\n onChange={onChangeEngine}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </div>\n </div>\n\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 </SimpleModal>\n </>\n );\n};\n"]}
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';\n\nconst engines = [\n { value: 'fp', text: 'Full Page' },\n { value: 'in', text: 'Inline Mini Wizard' },\n { value: 'rc', text: 'Recent Searches' },\n { value: 'bw', text: 'Booking Wizard' },\n { value: 'mp', text: 'Member Portal' },\n];\n\nconst hotels = [\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 { value: 'f7641862-cc3b-4f13-91b4-64e1a9d901bd', text: 'The Inchcolm' },\n { value: '34fe9966-3a35-4db3-8043-a67c96047a52', text: 'The Inchcolm Production' },\n { value: '3a47e623-3c52-415b-ad90-c841e5ff5ba6', text: 'Ovolo The Valley' },\n { value: '344fc710-f7c9-46db-9822-ae0d7f72d9dd', text: 'Ovolo The Valley Production' },\n { value: '9112eb12-c173-4493-9df8-703680f6bc03', text: 'Mamaka by Ovolo' },\n { value: '05c82275-a919-456c-b78c-711e8e0526d7', text: 'Ovolo South Yarra' },\n { value: 'd1349ed7-1376-4b08-b735-751e34ce7e26', text: 'Ovolo South Yarra Production' },\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 { value: 'bec8e104-9065-42c4-813e-dbd39298b271', text: 'Ovolo Laneways Production' },\n { value: '318e0e62-7336-4a91-9535-9ea62a7777cd', text: 'Ovolo Woolloomooloo' },\n { value: 'f31153e4-f23b-44dd-9be6-f8ce1d0a592d', text: 'Ovolo Woolloomooloo Production' },\n { value: '206a9106-70bf-4f5a-8b90-626cc55f967a', text: 'The Woolstore 1888' },\n { value: '0bb61424-75b1-4f6a-bb41-98a705842ac9', text: 'The Woolstore 1888 Production' },\n { value: '75afc9c6-13af-4343-a2d6-be6ad48c1c11', text: 'Nishi Apartments' },\n { value: '0b1458a8-ee4e-4421-b879-6bb1329db1b9', text: 'Nishi Apartments Production' },\n { value: '59ed3835-3339-4f40-abaa-2a013c514059', text: 'Ovolo Nishi' },\n { value: 'd46c62f4-f74c-4339-a5f3-c55266a5007e', text: 'Ovolo Nishi Production' },\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 { 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 { 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\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 Member Portal?',\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 Feature</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>\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 <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={engines}\n value={query.get('engine') as string}\n onChange={onChangeEngine}\n keyName=\"value\"\n labelName=\"text\"\n />\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\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 </SimpleModal>\n </>\n );\n};\n"]}
@@ -31,7 +31,7 @@ const react_1 = __importStar(require("react"));
31
31
  const MemberPortalWidget_1 = require("../../../../src/engines/MemberPortalWidget/MemberPortalWidget");
32
32
  const FeatureProvider_1 = __importDefault(require("../../../../src/providers/FeatureProvider"));
33
33
  const RoomstayThemeEngine_1 = __importDefault(require("../../../../src/providers/RoomstayThemeEngine"));
34
- const RSCompany_1 = require("../RSCompany");
34
+ const OfflineEngineDefaults_1 = require("../OfflineEngineDefaults");
35
35
  const memberPortalWidgetRenderer_module_scss_1 = __importDefault(require("./memberPortalWidgetRenderer.module.scss"));
36
36
  const buttonPlacements = ['center', 'top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right', 'right-center', 'left-center'];
37
37
  const MemberPortalWidgetRenderer = () => {
@@ -41,7 +41,7 @@ const MemberPortalWidgetRenderer = () => {
41
41
  if (recent.current) {
42
42
  const memberPortalWidget = new MemberPortalWidget_1.MemberPortalWidget(recent.current);
43
43
  memberPortalWidget.setConfig({
44
- company: { colors: RSCompany_1.rsCompany.colors, companyShort: RSCompany_1.rsCompany.companyShort, hotel: RSCompany_1.rsCompany.hotels[0], checkoutLink: '/checkout' },
44
+ company: { colors: OfflineEngineDefaults_1.rsCompany.colors, companyShort: OfflineEngineDefaults_1.rsCompany.companyShort, hotel: OfflineEngineDefaults_1.rsCompany.hotels[0], checkoutLink: '/checkout' },
45
45
  overlayPlacement: 'bottom-end',
46
46
  fallbackPlacements: 'auto',
47
47
  onSignedIn: console.log,