@roomstay/frontend 2.5.17 → 2.5.19

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 (58) hide show
  1. package/dist/370.bundle.js +1 -1
  2. package/dist/449.bundle.js +1 -1
  3. package/dist/468.bundle.js +1 -1
  4. package/dist/736.bundle.js +1 -1
  5. package/dist/903.bundle.js +1 -1
  6. package/dist/main.bundle.js +1 -1
  7. package/dist/src/components/generic/BookingWizard/BookingWizard.js +2 -2
  8. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
  9. package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +1 -0
  10. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +2 -2
  11. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -1
  12. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.d.ts +1 -0
  13. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +2 -2
  14. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
  15. package/dist/src/components/generic/PlanpayPrice/PlanpayPrice.js +6 -15
  16. package/dist/src/components/generic/PlanpayPrice/PlanpayPrice.js.map +1 -1
  17. package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js +5 -2
  18. package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js.map +1 -1
  19. package/dist/src/components/steps/confirmation/RoomContactDetails.js +5 -2
  20. package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
  21. package/dist/src/components/steps/date/PeoplePickerRow.js +6 -3
  22. package/dist/src/components/steps/date/PeoplePickerRow.js.map +1 -1
  23. package/dist/src/components/steps/date/StepOneStatusPeople.js +32 -5
  24. package/dist/src/components/steps/date/StepOneStatusPeople.js.map +1 -1
  25. package/dist/src/components/steps/hotel/HotelSearchParameters.js +4 -2
  26. package/dist/src/components/steps/hotel/HotelSearchParameters.js.map +1 -1
  27. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js +7 -3
  28. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js.map +1 -1
  29. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js +6 -8
  30. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js.map +1 -1
  31. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +8 -5
  32. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  33. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +7 -3
  34. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  35. package/dist/src/components/summary/BEMobileSummary.js +7 -4
  36. package/dist/src/components/summary/BEMobileSummary.js.map +1 -1
  37. package/dist/src/components/summary/BESummaryRoomRow.js +8 -6
  38. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  39. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +5 -0
  40. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  41. package/dist/src/engines/BaseEngine.d.ts +1 -0
  42. package/dist/src/engines/BaseEngine.js.map +1 -1
  43. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +1 -0
  44. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  45. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +1 -0
  46. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -1
  47. package/dist/src/hooks/Planpay.d.ts +1 -0
  48. package/dist/src/hooks/Planpay.js +15 -5
  49. package/dist/src/hooks/Planpay.js.map +1 -1
  50. package/dist/src/hooks/useSearchScopeHook.d.ts +7 -0
  51. package/dist/src/hooks/useSearchScopeHook.js +25 -0
  52. package/dist/src/hooks/useSearchScopeHook.js.map +1 -0
  53. package/dist/src/models/Client/Hotel/Hotel.d.ts +2 -0
  54. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  55. package/dist/test.bundle.js +1 -1
  56. package/dist/tests/offline/entry/OfflineEngineDefaults.js +2 -0
  57. package/dist/tests/offline/entry/OfflineEngineDefaults.js.map +1 -1
  58. package/package.json +1 -1
@@ -38,6 +38,7 @@ const LineBreak_1 = __importDefault(require("../generic/LineBreak"));
38
38
  const Text_1 = __importStar(require("../generic/Text"));
39
39
  const Tooltip_1 = __importDefault(require("../generic/Tooltip/Tooltip"));
40
40
  const ImageGallerySlider_1 = __importDefault(require("../steps/room/ImageGallerySlider"));
41
+ const useSearchScopeHook_1 = require("../../hooks/useSearchScopeHook");
41
42
  const ImageProvider_1 = require("../../providers/ImageProvider");
42
43
  const Color_1 = require("../../util/Color");
43
44
  const GetStepRoom_1 = __importDefault(require("../../util/GetStepRoom"));
@@ -49,6 +50,7 @@ function BESummaryRoomRow(props) {
49
50
  const { isAccent2ColorDark, hotel } = (0, hooks_1.useCurrentHotel)();
50
51
  const { t } = (0, react_i18next_1.useTranslation)();
51
52
  const history = (0, react_router_dom_1.useHistory)();
53
+ const { showChildren } = (0, useSearchScopeHook_1.useSearchScopeHook)();
52
54
  const { index, row, showImages } = props;
53
55
  const totalPrice = row.getTotalPrice(true);
54
56
  const rate = row.getRate();
@@ -102,13 +104,13 @@ function BESummaryRoomRow(props) {
102
104
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: textWhiteOr() }, t(Translation_1.Translation.Step.Date.Departure)),
103
105
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: textWhiteOr(Color_1.Color.Accent) }, row.getDepartureDate())),
104
106
  react_1.default.createElement("div", { className: "u-marg-bottom--medium u-flex" },
105
- react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: textWhiteOr() },
107
+ react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: textWhiteOr() }, [
106
108
  StringHelper_1.default.pluralWithDictAndCount(row.getAdults(), Translation_1.Translation.Step.Date.Adult, t),
107
- ",\u00A0",
108
- StringHelper_1.default.pluralWithDictAndCount(row.getChildren(), Translation_1.Translation.Step.Date.Child, t),
109
- ((_d = hotel === null || hotel === void 0 ? void 0 : hotel.childConfiguration) === null || _d === void 0 ? void 0 : _d.supportInfants) ? react_1.default.createElement(react_1.default.Fragment, null,
110
- ",\u00A0",
111
- StringHelper_1.default.pluralWithDictAndCount(row.getInfants(), Translation_1.Translation.Step.Date.Infant, t)) : null)),
109
+ showChildren ? StringHelper_1.default.pluralWithDictAndCount(row.getChildren(), Translation_1.Translation.Step.Date.Child, t) : null,
110
+ ((_d = hotel === null || hotel === void 0 ? void 0 : hotel.childConfiguration) === null || _d === void 0 ? void 0 : _d.supportInfants) ? StringHelper_1.default.pluralWithDictAndCount(row.getInfants(), Translation_1.Translation.Step.Date.Infant, t) : null,
111
+ ]
112
+ .filter((item) => !!item)
113
+ .join(`, `))),
112
114
  react_1.default.createElement("div", { className: "u-marg-top--light u-marg-bottom--light u-flex" },
113
115
  react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small, color: textWhiteOr() },
114
116
  t(Translation_1.Translation.Misc.Rates),
