@roomstay/frontend 2.6.59 → 2.6.61-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 (125) hide show
  1. package/dist/263.bundle.js +1 -0
  2. package/dist/449.bundle.js +1 -1
  3. package/dist/458.bundle.js +1 -0
  4. package/dist/537.bundle.js +1 -1
  5. package/dist/978.bundle.js +1 -1
  6. package/dist/main.bundle.js +1 -1
  7. package/dist/src/api/ReservationAPI.d.ts +18 -3
  8. package/dist/src/api/ReservationAPI.js +61 -31
  9. package/dist/src/api/ReservationAPI.js.map +1 -1
  10. package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +1 -0
  11. package/dist/src/components/generic/BookingWizard/BookingWizard.js +7 -1
  12. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
  13. package/dist/src/components/members/SignInModal/ExternalMemberModal.js +4 -4
  14. package/dist/src/components/members/SignInModal/ExternalMemberModal.js.map +1 -1
  15. package/dist/src/components/navigation/Header.js +3 -2
  16. package/dist/src/components/navigation/Header.js.map +1 -1
  17. package/dist/src/components/reservation/ReservationItem.js +1 -1
  18. package/dist/src/components/reservation/ReservationItem.js.map +1 -1
  19. package/dist/src/components/steps/addons/AddonCard.js +14 -14
  20. package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
  21. package/dist/src/components/steps/confirmation/RoomContactDetails.js +12 -12
  22. package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
  23. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js +11 -10
  24. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js.map +1 -1
  25. package/dist/src/components/steps/confirmation/StepConfirmationForm.js +11 -4
  26. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  27. package/dist/src/components/steps/confirmation/StepConfirmationImportantInformation.d.ts +7 -0
  28. package/dist/src/components/steps/confirmation/StepConfirmationImportantInformation.js +54 -0
  29. package/dist/src/components/steps/confirmation/StepConfirmationImportantInformation.js.map +1 -0
  30. package/dist/src/components/steps/hotel/HotelCard.js +22 -5
  31. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  32. package/dist/src/components/steps/room/AvailableUpgradesModal.js +1 -1
  33. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  34. package/dist/src/components/steps/room/ImageGallerySlider.js +5 -3
  35. package/dist/src/components/steps/room/ImageGallerySlider.js.map +1 -1
  36. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +2 -2
  37. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  38. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.d.ts +3 -1
  39. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +47 -21
  40. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
  41. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.d.ts +3 -1
  42. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +7 -6
  43. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
  44. package/dist/src/components/summary/BESummaryAddonRow.js +1 -1
  45. package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
  46. package/dist/src/components/summary/BESummaryRoomRow.js +2 -2
  47. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  48. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +2 -5
  49. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  50. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +109 -32
  51. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  52. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +1 -0
  53. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  54. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +18 -18
  55. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  56. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +10 -1
  57. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  58. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
  59. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +1 -0
  60. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  61. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +1 -0
  62. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -1
  63. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.d.ts +4 -0
  64. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.js.map +1 -1
  65. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.d.ts +28 -0
  66. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +206 -41
  67. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  68. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js +1 -0
  69. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js.map +1 -1
  70. package/dist/src/index.d.ts +2 -0
  71. package/dist/src/index.js +6 -2
  72. package/dist/src/index.js.map +1 -1
  73. package/dist/src/models/Addon/Addon.d.ts +6 -64
  74. package/dist/src/models/Addon/Addon.js +14 -28
  75. package/dist/src/models/Addon/Addon.js.map +1 -1
  76. package/dist/src/models/Api/HotelDTO.d.ts +1 -0
  77. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  78. package/dist/src/models/BasketAddonRow.js +3 -2
  79. package/dist/src/models/BasketAddonRow.js.map +1 -1
  80. package/dist/src/models/BasketRow.d.ts +3 -1
  81. package/dist/src/models/BasketRow.js +32 -2
  82. package/dist/src/models/BasketRow.js.map +1 -1
  83. package/dist/src/models/Client/Hotel/Hotel.d.ts +4 -2
  84. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  85. package/dist/src/models/RoomstaySession.d.ts +2 -0
  86. package/dist/src/models/RoomstaySession.js.map +1 -1
  87. package/dist/src/models/SearchParameters.d.ts +1 -0
  88. package/dist/src/models/SearchParameters.js.map +1 -1
  89. package/dist/src/models/UserProfile.d.ts +20 -20
  90. package/dist/src/models/UserProfile.js.map +1 -1
  91. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +2 -2
  92. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  93. package/dist/src/pages/findReservation/FindReservation.js +15 -4
  94. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  95. package/dist/src/pages/hotel/HotelInfo.js +1 -1
  96. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  97. package/dist/src/providers/FeatureProvider.js +4 -0
  98. package/dist/src/providers/FeatureProvider.js.map +1 -1
  99. package/dist/src/providers/feature/ConfirmationImportantInformationFeature.d.ts +10 -0
  100. package/dist/src/providers/feature/ConfirmationImportantInformationFeature.js +13 -0
  101. package/dist/src/providers/feature/ConfirmationImportantInformationFeature.js.map +1 -0
  102. package/dist/src/providers/feature/Feature.d.ts +2 -0
  103. package/dist/src/providers/feature/Feature.js +4 -0
  104. package/dist/src/providers/feature/Feature.js.map +1 -1
  105. package/dist/src/providers/feature/HotelGroupFeature.d.ts +6 -0
  106. package/dist/src/providers/feature/HotelGroupFeature.js +10 -0
  107. package/dist/src/providers/feature/HotelGroupFeature.js.map +1 -0
  108. package/dist/src/providers/storage/SessionProvider.js +2 -0
  109. package/dist/src/providers/storage/SessionProvider.js.map +1 -1
  110. package/dist/src/translations/Translation.d.ts +4 -0
  111. package/dist/src/translations/Translation.js +4 -0
  112. package/dist/src/translations/Translation.js.map +1 -1
  113. package/dist/src/translations/languages/en-gb.js +4 -0
  114. package/dist/src/translations/languages/en-gb.js.map +1 -1
  115. package/dist/src/util/EventsHelper.js +1 -1
  116. package/dist/src/util/EventsHelper.js.map +1 -1
  117. package/dist/src/util/TotalCalculator.js +2 -2
  118. package/dist/src/util/TotalCalculator.js.map +1 -1
  119. package/dist/test.bundle.js +1 -1
  120. package/dist/tests/offline/entry/config/hotelSpecDefault.js +1 -1
  121. package/dist/tests/offline/entry/config/hotelSpecDefault.js.map +1 -1
  122. package/dist/vendors.bundle.js +1 -1
  123. package/package.json +2 -2
  124. package/dist/493.bundle.js +0 -1
  125. package/dist/984.bundle.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InlineRoomMiniEngine.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAAyF;AACzF,4GAA+G;AAE/G,0FAAkE;AAMlE,MAAa,oBAAqB,SAAQ,uBAAsC;IAG5E,YAAY,gBAA6B,EAAE,QAAgB,EAAE,MAAmC;QAC5F,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,gCAAmB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEe,MAAM;;YAClB,IAAA,+DAAiC,EAAC,6BAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3H,CAAC;KAAA;CACJ;AAhBD,oDAgBC","sourcesContent":["import { BaseEngine, BaseEngineConfig, BookingEngineSource } from '@/engines/BaseEngine';\nimport { renderInlineRoomMiniEngineElement } from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nexport interface InlineRoomMiniEngineConfig extends BaseEngineConfig {\n company: ConfigCompany;\n}\n\nexport class InlineRoomMiniEngine extends BaseEngine<InlineRoomMiniEngineConfig> {\n private roomCode: string;\n\n constructor(bookingContainer: HTMLElement, roomCode: string, config?: InlineRoomMiniEngineConfig) {\n super(bookingContainer, config);\n this.source = BookingEngineSource.Inline;\n this.roomCode = roomCode;\n }\n\n public getRoomCode(): string {\n return this.roomCode;\n }\n\n protected async render() {\n renderInlineRoomMiniEngineElement(RoomstayThemeEngine.createElementOrReuseExisting('div', 'inline-mini-engine'), this);\n }\n}\n"]}
