@roomstay/frontend 2.9.1 → 2.10.1-0

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 (140) hide show
  1. package/dist/177.bundle.js +1 -1
  2. package/dist/219.bundle.js +2 -0
  3. package/dist/288.bundle.js +1 -1
  4. package/dist/291.bundle.js +1 -0
  5. package/dist/446.bundle.js +1 -1
  6. package/dist/449.bundle.js +1 -1
  7. package/dist/537.bundle.js +1 -1
  8. package/dist/596.bundle.js +1 -1
  9. package/dist/625.bundle.js +1 -1
  10. package/dist/836.bundle.js +1 -1
  11. package/dist/main.bundle.js +1 -1
  12. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js +6 -0
  13. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js.map +1 -1
  14. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/ShadowDomBottomSheet.d.ts +22 -0
  15. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/ShadowDomBottomSheet.js +131 -0
  16. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/ShadowDomBottomSheet.js.map +1 -0
  17. package/dist/src/components/generic/HotelPerkVisual.d.ts +7 -0
  18. package/dist/src/components/generic/HotelPerkVisual.js +29 -0
  19. package/dist/src/components/generic/HotelPerkVisual.js.map +1 -0
  20. package/dist/src/components/generic/Portal/Portal.js +5 -1
  21. package/dist/src/components/generic/Portal/Portal.js.map +1 -1
  22. package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.d.ts +2 -2
  23. package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js.map +1 -1
  24. package/dist/src/components/members/SignInModal/EmailAndFullnameMemberModal.d.ts +4 -0
  25. package/dist/src/components/members/SignInModal/EmailAndFullnameMemberModal.js +105 -30
  26. package/dist/src/components/members/SignInModal/EmailAndFullnameMemberModal.js.map +1 -1
  27. package/dist/src/components/members/SignInModal/ExternalMemberModal.d.ts +9 -3
  28. package/dist/src/components/members/SignInModal/ExternalMemberModal.js +45 -6
  29. package/dist/src/components/members/SignInModal/ExternalMemberModal.js.map +1 -1
  30. package/dist/src/components/steps/date/BEPeoplePickerBlock.js +3 -1
  31. package/dist/src/components/steps/date/BEPeoplePickerBlock.js.map +1 -1
  32. package/dist/src/components/steps/hotel/HotelCard.js +3 -3
  33. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  34. package/dist/src/components/steps/hotel/HotelCardModal.js +3 -3
  35. package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
  36. package/dist/src/components/steps/hotel/HotelInfoPerksRow.js +3 -3
  37. package/dist/src/components/steps/hotel/HotelInfoPerksRow.js.map +1 -1
  38. package/dist/src/components/steps/room/LargeRoomCard.js +3 -3
  39. package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
  40. package/dist/src/components/steps/room/RoomModalPerkRow.js +3 -3
  41. package/dist/src/components/steps/room/RoomModalPerkRow.js.map +1 -1
  42. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +2 -0
  43. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  44. package/dist/src/components/steps/room/roomDetails/RoomDetails.d.ts +1 -0
  45. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +18 -4
  46. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  47. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js +3 -3
  48. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js.map +1 -1
  49. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.d.ts +1 -0
  50. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js +1 -1
  51. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js.map +1 -1
  52. package/dist/src/components/summary/BESummaryPerkBlock.js +3 -3
  53. package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
  54. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  55. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +1 -1
  56. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  57. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +1 -0
  58. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  59. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +1 -0
  60. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  61. package/dist/src/contexts/HotelOverridesContext.js +4 -0
  62. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  63. package/dist/src/contexts/ShadowDomContext/ShadowDomContext.d.ts +10 -0
  64. package/dist/src/contexts/ShadowDomContext/ShadowDomContext.js +12 -0
  65. package/dist/src/contexts/ShadowDomContext/ShadowDomContext.js.map +1 -0
  66. package/dist/src/contexts/ShadowDomContext/ShadowDomContextProvider.d.ts +8 -0
  67. package/dist/src/contexts/ShadowDomContext/ShadowDomContextProvider.js +13 -0
  68. package/dist/src/contexts/ShadowDomContext/ShadowDomContextProvider.js.map +1 -0
  69. package/dist/src/contexts/index.d.ts +2 -0
  70. package/dist/src/contexts/index.js +2 -0
  71. package/dist/src/contexts/index.js.map +1 -1
  72. package/dist/src/engines/BaseEngine.d.ts +13 -0
  73. package/dist/src/engines/BaseEngine.js +32 -0
  74. package/dist/src/engines/BaseEngine.js.map +1 -1
  75. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js +1 -0
  76. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  77. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +3 -1
  78. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -1
  79. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js +1 -0
  80. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js.map +1 -1
  81. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +12 -10
  82. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  83. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js +1 -0
  84. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js.map +1 -1
  85. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js +11 -9
  86. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js.map +1 -1
  87. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js +1 -0
  88. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngine.js.map +1 -1
  89. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +4 -2
  90. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
  91. package/dist/src/handlers/membership/SalesforceMemberHandler.js +1 -1
  92. package/dist/src/handlers/membership/SalesforceMemberHandler.js.map +1 -1
  93. package/dist/src/hooks/BodyClickHook.d.ts +2 -2
  94. package/dist/src/hooks/BodyClickHook.js +7 -3
  95. package/dist/src/hooks/BodyClickHook.js.map +1 -1
  96. package/dist/src/index.d.ts +1 -0
  97. package/dist/src/index.js +4 -2
  98. package/dist/src/index.js.map +1 -1
  99. package/dist/src/models/Api/HotelDTO.d.ts +2 -0
  100. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  101. package/dist/src/models/Api/HotelOverrideDTO.d.ts +1 -0
  102. package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
  103. package/dist/src/models/Client/Hotel/Hotel.d.ts +2 -0
  104. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  105. package/dist/src/pages/findReservation/FindReservationResults.js +1 -1
  106. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  107. package/dist/src/pages/findReservation/ReservationRow.js +10 -9
  108. package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
  109. package/dist/src/pages/hotel/HotelInfo.js +7 -6
  110. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  111. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +7 -1
  112. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
  113. package/dist/src/providers/RoomstayThemeEngine.js +7 -2
  114. package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
  115. package/dist/src/providers/ShadowDomManager.d.ts +21 -0
  116. package/dist/src/providers/ShadowDomManager.js +55 -0
  117. package/dist/src/providers/ShadowDomManager.js.map +1 -0
  118. package/dist/src/providers/StyleInjector.d.ts +42 -0
  119. package/dist/src/providers/StyleInjector.js +118 -0
  120. package/dist/src/providers/StyleInjector.js.map +1 -0
  121. package/dist/src/providers/storage/SessionProvider.js.map +1 -1
  122. package/dist/src/stories/EnhancedPhoneNumberField.stories.d.ts +1 -1
  123. package/dist/src/translations/Translation.d.ts +3 -0
  124. package/dist/src/translations/Translation.js +3 -0
  125. package/dist/src/translations/Translation.js.map +1 -1
  126. package/dist/src/translations/languages/en-gb.js +3 -0
  127. package/dist/src/translations/languages/en-gb.js.map +1 -1
  128. package/dist/src/util/Analytics/Analytics.js +1 -0
  129. package/dist/src/util/Analytics/Analytics.js.map +1 -1
  130. package/dist/test.bundle.js +1 -1
  131. package/dist/tests/offline/entry/config/hotelSpecDefault.js +13 -43
  132. package/dist/tests/offline/entry/config/hotelSpecDefault.js.map +1 -1
  133. package/dist/vendors.bundle.js +1 -1
  134. package/package.json +2 -2
  135. package/dist/326.bundle.js +0 -2
  136. package/dist/686.bundle.js +0 -1
  137. package/dist/src/util/HotelPerkHelper.d.ts +0 -3
  138. package/dist/src/util/HotelPerkHelper.js +0 -56
  139. package/dist/src/util/HotelPerkHelper.js.map +0 -1
  140. /package/dist/{326.bundle.js.LICENSE.txt → 219.bundle.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"BookNowButton.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/roomRates/BookNowButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,gCAuCC;AAzDD,iDAAyE;AACzE,+CAA4D;AAE5D,6EAAqD;AACrD,mCAA0C;AAE1C,wCAAoD;AACpD,mEAA2C;AAW3C,SAAwB,aAAa,CAAC,KAAyB;IAC3D,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAC9B,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;oBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACH,wCAAM,GAAG,EAAE,GAAG;QACV,8BAAC,kBAAQ,IACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAC,eAAe,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,EACtB,OAAO,QACP,WAAW,QACX,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,oBAAU,CAAC,MAAM,EAC7C,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,IAAA,4BAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAClF,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAEvB,KAAK,CAAC,WAAW,CACX,CACR,CACV,CAAC;AACN,CAAC","sourcesContent":["import { BasketContext, BookingEngineContext } from '@frontend/contexts';\nimport React, { useContext, useRef, useState } from 'react';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { useCurrentHotel } from '@/hooks';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { getContrastTextColor } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\ninterface BookNowButtonProps {\n buttonLabel: string;\n rate: RoomRate;\n onAddToBasketOverride?: (rate: RoomRate) => void;\n\n isFilled?: boolean;\n disabled?: boolean;\n}\n\nexport default function BookNowButton(props: BookNowButtonProps) {\n const basketContext = useContext(BasketContext);\n const [isLoading, setIsLoading] = useState(false);\n const context = useContext(BookingEngineContext);\n const { hotel } = useCurrentHotel();\n\n const ref = useRef(null);\n\n const addRateOnClick = () => {\n if (props.onAddToBasketOverride) {\n props.onAddToBasketOverride(props.rate);\n } else {\n setIsLoading(true);\n\n basketContext.addRate(props.rate).then(() => {\n if (ref?.current) {\n setIsLoading(false);\n }\n });\n }\n };\n\n return (\n <span ref={ref}>\n <BEButton\n isLoading={isLoading}\n name=\"AddRateToCard\"\n filled={props.isFilled}\n primary\n mobileWidth\n wide={context.screenSize <= ScreenSize.Medium}\n onClick={addRateOnClick}\n textColor={getContrastTextColor(props.isFilled ? hotel?.colors.accent : '#FFFFFF')}\n disabled={props.disabled}\n >\n {props.buttonLabel}\n </BEButton>\n </span>\n );\n}\n"]}