@@ -1 +1 @@
1
- {"version":3,"file":"BESummaryRoomRow.js","sourceRoot":"/","sources":["src/components/summary/BESummaryRoomRow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, FullPageEngineContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport BasketRow from '@/models/BasketRow';\nimport { ImageSize } from '@/providers/ImageProvider';\nimport { Color } from '@/util/Color';\nimport getStepRoom from '@/util/GetStepRoom';\nimport StringHelper from '@/util/StringHelper';\n\ninterface BESummaryRoomRowProps {\n index: number;\n row: BasketRow;\n showImages: boolean;\n\n onEditPropertyClicked?: () => void;\n}\n\nexport default function BESummaryRoomRow(props: BESummaryRoomRowProps) {\n const basketContext = useContext(BasketContext);\n const { currentStep } = useContext(FullPageEngineContext);\n const { isAccent2ColorDark, hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n const history = useHistory();\n\n const { index, row, showImages } = props;\n\n const totalPrice = row.getTotalPrice(true);\n const rate = row.getRate();\n\n const isSelected = basketContext.selectedBasketRow?.getID() === row.getID();\n const isOnlyRate = basketContext.currentBasketRows.length === 1;\n\n const removeRate = t(isOnlyRate ? Translation.Step.Room.Summary.NoRemoveLastRate : Translation.Step.Room.Summary.RemoveThisRate);\n\n const rowFees = row.getRate()?.getTotalFees();\n const rowTaxes = row.getRate()?.getTotalTaxes();\n\n const rowQuote = row.quoteDetails;\n\n const selectBasketRowOnClick = () => basketContext.selectBasketRow(null);\n const editOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n history.push(getStepRoom().getStepUrl());\n }\n basketContext.selectBasketRow(row);\n\n if (props.onEditPropertyClicked) {\n props.onEditPropertyClicked();\n }\n };\n const removeOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n history.push(getStepRoom().getStepUrl());\n }\n basketContext.removeBasketRow(row);\n };\n\n const promoApplied = row.isPromoCodeValid();\n\n const shouldTextBeWhite = isAccent2ColorDark && isSelected;\n const textWhiteOr = (color = Color.Graphite) => {\n return shouldTextBeWhite ? Color.White : color;\n };\n\n return (\n <>\n {index >= 1 && <LineBreak noMargins darker />}\n <div key={row.getID()} className={'booking-engine-summary--row' + (isSelected ? ' --selected' : '')}>\n {showImages && (\n <div className=\"u-border-rounded\" style={{ height: '190px' }}>\n <ImageGallerySlider images={row.getRoom().getImages()} imageSize={ImageSize.Tiny} />\n </div>\n )}\n <div className=\"u-marg-top--light\">\n <Text type={TextType.Label} color={textWhiteOr(Color.DarkGrey)}>\n <strong>\n {t(Translation.Step.Date.Room)} {index + 1}\n </strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text color={textWhiteOr(Color.Navy)}>\n <strong>{rate?.getRoom().name}</strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {rate?.name}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Arrival)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getArrivalDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Departure)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getDepartureDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--medium u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {StringHelper.pluralWithDictAndCount(row.getAdults(), Translation.Step.Date.Adult, t)},&nbsp;\n {StringHelper.pluralWithDictAndCount(row.getChildren(), Translation.Step.Date.Child, t)}\n {hotel?.childConfiguration?.supportInfants ? <>,&nbsp;{StringHelper.pluralWithDictAndCount(row.getInfants(), Translation.Step.Date.Infant, t)}</> : null}\n </Text>\n </div>\n <div className=\"u-marg-top--light u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Misc.Rates)} ({t(Translation.Misc.PerNight)})\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rate?.getAveragePrice(true)}</Currency>\n </Text>\n </div>\n {promoApplied && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.PromoCode)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n {row.getPromoCode()}\n </Text>\n </div>\n )}\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.General.RoomTotal)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{totalPrice}</Currency>\n </Text>\n </div>\n {!!rowFees && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Fees)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowFees}</Currency>\n </Text>\n </div>\n )}\n {!!rowTaxes && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Taxes)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowTaxes}</Currency>\n </Text>\n </div>\n )}\n {!!row.quoteDetails && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small}>Deposit</Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowQuote.totalDeposit}</Currency>\n </Text>\n </div>\n )}\n <div className=\"u-marg-top u-marg-bottom u-flex justify-content-start\">\n {isSelected ? (\n <Tooltip title={t(Translation.Misc.Cancel)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={selectBasketRowOnClick} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </Tooltip>\n ) : (\n <Tooltip title={t(Translation.Step.Confirmation.EditThisProperty)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={editOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Edit)}\n </BEButton>\n </div>\n </Tooltip>\n )}\n\n <span className=\"u-pad-left--light u-pad-right--light\" style={{ color: Color.LightGrey }}>\n |\n </span>\n <Tooltip title={removeRate}>\n <div>\n <BEButton isText size=\"tiny\" primary disabled={isOnlyRate} onClick={removeOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Remove)}\n </BEButton>\n </div>\n </Tooltip>\n </div>\n </div>\n </>\n );\n}\n"]}
1
+ {"version":3,"file":"BESummaryRoomRow.js","sourceRoot":"/","sources":["src/components/summary/BESummaryRoomRow.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, FullPageEngineContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { Translation } from 'translations/Translation';\n\nimport BEButton from '@/components/generic/BEButton';\nimport Currency from '@/components/generic/Currency';\nimport LineBreak from '@/components/generic/LineBreak';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport ImageGallerySlider from '@/components/steps/room/ImageGallerySlider';\nimport { useSearchScopeHook } from '@/hooks/useSearchScopeHook';\nimport BasketRow from '@/models/BasketRow';\nimport { ImageSize } from '@/providers/ImageProvider';\nimport { Color } from '@/util/Color';\nimport getStepRoom from '@/util/GetStepRoom';\nimport StringHelper from '@/util/StringHelper';\n\ninterface BESummaryRoomRowProps {\n index: number;\n row: BasketRow;\n showImages: boolean;\n\n onEditPropertyClicked?: () => void;\n}\n\nexport default function BESummaryRoomRow(props: BESummaryRoomRowProps) {\n const basketContext = useContext(BasketContext);\n const { currentStep } = useContext(FullPageEngineContext);\n const { isAccent2ColorDark, hotel } = useCurrentHotel();\n\n const { t } = useTranslation();\n const history = useHistory();\n const { showChildren } = useSearchScopeHook();\n\n const { index, row, showImages } = props;\n\n const totalPrice = row.getTotalPrice(true);\n const rate = row.getRate();\n\n const isSelected = basketContext.selectedBasketRow?.getID() === row.getID();\n const isOnlyRate = basketContext.currentBasketRows.length === 1;\n\n const removeRate = t(isOnlyRate ? Translation.Step.Room.Summary.NoRemoveLastRate : Translation.Step.Room.Summary.RemoveThisRate);\n\n const rowFees = row.getRate()?.getTotalFees();\n const rowTaxes = row.getRate()?.getTotalTaxes();\n\n const rowQuote = row.quoteDetails;\n\n const selectBasketRowOnClick = () => basketContext.selectBasketRow(null);\n const editOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n history.push(getStepRoom().getStepUrl());\n }\n basketContext.selectBasketRow(row);\n\n if (props.onEditPropertyClicked) {\n props.onEditPropertyClicked();\n }\n };\n const removeOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n history.push(getStepRoom().getStepUrl());\n }\n basketContext.removeBasketRow(row);\n };\n\n const promoApplied = row.isPromoCodeValid();\n\n const shouldTextBeWhite = isAccent2ColorDark && isSelected;\n const textWhiteOr = (color = Color.Graphite) => {\n return shouldTextBeWhite ? Color.White : color;\n };\n\n return (\n <>\n {index >= 1 && <LineBreak noMargins darker />}\n <div key={row.getID()} className={'booking-engine-summary--row' + (isSelected ? ' --selected' : '')}>\n {showImages && (\n <div className=\"u-border-rounded\" style={{ height: '190px' }}>\n <ImageGallerySlider images={row.getRoom().getImages()} imageSize={ImageSize.Tiny} />\n </div>\n )}\n <div className=\"u-marg-top--light\">\n <Text type={TextType.Label} color={textWhiteOr(Color.DarkGrey)}>\n <strong>\n {t(Translation.Step.Date.Room)} {index + 1}\n </strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text color={textWhiteOr(Color.Navy)}>\n <strong>{rate?.getRoom().name}</strong>\n </Text>\n </div>\n <div className=\"u-marg-bottom--light\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {rate?.name}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Arrival)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getArrivalDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.Departure)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.Accent)}>\n {row.getDepartureDate()}\n </Text>\n </div>\n <div className=\"u-marg-bottom--medium u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {[\n StringHelper.pluralWithDictAndCount(row.getAdults(), Translation.Step.Date.Adult, t),\n showChildren ? StringHelper.pluralWithDictAndCount(row.getChildren(), Translation.Step.Date.Child, t) : null,\n hotel?.childConfiguration?.supportInfants ? StringHelper.pluralWithDictAndCount(row.getInfants(), Translation.Step.Date.Infant, t) : null,\n ]\n .filter((item) => !!item)\n .join(`, `)}\n </Text>\n </div>\n <div className=\"u-marg-top--light u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Misc.Rates)} ({t(Translation.Misc.PerNight)})\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rate?.getAveragePrice(true)}</Currency>\n </Text>\n </div>\n {promoApplied && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Date.PromoCode)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n {row.getPromoCode()}\n </Text>\n </div>\n )}\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.General.RoomTotal)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{totalPrice}</Currency>\n </Text>\n </div>\n {!!rowFees && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Fees)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowFees}</Currency>\n </Text>\n </div>\n )}\n {!!rowTaxes && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Step.Room.Summary.Taxes)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowTaxes}</Currency>\n </Text>\n </div>\n )}\n {!!row.quoteDetails && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small}>Deposit</Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <Currency>{rowQuote.totalDeposit}</Currency>\n </Text>\n </div>\n )}\n <div className=\"u-marg-top u-marg-bottom u-flex justify-content-start\">\n {isSelected ? (\n <Tooltip title={t(Translation.Misc.Cancel)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={selectBasketRowOnClick} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </Tooltip>\n ) : (\n <Tooltip title={t(Translation.Step.Confirmation.EditThisProperty)}>\n <div>\n <BEButton isText size=\"tiny\" primary onClick={editOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Edit)}\n </BEButton>\n </div>\n </Tooltip>\n )}\n\n <span className=\"u-pad-left--light u-pad-right--light\" style={{ color: Color.LightGrey }}>\n |\n </span>\n <Tooltip title={removeRate}>\n <div>\n <BEButton isText size=\"tiny\" primary disabled={isOnlyRate} onClick={removeOnClickHandler} textColor={textWhiteOr(Color.Accent)}>\n {t(Translation.Misc.Remove)}\n </BEButton>\n </div>\n </Tooltip>\n </div>\n </div>\n </>\n );\n}\n"]}
@@ -165,7 +165,12 @@ const CompanyContextWrapper = ({ configCompany: company, children }) => {
165
165
  updatedHotel.crossSellHotelIds = details.crossSellHotelIds;
166
166
  }
167
167
  }