1
+ {"version":3,"file":"InlineRoomMiniEngine.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngine.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,qDAAyF;AACzF,4GAA+G;AAE/G,0FAAkE;AASlE,MAAa,oBAAqB,SAAQ,uBAAsC;IAG5E,YAAY,gBAA6B,EAAE,QAAgB,EAAE,MAAmC;QAC5F,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,gCAAmB,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEe,MAAM;;YAClB,IAAA,+DAAiC,EAAC,6BAAmB,CAAC,4BAA4B,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3H,CAAC;KAAA;CACJ;AAhBD,oDAgBC","sourcesContent":["import { ReactNode } from 'react';\n\nimport { BaseEngine, BaseEngineConfig, BookingEngineSource } from '@/engines/BaseEngine';\nimport { renderInlineRoomMiniEngineElement } from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\n\nexport interface InlineRoomMiniEngineConfig extends BaseEngineConfig {\n company: ConfigCompany;\n layout?: 'default' | 'card'; // Added layout, Default: default\n policy?: ReactNode;\n priceDescription?: ReactNode;\n}\n\nexport class InlineRoomMiniEngine extends BaseEngine<InlineRoomMiniEngineConfig> {\n private roomCode: string;\n\n constructor(bookingContainer: HTMLElement, roomCode: string, config?: InlineRoomMiniEngineConfig) {\n super(bookingContainer, config);\n this.source = BookingEngineSource.Inline;\n this.roomCode = roomCode;\n }\n\n public getRoomCode(): string {\n return this.roomCode;\n }\n\n protected async render() {\n renderInlineRoomMiniEngineElement(RoomstayThemeEngine.createElementOrReuseExisting('div', 'inline-mini-engine'), this);\n }\n}\n"]}
@@ -1,6 +1,34 @@
1
+ import React from 'react';
1
2
  import type { InlineRoomMiniEngine } from './InlineRoomMiniEngine';
2
3
  export interface InlineRoomMiniEngineElementProps {
3
4
  engine: InlineRoomMiniEngine;
4
5
  }
5
6
  export default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps): JSX.Element;
6
7
  export declare const renderInlineRoomMiniEngineElement: (container: Element, engine: InlineRoomMiniEngine) => void;