1
+ {"version":3,"file":"BookNowButton.js","sourceRoot":"/","sources":["src/components/steps/room/roomDetails/roomRates/BookNowButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,gCAuCC;AA1DD,iDAAyE;AACzE,+CAA4D;AAE5D,6EAAqD;AACrD,mCAA0C;AAE1C,wCAAoD;AACpD,mEAA2C;AAY3C,SAAwB,aAAa,CAAC,KAAyB;IAC3D,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,+BAAoB,CAAC,CAAC;IACjD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,MAAM,GAAG,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAEzB,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAC9B,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxC,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC;oBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACH,wCAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;QACtC,8BAAC,kBAAQ,IACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAC,eAAe,EACpB,MAAM,EAAE,KAAK,CAAC,QAAQ,EACtB,OAAO,QACP,WAAW,QACX,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,oBAAU,CAAC,MAAM,EAC7C,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,IAAA,4BAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,EAClF,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAEvB,KAAK,CAAC,WAAW,CACX,CACR,CACV,CAAC;AACN,CAAC","sourcesContent":["import { BasketContext, BookingEngineContext } from '@frontend/contexts';\nimport React, { useContext, useRef, useState } from 'react';\n\nimport BEButton from '@/components/generic/BEButton';\nimport { useCurrentHotel } from '@/hooks';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { getContrastTextColor } from '@/util/Color';\nimport ScreenSize from '@/util/ScreenSize';\n\ninterface BookNowButtonProps {\n buttonLabel: string;\n rate: RoomRate;\n onAddToBasketOverride?: (rate: RoomRate) => void;\n\n isFilled?: boolean;\n disabled?: boolean;\n className?: string;\n}\n\nexport default function BookNowButton(props: BookNowButtonProps) {\n const basketContext = useContext(BasketContext);\n const [isLoading, setIsLoading] = useState(false);\n const context = useContext(BookingEngineContext);\n const { hotel } = useCurrentHotel();\n\n const ref = useRef(null);\n\n const addRateOnClick = () => {\n if (props.onAddToBasketOverride) {\n props.onAddToBasketOverride(props.rate);\n } else {\n setIsLoading(true);\n\n basketContext.addRate(props.rate).then(() => {\n if (ref?.current) {\n setIsLoading(false);\n }\n });\n }\n };\n\n return (\n <span ref={ref} className={props.className}>\n <BEButton\n isLoading={isLoading}\n name=\"AddRateToCard\"\n filled={props.isFilled}\n primary\n mobileWidth\n wide={context.screenSize <= ScreenSize.Medium}\n onClick={addRateOnClick}\n textColor={getContrastTextColor(props.isFilled ? hotel?.colors.accent : '#FFFFFF')}\n disabled={props.disabled}\n >\n {props.buttonLabel}\n </BEButton>\n </span>\n );\n}\n"]}
@@ -42,10 +42,10 @@ const hooks_1 = require("../../hooks/index.js");
42
42
  const react_1 = __importDefault(require("react"));
43
43
  const react_i18next_1 = require("react-i18next");
44
44
  const Alert_1 = __importDefault(require("../generic/Alert"));
45
+ const HotelPerkVisual_1 = require("../generic/HotelPerkVisual");
45
46
  const Text_1 = __importStar(require("../generic/Text"));
46
47
  const DIProvider_1 = require("../../providers/DIProvider");
47
48
  const Translation_1 = require("../../translations/Translation");
48
- const HotelPerkHelper_1 = require("../../util/HotelPerkHelper");
49
49
  exports.BE_SUMMARY_PERK_BLOCK = 'BESummaryPerkBlock';
50
50
  function OriginalPerkBlock(props) {
51
51
  const { hotel } = (0, hooks_1.useCurrentHotel)();
@@ -62,9 +62,9 @@ function OriginalPerkBlock(props) {
62
62
  react_1.default.createElement(Text_1.default, null,
63
63
  react_1.default.createElement("strong", null, (hotel === null || hotel === void 0 ? void 0 : hotel.perkTitle) || t(Translation_1.Translation.Step.Room.AndYouGetAllTheseForFree)))),
64
64
  react_1.default.createElement("div", { className: "row" }, hotelPerks.map((perk) => {
65
- const perkIconElement = (0, HotelPerkHelper_1.getPerkIconElement)(perk);
66
65
  return (react_1.default.createElement("div", { key: perk.name, className: `u-flex align-items-center ${colSize} justify-content-start u-marg-bottom--light` },
67
- react_1.default.createElement("div", { className: "room-perk-icon" }, perkIconElement),
66
+ react_1.default.createElement("div", { className: "room-perk-icon" },
67
+ react_1.default.createElement(HotelPerkVisual_1.HotelPerkVisual, { perk: perk })),
68
68
  react_1.default.createElement(Text_1.default, { type: textSize, inline: true }, perk.name)));
69
69
  })))));
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BESummaryPerkBlock.js","sourceRoot":"/","sources":["src/components/summary/BESummaryPerkBlock.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,gDAEC;AA1DD,2CAAkD;AAClD,kDAA0B;AAC1B,iDAA+C;AAE/C,uEAA+C;AAC/C,kEAA2D;AAC3D,uDAAgD;AAChD,4DAAyD;AACzD,4DAA4D;AAM/C,QAAA,qBAAqB,GAAG,oBAAoB,CAAC;AAE1D,SAAS,iBAAiB,CAAC,KAA8B;IACrD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;IAEhC,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE,CAAC;QACtB,OAAO,6DAAK,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAQ,CAAC,KAAK,CAAC;IAE3E,OAAO,CACH,8BAAC,eAAK,IAAC,YAAY,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,YAAY;QACvD;YACI,uCAAK,SAAS,EAAC,eAAe;gBAC1B,8BAAC,cAAI;oBACD,8CAAS,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,KAAI,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAU,CACrF,CACL;YACN,uCAAK,SAAS,EAAC,KAAK,IACf,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,MAAM,eAAe,GAAG,IAAA,oCAAkB,EAAC,IAAI,CAAC,CAAC;gBAEjD,OAAO,CACH,uCAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,6BAA6B,OAAO,6CAA6C;oBAC7G,uCAAK,SAAS,EAAC,gBAAgB,IAAE,eAAe,CAAO;oBACvD,8BAAC,cAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,UACvB,IAAI,CAAC,IAAI,CACP,CACL,CACT,CAAC;YACN,CAAC,CAAC,CACA,CACJ,CACF,CACX,CAAC;AACN,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAA8B;IAC7D,OAAO,IAAA,mBAAM,EAAC,6BAAqB,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/generic/Alert';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { withDI } from '@/providers/DIProvider';\nimport { Translation } from '@/translations/Translation';\nimport { getPerkIconElement } from '@/util/HotelPerkHelper';\n\nexport interface BESummaryPerkBlockProps {\n size: 'mobile' | 'desktop';\n}\n\nexport const BE_SUMMARY_PERK_BLOCK = 'BESummaryPerkBlock';\n\nfunction OriginalPerkBlock(props: BESummaryPerkBlockProps) {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const hotelPerks = hotel?.perks;\n\n if (!hotelPerks?.length) {\n return <></>;\n }\n\n const colSize = props.size === 'mobile' ? 'col-6' : 'col-12';\n const textSize = props.size === 'mobile' ? TextType.Label : TextType.Small;\n\n return (\n <Alert heavyPadding={props.size === 'desktop'} noIconMargin>\n <div>\n <div className=\"u-marg-bottom\">\n <Text>\n <strong>{hotel?.perkTitle || t(Translation.Step.Room.AndYouGetAllTheseForFree)}</strong>\n </Text>\n </div>\n <div className=\"row\">\n {hotelPerks.map((perk) => {\n const perkIconElement = getPerkIconElement(perk);\n\n return (\n <div key={perk.name} className={`u-flex align-items-center ${colSize} justify-content-start u-marg-bottom--light`}>\n <div className=\"room-perk-icon\">{perkIconElement}</div>\n <Text type={textSize} inline>\n {perk.name}\n </Text>\n </div>\n );\n })}\n </div>\n </div>\n </Alert>\n );\n}\n\nexport function BESummaryPerkBlock(props: BESummaryPerkBlockProps) {\n return withDI(BE_SUMMARY_PERK_BLOCK, OriginalPerkBlock, props);\n}\n"]}
1
+ {"version":3,"file":"BESummaryPerkBlock.js","sourceRoot":"/","sources":["src/components/summary/BESummaryPerkBlock.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,gDAEC;AA1DD,2CAAkD;AAClD,kDAA0B;AAC1B,iDAA+C;AAE/C,uEAA+C;AAC/C,0EAAuE;AACvE,kEAA2D;AAC3D,uDAAgD;AAChD,4DAAyD;AAM5C,QAAA,qBAAqB,GAAG,oBAAoB,CAAC;AAE1D,SAAS,iBAAiB,CAAC,KAA8B;IACrD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACpC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC;IAEhC,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE,CAAC;QACtB,OAAO,6DAAK,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAQ,CAAC,KAAK,CAAC;IAE3E,OAAO,CACH,8BAAC,eAAK,IAAC,YAAY,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,YAAY;QACvD;YACI,uCAAK,SAAS,EAAC,eAAe;gBAC1B,8BAAC,cAAI;oBACD,8CAAS,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,KAAI,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAU,CACrF,CACL;YACN,uCAAK,SAAS,EAAC,KAAK,IACf,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,OAAO,CACH,uCAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,6BAA6B,OAAO,6CAA6C;oBAC7G,uCAAK,SAAS,EAAC,gBAAgB;wBAC3B,8BAAC,iCAAe,IAAC,IAAI,EAAE,IAAI,GAAI,CAC7B;oBACN,8BAAC,cAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,UACvB,IAAI,CAAC,IAAI,CACP,CACL,CACT,CAAC;YACN,CAAC,CAAC,CACA,CACJ,CACF,CACX,CAAC;AACN,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAA8B;IAC7D,OAAO,IAAA,mBAAM,EAAC,6BAAqB,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;AACnE,CAAC","sourcesContent":["import { useCurrentHotel } from '@frontend/hooks';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/generic/Alert';\nimport { HotelPerkVisual } from '@/components/generic/HotelPerkVisual';\nimport Text, { TextType } from '@/components/generic/Text';\nimport { withDI } from '@/providers/DIProvider';\nimport { Translation } from '@/translations/Translation';\n\nexport interface BESummaryPerkBlockProps {\n size: 'mobile' | 'desktop';\n}\n\nexport const BE_SUMMARY_PERK_BLOCK = 'BESummaryPerkBlock';\n\nfunction OriginalPerkBlock(props: BESummaryPerkBlockProps) {\n const { hotel } = useCurrentHotel();\n const { t } = useTranslation();\n\n const hotelPerks = hotel?.perks;\n\n if (!hotelPerks?.length) {\n return <></>;\n }\n\n const colSize = props.size === 'mobile' ? 'col-6' : 'col-12';\n const textSize = props.size === 'mobile' ? TextType.Label : TextType.Small;\n\n return (\n <Alert heavyPadding={props.size === 'desktop'} noIconMargin>\n <div>\n <div className=\"u-marg-bottom\">\n <Text>\n <strong>{hotel?.perkTitle || t(Translation.Step.Room.AndYouGetAllTheseForFree)}</strong>\n </Text>\n </div>\n <div className=\"row\">\n {hotelPerks.map((perk) => {\n return (\n <div key={perk.name} className={`u-flex align-items-center ${colSize} justify-content-start u-marg-bottom--light`}>\n <div className=\"room-perk-icon\">\n <HotelPerkVisual perk={perk} />\n </div>\n <Text type={textSize} inline>\n {perk.name}\n </Text>\n </div>\n );\n })}\n </div>\n </div>\n </Alert>\n );\n}\n\nexport function BESummaryPerkBlock(props: BESummaryPerkBlockProps) {\n return withDI(BE_SUMMARY_PERK_BLOCK, OriginalPerkBlock, props);\n}\n"]}
@@ -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, useGuestDateFormat } from '@frontend/hooks';\nimport { getFilteredBookingRateFees } from '@roomstay/core';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } 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 const { guestDateFormat } = useGuestDateFormat();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\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 const rowItemisedFees = hotel && row.getRate()?.getItemisedFees(getFilteredBookingRateFees(hotel.fees ?? []));\n\n const cancelEditBasketRowOnClick = () => basketContext.clearSelectedRates(); //Set the selected basket row to null, ensuring that no row is selected for editing.\n const editOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n navigate(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 navigate(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(guestDateFormat)}\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(guestDateFormat)}\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?.getAveragePriceBeforeDiscount(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 {rate && rate?.getTotalDiscount() > 0 && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Misc.Discount)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <span className=\"u-ellip-overflow\">-</span>\n <Currency>{rate?.getTotalDiscount()}</Currency>\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 && !rowItemisedFees && (\n // Only show fees if we don't have itemised fees. If we have itemised fees they will be shown later.\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 <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={cancelEditBasketRowOnClick} 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,mCAgMC;AA7ND,iDAA0E;AAC1E,2CAAsE;AACtE,yCAA4D;AAC5D,+CAA0C;AAC1C,iDAA+C;AAC/C,uDAA+C;AAC/C,0DAAuD;AAEvD,6EAAqD;AACrD,6EAAqD;AACrD,+EAAuD;AACvD,kEAA2D;AAC3D,mFAA2D;AAC3D,oGAA4E;AAC5E,mEAAgE;AAEhE,6DAAsD;AACtD,wCAAqC;AACrC,qEAA6C;AAC7C,uEAA+C;AAU/C,SAAwB,gBAAgB,CAAC,KAA4B;;IACjE,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IAChD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,EAAC,gCAAqB,CAAC,CAAC;IAC1D,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IACxD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,0BAAkB,GAAE,CAAC;IAEjD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAA,8BAAW,GAAE,CAAC;IAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,uCAAkB,GAAE,CAAC;IAE9C,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAEzC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAE3B,MAAM,UAAU,GAAG,CAAA,MAAA,aAAa,CAAC,iBAAiB,0CAAE,KAAK,EAAE,MAAK,GAAG,CAAC,KAAK,EAAE,CAAC;IAC5E,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjI,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,OAAO,EAAE,0CAAE,YAAY,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAA,GAAG,CAAC,OAAO,EAAE,0CAAE,aAAa,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,KAAK,KAAI,MAAA,GAAG,CAAC,OAAO,EAAE,0CAAE,eAAe,CAAC,IAAA,iCAA0B,EAAC,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,CAAA,CAAC;IAE9G,MAAM,0BAA0B,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,CAAC,oFAAoF;IACjK,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,IAAI,WAAW,KAAK,IAAA,qBAAW,GAAE,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAA,qBAAW,GAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAC9B,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,GAAG,EAAE;QAC9B,IAAI,WAAW,KAAK,IAAA,qBAAW,GAAE,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAA,qBAAW,GAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC5C,MAAM,iBAAiB,GAAG,kBAAkB,IAAI,UAAU,CAAC;IAC3D,MAAM,WAAW,GAAG,CAAC,KAAK,GAAG,aAAK,CAAC,QAAQ,EAAE,EAAE;QAC3C,OAAO,iBAAiB,CAAC,CAAC,CAAC,aAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACnD,CAAC,CAAC;IAEF,OAAO,CACH;QACK,KAAK,IAAI,CAAC,IAAI,8BAAC,mBAAS,IAAC,SAAS,QAAC,MAAM,SAAG;QAC7C,uCAAK,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,6BAA6B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,UAAU,IAAI,CACX,uCAAK,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBACxD,8BAAC,4BAAkB,IAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,yBAAS,CAAC,IAAI,GAAI,CAClF,CACT;YACD,uCAAK,SAAS,EAAC,mBAAmB;gBAC9B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,QAAQ,CAAC;oBAC1D;wBACK,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;wBAAG,KAAK,GAAG,CAAC,CACrC,CACN,CACL;YACN,uCAAK,SAAS,EAAC,sBAAsB;gBACjC,8BAAC,cAAI,IAAC,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,IAAI,CAAC;oBAChC,8CAAS,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,GAAG,IAAI,CAAU,CACpC,CACL;YACN,uCAAK,SAAS,EAAC,sBAAsB;gBACjC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CACR,CACL;YACN,uCAAK,SAAS,EAAC,6BAA6B;gBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAC9B;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,MAAM,CAAC,IACvD,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CACjC,CACL;YACN,uCAAK,SAAS,EAAC,6BAA6B;gBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAChC;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,MAAM,CAAC,IACvD,GAAG,CAAC,gBAAgB,CAAC,eAAe,CAAC,CACnC,CACL;YACN,uCAAK,SAAS,EAAC,8BAA8B;gBACzC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C;oBACG,sBAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpF,YAAY,CAAC,CAAC,CAAC,sBAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;oBAC5G,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,kBAAkB,0CAAE,cAAc,EAAC,CAAC,CAAC,sBAAY,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;iBAC5I;qBACI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;qBACxB,IAAI,CAAC,IAAI,CAAC,CACZ,CACL;YACN,uCAAK,SAAS,EAAC,+CAA+C;gBAC1D,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;oBAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;oBAAI,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACvD;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,QAAQ,CAAC;oBAC1D,8BAAC,kBAAQ,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,6BAA6B,CAAC,IAAI,CAAC,CAAY,CAC7D,CACL;YACL,YAAY,IAAI,CACb,uCAAK,SAAS,EAAC,6BAA6B;gBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAChC;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,QAAQ,CAAC,IACzD,GAAG,CAAC,YAAY,EAAE,CAChB,CACL,CACT;YACA,IAAI,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,EAAE,IAAG,CAAC,IAAI,CACrC,uCAAK,SAAS,EAAC,6BAA6B;gBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC1B;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,QAAQ,CAAC;oBAC1D,wCAAM,SAAS,EAAC,kBAAkB,QAAS;oBAC3C,8BAAC,kBAAQ,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,EAAE,CAAY,CAC5C,CACL,CACT;YACD,uCAAK,SAAS,EAAC,6BAA6B;gBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CACnC;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,QAAQ,CAAC;oBAC1D,8BAAC,kBAAQ,QAAE,UAAU,CAAY,CAC9B,CACL;YACL,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,IAAI;YAC9B,oGAAoG;YACpG,uCAAK,SAAS,EAAC,6BAA6B;gBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CACnC;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,QAAQ,CAAC;oBAC1D,8BAAC,kBAAQ,QAAE,OAAO,CAAY,CAC3B,CACL,CACT;YACA,CAAC,CAAC,QAAQ,IAAI,CACX,uCAAK,SAAS,EAAC,6BAA6B;gBACxC,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAC3C,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CACpC;gBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,aAAK,CAAC,QAAQ,CAAC;oBAC1D,8BAAC,kBAAQ,QAAE,QAAQ,CAAY,CAC5B,CACL,CACT;YACD,uCAAK,SAAS,EAAC,uDAAuD;gBACjE,UAAU,CAAC,CAAC,CAAC,CACV,8BAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC;oBACtC;wBACI,8BAAC,kBAAQ,IAAC,MAAM,QAAC,IAAI,EAAC,MAAM,EAAC,OAAO,QAAC,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,WAAW,CAAC,aAAK,CAAC,MAAM,CAAC,IACzG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CACpB,CACT,CACA,CACb,CAAC,CAAC,CAAC,CACA,8BAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;oBAC7D;wBACI,8BAAC,kBAAQ,IAAC,MAAM,QAAC,IAAI,EAAC,MAAM,EAAC,OAAO,QAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,CAAC,aAAK,CAAC,MAAM,CAAC,IACjG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAClB,CACT,CACA,CACb;gBAED,wCAAM,SAAS,EAAC,sCAAsC,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAK,CAAC,SAAS,EAAE,QAEjF;gBACP,8BAAC,iBAAO,IAAC,KAAK,EAAE,UAAU;oBACtB;wBACI,8BAAC,kBAAQ,IAAC,MAAM,QAAC,IAAI,EAAC,MAAM,EAAC,OAAO,QAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,WAAW,CAAC,aAAK,CAAC,MAAM,CAAC,IACzH,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CACpB,CACT,CACA,CACR,CACJ,CACP,CACN,CAAC;AACN,CAAC","sourcesContent":["import { BasketContext, FullPageEngineContext } from '@frontend/contexts';\nimport { useCurrentHotel, useGuestDateFormat } from '@frontend/hooks';\nimport { getFilteredBookingRateFees } from '@roomstay/core';\nimport React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } 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 const { guestDateFormat } = useGuestDateFormat();\n\n const { t } = useTranslation();\n const navigate = useNavigate();\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 const rowItemisedFees = hotel && row.getRate()?.getItemisedFees(getFilteredBookingRateFees(hotel.fees ?? []));\n\n const cancelEditBasketRowOnClick = () => basketContext.clearSelectedRates(); //Set the selected basket row to null, ensuring that no row is selected for editing.\n const editOnClickHandler = () => {\n if (currentStep !== getStepRoom()) {\n navigate(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 navigate(getStepRoom().getStepUrl());\n }\n basketContext.removeBasketRow(row);\n };\n\n const promoApplied = row.isPromoCodeValid();\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(guestDateFormat)}\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(guestDateFormat)}\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?.getAveragePriceBeforeDiscount(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 {rate && rate?.getTotalDiscount() > 0 && (\n <div className=\"u-marg-bottom--light u-flex\">\n <Text type={TextType.Small} color={textWhiteOr()}>\n {t(Translation.Misc.Discount)}\n </Text>\n <Text type={TextType.Small} color={textWhiteOr(Color.DarkGrey)}>\n <span className=\"u-ellip-overflow\">-</span>\n <Currency>{rate?.getTotalDiscount()}</Currency>\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 && !rowItemisedFees && (\n // Only show fees if we don't have itemised fees. If we have itemised fees they will be shown later.\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 <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={cancelEditBasketRowOnClick} 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"]}
@@ -270,7 +270,7 @@ function BasketContextWrapper(props) {
270
270
  }
271
271
  });
272
272
  }
273
- }, [signedInUser]);
273
+ }, [signedInUser, hotel === null || hotel === void 0 ? void 0 : hotel.memberOnlyPromoCode]);
274
274
  (0, react_1.useEffect)(() => {
275
275
  var _a;
276
276
  (_a = beContext.sessionProvider) === null || _a === void 0 ? void 0 : _a.updateSession({ basketRows: currentBasketRows });