168
+ if (currentHotelVersion === null || currentHotelVersion === void 0 ? void 0 : currentHotelVersion.maxAdults) {
169
+ //using HotelSpec maxAdults from frontend
170
+ updatedHotel.maxAdults = currentHotelVersion.maxAdults;
171
+ }
168
172
  if (details.rooms) {
173
+ //dymanic maxOccupancy from rooms database
169
174
  const roomArray = Object.values(details.rooms);
170
175
  if (roomArray.length) {
171
176
  updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {
@@ -1 +1 @@
1
- {"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BookingEngineContext, CompanyContext, CompanyContextType } from '@frontend/contexts';\nimport { InitialHotelDetailsEvent } from '@frontend/events';\nimport { useEvent } from '@frontend/hooks';\nimport { IHotelColorScheme } from '@roomstay/core';\nimport React, { ReactChild, useCallback, useContext, useEffect, useState } from 'react';\n\nimport API from '@/api/BookingAPI';\nimport { MemberOnlyFenceSignUp } from '@/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { EIntegration } from '@/models/Api/HotelDTO';\nimport BasketRow from '@/models/BasketRow';\nimport type { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel, InitialHotelDetailsEventPayload } from '@/models/Client/Hotel/Hotel';\nimport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport { IPromotion } from '@/models/Promotion/IPromotion.type';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport { Language } from '@/providers/LanguageProvider';\nimport StaticContextProvider from '@/providers/StaticContextProvider';\nimport * as currencyHelper from '@/util/CurrencyHelper';\nimport DataLayer from '@/util/DataLayer';\nimport StepManager from '@/util/StepManager';\nimport TimeHelper from '@/util/TimeHelper';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [brandSuffix, setBrandSuffix] = useState(company.brandSuffix);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [memberOnlyModalPromotion, setMemberOnlyModalPromotion] = useState<IPromotion | null>(null);\n\n const [signedInUser, setSignedInUser] = useState<string | null>(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n const [isHidingPromoField, setIsHidingPromoField] = useState(false);\n\n const { raise } = useEvent();\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n const hotelDetails: InitialHotelDetailsEventPayload = {\n name: newHotel.name,\n hotelID: newHotel.hotelID,\n hotelUrl: newHotel.hotelUrl,\n currency: newHotel.defaultCurrency,\n language: newHotel.defaultLanguage,\n address: newHotel.address,\n };\n\n const event = new InitialHotelDetailsEvent(hotelDetails);\n raise(event);\n\n if (callback) {\n return { ...callback(mappingHotel) };\n }\n\n return { ...newHotel };\n }\n\n return { ...mappingHotel };\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n }\n\n return newHotelArray;\n });\n };\n\n const getHotel = useCallback(\n (hotelId: string) =>\n new Promise<Hotel>(async (resolve) => {\n const currentHotelVersion: Hotel = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n };\n\n const details = await API.Hotel.fetchData(currentLanguage, newHotel);\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n updatedHotel.cardProcessor = details.cardProcessor;\n updatedHotel.paymentMethods = details.paymentMethods;\n updatedHotel.planpay = details.planpay;\n updatedHotel.hotelUrl = details.hotelUrl || updatedHotel.hotelUrl || '';\n updatedHotel.heroImage = details.heroImage || updatedHotel.heroImage || '';\n updatedHotel.images = details.images || [];\n\n updatedHotel.email = details.email;\n updatedHotel.roomGroups = details.roomGroups;\n updatedHotel.requireDeposit = details.requireDeposit;\n updatedHotel.integrations = details.integrations;\n updatedHotel.availableCountries = details.availableCountries;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as IHotelColorScheme;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n }\n\n if (details.rooms) {\n const roomArray = Object.values(details.rooms);\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n updatedHotel.childConfiguration = details.childConfiguration;\n resolve(updatedHotel);\n return updatedHotel;\n });\n }),\n []\n );\n\n useEffect(() => {\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setBrandSuffix(company.brandSuffix);\n\n DataLayer.instance.setBrandSuffix(company.brandSuffix);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel | undefined = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n if (StepManager.getFirstStep() !== StepHotel) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await getHotel(selectedHotelID);\n\n if (selectedHotel) {\n currencyHelper.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.setProviderHotelID(selectedHotel.providerHotelID);\n DataLayer.instance.setHotelName(selectedHotel.name);\n\n if (selectedHotel.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(selectedHotel);\n }\n\n beContext.engine.getSessionProvider().setHotelID(selectedHotelID);\n\n setCurrentCurrency(selectedHotel.defaultCurrency);\n\n const existingUser = localStorage.getItem('hotel' + selectedHotel.hotelID + 'user');\n const userFromBig4 = localStorage.getItem('hotel' + selectedHotel.hotelID + 'isFromBig4');\n\n if (existingUser) {\n setSignedInUser(existingUser);\n\n if (userFromBig4) {\n setIsHidingPromoField(true);\n }\n }\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.setProviderHotelID('');\n DataLayer.instance.setHotelName(name);\n if (company?.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(company);\n }\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n memberOnlyModalPromotion,\n\n name,\n companyShort,\n logo,\n logoLink,\n brandSuffix,\n\n colors,\n hotels,\n\n signedInUser: signedInUser as string,\n isSigningIn,\n isHidingPromoField,\n\n selectedHotelID: selectedHotelID as string,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const resetPriceToZero = (isLoading = false) => {\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: 0, isLoading } }));\n };\n\n resetPriceToZero(true);\n\n const getHotel = () => {\n for (const companyHotel of hotels) {\n if (selectedHotelID + '' === companyHotel.hotelID + '') {\n return companyHotel;\n }\n }\n };\n const hotel = getHotel();\n const existingUser = localStorage.getItem('hotel' + hotel?.hotelID + 'user');\n const isBig4 = hotel?.integrations?.some((provider) => provider === EIntegration.Big4);\n\n const memberNumber = isBig4 && existingUser ? existingUser : undefined;\n API.Availability.getCheapestPricePerDay(\n row.getStartDate(),\n row.getEndDate(),\n row.getAdults(),\n row.getChildren(),\n row.getInfants(),\n row.getPromoCode(),\n targetHotel.hotelID,\n memberNumber\n ).then((prices) => {\n let wasSet = false;\n if (prices) {\n let lowest = 0;\n const allPrices = Object.values(prices);\n if (allPrices?.length > 0) {\n lowest = Object.values(prices).reduce((prevValue, newValue) => (prevValue > newValue ? newValue : prevValue));\n\n wasSet = true;\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: lowest, isLoading: false } }));\n }\n }\n\n if (!wasSet) {\n resetPriceToZero();\n }\n });\n }\n },\n\n changeHotel: (hotel: string | Hotel) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n\n setMemberOnlyModalPromotion(null);\n },\n openMemberSignupModal: (promotion?: IPromotion) => {\n setIsSigningIn(true);\n\n if (promotion) {\n setMemberOnlyModalPromotion(promotion);\n }\n },\n signUserIn: (user: string, hidePromoField = false) => {\n raise(new MemberOnlyFenceSignUp(memberOnlyModalPromotion as IPromotion));\n\n DataLayer.instance.sendMemberSignUp();\n workingContext.closeMemberSignupModal();\n\n localStorage.setItem('hotel' + selectedHotelID + 'user', user);\n setSignedInUser(user);\n\n setIsHidingPromoField(hidePromoField);\n },\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n getHotel,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
1
+ {"version":3,"file":"CompanyContextWrapper.js","sourceRoot":"/","sources":["src/contexts/CompanyContext/CompanyContextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BookingEngineContext, CompanyContext, CompanyContextType } from '@frontend/contexts';\nimport { InitialHotelDetailsEvent } from '@frontend/events';\nimport { useEvent } from '@frontend/hooks';\nimport { IHotelColorScheme } from '@roomstay/core';\nimport React, { ReactChild, useCallback, useContext, useEffect, useState } from 'react';\n\nimport API from '@/api/BookingAPI';\nimport { MemberOnlyFenceSignUp } from '@/events/actions/MemberOnlyFence/MemberOnlyFenceSignUp';\nimport { EIntegration } from '@/models/Api/HotelDTO';\nimport BasketRow from '@/models/BasketRow';\nimport type { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport type { ConfigHotel, Hotel, InitialHotelDetailsEventPayload } from '@/models/Client/Hotel/Hotel';\nimport { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport { IPromotion } from '@/models/Promotion/IPromotion.type';\nimport StepHotel from '@/pages/steps/StepHotel/StepHotel';\nimport { Language } from '@/providers/LanguageProvider';\nimport StaticContextProvider from '@/providers/StaticContextProvider';\nimport * as currencyHelper from '@/util/CurrencyHelper';\nimport DataLayer from '@/util/DataLayer';\nimport StepManager from '@/util/StepManager';\nimport TimeHelper from '@/util/TimeHelper';\n\ninterface CompanyContextWrapperProps {\n children: ReactChild;\n configCompany: ConfigCompany;\n}\n\nexport const CompanyContextWrapper = ({ configCompany: company, children }: CompanyContextWrapperProps) => {\n const beContext = useContext(BookingEngineContext);\n\n const getSelectedHotel = () => {\n for (const hotel of hotels) {\n if (selectedHotelID + '' === hotel.hotelID + '') {\n return hotel;\n }\n }\n };\n\n const [name, setName] = useState(company.name);\n const [companyShort, setCompanyShort] = useState(company.companyShort);\n const [logo, setLogo] = useState(company.logo);\n const [colors, setColors] = useState(company.colors);\n const [hotels, setHotels] = useState<Hotel[]>(company.hotels as Hotel[]);\n const [logoLink, setLogoLink] = useState(company.logoLink);\n const [brandSuffix, setBrandSuffix] = useState(company.brandSuffix);\n\n const [selectedHotelID, setSelectedHotelID] = useState<string>();\n\n const [currentCurrency, setCurrentCurrency] = useState<string>(getSelectedHotel()?.defaultCurrency ?? 'AUD');\n const [currentLanguage, setCurrentLanguage] = useState<Language>(getSelectedHotel()?.defaultLanguage ?? Language.en_us);\n\n const [memberOnlyModalPromotion, setMemberOnlyModalPromotion] = useState<IPromotion | null>(null);\n\n const [signedInUser, setSignedInUser] = useState<string | null>(null);\n const [isSigningIn, setIsSigningIn] = useState(false);\n const [isHidingPromoField, setIsHidingPromoField] = useState(false);\n\n const { raise } = useEvent();\n\n const getHotelFromArrayWithId = (id: string, arrayOfHotels: Hotel[] | ConfigHotel[]) => {\n for (const nextHotel of arrayOfHotels) {\n if (nextHotel.hotelID + '' === id + '') {\n return nextHotel;\n }\n }\n };\n const getHotelFromID = (id: string): Hotel => {\n return getHotelFromArrayWithId(id, hotels) as Hotel;\n };\n\n const updateHotel = (newHotel: Hotel, callback?: (hotel: Hotel) => Hotel) => {\n setHotels((oldHotels) => {\n let modified = false;\n const newHotelArray = oldHotels.map((mappingHotel) => {\n if (mappingHotel.hotelID + '' === newHotel.hotelID + '') {\n modified = true;\n\n const hotelDetails: InitialHotelDetailsEventPayload = {\n name: newHotel.name,\n hotelID: newHotel.hotelID,\n hotelUrl: newHotel.hotelUrl,\n currency: newHotel.defaultCurrency,\n language: newHotel.defaultLanguage,\n address: newHotel.address,\n };\n\n const event = new InitialHotelDetailsEvent(hotelDetails);\n raise(event);\n\n if (callback) {\n return { ...callback(mappingHotel) };\n }\n\n return { ...newHotel };\n }\n\n return { ...mappingHotel };\n });\n\n if (!modified) {\n newHotelArray.push(newHotel);\n }\n\n return newHotelArray;\n });\n };\n\n const getHotel = useCallback(\n (hotelId: string) =>\n new Promise<Hotel>(async (resolve) => {\n const currentHotelVersion: Hotel = getHotelFromID(hotelId) as Hotel;\n const newHotel: Hotel = {\n ...currentHotelVersion,\n };\n\n const details = await API.Hotel.fetchData(currentLanguage, newHotel);\n\n updateHotel(newHotel, (updatedHotel) => {\n updatedHotel.name = details.name;\n updatedHotel.address = details.address;\n\n updatedHotel.latitude = Number(details.latitude);\n updatedHotel.longitude = Number(details.longitude);\n updatedHotel.phone = details.phone;\n\n updatedHotel.checkInTime = TimeHelper.convert24To12hr(details.checkInTime);\n updatedHotel.checkOutTime = TimeHelper.convert24To12hr(details.checkOutTime);\n\n updatedHotel.paymentCardTypes = details.paymentCardTypes;\n updatedHotel.description = details.description;\n updatedHotel.locationDescription = details.locationDescription;\n updatedHotel.policies = details.policies;\n\n updatedHotel.hotelServices = details.hotelServices;\n updatedHotel.businessServices = details.businessServices;\n updatedHotel.rooms = details.rooms;\n\n updatedHotel.hasLoadedDetails = true;\n updatedHotel.dataSource = details.dataSource;\n\n updatedHotel.defaultCurrency = details.currencyCode;\n updatedHotel.cardProcessor = details.cardProcessor;\n updatedHotel.paymentMethods = details.paymentMethods;\n updatedHotel.planpay = details.planpay;\n updatedHotel.hotelUrl = details.hotelUrl || updatedHotel.hotelUrl || '';\n updatedHotel.heroImage = details.heroImage || updatedHotel.heroImage || '';\n updatedHotel.images = details.images || [];\n\n updatedHotel.email = details.email;\n updatedHotel.roomGroups = details.roomGroups;\n updatedHotel.requireDeposit = details.requireDeposit;\n updatedHotel.integrations = details.integrations;\n updatedHotel.availableCountries = details.availableCountries;\n\n if (updatedHotel.dataSource === HotelDataSource.Roomstay) {\n if (details.logo) {\n updatedHotel.logo = details.logo;\n }\n\n if (details.colors) {\n updatedHotel.colors = details.colors as IHotelColorScheme;\n }\n\n if (details.distanceUnitType) {\n updatedHotel.distanceUnitType = details.distanceUnitType;\n }\n\n if (details.weekdayStartsOn) {\n updatedHotel.startsWeekOnDay = details.weekdayStartsOn;\n }\n\n if (details.crossSellHotelIds) {\n updatedHotel.crossSellHotelIds = details.crossSellHotelIds;\n }\n }\n\n if (currentHotelVersion?.maxAdults) {\n //using HotelSpec maxAdults from frontend\n updatedHotel.maxAdults = currentHotelVersion.maxAdults;\n }\n if (details.rooms) {\n //dymanic maxOccupancy from rooms database\n const roomArray = Object.values(details.rooms);\n if (roomArray.length) {\n updatedHotel.maxOccupancy = roomArray.reduce((previousMax, current) => {\n return Math.max(previousMax, current.maxOccupancy);\n }, 0);\n }\n }\n\n updatedHotel.childConfiguration = details.childConfiguration;\n resolve(updatedHotel);\n return updatedHotel;\n });\n }),\n []\n );\n\n useEffect(() => {\n setName(company.name);\n setCompanyShort(company.companyShort);\n setLogo(company.logo);\n setColors(company.colors);\n setLogoLink(company.logoLink);\n setBrandSuffix(company.brandSuffix);\n\n DataLayer.instance.setBrandSuffix(company.brandSuffix);\n\n const configHotels = company.hotels.map((hotel: ConfigHotel) => {\n return { ...hotel, hasLoadedDetails: false, hotelID: `${hotel.hotelID}` } as Hotel;\n });\n setHotels(configHotels);\n\n if (company.selectedHotel) {\n const hotelId = typeof company.selectedHotel === 'string' ? company.selectedHotel : company.selectedHotel.hotelID + '';\n const targetHotel: ConfigHotel | undefined = getHotelFromArrayWithId(hotelId, configHotels);\n if (targetHotel) {\n setSelectedHotelID(hotelId);\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n }\n } else {\n /*\n We need to check if for some reason HotelStep isn't set as the first step,\n to automatically select a hotel, so engine doesn't fall over\n\n Possible TODO: We might need to do this on a new Step level, instead of here, as dynamically checking if StepHotel\n is first is probably not a great idea...\n */\n\n if (StepManager.getFirstStep() !== StepHotel) {\n setSelectedHotelID(configHotels[0].hotelID);\n console.log(`No selected hotel found - defaulting to ${configHotels[0].name}`);\n }\n }\n }, [company]);\n\n const onSelectedHotelIDChanged = React.useCallback(async () => {\n if (selectedHotelID) {\n const selectedHotel = await getHotel(selectedHotelID);\n\n if (selectedHotel) {\n currencyHelper.loadExchangeRates(selectedHotel.defaultCurrency ?? 'AUD');\n\n StaticContextProvider.MemberOnlyRateCodes = selectedHotel.memberOnlyRates ?? [];\n\n DataLayer.instance.setProviderHotelID(selectedHotel.providerHotelID);\n DataLayer.instance.setHotelName(selectedHotel.name);\n\n if (selectedHotel.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(selectedHotel);\n }\n\n beContext.engine.getSessionProvider().setHotelID(selectedHotelID);\n\n setCurrentCurrency(selectedHotel.defaultCurrency);\n\n const existingUser = localStorage.getItem('hotel' + selectedHotel.hotelID + 'user');\n const userFromBig4 = localStorage.getItem('hotel' + selectedHotel.hotelID + 'isFromBig4');\n\n if (existingUser) {\n setSignedInUser(existingUser);\n\n if (userFromBig4) {\n setIsHidingPromoField(true);\n }\n }\n\n selectedHotel?.onLoad?.();\n }\n } else {\n DataLayer.instance.setProviderHotelID('');\n DataLayer.instance.setHotelName(name);\n if (company?.datalayer?.gtmIds.length) {\n DataLayer.initialiseGTM(company);\n }\n }\n }, [selectedHotelID]);\n\n useEffect(() => {\n onSelectedHotelIDChanged();\n }, [onSelectedHotelIDChanged]);\n\n useEffect(() => {\n const selectedHotel = getSelectedHotel();\n\n DataLayer.instance.setCurrencyCodes(currentCurrency, selectedHotel?.defaultCurrency ?? currentCurrency);\n }, [currentCurrency, selectedHotelID]);\n\n // TODO: Add Hotel Details fetch\n // TODO: re-do fetch on language change\n\n const workingContext: CompanyContextType = {\n currentLanguage,\n currentCurrency,\n\n memberOnlyModalPromotion,\n\n name,\n companyShort,\n logo,\n logoLink,\n brandSuffix,\n\n colors,\n hotels,\n\n signedInUser: signedInUser as string,\n isSigningIn,\n isHidingPromoField,\n\n selectedHotelID: selectedHotelID as string,\n\n updateLowestPricePerNight: (hotel: string | Hotel, row: BasketRow) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel && row) {\n const resetPriceToZero = (isLoading = false) => {\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: 0, isLoading } }));\n };\n\n resetPriceToZero(true);\n\n const getHotel = () => {\n for (const companyHotel of hotels) {\n if (selectedHotelID + '' === companyHotel.hotelID + '') {\n return companyHotel;\n }\n }\n };\n const hotel = getHotel();\n const existingUser = localStorage.getItem('hotel' + hotel?.hotelID + 'user');\n const isBig4 = hotel?.integrations?.some((provider) => provider === EIntegration.Big4);\n\n const memberNumber = isBig4 && existingUser ? existingUser : undefined;\n API.Availability.getCheapestPricePerDay(\n row.getStartDate(),\n row.getEndDate(),\n row.getAdults(),\n row.getChildren(),\n row.getInfants(),\n row.getPromoCode(),\n targetHotel.hotelID,\n memberNumber\n ).then((prices) => {\n let wasSet = false;\n if (prices) {\n let lowest = 0;\n const allPrices = Object.values(prices);\n if (allPrices?.length > 0) {\n lowest = Object.values(prices).reduce((prevValue, newValue) => (prevValue > newValue ? newValue : prevValue));\n\n wasSet = true;\n updateHotel(targetHotel, (updatingHotel) => ({ ...updatingHotel, lowestPrice: { value: lowest, isLoading: false } }));\n }\n }\n\n if (!wasSet) {\n resetPriceToZero();\n }\n });\n }\n },\n\n changeHotel: (hotel: string | Hotel) => {\n const targetHotel = getHotelFromID(typeof hotel === 'string' ? hotel : hotel.hotelID + '');\n\n if (targetHotel) {\n setSelectedHotelID(targetHotel.hotelID);\n return true;\n } else {\n // TODO: add centralized error logging\n console.log(`Unable to set selected hotel automatically. No Hotel found with ID: ${company.selectedHotel}`);\n return false;\n }\n },\n\n closeMemberSignupModal: () => {\n setIsSigningIn(false);\n\n setMemberOnlyModalPromotion(null);\n },\n openMemberSignupModal: (promotion?: IPromotion) => {\n setIsSigningIn(true);\n\n if (promotion) {\n setMemberOnlyModalPromotion(promotion);\n }\n },\n signUserIn: (user: string, hidePromoField = false) => {\n raise(new MemberOnlyFenceSignUp(memberOnlyModalPromotion as IPromotion));\n\n DataLayer.instance.sendMemberSignUp();\n workingContext.closeMemberSignupModal();\n\n localStorage.setItem('hotel' + selectedHotelID + 'user', user);\n setSignedInUser(user);\n\n setIsHidingPromoField(hidePromoField);\n },\n\n setCurrentCurrency,\n setCurrentLanguage,\n\n getHotel,\n };\n\n return <CompanyContext.Provider value={workingContext}>{children}</CompanyContext.Provider>;\n};\n"]}
@@ -2,6 +2,7 @@ import { RoomstaySession } from '../models/RoomstaySession';
2
2
  import SessionProvider from '../providers/SessionProvider';
3
3
  export interface BaseEngineConfig {
4
4
  disableChild?: boolean;
5
+ maxAdults?: number;
5
6
  }
6
7
  export declare enum BookingEngineSource {
7
8
  Inline = "inline",
@@ -1 +1 @@
1
- {"version":3,"file":"BaseEngine.js","sourceRoot":"/","sources":["src/engines/BaseEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0FAAkE;AAClE,kFAA0D;AAO1D,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;IACjB,yDAAkC,CAAA;IAClC,4CAAqB,CAAA;IACrB,uDAAgC,CAAA;IAChC,oCAAa,CAAA;AACjB,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B;AAED,MAAsB,UAAU;IAQ5B,YAAY,gBAA6B,EAAE,MAAU;QAarC,UAAK,GAAG,GAAS,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YACtF,IAAI,SAAS,GAAQ,IAAI,CAAC;YAC1B,IAAI,WAAW,EAAE;gBACb,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBAC5B,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBAC1C;aACJ;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAS,EAAE;gBACpE,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClE,CAAC,CAAA,CAAC,CAAC;YAEH,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC,CAAA,CAAC;QA7BE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,MAAW,CAAC,CAAC;SAC/B;QAED,2BAA2B;QAC3B,6BAAmB,CAAC,eAAe,GAAG,gBAAgB,CAAC;QACvD,6BAAmB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAqBM,iBAAiB;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;QAED,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,MAAS;QACtB,kCAAkC;QAClC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CAGJ;AAnED,gCAmEC","sourcesContent":["import { RoomstaySession } from '@/models/RoomstaySession';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport SessionProvider from '@/providers/SessionProvider';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BaseEngineConfig {\n disableChild?: boolean;\n}\n\nexport enum BookingEngineSource {\n Inline = 'inline',\n RecentSearches = 'recent-searches',\n Fullpage = 'fullpage',\n BookingWizard = 'booking-wizard',\n Auth = 'auth',\n}\n\nexport abstract class BaseEngine<C extends BaseEngineConfig> {\n protected source!: BookingEngineSource;\n protected readonly bookingContainer: HTMLElement;\n protected sessionProvider!: SessionProvider;\n protected initialSession!: RoomstaySession;\n\n protected engineConfig!: C;\n\n constructor(bookingContainer: HTMLElement, config?: C) {\n this.bookingContainer = bookingContainer;\n this.bookingContainer.classList.add('roomstay-booking-container');\n\n if (this.engineConfig) {\n this.setConfig(config as C);\n }\n\n // TODO: Update these calls\n RoomstayThemeEngine.EngineContainer = bookingContainer;\n RoomstayThemeEngine.init();\n }\n\n public readonly start = async () => {\n const queryParams = new URLSearchParams(window.location.hash.replace(/^#\\/.+\\//, ''));\n let sessionId: any = null;\n if (queryParams) {\n if (queryParams.has('session')) {\n sessionId = queryParams.get('session');\n }\n }\n\n this.sessionProvider = new SessionProvider();\n this.sessionProvider.initialize(sessionId, this.source).then(async () => {\n this.initialSession = await this.sessionProvider.getSession();\n });\n\n setTimeout(() => {\n this.render();\n }, 1);\n };\n\n public getInitialSession(): RoomstaySession | null {\n if (this.initialSession) {\n return this.initialSession;\n }\n\n console.error('Tried Loading session without engine initializing first.');\n return null;\n }\n\n public getSessionProvider() {\n return this.sessionProvider;\n }\n\n public setConfig(config: C) {\n // TODO: add hook updates in here.\n this.engineConfig = config;\n }\n\n public getConfig() {\n return this.engineConfig;\n }\n\n public getSource(): BookingEngineSource {\n return this.source;\n }\n\n protected abstract render(): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"BaseEngine.js","sourceRoot":"/","sources":["src/engines/BaseEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0FAAkE;AAClE,kFAA0D;AAQ1D,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC3B,wCAAiB,CAAA;IACjB,yDAAkC,CAAA;IAClC,4CAAqB,CAAA;IACrB,uDAAgC,CAAA;IAChC,oCAAa,CAAA;AACjB,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B;AAED,MAAsB,UAAU;IAQ5B,YAAY,gBAA6B,EAAE,MAAU;QAarC,UAAK,GAAG,GAAS,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;YACtF,IAAI,SAAS,GAAQ,IAAI,CAAC;YAC1B,IAAI,WAAW,EAAE;gBACb,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBAC5B,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBAC1C;aACJ;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAS,EAAE;gBACpE,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAClE,CAAC,CAAA,CAAC,CAAC;YAEH,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC,CAAA,CAAC;QA7BE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAElE,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,SAAS,CAAC,MAAW,CAAC,CAAC;SAC/B;QAED,2BAA2B;QAC3B,6BAAmB,CAAC,eAAe,GAAG,gBAAgB,CAAC;QACvD,6BAAmB,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAqBM,iBAAiB;QACpB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;QAED,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,MAAS;QACtB,kCAAkC;QAClC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC/B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CAGJ;AAnED,gCAmEC","sourcesContent":["import { RoomstaySession } from '@/models/RoomstaySession';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport SessionProvider from '@/providers/SessionProvider';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface BaseEngineConfig {\n disableChild?: boolean;\n maxAdults?: number;\n}\n\nexport enum BookingEngineSource {\n Inline = 'inline',\n RecentSearches = 'recent-searches',\n Fullpage = 'fullpage',\n BookingWizard = 'booking-wizard',\n Auth = 'auth',\n}\n\nexport abstract class BaseEngine<C extends BaseEngineConfig> {\n protected source!: BookingEngineSource;\n protected readonly bookingContainer: HTMLElement;\n protected sessionProvider!: SessionProvider;\n protected initialSession!: RoomstaySession;\n\n protected engineConfig!: C;\n\n constructor(bookingContainer: HTMLElement, config?: C) {\n this.bookingContainer = bookingContainer;\n this.bookingContainer.classList.add('roomstay-booking-container');\n\n if (this.engineConfig) {\n this.setConfig(config as C);\n }\n\n // TODO: Update these calls\n RoomstayThemeEngine.EngineContainer = bookingContainer;\n RoomstayThemeEngine.init();\n }\n\n public readonly start = async () => {\n const queryParams = new URLSearchParams(window.location.hash.replace(/^#\\/.+\\//, ''));\n let sessionId: any = null;\n if (queryParams) {\n if (queryParams.has('session')) {\n sessionId = queryParams.get('session');\n }\n }\n\n this.sessionProvider = new SessionProvider();\n this.sessionProvider.initialize(sessionId, this.source).then(async () => {\n this.initialSession = await this.sessionProvider.getSession();\n });\n\n setTimeout(() => {\n this.render();\n }, 1);\n };\n\n public getInitialSession(): RoomstaySession | null {\n if (this.initialSession) {\n return this.initialSession;\n }\n\n console.error('Tried Loading session without engine initializing first.');\n return null;\n }\n\n public getSessionProvider() {\n return this.sessionProvider;\n }\n\n public setConfig(config: C) {\n // TODO: add hook updates in here.\n this.engineConfig = config;\n }\n\n public getConfig() {\n return this.engineConfig;\n }\n\n public getSource(): BookingEngineSource {\n return this.source;\n }\n\n protected abstract render(): Promise<void>;\n}\n"]}
@@ -12,6 +12,7 @@ export interface BookingWizardEngineConfig extends BaseEngineConfig, ShowYearOnC
12
12
  defaultColors: BookingWizardProperty['colors'];
13
13
  wrapperClassname?: string;
14
14
  contentClassname?: string;
15
+ maxOccupancy?: number;
15
16
  disableChild?: boolean;
16
17
  showInfants?: boolean;
17
18
  disableRoom?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizardEngine.js","sourceRoot":"/","sources":["src/engines/BookingWizardEngine/BookingWizardEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,qDAAyF;AACzF,yGAA+F;AAI/F,0FAAkE;AAyBlE,MAAa,mBAAoB,SAAQ,uBAAqC;IAC1E,YAAmB,gBAA6B,EAAE,MAAkC;QAChF,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,gCAAmB,CAAC,aAAa,CAAC;QAEhD,4CAA4C;QAC5C,6BAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAEe,MAAM;;YAClB,IAAA,gDAAmB,EAAC,6BAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;QACzG,CAAC;KAAA;CACJ;AAZD,kDAYC","sourcesContent":["import type { BookingWizardContextType, BookingWizardOnBooking } from '@/components/generic/BookingWizard/BookingWizardContext';\nimport { BaseEngine, BaseEngineConfig, BookingEngineSource } from '@/engines/BaseEngine';\nimport { renderBookingWizard } from '@/engines/BookingWizardEngine/BookingWizardEngineElement';\nimport { ShowPromoCodeAlertProps, ShowYearOnCalendarProps } from '@/models/Api/HotelOverrideDTO';\nimport type { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nimport type { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nexport interface BookingWizardEngineConfig extends BaseEngineConfig, ShowYearOnCalendarProps, ShowPromoCodeAlertProps {\n widgetType: 'property' | 'group';\n theme: 'specific' | 'default';\n layout: 'horizontal' | 'vertical' | 'button';\n\n properties: TBookingWizardProperties;\n selectedProperty?: BookingWizardProperty;\n defaultColors: BookingWizardProperty['colors'];\n\n wrapperClassname?: string;\n contentClassname?: string;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n hideGuestSelect?: boolean;\n hidePromocode?: boolean;\n dateFormat?: string;\n\n defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id' | 'checkIn' | 'checkout'>> & { checkIn?: string; checkout?: string };\n\n onSubmit?: BookingWizardContextType['onSubmit'];\n}\n\nexport class BookingWizardEngine extends BaseEngine<BookingWizardEngineConfig> {\n public constructor(bookingContainer: HTMLElement, config?: BookingWizardEngineConfig) {\n super(bookingContainer, config);\n this.source = BookingEngineSource.BookingWizard;\n\n // TODO: Make this a more permanent solution\n RoomstayThemeEngine.EngineContainer.classList.add('--transparent-bg');\n }\n\n protected async render() {\n renderBookingWizard(RoomstayThemeEngine.createElementOrReuseExisting('div', 'booking-wizard'), this);\n }\n}\n"]}
1
+ {"version":3,"file":"BookingWizardEngine.js","sourceRoot":"/","sources":["src/engines/BookingWizardEngine/BookingWizardEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,qDAAyF;AACzF,yGAA+F;AAI/F,0FAAkE;AA0BlE,MAAa,mBAAoB,SAAQ,uBAAqC;IAC1E,YAAmB,gBAA6B,EAAE,MAAkC;QAChF,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,gCAAmB,CAAC,aAAa,CAAC;QAEhD,4CAA4C;QAC5C,6BAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAEe,MAAM;;YAClB,IAAA,gDAAmB,EAAC,6BAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;QACzG,CAAC;KAAA;CACJ;AAZD,kDAYC","sourcesContent":["import type { BookingWizardContextType, BookingWizardOnBooking } from '@/components/generic/BookingWizard/BookingWizardContext';\nimport { BaseEngine, BaseEngineConfig, BookingEngineSource } from '@/engines/BaseEngine';\nimport { renderBookingWizard } from '@/engines/BookingWizardEngine/BookingWizardEngineElement';\nimport { ShowPromoCodeAlertProps, ShowYearOnCalendarProps } from '@/models/Api/HotelOverrideDTO';\nimport type { BookingWizardProperty } from '@/models/BookingWizard/BookingWizardProperty';\nimport type { TBookingWizardProperties } from '@/models/BookingWizard/BookingWizardTypes';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nexport interface BookingWizardEngineConfig extends BaseEngineConfig, ShowYearOnCalendarProps, ShowPromoCodeAlertProps {\n widgetType: 'property' | 'group';\n theme: 'specific' | 'default';\n layout: 'horizontal' | 'vertical' | 'button';\n\n properties: TBookingWizardProperties;\n selectedProperty?: BookingWizardProperty;\n defaultColors: BookingWizardProperty['colors'];\n\n wrapperClassname?: string;\n contentClassname?: string;\n maxOccupancy?: number;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n hideGuestSelect?: boolean;\n hidePromocode?: boolean;\n dateFormat?: string;\n\n defaultValues?: Partial<Omit<BookingWizardOnBooking, 'id' | 'checkIn' | 'checkout'>> & { checkIn?: string; checkout?: string };\n\n onSubmit?: BookingWizardContextType['onSubmit'];\n}\n\nexport class BookingWizardEngine extends BaseEngine<BookingWizardEngineConfig> {\n public constructor(bookingContainer: HTMLElement, config?: BookingWizardEngineConfig) {\n super(bookingContainer, config);\n this.source = BookingEngineSource.BookingWizard;\n\n // TODO: Make this a more permanent solution\n RoomstayThemeEngine.EngineContainer.classList.add('--transparent-bg');\n }\n\n protected async render() {\n renderBookingWizard(RoomstayThemeEngine.createElementOrReuseExisting('div', 'booking-wizard'), this);\n }\n}\n"]}
@@ -18,6 +18,7 @@ function BookingWizardEngineElement({ engine }) {
18
18
  defaultColors: engineConfig.defaultColors,
19
19
  wrapperClassname: engineConfig.wrapperClassname,
20
20
  contentClassname: engineConfig.contentClassname,
21
+ maxAdults: engineConfig.maxAdults,
21
22
  disableChild: engineConfig.disableChild,
22
23
  showInfants: engineConfig.showInfants,
23
24
  disableRoom: engineConfig.disableRoom,
@@ -1 +1 @@
1
- {"version":3,"file":"BookingWizardEngineElement.js","sourceRoot":"/","sources":["src/engines/BookingWizardEngine/BookingWizardEngineElement.tsx"],"names":[],"mappings":";;;;;;AAAA,iDAAiE;AACjE,kDAA0B;AAC1B,yCAAmC;AAEnC,qGAA0H;AAQ1H,SAAwB,0BAA0B,CAAC,EAAE,MAAM,EAAmC;IAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAExC,MAAM,OAAO,GAAuB;QAChC,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,KAAK,EAAE,YAAY,CAAC,KAA4B;QAChD,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,eAAe,EAAE,YAAY,CAAC,eAAe;QAC7C,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,QAAQ,EAAE,YAAY,CAAC,QAAQ;KACZ,CAAC;IAExB,8EAA8E;IAC9E,8CAA8C;IAE9C,OAAO,CACH,8BAAC,sCAA2B,IAAC,MAAM,EAAE,MAAM;QACvC,8BAAC,uBAAa,oBAAK,OAAO,EAAI,CACJ,CACjC,CAAC;AACN,CAAC;AA7BD,6CA6BC;AAEM,MAAM,mBAAmB,GAAG,CAAC,SAAkB,EAAE,MAA2B,EAAE,EAAE;IACnF,IAAA,kBAAM,EAAC,8BAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM,GAAI,EAAE,SAAS,CAAC,CAAC;AACtE,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B","sourcesContent":["import { BookingEngineContextWrapper } from '@frontend/contexts';\nimport React from 'react';\nimport { render } from 'react-dom';\n\nimport BookingWizard, { BookingWizardProps, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\n\nimport { BookingWizardEngine } from './BookingWizardEngine';\n\nexport interface BookingWizardEngineElementProps {\n engine: BookingWizardEngine;\n}\n\nexport default function BookingWizardEngineElement({ engine }: BookingWizardEngineElementProps) {\n const engineConfig = engine.getConfig();\n\n const bwProps: BookingWizardProps = {\n layout: engineConfig.layout,\n theme: engineConfig.theme as EBookingWizardTheme,\n properties: engineConfig.properties,\n selectedProperty: engineConfig.selectedProperty,\n defaultColors: engineConfig.defaultColors,\n wrapperClassname: engineConfig.wrapperClassname,\n contentClassname: engineConfig.contentClassname,\n disableChild: engineConfig.disableChild,\n showInfants: engineConfig.showInfants,\n disableRoom: engineConfig.disableRoom,\n defaultValues: engineConfig.defaultValues,\n hideGuestSelect: engineConfig.hideGuestSelect,\n hidePromocode: engineConfig.hidePromocode,\n dateFormat: engineConfig.dateFormat,\n onSubmit: engineConfig.onSubmit,\n } as BookingWizardProps;\n\n // TODO: This will be updated to be configurable (border sizing, padding, etc)\n // const widgetType = engineConfig.widgetType;\n\n return (\n <BookingEngineContextWrapper engine={engine}>\n <BookingWizard {...bwProps} />\n </BookingEngineContextWrapper>\n );\n}\n\nexport const renderBookingWizard = (container: Element, engine: BookingWizardEngine) => {\n render(<BookingWizardEngineElement engine={engine} />, container);\n};\n"]}
1
+ {"version":3,"file":"BookingWizardEngineElement.js","sourceRoot":"/","sources":["src/engines/BookingWizardEngine/BookingWizardEngineElement.tsx"],"names":[],"mappings":";;;;;;AAAA,iDAAiE;AACjE,kDAA0B;AAC1B,yCAAmC;AAEnC,qGAA0H;AAQ1H,SAAwB,0BAA0B,CAAC,EAAE,MAAM,EAAmC;IAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IAExC,MAAM,OAAO,GAAuB;QAChC,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,KAAK,EAAE,YAAY,CAAC,KAA4B;QAChD,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,eAAe,EAAE,YAAY,CAAC,eAAe;QAC7C,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,QAAQ,EAAE,YAAY,CAAC,QAAQ;KACZ,CAAC;IAExB,8EAA8E;IAC9E,8CAA8C;IAE9C,OAAO,CACH,8BAAC,sCAA2B,IAAC,MAAM,EAAE,MAAM;QACvC,8BAAC,uBAAa,oBAAK,OAAO,EAAI,CACJ,CACjC,CAAC;AACN,CAAC;AA9BD,6CA8BC;AAEM,MAAM,mBAAmB,GAAG,CAAC,SAAkB,EAAE,MAA2B,EAAE,EAAE;IACnF,IAAA,kBAAM,EAAC,8BAAC,0BAA0B,IAAC,MAAM,EAAE,MAAM,GAAI,EAAE,SAAS,CAAC,CAAC;AACtE,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B","sourcesContent":["import { BookingEngineContextWrapper } from '@frontend/contexts';\nimport React from 'react';\nimport { render } from 'react-dom';\n\nimport BookingWizard, { BookingWizardProps, EBookingWizardTheme } from '@/components/generic/BookingWizard/BookingWizard';\n\nimport { BookingWizardEngine } from './BookingWizardEngine';\n\nexport interface BookingWizardEngineElementProps {\n engine: BookingWizardEngine;\n}\n\nexport default function BookingWizardEngineElement({ engine }: BookingWizardEngineElementProps) {\n const engineConfig = engine.getConfig();\n\n const bwProps: BookingWizardProps = {\n layout: engineConfig.layout,\n theme: engineConfig.theme as EBookingWizardTheme,\n properties: engineConfig.properties,\n selectedProperty: engineConfig.selectedProperty,\n defaultColors: engineConfig.defaultColors,\n wrapperClassname: engineConfig.wrapperClassname,\n contentClassname: engineConfig.contentClassname,\n maxAdults: engineConfig.maxAdults,\n disableChild: engineConfig.disableChild,\n showInfants: engineConfig.showInfants,\n disableRoom: engineConfig.disableRoom,\n defaultValues: engineConfig.defaultValues,\n hideGuestSelect: engineConfig.hideGuestSelect,\n hidePromocode: engineConfig.hidePromocode,\n dateFormat: engineConfig.dateFormat,\n onSubmit: engineConfig.onSubmit,\n } as BookingWizardProps;\n\n // TODO: This will be updated to be configurable (border sizing, padding, etc)\n // const widgetType = engineConfig.widgetType;\n\n return (\n <BookingEngineContextWrapper engine={engine}>\n <BookingWizard {...bwProps} />\n </BookingEngineContextWrapper>\n );\n}\n\nexport const renderBookingWizard = (container: Element, engine: BookingWizardEngine) => {\n render(<BookingWizardEngineElement engine={engine} />, container);\n};\n"]}
@@ -7,5 +7,6 @@ declare const usePlanpay: () => {
7
7
  minDaysShowPlanpay: number;
8
8
  env: string;
9
9
  } | undefined;
10
+ loadPlanPaySDK: () => void;
10
11
  };
11
12
  export default usePlanpay;
@@ -5,20 +5,30 @@ const core_1 = require("@roomstay/core");
5
5
  const react_1 = require("react");
6
6
  const contexts_1 = require("../contexts");
7
7
  const CurrentHotelHook_1 = require("./CurrentHotelHook");
8
- const usePlanpay = () => {
9
- var _a, _b;
10
- const { hotel } = (0, CurrentHotelHook_1.useCurrentHotel)();
8
+ let planpaySdkLoaded = false;
9
+ const loadPlanpayOnce = (environment = 'prod') => {
10
+ if (planpaySdkLoaded)
11
+ return;
11
12
  web_1.planpay.init({
12
- environment: (_a = hotel === null || hotel === void 0 ? void 0 : hotel.planpay) === null || _a === void 0 ? void 0 : _a.env,
13
+ environment,
13
14
  showDebug: false,
14
15
  });
16
+ planpaySdkLoaded = true;
17
+ };
18
+ const usePlanpay = () => {
19
+ var _a;
20
+ const { hotel } = (0, CurrentHotelHook_1.useCurrentHotel)();
15
21
  const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
16
- const hasPlanpay = !!(((_b = hotel === null || hotel === void 0 ? void 0 : hotel.paymentMethods) === null || _b === void 0 ? void 0 : _b.includes(core_1.EBookingPaymentMethod.Planpay)) && hotel.planpay);
22
+ const hasPlanpay = !!(((_a = hotel === null || hotel === void 0 ? void 0 : hotel.paymentMethods) === null || _a === void 0 ? void 0 : _a.includes(core_1.EBookingPaymentMethod.Planpay)) && hotel.planpay);
17
23
  return {
18
24
  hasPricePreview: hasPlanpay ? ccx.currentCurrency === 'AUD' : undefined,
19
25
  hasPlanpay,
20
26
  planpay: web_1.planpay,
21
27
  planpayConfig: hasPlanpay ? hotel.planpay : undefined,
28
+ loadPlanPaySDK: () => {
29
+ var _a;
30
+ loadPlanpayOnce((_a = hotel === null || hotel === void 0 ? void 0 : hotel.planpay) === null || _a === void 0 ? void 0 : _a.env);
31
+ },
22
32
  };
23
33
  };
24
34
  exports.default = usePlanpay;
@@ -1 +1 @@
1
- {"version":3,"file":"Planpay.js","sourceRoot":"/","sources":["src/hooks/Planpay.ts"],"names":[],"mappings":";;AAAA,sCAAuC;AACvC,yCAAuD;AACvD,iCAAmC;AAEnC,yCAA4C;AAC5C,+DAA2D;AAG3D,MAAM,UAAU,GAAG,GAAG,EAAE;;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kCAAe,GAAE,CAAC;IACpC,aAAO,CAAC,IAAI,CAAC;QACT,WAAW,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,GAAG;QAChC,SAAS,EAAE,KAAK;KACnB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,0CAAE,QAAQ,CAAC,4BAAqB,CAAC,OAAO,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACvG,OAAO;QACH,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS;QACvE,UAAU;QACV,OAAO,EAAP,aAAO;QACP,aAAa,EAAE,UAAU,CAAC,CAAC,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KACnE,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC","sourcesContent":["import { planpay } from '@planpay/web';\nimport { EBookingPaymentMethod } from '@roomstay/core';\nimport { useContext } from 'react';\n\nimport { CompanyContext } from '@/contexts';\nimport { useCurrentHotel } from '@/hooks/CurrentHotelHook';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\n\nconst usePlanpay = () => {\n const { hotel } = useCurrentHotel();\n planpay.init({\n environment: hotel?.planpay?.env, // environment: 'prod',\n showDebug: false,\n });\n const ccx = useContext(CompanyContext);\n const hasPlanpay = !!(hotel?.paymentMethods?.includes(EBookingPaymentMethod.Planpay) && hotel.planpay);\n return {\n hasPricePreview: hasPlanpay ? ccx.currentCurrency === 'AUD' : undefined,\n hasPlanpay,\n planpay,\n planpayConfig: hasPlanpay ? (hotel as Hotel).planpay : undefined,\n };\n};\n\nexport default usePlanpay;\n"]}
1
+ {"version":3,"file":"Planpay.js","sourceRoot":"/","sources":["src/hooks/Planpay.ts"],"names":[],"mappings":";;AAAA,sCAAuC;AACvC,yCAAuD;AACvD,iCAAmC;AAEnC,yCAA4C;AAC5C,+DAA2D;AAG3D,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAC7B,MAAM,eAAe,GAAG,CAAC,WAAW,GAAG,MAAM,EAAE,EAAE;IAC7C,IAAI,gBAAgB;QAAE,OAAO;IAE7B,aAAO,CAAC,IAAI,CAAC;QACT,WAAW;QACX,SAAS,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,gBAAgB,GAAG,IAAI,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,GAAG,EAAE;;IACpB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kCAAe,GAAE,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,0CAAE,QAAQ,CAAC,4BAAqB,CAAC,OAAO,CAAC,KAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAEvG,OAAO;QACH,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS;QACvE,UAAU;QACV,OAAO,EAAP,aAAO;QACP,aAAa,EAAE,UAAU,CAAC,CAAC,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAChE,cAAc,EAAE,GAAG,EAAE;;YACjB,eAAe,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,GAAG,CAAC,CAAC;QACzC,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC","sourcesContent":["import { planpay } from '@planpay/web';\nimport { EBookingPaymentMethod } from '@roomstay/core';\nimport { useContext } from 'react';\n\nimport { CompanyContext } from '@/contexts';\nimport { useCurrentHotel } from '@/hooks/CurrentHotelHook';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\n\nlet planpaySdkLoaded = false;\nconst loadPlanpayOnce = (environment = 'prod') => {\n if (planpaySdkLoaded) return;\n\n planpay.init({\n environment,\n showDebug: false,\n });\n\n planpaySdkLoaded = true;\n};\n\nconst usePlanpay = () => {\n const { hotel } = useCurrentHotel();\n\n const ccx = useContext(CompanyContext);\n const hasPlanpay = !!(hotel?.paymentMethods?.includes(EBookingPaymentMethod.Planpay) && hotel.planpay);\n\n return {\n hasPricePreview: hasPlanpay ? ccx.currentCurrency === 'AUD' : undefined,\n hasPlanpay,\n planpay,\n planpayConfig: hasPlanpay ? (hotel as Hotel).planpay : undefined,\n loadPlanPaySDK: () => {\n loadPlanpayOnce(hotel?.planpay?.env);\n },\n };\n};\n\nexport default usePlanpay;\n"]}
@@ -0,0 +1,7 @@
1
+ export declare const useSearchScopeHook: () => {
2
+ getMaxSelectableAdults: ({ adults, children }: {
3
+ adults: number;
4
+ children?: number | undefined;
5
+ }) => number;
6
+ showChildren: boolean;
7
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSearchScopeHook = void 0;
4
+ const CurrentHotelHook_1 = require("./CurrentHotelHook");
5
+ const useSearchScopeHook = () => {
6
+ var _a;
7
+ const { hotel } = (0, CurrentHotelHook_1.useCurrentHotel)();
8
+ const getMaxSelectableAdults = ({ adults, children = 0 }) => {
9
+ var _a, _b;
10
+ const maxOccupancy = (_b = (_a = hotel === null || hotel === void 0 ? void 0 : hotel.maxAdults) !== null && _a !== void 0 ? _a : hotel === null || hotel === void 0 ? void 0 : hotel.maxOccupancy) !== null && _b !== void 0 ? _b : 0;
11
+ const selectedValue = adults !== null && adults !== void 0 ? adults : 1;
12
+ let maxAdults = Math.max(maxOccupancy - children, selectedValue);
13
+ if (maxAdults < 1 || isNaN(maxAdults)) {
14
+ maxAdults = 1;
15
+ }
16
+ return maxAdults;
17
+ };
18
+ const showChildren = ((_a = hotel === null || hotel === void 0 ? void 0 : hotel.childConfiguration) === null || _a === void 0 ? void 0 : _a.supportChildren) !== false;
19
+ return {
20
+ getMaxSelectableAdults,
21
+ showChildren,
22
+ };
23
+ };
24
+ exports.useSearchScopeHook = useSearchScopeHook;
25
+ //# sourceMappingURL=useSearchScopeHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearchScopeHook.js","sourceRoot":"/","sources":["src/hooks/useSearchScopeHook.ts"],"names":[],"mappings":";;;AAAA,+DAA2D;AAEpD,MAAM,kBAAkB,GAAG,GAAG,EAAE;;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kCAAe,GAAE,CAAC;IAEpC,MAAM,sBAAsB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAyC,EAAU,EAAE;;QACvG,MAAM,YAAY,GAAG,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,mCAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,CAAC,CAAC;QAClC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,EAAE,aAAa,CAAC,CAAC;QAEjE,IAAI,SAAS,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;YACnC,SAAS,GAAG,CAAC,CAAC;SACjB;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,kBAAkB,0CAAE,eAAe,MAAK,KAAK,CAAC;IAE1E,OAAO;QACH,sBAAsB;QACtB,YAAY;KACf,CAAC;AACN,CAAC,CAAC;AAtBW,QAAA,kBAAkB,sBAsB7B","sourcesContent":["import { useCurrentHotel } from '@/hooks/CurrentHotelHook';\n\nexport const useSearchScopeHook = () => {\n const { hotel } = useCurrentHotel();\n\n const getMaxSelectableAdults = ({ adults, children = 0 }: { adults: number; children?: number }): number => {\n const maxOccupancy = hotel?.maxAdults ?? hotel?.maxOccupancy ?? 0;\n\n const selectedValue = adults ?? 1;\n let maxAdults = Math.max(maxOccupancy - children, selectedValue);\n\n if (maxAdults < 1 || isNaN(maxAdults)) {\n maxAdults = 1;\n }\n\n return maxAdults;\n };\n\n const showChildren = hotel?.childConfiguration?.supportChildren !== false;\n\n return {\n getMaxSelectableAdults,\n showChildren,\n };\n};\n"]}
@@ -73,6 +73,7 @@ export interface AdminHotelConfig {
73
73
  value: string;
74
74
  }[];
75
75
  childConfiguration?: {
76
+ supportChildren?: boolean;
76
77
  supportInfants: boolean;
77
78
  childRange: {
78
79
  min: number;
@@ -154,6 +155,7 @@ export type Hotel = ConfigHotel & {
154
155
  isLoading: boolean;
155
156
  };
156
157
  integrations?: EIntegration[];
158
+ maxAdults?: number;
157
159
  };
158
160
  /**
159
161
  * Used for DetailsHotel event
@@ -1 +1 @@
1
- {"version":3,"file":"Hotel.js","sourceRoot":"/","sources":["src/models/Client/Hotel/Hotel.ts"],"names":[],"mappings":";;;AAgBA,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,8BAAU,CAAA;IACV,0CAAsB,CAAA;IACtB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AACnB,CAAC,EAPW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAO3B","sourcesContent":["import type { EnvironmentName } from '@planpay/web';\nimport { EBookingPaymentMethod, EHotelCardProcessor, IHotelColorScheme } from '@roomstay/core';\nimport type { ReactChild } from 'react';\n\nimport type { MemberOnlyModalInputs } from '@/components/steps/room/MemberSignInModal/MemberSignInModal.types';\nimport type { EIntegration, HotelRoomGroupsDTO, HotelRoomsDTO, HotelServiceDTO } from '@/models/Api/HotelDTO';\nimport type { TransportDistances } from '@/models/Api/HotelOverrideDTO';\nimport type { HasDatalayerTags } from '@/models/Client/Hotel/Company';\nimport type { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport type HotelAddress from '@/models/Client/Hotel/HotelAddress';\nimport type { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport type { HotelPerk } from '@/models/Client/Hotel/HotelPerk';\nimport type { HotelRoomOverwrite } from '@/models/Client/Hotel/HotelRoomOverwrite';\nimport type { WeekdayStartsOn } from '@/models/Client/Hotel/WeekdayStartsOn.types';\nimport type { Language } from '@/providers/LanguageProvider';\n\nexport enum EPaymentCardType {\n Visa = 'VI',\n Mastercard = 'MC',\n JCB = 'JC',\n AmericanExpress = 'AX',\n DinersClub = 'DN',\n UnionPay = 'UP',\n}\n\nexport interface IVGSVaultNames {\n standard: string;\n members: string;\n}\n\n/**\n * This config comes from admin\n */\nexport interface AdminHotelConfig {\n hotelID: string;\n name: string;\n address?: HotelAddress;\n latitude?: number;\n longitude?: number;\n phone?: string;\n email?: string;\n checkInTime?: string;\n checkOutTime?: string;\n paymentCardTypes?: EPaymentCardType[];\n description?: string;\n locationDescription?: string;\n policies?: string;\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n rooms: HotelRoomsDTO;\n hasLoadedDetails?: boolean;\n dataSource: HotelDataSource;\n defaultCurrency: string;\n paymentMethods: EBookingPaymentMethod[];\n planpay?: {\n username: string;\n minDaysShowPlanpay: number;\n env: EnvironmentName;\n };\n hotelUrl: string;\n heroImage: string;\n memberOnlyModalImage?: string;\n images?: string[];\n logo: string | ReactChild;\n colors: IHotelColorScheme;\n distanceUnitType: DistanceUnitType;\n startsWeekOnDay?: WeekdayStartsOn;\n crossSellHotelIds?: string[];\n maxOccupancy?: number;\n hideByLine?: boolean;\n transportDistances?: TransportDistances;\n roomGroups: HotelRoomGroupsDTO;\n cardProcessor: EHotelCardProcessor;\n\n requireDeposit?: boolean;\n availableCountries?: { name: string; value: string }[];\n\n childConfiguration?: {\n supportInfants: boolean;\n childRange: { min: number; max: number };\n infantRange: { min: number; max: number };\n };\n}\n\n/**\n * This config comes from hard static local file\n */\nexport interface ClientHotelConfig {\n providerHotelID: string;\n shortName?: string;\n defaultDatepickerType?: 'Month' | 'Week';\n // TODO: need to do magic to see if we need to append / prepend stuff, for now we assume that it's only used while on the site.\n checkoutUrl?: string;\n defaultLanguage: Language;\n privacyPolicyUrl: string;\n bookNowPayLaterUrl?: string;\n bestRateNoBSUrl?: string;\n\n memberOnlyRates?: string[];\n memberOnlyPromoCode?: string;\n memberOnlySignupInputs?: MemberOnlyModalInputs;\n googleMapsImage?: string;\n /**\n * Whether to show the Breakfast / Lunch / Dinner included\n */\n showMealPill?: boolean;\n perks: HotelPerk[];\n /**\n * Hide perks on room row\n */\n perksHideOnRoomRow?: boolean;\n /**\n * Hide perks on room detail modal\n */\n perksHideOnRoomDetail?: boolean;\n perksShowDisclaimer?: boolean;\n /** @deprecated Use the vgs.vaultNames.standard property now */\n vgsVaultName?: string;\n vgs?: {\n vaultNames: IVGSVaultNames;\n };\n showAddonLoader: boolean;\n overwrites?: { [code: string]: Partial<HotelRoomOverwrite> };\n forwardFindReservationToSynxis?: boolean;\n additionalOptions?: { [name: string]: any };\n googleReCaptcha?: {\n loadForMembers?: boolean;\n siteKey?: string;\n };\n /**\n * Show description on RoomDetails\n */\n showDescriptionOnRoomDetails?: boolean;\n /**\n * Customize the Member modal colours. Specifically replacing the green (success) with the primary color of hotel (accent)\n */\n memberOnlyModalUsePrimaryColor?: boolean;\n /**\n * Callback to trigger specific events on load of a hotel.\n *\n * This is where you can specify custom fields, language overrides, feature toggles etc.\n */\n onLoad?: () => void;\n}\n\nexport interface ConfigHotel extends ClientHotelConfig, AdminHotelConfig, HasDatalayerTags {}\n\nexport type Hotel = ConfigHotel & {\n lowestPrice?: {\n value: number;\n isLoading: boolean;\n };\n integrations?: EIntegration[];\n};\n\n/**\n * Used for DetailsHotel event\n */\nexport type InitialHotelDetailsEventPayload = {\n name: string;\n hotelID: number | string;\n hotelUrl: string;\n currency: string;\n language: Language;\n address?: HotelAddress;\n};\n"]}
1
+ {"version":3,"file":"Hotel.js","sourceRoot":"/","sources":["src/models/Client/Hotel/Hotel.ts"],"names":[],"mappings":";;;AAgBA,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IACxB,+BAAW,CAAA;IACX,qCAAiB,CAAA;IACjB,8BAAU,CAAA;IACV,0CAAsB,CAAA;IACtB,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AACnB,CAAC,EAPW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAO3B","sourcesContent":["import type { EnvironmentName } from '@planpay/web';\nimport { EBookingPaymentMethod, EHotelCardProcessor, IHotelColorScheme } from '@roomstay/core';\nimport type { ReactChild } from 'react';\n\nimport type { MemberOnlyModalInputs } from '@/components/steps/room/MemberSignInModal/MemberSignInModal.types';\nimport type { EIntegration, HotelRoomGroupsDTO, HotelRoomsDTO, HotelServiceDTO } from '@/models/Api/HotelDTO';\nimport type { TransportDistances } from '@/models/Api/HotelOverrideDTO';\nimport type { HasDatalayerTags } from '@/models/Client/Hotel/Company';\nimport type { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport type HotelAddress from '@/models/Client/Hotel/HotelAddress';\nimport type { HotelDataSource } from '@/models/Client/Hotel/HotelDataSource.types';\nimport type { HotelPerk } from '@/models/Client/Hotel/HotelPerk';\nimport type { HotelRoomOverwrite } from '@/models/Client/Hotel/HotelRoomOverwrite';\nimport type { WeekdayStartsOn } from '@/models/Client/Hotel/WeekdayStartsOn.types';\nimport type { Language } from '@/providers/LanguageProvider';\n\nexport enum EPaymentCardType {\n Visa = 'VI',\n Mastercard = 'MC',\n JCB = 'JC',\n AmericanExpress = 'AX',\n DinersClub = 'DN',\n UnionPay = 'UP',\n}\n\nexport interface IVGSVaultNames {\n standard: string;\n members: string;\n}\n\n/**\n * This config comes from admin\n */\nexport interface AdminHotelConfig {\n hotelID: string;\n name: string;\n address?: HotelAddress;\n latitude?: number;\n longitude?: number;\n phone?: string;\n email?: string;\n checkInTime?: string;\n checkOutTime?: string;\n paymentCardTypes?: EPaymentCardType[];\n description?: string;\n locationDescription?: string;\n policies?: string;\n hotelServices: HotelServiceDTO[];\n businessServices: HotelServiceDTO[];\n rooms: HotelRoomsDTO;\n hasLoadedDetails?: boolean;\n dataSource: HotelDataSource;\n defaultCurrency: string;\n paymentMethods: EBookingPaymentMethod[];\n planpay?: {\n username: string;\n minDaysShowPlanpay: number;\n env: EnvironmentName;\n };\n hotelUrl: string;\n heroImage: string;\n memberOnlyModalImage?: string;\n images?: string[];\n logo: string | ReactChild;\n colors: IHotelColorScheme;\n distanceUnitType: DistanceUnitType;\n startsWeekOnDay?: WeekdayStartsOn;\n crossSellHotelIds?: string[];\n maxOccupancy?: number;\n hideByLine?: boolean;\n transportDistances?: TransportDistances;\n roomGroups: HotelRoomGroupsDTO;\n cardProcessor: EHotelCardProcessor;\n\n requireDeposit?: boolean;\n availableCountries?: { name: string; value: string }[];\n\n childConfiguration?: {\n supportChildren?: boolean;\n supportInfants: boolean;\n childRange: { min: number; max: number };\n infantRange: { min: number; max: number };\n };\n}\n\n/**\n * This config comes from hard static local file\n */\nexport interface ClientHotelConfig {\n providerHotelID: string;\n shortName?: string;\n defaultDatepickerType?: 'Month' | 'Week';\n // TODO: need to do magic to see if we need to append / prepend stuff, for now we assume that it's only used while on the site.\n checkoutUrl?: string;\n defaultLanguage: Language;\n privacyPolicyUrl: string;\n bookNowPayLaterUrl?: string;\n bestRateNoBSUrl?: string;\n\n memberOnlyRates?: string[];\n memberOnlyPromoCode?: string;\n memberOnlySignupInputs?: MemberOnlyModalInputs;\n googleMapsImage?: string;\n /**\n * Whether to show the Breakfast / Lunch / Dinner included\n */\n showMealPill?: boolean;\n perks: HotelPerk[];\n /**\n * Hide perks on room row\n */\n perksHideOnRoomRow?: boolean;\n /**\n * Hide perks on room detail modal\n */\n perksHideOnRoomDetail?: boolean;\n perksShowDisclaimer?: boolean;\n /** @deprecated Use the vgs.vaultNames.standard property now */\n vgsVaultName?: string;\n vgs?: {\n vaultNames: IVGSVaultNames;\n };\n showAddonLoader: boolean;\n overwrites?: { [code: string]: Partial<HotelRoomOverwrite> };\n forwardFindReservationToSynxis?: boolean;\n additionalOptions?: { [name: string]: any };\n googleReCaptcha?: {\n loadForMembers?: boolean;\n siteKey?: string;\n };\n /**\n * Show description on RoomDetails\n */\n showDescriptionOnRoomDetails?: boolean;\n /**\n * Customize the Member modal colours. Specifically replacing the green (success) with the primary color of hotel (accent)\n */\n memberOnlyModalUsePrimaryColor?: boolean;\n /**\n * Callback to trigger specific events on load of a hotel.\n *\n * This is where you can specify custom fields, language overrides, feature toggles etc.\n */\n onLoad?: () => void;\n}\n\nexport interface ConfigHotel extends ClientHotelConfig, AdminHotelConfig, HasDatalayerTags {}\n\nexport type Hotel = ConfigHotel & {\n lowestPrice?: {\n value: number;\n isLoading: boolean;\n };\n integrations?: EIntegration[];\n maxAdults?: number; //fixed from frontend\n};\n\n/**\n * Used for DetailsHotel event\n */\nexport type InitialHotelDetailsEventPayload = {\n name: string;\n hotelID: number | string;\n hotelUrl: string;\n currency: string;\n language: Language;\n address?: HotelAddress;\n};\n"]}