8
+ export declare const GuestSelectorCustom: ({ maxAdults, maxChildren, maxInfants, defaultValue, onChange, disableChild, showInfants, disableRoom, applyButton, promoCodeConfig, }: {
9
+ maxAdults?: number | undefined;
10
+ maxChildren?: number | undefined;
11
+ maxInfants?: number | undefined;
12
+ defaultValue?: {
13
+ adults?: number | undefined;
14
+ children?: number | undefined;
15
+ infants?: number | undefined;
16
+ room?: number | undefined;
17
+ } | undefined;
18
+ onChange?: ((params: {
19
+ adults: number;
20
+ children: number;
21
+ infants: number;
22
+ room: number;
23
+ }) => void) | undefined;
24
+ disableChild?: boolean | undefined;
25
+ showInfants?: boolean | undefined;
26
+ disableRoom?: boolean | undefined;
27
+ applyButton?: boolean | undefined;
28
+ promoCodeConfig?: {
29
+ promoCode: string;
30
+ setPromoCode: React.Dispatch<React.SetStateAction<string>>;
31
+ onChange: (val: any) => void;
32
+ valid?: boolean | undefined;
33
+ } | undefined;
34
+ }) => JSX.Element;
@@ -35,9 +35,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.renderInlineRoomMiniEngineElement = void 0;
38
+ exports.GuestSelectorCustom = exports.renderInlineRoomMiniEngineElement = void 0;
39
39
  const contexts_1 = require("../../contexts/index.js");
40
40
  const hooks_1 = require("../../hooks/index.js");
41
+ const classnames_1 = __importDefault(require("classnames"));
41
42
  const ErrorContext_1 = require("contexts/ErrorContext");
42
43
  const NotificationContext_1 = require("contexts/NotificationContext");
43
44
  const dayjs_1 = __importDefault(require("dayjs"));
@@ -54,6 +55,7 @@ const BookNowPayLaterInfoBlock_1 = require("../../components/generic/BookNowPayL
54
55
  const FloatingDatePicker_1 = __importDefault(require("../../components/generic/date/FloatingDatePicker"));
55
56
  const Icon_1 = __importStar(require("../../components/generic/Icon/Icon"));
56
57
  const LargeLoader_1 = __importDefault(require("../../components/generic/loader/LargeLoader"));
58
+ const NumberIncrement_1 = __importDefault(require("../../components/generic/NumberIncrement"));
57
59
  const Overlay_1 = require("../../components/generic/Overlay/Overlay");
58
60
  const PromoCodeInput_1 = __importDefault(require("../../components/generic/PromoCodeInput"));
59
61
  const Select_1 = require("../../components/generic/Select/Select");
@@ -70,13 +72,19 @@ const RoomstayThemeEngine_1 = __importDefault(require("../../providers/RoomstayT
70
72
  const Color_1 = require("../../util/Color");
71
73
  const DataLayer_1 = __importStar(require("../../util/DataLayer"));
72
74
  const StringHelper_1 = __importDefault(require("../../util/StringHelper"));
75
+ const InlineRoomMiniEngine_module_scss_1 = __importDefault(require("./InlineRoomMiniEngine.module.scss"));
73
76
  function InlineRoomMiniEngineElement(props) {
74
- var _a;
77
+ var _a, _b, _c;
78
+ const { layout = 'default', policy, priceDescription } = props.engine.getConfig();
79
+ const isCardLayout = layout === 'card';
75
80
  const { hotel } = (0, hooks_1.useCurrentHotel)();
76
81
  const { memberNumber } = (0, useSignedInMember_1.useSignedInMember)();
77
82
  const basketContext = (0, react_1.useContext)(contexts_1.BasketContext);
78
83
  const ccx = (0, react_1.useContext)(contexts_1.CompanyContext);
79
84
  const row = basketContext.currentBasketRows[0];
85
+ if (row) {
86
+ row.setRoomCode(props.engine.getRoomCode());
87
+ }
80
88
  const [isLoading, setLoading] = (0, react_1.useState)(true);
81
89
  const [ranFirstLoad, setRanFirstLoad] = (0, react_1.useState)(false);
82
90
  const [rooms, setRooms] = (0, react_1.useState)([]);
@@ -155,6 +163,7 @@ function InlineRoomMiniEngineElement(props) {
155
163
  numChildren: row === null || row === void 0 ? void 0 : row.getChildren(),
156
164
  numRooms: 1,
157
165
  promoCode: promoCode,
166
+ roomCode: props.engine.getRoomCode(),
158
167
  };
159
168
  const eventRooms = (_f = rooms === null || rooms === void 0 ? void 0 : rooms.map((room) => {
160
169
  var _a, _b;
@@ -203,7 +212,9 @@ function InlineRoomMiniEngineElement(props) {
203
212
  DataLayer_1.default.instance.sendInteraction('Guests', DataLayer_1.InteractionType.NUMBER_INPUT, DataLayer_1.InteractionStep.ROOMS);
204
213
  row.setChildren(children);
205
214
  }
206
- basketContext.updateBasketRow(row);
215
+ if (!isCardLayout) {
216
+ basketContext.updateBasketRow(row);
217
+ }
207
218
  };
208
219
  const updateDateValues = (startDate, endDate) => {
209
220
  if (startDate && endDate) {
@@ -219,9 +230,12 @@ function InlineRoomMiniEngineElement(props) {
219
230
  }
220
231
  const isCompact = bounds.width < 1000 ? '--compact' : '';
221
232
  const findRoomsOnClick = () => __awaiter(this, void 0, void 0, function* () {
222
- var _b;
233
+ var _d;
234
+ if (isCardLayout) {
235
+ basketContext.updateBasketRow(row);
236
+ }
223
237
  setLoading(true);
224
- setRooms((_b = (yield BookingAPI_1.default.Availability.fetchAvailabilityData(row, hotel === null || hotel === void 0 ? void 0 : hotel.hotelID, memberNumber))) === null || _b === void 0 ? void 0 : _b.filter((room) => room.code === props.engine.getRoomCode()));
238
+ setRooms((_d = (yield BookingAPI_1.default.Availability.fetchAvailabilityData(row, hotel === null || hotel === void 0 ? void 0 : hotel.hotelID, memberNumber))) === null || _d === void 0 ? void 0 : _d.filter((room) => room.code === props.engine.getRoomCode()));
225
239
  setLoading(false);
226
240
  });
227
241
  const getButtonLabelHandler = () => {
@@ -233,6 +247,12 @@ function InlineRoomMiniEngineElement(props) {
233
247
  const updateNumberOfChildrenOnChange = (value) => {
234
248
  updatePeopleValues({ children: +value });
235
249
  };
250
+ const defaultGuestValue = {
251
+ adults: (_a = row === null || row === void 0 ? void 0 : row.getAdults()) !== null && _a !== void 0 ? _a : 1,
252
+ children: (_b = row === null || row === void 0 ? void 0 : row.getChildren()) !== null && _b !== void 0 ? _b : 0,
253
+ infants: 0,
254
+ room: 1,
255
+ };
236
256
  const updatePromoCode = (code) => {
237
257
  DataLayer_1.default.instance.sendInteraction('Promo Code updated', DataLayer_1.InteractionType.FORM_FIELD, DataLayer_1.InteractionStep.ROOMS);
238
258
  if (row) {
@@ -272,39 +292,98 @@ function InlineRoomMiniEngineElement(props) {
272
292
  const changePromoCode = (val) => {
273
293
  updatePromoCode(val);
274
294
  };
275
- const maxOccupancy = (_a = hotel === null || hotel === void 0 ? void 0 : hotel.maxOccupancy) !== null && _a !== void 0 ? _a : 1;
295
+ const maxOccupancy = (_c = hotel === null || hotel === void 0 ? void 0 : hotel.maxOccupancy) !== null && _c !== void 0 ? _c : 1;
296
+ const DatePickerSelector = () => {
297
+ const inner = () => {
298
+ if (isCardLayout) {
299
+ return (react_1.default.createElement("div", { className: (0, classnames_1.default)('u-cursor-pointer', InlineRoomMiniEngine_module_scss_1.default['rs-inline-filter-item-dates-inner']) },
300
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(InlineRoomMiniEngine_module_scss_1.default['card']) },
301
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['image'] },
302
+ react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Calendar })),
303
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['content'] },
304
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Body }, t(Translation_1.Translation.Misc.CheckIn)),
305
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['sub-title'], type: Text_1.TextType.Body, color: Color_1.Color.Navy }, (row === null || row === void 0 ? void 0 : row.getArrivalDate()) ? row.getArrivalDate() : t(Translation_1.Translation.Misc.CheckInPlaceHolder)))),
306
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(InlineRoomMiniEngine_module_scss_1.default['card']) },
307
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['image'] },
308
+ react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Calendar })),
309
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['content'] },
310
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Body }, t(Translation_1.Translation.Misc.CheckOut)),
311
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['sub-title'] }, (row === null || row === void 0 ? void 0 : row.getDepartureDate()) ? row.getDepartureDate() : t(Translation_1.Translation.Misc.CheckOutPlaceHolder))))));
312
+ }
313
+ else {
314
+ return (react_1.default.createElement("div", { className: "u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer" },
315
+ react_1.default.createElement(Text_1.default, { color: (row === null || row === void 0 ? void 0 : row.getArrivalDate()) ? Color_1.Color.Accent : Color_1.Color.Graphite, className: "u-mw-75 u-align-center", bold: !!(row === null || row === void 0 ? void 0 : row.getArrivalDate()) },
316
+ react_1.default.createElement("span", null, (row === null || row === void 0 ? void 0 : row.getArrivalDate()) ? row.getArrivalDate() : 'Arrival Date')),
317
+ react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.ArrowRight2 }),
318
+ react_1.default.createElement(Text_1.default, { color: (row === null || row === void 0 ? void 0 : row.getDepartureDate()) ? Color_1.Color.Accent : Color_1.Color.Graphite, className: "u-marg-right u-mw-75 u-align-center", bold: !!(row === null || row === void 0 ? void 0 : row.getDepartureDate()) },
319
+ react_1.default.createElement("span", null, (row === null || row === void 0 ? void 0 : row.getDepartureDate()) ? row.getDepartureDate() : 'Departure Date'))));
320
+ }
321
+ };
322
+ return (react_1.default.createElement(FloatingDatePicker_1.default, { startDate: row === null || row === void 0 ? void 0 : row.getStartDate(), selectedDateChanged: updateDateValues, className: (0, classnames_1.default)('rs-inline-filter-item-dates', {
323
+ 'u-w-100@xl- room-builder-progress--value u-marg-left--none ': !isCardLayout,
324
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-filter-item-dates']]: isCardLayout,
325
+ }) },
326
+ react_1.default.createElement(Tooltip_1.default, { title: t(Translation_1.Translation.Step.Date.SelectArrivalAndDepartureDatesByClickingHere), wrapperClasses: "u-w-100@xl-" }, inner())));
327
+ };
328
+ const GuestSelector = () => {
329
+ var _a, _b, _c, _d, _e, _f, _g;
330
+ if (isCardLayout) {
331
+ const numChildren = ((_a = row === null || row === void 0 ? void 0 : row.getChildren) === null || _a === void 0 ? void 0 : _a.call(row)) || 0;
332
+ const maxAdults = maxOccupancy - numChildren;
333
+ const maxChildren = maxOccupancy + 1 - (((_b = row === null || row === void 0 ? void 0 : row.getAdults) === null || _b === void 0 ? void 0 : _b.call(row)) || 0);
334
+ return (react_1.default.createElement(exports.GuestSelectorCustom, { maxAdults: maxAdults, maxChildren: maxChildren, onChange: (newValue) => {
335
+ updatePeopleValues({
336
+ adults: +newValue.adults,
337
+ children: +newValue.children,
338
+ });
339
+ }, disableChild: false, showInfants: false, disableRoom: true, applyButton: false, defaultValue: defaultGuestValue, promoCodeConfig: {
340
+ promoCode: (_c = basketContext.selectedBasketRow) === null || _c === void 0 ? void 0 : _c.getPromoCode(),
341
+ setPromoCode,
342
+ onChange: changePromoCode,
343
+ valid: ((_d = basketContext.selectedBasketRow) === null || _d === void 0 ? void 0 : _d.getPromoCodeStatus()) !== 'new' ? ((_e = basketContext.selectedBasketRow) === null || _e === void 0 ? void 0 : _e.getPromoCodeStatus()) === 'valid' : undefined,
344
+ } }));
345
+ }
346
+ else {
347
+ return (react_1.default.createElement(react_1.default.Fragment, null,
348
+ react_1.default.createElement(Tooltip_1.default, { title: t(Translation_1.Translation.Step.Date.UpdateAdults), wrapperClasses: "u-w-100@xl- rs-inline-filter-item-adult" },
349
+ react_1.default.createElement("div", { className: "room-builder-progress--value --mw-l u-flex justify-content-center " },
350
+ react_1.default.createElement(Select_1.Select, { nativeOnMobile: true, options: [...Array(maxOccupancy - ((row === null || row === void 0 ? void 0 : row.getChildren()) ? row.getChildren() : 0))].map((v, value) => {
351
+ value += 1;
352
+ return {
353
+ text: StringHelper_1.default.pluralWithDictAndCount(value, Translation_1.Translation.Step.Date.Adult, t),
354
+ value: value.toString(),
355
+ };
356
+ }), value: (_f = row === null || row === void 0 ? void 0 : row.getAdults()) === null || _f === void 0 ? void 0 : _f.toString(), onChange: updateNumberOfAdultsOnChange, keyName: "value", labelName: "text" }))),
357
+ react_1.default.createElement(Tooltip_1.default, { title: t(Translation_1.Translation.Step.Date.UpdateChildren), wrapperClasses: "u-w-100@xl- rs-inline-filter-item-children" },
358
+ react_1.default.createElement("div", { className: "room-builder-progress--value --mw-l u-flex justify-content-center" },
359
+ react_1.default.createElement(Select_1.Select, { nativeOnMobile: true, options: [...Array(maxOccupancy + 1 - ((row === null || row === void 0 ? void 0 : row.getAdults()) ? row.getAdults() : 0))].map((v, value) => {
360
+ return {
361
+ text: StringHelper_1.default.pluralWithDictAndCount(value, Translation_1.Translation.Step.Date.Child, t),
362
+ value: value.toString(),
363
+ };
364
+ }), value: (_g = row === null || row === void 0 ? void 0 : row.getChildren()) === null || _g === void 0 ? void 0 : _g.toString(), onChange: updateNumberOfChildrenOnChange, keyName: "value", labelName: "text" })))));
365
+ }
366
+ };
276
367
  return (0, react_1.useMemo)(() => {
277
- var _a, _b, _c, _d, _e;
368
+ var _a, _b, _c;
278
369
  return (react_1.default.createElement(react_1.default.Fragment, null,
279
- react_1.default.createElement("div", { className: `room-builder-progress ${isCompact} rs-inline-container` },
280
- react_1.default.createElement("div", { className: "u-flex w-100 flex-wrap room-builder-progress--item --current rs-inline-filter", ref: ref },
281
- react_1.default.createElement("div", { className: "u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-" },
282
- react_1.default.createElement(FloatingDatePicker_1.default, { startDate: row === null || row === void 0 ? void 0 : row.getStartDate(), selectedDateChanged: updateDateValues, className: "u-w-100@xl- room-builder-progress--value u-marg-left--none rs-inline-filter-item-dates" },
283
- react_1.default.createElement(Tooltip_1.default, { title: t(Translation_1.Translation.Step.Date.SelectArrivalAndDepartureDatesByClickingHere), wrapperClasses: "u-w-100@xl-" },
284
- react_1.default.createElement("div", { className: "u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer" },
285
- react_1.default.createElement(Text_1.default, { color: (row === null || row === void 0 ? void 0 : row.getArrivalDate()) ? Color_1.Color.Accent : Color_1.Color.Graphite, className: "u-mw-75 u-align-center", bold: !!(row === null || row === void 0 ? void 0 : row.getArrivalDate()) },
286
- react_1.default.createElement("span", null, (row === null || row === void 0 ? void 0 : row.getArrivalDate()) ? row.getArrivalDate() : 'Arrival Date')),
287
- react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.ArrowRight2 }),
288
- react_1.default.createElement(Text_1.default, { color: (row === null || row === void 0 ? void 0 : row.getDepartureDate()) ? Color_1.Color.Accent : Color_1.Color.Graphite, className: "u-marg-right u-mw-75 u-align-center", bold: !!(row === null || row === void 0 ? void 0 : row.getDepartureDate()) },
289
- react_1.default.createElement("span", null, (row === null || row === void 0 ? void 0 : row.getDepartureDate()) ? row.getDepartureDate() : 'Departure Date'))))),
290
- react_1.default.createElement(Tooltip_1.default, { title: t(Translation_1.Translation.Step.Date.UpdateAdults), wrapperClasses: "u-w-100@xl- rs-inline-filter-item-adult" },
291
- react_1.default.createElement("div", { className: "room-builder-progress--value --mw-l u-flex justify-content-center " },
292
- react_1.default.createElement(Select_1.Select, { nativeOnMobile: true, options: [...Array(maxOccupancy - ((row === null || row === void 0 ? void 0 : row.getChildren()) ? row.getChildren() : 0))].map((v, value) => {
293
- value += 1;
294
- return {
295
- text: StringHelper_1.default.pluralWithDictAndCount(value, Translation_1.Translation.Step.Date.Adult, t),
296
- value: value.toString(),
297
- };
298
- }), value: (_a = row === null || row === void 0 ? void 0 : row.getAdults()) === null || _a === void 0 ? void 0 : _a.toString(), onChange: updateNumberOfAdultsOnChange, keyName: "value", labelName: "text" }))),
299
- react_1.default.createElement(Tooltip_1.default, { title: t(Translation_1.Translation.Step.Date.UpdateChildren), wrapperClasses: "u-w-100@xl- rs-inline-filter-item-children" },
300
- react_1.default.createElement("div", { className: "room-builder-progress--value --mw-l u-flex justify-content-center" },
301
- react_1.default.createElement(Select_1.Select, { nativeOnMobile: true, options: [...Array(maxOccupancy + 1 - ((row === null || row === void 0 ? void 0 : row.getAdults()) ? row.getAdults() : 0))].map((v, value) => {
302
- return {
303
- text: StringHelper_1.default.pluralWithDictAndCount(value, Translation_1.Translation.Step.Date.Child, t),
304
- value: value.toString(),
305
- };
306
- }), value: (_b = row === null || row === void 0 ? void 0 : row.getChildren()) === null || _b === void 0 ? void 0 : _b.toString(), onChange: updateNumberOfChildrenOnChange, keyName: "value", labelName: "text" }))),
307
- react_1.default.createElement(Tooltip_1.default, { title: promoCodeTooltip, wrapperClasses: "u-w-100@xl- rs-inline-filter-item-promo" },
370
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(`room-builder-progress ${isCompact} rs-inline-container`, {
371
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-container']]: isCardLayout,
372
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-container--card-layout']]: isCardLayout,
373
+ }) },
374
+ react_1.default.createElement("div", { className: (0, classnames_1.default)('rs-inline-filter-container', {
375
+ 'u-flex w-100 flex-wrap room-builder-progress--item --current': !isCardLayout,
376
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-filter-container']]: isCardLayout,
377
+ }), ref: ref },
378
+ react_1.default.createElement("div", { className: (0, classnames_1.default)('rs-inline-filter-inner', {
379
+ 'u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-': !isCardLayout,
380
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-filter-inner']]: isCardLayout,
381
+ }) },
382
+ react_1.default.createElement(DatePickerSelector, null),
383
+ react_1.default.createElement(GuestSelector, null),
384
+ react_1.default.createElement(Tooltip_1.default, { title: promoCodeTooltip, wrapperClasses: (0, classnames_1.default)('u-w-100@xl- rs-inline-filter-item-promo', {
385
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-filter-item-promo']]: isCardLayout,
386
+ }) },
308
387
  react_1.default.createElement("div", { className: "room-builder-progress--value u-cursor-pointer", ref: thisElement, onClick: openPromoModalOnClick },
309
388
  react_1.default.createElement("div", { className: "u-flex align-items-center justify-content-center u-w-100@xl-" },
310
389
  react_1.default.createElement(Text_1.default, { className: "u-pad-right--light", type: Text_1.TextType.Body, color: (row === null || row === void 0 ? void 0 : row.getPromoCode()) ? row === null || row === void 0 ? void 0 : row.getPromoCodeColour() : Color_1.Color.Navy }, (row === null || row === void 0 ? void 0 : row.getPromoCode()) ? row === null || row === void 0 ? void 0 : row.getPromoCode() : 'Promo Code'),
@@ -312,17 +391,24 @@ function InlineRoomMiniEngineElement(props) {
312
391
  react_1.default.createElement(Overlay_1.Overlay, { open: isPromoModalOpen, container: RoomstayThemeEngine_1.default.EngineContainer, followElement: thisElement.current, onClose: setPromoCodeOnClose },
313
392
  react_1.default.createElement("div", { className: "u-pad--heavy" },
314
393
  react_1.default.createElement("div", null,
315
- react_1.default.createElement(PromoCodeInput_1.default, { value: (_c = basketContext.selectedBasketRow) === null || _c === void 0 ? void 0 : _c.getPromoCode(), onChange: changePromoCode, valid: ((_d = basketContext.selectedBasketRow) === null || _d === void 0 ? void 0 : _d.getPromoCodeStatus()) !== 'new'
316
- ? ((_e = basketContext.selectedBasketRow) === null || _e === void 0 ? void 0 : _e.getPromoCodeStatus()) === 'valid'
394
+ react_1.default.createElement(PromoCodeInput_1.default, { value: (_a = basketContext.selectedBasketRow) === null || _a === void 0 ? void 0 : _a.getPromoCode(), onChange: changePromoCode, valid: ((_b = basketContext.selectedBasketRow) === null || _b === void 0 ? void 0 : _b.getPromoCodeStatus()) !== 'new'
395
+ ? ((_c = basketContext.selectedBasketRow) === null || _c === void 0 ? void 0 : _c.getPromoCodeStatus()) === 'valid'
317
396
  : undefined })),
318
397
  react_1.default.createElement("div", { className: "u-flex justify-content-end align-items-center u-marg-top" },
319
398
  react_1.default.createElement(BEButton_1.default, { isText: true, size: "small", onClick: cancelPromoPopupOnClick }, t(Translation_1.Translation.Misc.Cancel)))))),
320
- react_1.default.createElement("div", { className: `u-flex flex-xl-nowrap flex-row ${isCompact ? 'w-100' : ''}` },
399
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(`u-flex flex-xl-nowrap flex-row rs-inline-filter-button`, {
400
+ 'w-100': isCompact,
401
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-filter-button']]: isCardLayout,
402
+ }) },
321
403
  react_1.default.createElement(BEButton_1.default, { filled: true, primary: true, isLoading: isLoading, wide: isCompact !== '', onClick: findRoomsOnClick }, t(Translation_1.Translation.Misc.CheckRates)))),
322
- react_1.default.createElement("div", { className: "u-border-rounded rs-inline-content" }, !isLoading ? (react_1.default.createElement(AutoAutoHeight_1.default, { open: !isLoading },
404
+ react_1.default.createElement("div", { className: (0, classnames_1.default)('u-border-rounded rs-inline-content', {
405
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-content']]: isCardLayout,
406
+ }) }, !isLoading ? (react_1.default.createElement(AutoAutoHeight_1.default, { open: !isLoading },
323
407
  react_1.default.createElement(react_1.default.Fragment, null,
324
408
  react_1.default.createElement(BookNowPayLaterInfoBlock_1.BookNowPayLaterInfoBlock, null),
325
- rooms.length > 0 ? (react_1.default.createElement(RoomRates_1.default, { classNames: "rs-inline-content-list", featuredRates: featuredRates, rates: standardRates, roomCode: rooms[0].code, getButtonLabel: getButtonLabelHandler, onAddToBasketOverride: onAddToBasketOverrideHandler })) : (react_1.default.createElement(RatesNotFoundBlock_1.default, null))))) : (react_1.default.createElement(LargeLoader_1.default, null))))));
409
+ rooms.length > 0 ? (react_1.default.createElement(RoomRates_1.default, { classNames: (0, classnames_1.default)('rs-inline-content-list', {
410
+ [InlineRoomMiniEngine_module_scss_1.default['rs-inline-content-list']]: isCardLayout,
411
+ }), featuredRates: featuredRates, rates: standardRates, roomCode: rooms[0].code, getButtonLabel: getButtonLabelHandler, onAddToBasketOverride: onAddToBasketOverrideHandler, isCardLayout: isCardLayout, policy: policy, priceDescription: priceDescription })) : (react_1.default.createElement(RatesNotFoundBlock_1.default, null))))) : (react_1.default.createElement(LargeLoader_1.default, null))))));
326
412
  }, [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]);
327
413
  }
328
414
  exports.default = InlineRoomMiniEngineElement;
@@ -339,4 +425,83 @@ const renderInlineRoomMiniEngineElement = (container, engine) => {
339
425
  react_1.default.createElement(InlineRoomMiniEngineElement, { engine: engine }))))))), container);
340
426
  };
341
427
  exports.renderInlineRoomMiniEngineElement = renderInlineRoomMiniEngineElement;
428
+ const GuestSelectorCustom = ({ maxAdults, maxChildren, maxInfants = 10, defaultValue, onChange, disableChild, showInfants, disableRoom, applyButton, promoCodeConfig, }) => {
429
+ var _a, _b, _c, _d;
430
+ const { t } = (0, react_i18next_1.useTranslation)();
431
+ const ref = react_1.default.useRef(null);
432
+ const targetRef = (0, react_1.useRef)(null);
433
+ const [adults, setAdults] = (0, react_1.useState)((_a = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.adults) !== null && _a !== void 0 ? _a : 1);
434
+ const [children, setChildren] = (0, react_1.useState)((_b = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.children) !== null && _b !== void 0 ? _b : 0);
435
+ const [infants, setInfants] = (0, react_1.useState)((_c = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.infants) !== null && _c !== void 0 ? _c : 0);
436
+ const [room, setRoom] = (0, react_1.useState)((_d = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.room) !== null && _d !== void 0 ? _d : 1);
437
+ const [open, setOpen] = (0, react_1.useState)(false);
438
+ const onChangeAdults = (newValue) => {
439
+ setAdults(newValue);
440
+ onChange === null || onChange === void 0 ? void 0 : onChange({ adults: newValue, children: children, infants: infants, room: room });
441
+ };
442
+ const onChangeChildren = (newValue) => {
443
+ setChildren(newValue);
444
+ onChange === null || onChange === void 0 ? void 0 : onChange({ adults: adults, children: newValue, infants: infants, room: room });
445
+ };
446
+ const onChangeInfants = (newValue) => {
447
+ setInfants(newValue);
448
+ onChange === null || onChange === void 0 ? void 0 : onChange({ adults: adults, children: children, infants: newValue, room: room });
449
+ };
450
+ const onChangeRoom = (newValue) => {
451
+ setRoom(newValue);
452
+ onChange === null || onChange === void 0 ? void 0 : onChange({ adults: adults, children: children, infants: infants, room: newValue });
453
+ };
454
+ const inner = () => {
455
+ return (react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['popper--box'] },
456
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['popper--content'], ref: ref },
457
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['row-wrapper'] },
458
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.row },
459
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(adults, 'Adult', t)),
460
+ react_1.default.createElement(NumberIncrement_1.default, { number: adults, min: 1, max: maxAdults, onChange: (value) => onChangeAdults(value), textSize: Text_1.TextType.Small }))),
461
+ disableChild ? null : (react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['row-wrapper'] },
462
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.divider }),
463
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.row },
464
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(children, 'Child', t)),
465
+ react_1.default.createElement(NumberIncrement_1.default, { number: children, min: 0, max: maxChildren, onChange: (value) => onChangeChildren(value), textSize: Text_1.TextType.Small })))),
466
+ showInfants ? (react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['row-wrapper'] },
467
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.divider }),
468
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.row },
469
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(infants, 'Infant', t)),
470
+ react_1.default.createElement(NumberIncrement_1.default, { number: infants, min: 0, onChange: (value) => onChangeInfants(value), textSize: Text_1.TextType.Small })),
471
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.divider }))) : null,
472
+ disableRoom ? null : (react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['row-wrapper'] },
473
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.divider }),
474
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.row },
475
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(room, 'Room', t)),
476
+ react_1.default.createElement(NumberIncrement_1.default, { number: room, min: 1, max: 10, onChange: (value) => onChangeRoom(value), textSize: Text_1.TextType.Small })))),
477
+ promoCodeConfig ? (react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['row-wrapper'] },
478
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default.divider }),
479
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(InlineRoomMiniEngine_module_scss_1.default.row) },
480
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Small }, t(Translation_1.Translation.Misc.Promocode)),
481
+ react_1.default.createElement(PromoCodeInput_1.default, { className: InlineRoomMiniEngine_module_scss_1.default.promo, value: promoCodeConfig.promoCode, onChange: promoCodeConfig.onChange, valid: promoCodeConfig.valid })))) : null)));
482
+ };
483
+ const content = () => {
484
+ return (react_1.default.createElement(Overlay_1.Overlay, { offset: [0, 6], usePortal: false, followElement: targetRef.current, placement: "top-start", strategy: "absolute", open: open, onClose: () => setOpen === null || setOpen === void 0 ? void 0 : setOpen(false), className: InlineRoomMiniEngine_module_scss_1.default.popper, hideStyles: true }, inner()));
485
+ };
486
+ const getValueAsText = () => {
487
+ const parts = [StringHelper_1.default.pluralWithCount(adults, 'Adult', t)];
488
+ if (children > 0) {
489
+ parts.push(StringHelper_1.default.pluralWithCount(children, 'Child', t));
490
+ }
491
+ if (infants > 0) {
492
+ parts.push(StringHelper_1.default.pluralWithCount(infants, 'Infant', t));
493
+ }
494
+ return parts.join(' - ');
495
+ };
496
+ return (react_1.default.createElement("div", { ref: targetRef, className: (0, classnames_1.default)('u-cursor-pointer', 'rs-inline-filter-item-guest', InlineRoomMiniEngine_module_scss_1.default['rs-inline-filter-item-guest']) },
497
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(InlineRoomMiniEngine_module_scss_1.default['card']), onClick: () => setOpen === null || setOpen === void 0 ? void 0 : setOpen(!open) },
498
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['image'] },
499
+ react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.People })),
500
+ react_1.default.createElement("div", { className: InlineRoomMiniEngine_module_scss_1.default['content'] },
501
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['title'], type: Text_1.TextType.Body }, t(Translation_1.Translation.Misc.Guests)),
502
+ react_1.default.createElement(Text_1.default, { className: InlineRoomMiniEngine_module_scss_1.default['sub-title'], type: Text_1.TextType.Body, color: Color_1.Color.Navy }, getValueAsText())),
503
+ react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Dropdown })),
504
+ content()));
505
+ };
506
+ exports.GuestSelectorCustom = GuestSelectorCustom;
342
507
  //# sourceMappingURL=InlineRoomMiniEngineElement.js.map