@roomstay/frontend 2.6.69 → 2.6.70
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.
- package/dist/279.bundle.js +1 -1
- package/dist/288.bundle.js +1 -1
- package/dist/370.bundle.js +1 -1
- package/dist/430.bundle.js +1 -0
- package/dist/439.bundle.js +1 -0
- package/dist/537.bundle.js +1 -1
- package/dist/659.bundle.js +1 -0
- package/dist/903.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/animations/AutoAutoHeight.d.ts +1 -0
- package/dist/src/animations/AutoAutoHeight.js +5 -3
- package/dist/src/animations/AutoAutoHeight.js.map +1 -1
- package/dist/src/api/AvailabilityAPI.js +3 -6
- package/dist/src/api/AvailabilityAPI.js.map +1 -1
- package/dist/src/api/HotelAPI.d.ts +1 -1
- package/dist/src/api/HotelAPI.js +1 -1
- package/dist/src/api/HotelAPI.js.map +1 -1
- package/dist/src/api/ReservationAPI.d.ts +5 -0
- package/dist/src/api/ReservationAPI.js +31 -7
- package/dist/src/api/ReservationAPI.js.map +1 -1
- package/dist/src/components/generic/GroupedCheckInOutTimes/GroupedCheckInOutTimes.d.ts +14 -0
- package/dist/src/components/generic/GroupedCheckInOutTimes/GroupedCheckInOutTimes.js +49 -0
- package/dist/src/components/generic/GroupedCheckInOutTimes/GroupedCheckInOutTimes.js.map +1 -0
- package/dist/src/components/generic/date/DatePicker.js +6 -5
- package/dist/src/components/generic/date/DatePicker.js.map +1 -1
- package/dist/src/components/reservation/ReservationItem.js +15 -20
- package/dist/src/components/reservation/ReservationItem.js.map +1 -1
- package/dist/src/components/steps/confirmation/MastercardPaymentMethod.d.ts +27 -0
- package/dist/src/components/steps/confirmation/MastercardPaymentMethod.js +75 -0
- package/dist/src/components/steps/confirmation/MastercardPaymentMethod.js.map +1 -0
- package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js +4 -15
- package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js.map +1 -1
- package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
- package/dist/src/components/steps/room/RoomList.js +17 -2
- package/dist/src/components/steps/room/RoomList.js.map +1 -1
- package/dist/src/components/steps/room/StepRoomHotelDetails.js +4 -15
- package/dist/src/components/steps/room/StepRoomHotelDetails.js.map +1 -1
- package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js +19 -2
- package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/RoomDetails.js +6 -6
- package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.d.ts +5 -0
- package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.js +83 -0
- package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.js.map +1 -0
- package/dist/src/components/summary/BEMobileSummaryModal.js +4 -15
- package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextType.d.ts +1 -0
- package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +7 -0
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +28 -19
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +14 -4
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
- package/dist/src/contexts/HotelOverridesContext.js +4 -0
- package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +2 -3
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
- package/dist/src/handlers/payment/MastercardPaymentHandler.d.ts +2 -0
- package/dist/src/handlers/payment/MastercardPaymentHandler.js +41 -0
- package/dist/src/handlers/payment/MastercardPaymentHandler.js.map +1 -0
- package/dist/src/handlers/payment/PaymentHandler.d.ts +4 -0
- package/dist/src/handlers/payment/PaymentHandler.js.map +1 -1
- package/dist/src/hooks/useCalendarNightStay.d.ts +2 -2
- package/dist/src/hooks/useCalendarNightStay.js +5 -4
- package/dist/src/hooks/useCalendarNightStay.js.map +1 -1
- package/dist/src/models/Api/HotelDTO.d.ts +3 -1
- package/dist/src/models/Api/HotelDTO.js.map +1 -1
- package/dist/src/models/Api/HotelOverrideDTO.d.ts +1 -0
- package/dist/src/models/Api/HotelOverrideDTO.js.map +1 -1
- package/dist/src/models/Api/ReservationsDTO.d.ts +2 -25
- package/dist/src/models/Api/ReservationsDTO.js.map +1 -1
- package/dist/src/models/Client/Hotel/Hotel.d.ts +1 -0
- package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
- package/dist/src/models/Room/Room.d.ts +1 -0
- package/dist/src/models/Room/Room.js +3 -0
- package/dist/src/models/Room/Room.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +6 -15
- package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
- package/dist/src/providers/FilterProvider.js +1 -4
- package/dist/src/providers/FilterProvider.js.map +1 -1
- package/dist/src/translations/Translation.d.ts +5 -0
- package/dist/src/translations/Translation.js +5 -0
- package/dist/src/translations/Translation.js.map +1 -1
- package/dist/src/translations/languages/en-gb.js +5 -0
- package/dist/src/translations/languages/en-gb.js.map +1 -1
- package/dist/test.bundle.js +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +2 -2
- package/dist/839.bundle.js +0 -1
- package/dist/950.bundle.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HotelOverridesContext.js","sourceRoot":"/","sources":["src/contexts/HotelOverridesContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CompanyContext } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport i18n from 'i18next';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { Translation } from 'translations/Translation';\n\nimport API from '@/api/BookingAPI';\nimport { HotelOverrideDTO } from '@/models/Api/HotelOverrideDTO';\nimport { DistanceUnitType } from '@/models/Client/Hotel/DistanceUnitType.types';\nimport { Language } from '@/providers/LanguageProvider';\n\ninterface IHotelOverridesContext extends Omit<HotelOverrideDTO, 'overrideDistanceUnitType'> {\n loading: boolean;\n}\n\nexport const HotelOverridesContext = createContext<IHotelOverridesContext>({} as IHotelOverridesContext);\n\nconst useHotelOverrides = (): IHotelOverridesContext => {\n const companyContext = useContext(CompanyContext);\n const { hotel } = useCurrentHotel();\n\n const [loading, loadingSet] = useState<boolean>(false);\n const [overrides, overridesSet] = useState<HotelOverrideDTO>({});\n\n const fetchApiData = useCallback(async () => {\n if (companyContext.selectedHotelID) {\n loadingSet(true);\n const apiData = await API.Hotel.fetchOverrides(companyContext.selectedHotelID);\n loadingSet(false);\n overridesSet(apiData);\n }\n }, [companyContext.selectedHotelID]);\n\n const hideByLine: boolean = useMemo(() => {\n return !!overrides?.hideByLine || !!hotel?.hideByLine;\n }, [overrides?.hideByLine]);\n\n const distanceUnitType: DistanceUnitType = useMemo(() => {\n // Metric by default\n return (overrides.overrideDistanceUnitType && overrides?.distanceUnitType) || hotel?.distanceUnitType || DistanceUnitType.Metric;\n }, [overrides?.distanceUnitType, hotel?.distanceUnitType, hotel?.hasLoadedDetails]);\n\n const transportDistances = useMemo(() => {\n return overrides?.transportDistances ?? hotel?.transportDistances;\n }, [overrides?.transportDistances]);\n\n const phoneNumberInSummary = useMemo(() => {\n return overrides?.phoneNumberInSummary;\n }, [overrides?.phoneNumberInSummary]);\n\n const enabledEventIds = useMemo(() => {\n return overrides?.enabledEventIds;\n }, [overrides?.enabledEventIds]);\n\n const { showYearOnCalendar, yearDisplayOption } = useMemo(() => {\n return {\n showYearOnCalendar: !!overrides?.showYearOnCalendar,\n yearDisplayOption: !!overrides?.showYearOnCalendar ? overrides?.yearDisplayOption : '',\n };\n }, [overrides?.showYearOnCalendar, overrides?.yearDisplayOption]);\n\n const { showPromoCodeAlert, promoCodeAlertType } = useMemo(() => {\n return {\n showPromoCodeAlert: !!overrides?.showPromoCodeAlert,\n promoCodeAlertType: !!overrides?.showPromoCodeAlert ? overrides?.promoCodeAlertType : undefined,\n };\n }, [overrides?.showPromoCodeAlert, overrides?.promoCodeAlertType]);\n\n const pageTitle = useMemo(() => {\n return overrides?.pageTitle;\n }, [overrides?.pageTitle]);\n\n const showPromoCodeDescription: boolean = useMemo(() => {\n return !!overrides?.showPromoCodeDescription;\n }, [overrides?.showPromoCodeDescription]);\n\n const alwaysShowDecimals: boolean = useMemo(() => {\n return !!overrides?.alwaysShowDecimals;\n }, [overrides?.alwaysShowDecimals]);\n\n const roomModalDescSideBySide: boolean = useMemo(() => {\n return !!overrides?.roomModalDescSideBySide;\n }, [overrides?.roomModalDescSideBySide]);\n\n const orderUnavailableRoomsLast: boolean = useMemo(() => {\n return !!overrides?.orderUnavailableRoomsLast;\n }, [overrides?.orderUnavailableRoomsLast]);\n\n const messages = useMemo(() => {\n if (overrides.messages?.enable) {\n if (overrides.messages.pricesIncludeFeesMessage) {\n i18n.addResource(Language.en_us, 'translation', Translation.Step.Room.RoomInfo.IncludesTaxes, overrides.messages.pricesIncludeFeesMessage);\n }\n\n return overrides.messages;\n }\n return undefined;\n }, [overrides?.messages]);\n\n useEffect(() => {\n fetchApiData();\n }, [fetchApiData]);\n\n return {\n loading,\n hideByLine,\n distanceUnitType,\n transportDistances,\n phoneNumberInSummary,\n enabledEventIds,\n showYearOnCalendar,\n yearDisplayOption,\n showPromoCodeAlert,\n promoCodeAlertType,\n pageTitle,\n showPromoCodeDescription,\n alwaysShowDecimals,\n messages,\n roomModalDescSideBySide,\n orderUnavailableRoomsLast,\n };\n};\n\nexport const HotelOverridesContextWrapper = ({ children }: { children?: React.ReactNode }) => {\n const hotelOverrides = useHotelOverrides();\n return <HotelOverridesContext.Provider value={hotelOverrides}>{children}</HotelOverridesContext.Provider>;\n};\n"]}
|
|
@@ -224,9 +224,8 @@ function InlineRoomMiniEngineElement(props) {
|
|
|
224
224
|
}
|
|
225
225
|
};
|
|
226
226
|
if (!(row === null || row === void 0 ? void 0 : row.getArrivalDate()) && !(row === null || row === void 0 ? void 0 : row.getDepartureDate())) {
|
|
227
|
-
|
|
228
|
-
row === null || row === void 0 ? void 0 : row.
|
|
229
|
-
row === null || row === void 0 ? void 0 : row.setEndDate((0, dayjs_1.default)(today).add(1, 'day'));
|
|
227
|
+
row === null || row === void 0 ? void 0 : row.setStartDate((0, dayjs_1.default)().add(7, 'day'));
|
|
228
|
+
row === null || row === void 0 ? void 0 : row.setEndDate((0, dayjs_1.default)().add(8, 'day'));
|
|
230
229
|
}
|
|
231
230
|
const isCompact = bounds.width < 1000 ? '--compact' : '';
|
|
232
231
|
const findRoomsOnClick = () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAA6I;AAC7I,2CAA4D;AAC5D,4DAAoC;AACpC,wDAA4D;AAC5D,sEAA0E;AAC1E,kDAA0B;AAC1B,+CAAgF;AAChF,yCAAmC;AACnC,iDAA+C;AAC/C,uDAA8C;AAC9C,0EAA2C;AAC3C,0DAAuD;AAEvD,iFAAyD;AACzD,kEAAmC;AACnC,6EAAqD;AAErD,4FAAyF;AACzF,sGAA8E;AAC9E,uEAAgE;AAChE,0FAAkE;AAClE,2FAAmE;AACnE,kEAA+D;AAC/D,yFAAiE;AACjE,+DAAkF;AAClF,kEAA2D;AAC3D,mFAA2D;AAC3D,oGAA4E;AAC5E,wGAAgF;AAEhF,8EAA2E;AAC3E,iEAA8D;AAC9D,mEAA2C;AAK3C,uGAA+E;AAC/E,oGAA4E;AAC5E,0FAAkE;AAClE,wCAAqC;AACrC,8DAA+E;AAC/E,uEAA+C;AAE/C,0GAAwD;AAMxD,SAAwB,2BAA2B,CAAC,KAAuC;;IACvF,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAClF,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC;IAEvC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,qCAAiB,GAAE,CAAC;IAE7C,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,wBAAa,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAS,EAAE,CAAC,CAAC;IAE/C,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAa,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAa,EAAE,CAAC,CAAC;IAEnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,CAAC,CAAC;IAEhE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAA,2BAAU,GAAE,CAAC;IACnC,MAAM,WAAW,GAAG,eAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IAE9D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAE7B,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,kBAAkB,EAAE,MAAK,KAAK,EAAE;QACrC,gBAAgB,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAClJ;SAAM;QACH,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,kBAAkB,EAAE,MAAK,OAAO,EAAE;YACvC,gBAAgB,GAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACtE;aAAM;YACH,gBAAgB,GAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACxE;KACJ;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,GAAG,EAAE;YACN,aAAa,CAAC,YAAY,CAAC,IAAI,mBAAS,EAAE,CAAC,CAAC;YAC5C,OAAO;SACV;QAED,0DAA0D;QAC1D,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAClC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAE5C,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE;YAChE,oBAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAiB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC3G,IAAI,CAAC,SAAS,EAAE;oBACZ,QAAQ,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAW,CAAC,CAAC;oBAC3F,UAAU,CAAC,KAAK,CAAC,CAAC;oBAClB,eAAe,CAAC,IAAI,CAAC,CAAC;iBACzB;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,GAAG,EAAE;YACR,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAExB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,GAAG,EAAE;YACL,gBAAgB,EAAE,CAAC;SACtB;IACL,CAAC,EAAE,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAE1B,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACX,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAAE,OAAO;QAEzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,aAAa,GAAe,EAAE,CAAC;QACnC,MAAM,iBAAiB,GAAe,EAAE,CAAC;QAEzC,IAAI,8BAAoB,CAAC,QAAQ,EAAE,EAAE;YACjC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACvC,IAAI,CAAA,MAAA,WAAW,CAAC,SAAS,0CAAE,WAAW,EAAE,OAAK,MAAA,MAAA,aAAa,CAAC,iBAAiB,0CAAE,YAAY,EAAE,0CAAE,WAAW,EAAE,CAAA,EAAE;oBACzG,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;iBAC1C;qBAAM;oBACH,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnC;aACJ;YAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;aACvC;SACJ;aAAM;YACH,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnC;QAED,IAAI;YACA,MAAM,MAAM,GAAqB;gBAC7B,WAAW,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,0CAAE,MAAM,CAAC,UAAU,CAAC;gBACpD,YAAY,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,EAAE,0CAAE,MAAM,CAAC,UAAU,CAAC;gBACnD,SAAS,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,EAAE;gBAC3B,WAAW,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,EAAE;gBAC/B,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;aACvC,CAAC;YAEF,MAAM,UAAU,GACZ,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;gBAChB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;gBAE5B,MAAM,SAAS,GAAmB;oBAC9B,IAAI,EAAE,IAAc;oBACpB,IAAI,EAAE,IAAc;oBACpB,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;oBAClC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;oBACpC,QAAQ,EAAE,GAAG,CAAC,eAAe;oBAE7B,KAAK,EACD,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAE,0CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC1B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;wBAC5B,OAAO;4BACH,IAAI;4BACJ,IAAI;4BAEJ,KAAK,EAAE;gCACH,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;gCACpC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE;gCAChC,QAAQ,EAAE,GAAG,CAAC,eAAe;6BAChC;yBACJ,CAAC;oBACN,CAAC,CAAC,mCAAI,EAAE;iBACf,CAAC;gBAEF,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC,mCAAI,EAAE,CAAC;YAEb,MAAM,KAAK,GAAG,IAAI,yCAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC1D,KAAK,CAAC,KAAK,CAAC,CAAC;SAChB;QAAC,OAAO,EAAE,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACpB;QAED,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE;YACf,4DAA4D;YAC5D,6BAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACjD;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAA8D,EAAE,EAAE;QAC5G,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,EAAE;YACtC,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,2BAAe,CAAC,YAAY,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;YAClG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACzB;QAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,GAAG,CAAC,WAAW,EAAE,EAAE;YAChE,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,2BAAe,CAAC,YAAY,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;YAClG,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,YAAY,EAAE;YACf,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACtC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,SAAsB,EAAE,OAAoB,EAAE,EAAE;QACtE,IAAI,SAAS,IAAI,OAAO,EAAE;YACtB,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAExB,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SAC7C;IACL,CAAC,CAAC;IAEF,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,CAAA,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,EAAE,CAAA,EAAE;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,CAAC;QAChC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAC,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;KAC/C;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzD,MAAM,gBAAgB,GAAG,GAAS,EAAE;;QAChC,IAAI,YAAY,EAAE;YACd,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACtC;QACD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CACJ,MAAA,CAAC,MAAM,oBAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAiB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,0CAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAW,CAC3K,CAAC;QACF,UAAU,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAA,CAAC;IACF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,OAAO,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CAAC,KAAa,EAAE,EAAE;QACnD,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,MAAM,8BAA8B,GAAG,CAAC,KAAa,EAAE,EAAE;QACrD,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAqC;QACxD,MAAM,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,EAAE,mCAAI,CAAC;QAC7B,QAAQ,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,EAAE,mCAAI,CAAC;QACjC,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,CAAC;KACV,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;QACrC,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,2BAAe,CAAC,UAAU,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;QAE5G,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACvB,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAI,IAAI,EAAE;gBACN,mBAAmB,CAAC,KAAK,CAAC,CAAC;aAC9B;SACJ;IACL,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CAAC,IAAc,EAAE,EAAE;QACpD,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClB,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACnC,mBAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAExI,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAClD,OAAO;aACF,aAAa,CAAC;YACX,IAAI,EAAE,0BAAgB,CAAC,OAAO,EAAE,EAAE,QAAQ;SAC7C,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;;YACP,iCAAiC;YACjC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,mCAAI,YAAY,IAAI,0BAAgB,CAAC,UAAU,EAAE,YAAY,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5I,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC7B,YAAY,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,CAAC,CAAC;QAClC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACjC,mBAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,oBAAoB,EAAE,2BAAe,CAAC,MAAM,EAAE,2BAAe,CAAC,KAAK,CAAC,CAAC;QACxG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,GAAQ,EAAE,EAAE;QACjC,eAAe,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,CAAC,CAAC;IAE9C,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC5B,MAAM,KAAK,GAAG,GAAG,EAAE;YACf,IAAI,YAAY,EAAE;gBACd,OAAO,CACH,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,0CAAM,CAAC,mCAAmC,CAAC,CAAC;oBACvF,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,0CAAM,CAAC,MAAM,CAAC,CAAC;wBACtC,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC;4BAC3B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,GAAI,CAC/B;wBACN,uCAAK,SAAS,EAAE,0CAAM,CAAC,SAAS,CAAC;4BAC7B,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,IAAI,IAChD,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CACzB;4BACP,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,IACvE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CACnF,CACL,CACJ;oBACN,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,0CAAM,CAAC,MAAM,CAAC,CAAC;wBACtC,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC;4BAC3B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,GAAI,CAC/B;wBACN,uCAAK,SAAS,EAAE,0CAAM,CAAC,SAAS,CAAC;4BAC7B,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,IAAI,IAChD,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC1B;4BACP,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,WAAW,CAAC,IAAG,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAQ,CACvI,CACJ,CACJ,CACT,CAAC;aACL;iBAAM;gBACH,OAAO,CACH,uCAAK,SAAS,EAAC,+EAA+E;oBAC1F,8BAAC,cAAI,IAAC,KAAK,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,EAAC,CAAC,CAAC,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAK,CAAC,QAAQ,EAAE,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,CAAA;wBAChI,4CAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,cAAc,CAAQ,CACzE;oBACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,WAAW,GAAI;oBACpC,8BAAC,cAAI,IAAC,KAAK,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,EAAE,EAAC,CAAC,CAAC,aAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAK,CAAC,QAAQ,EAAE,SAAS,EAAC,qCAAqC,EAAC,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,EAAE,CAAA;wBACjJ,4CAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAQ,CAC/E,CACL,CACT,CAAC;aACL;QACL,CAAC,CAAC;QAEF,OAAO,CACH,8BAAC,4BAAkB,IACf,SAAS,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,EAC9B,mBAAmB,EAAE,gBAAgB,EACrC,SAAS,EAAE,IAAA,oBAAU,EAAC,6BAA6B,EAAE;gBACjD,6DAA6D,EAAE,CAAC,YAAY;gBAC5E,CAAC,0CAAM,CAAC,6BAA6B,CAAC,CAAC,EAAE,YAAY;aACxD,CAAC,EACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;YAEpC,8BAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,EAAE,cAAc,EAAC,aAAa,IAC9G,KAAK,EAAE,CACF,CACO,CACxB,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;;QACvB,IAAI,YAAY,EAAE;YACd,MAAM,WAAW,GAAG,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,mDAAI,KAAI,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;YAC7C,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,GAAG,CAAC,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,mDAAI,KAAI,CAAC,CAAC,CAAC;YACjE,OAAO,CACH,8BAAC,2BAAmB,IAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACnB,kBAAkB,CAAC;wBACf,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM;wBACxB,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ;qBAC/B,CAAC,CAAC;gBACP,CAAC,EACD,YAAY,EAAE,KAAK,EACnB,WAAW,EAAE,KAAK,EAClB,WAAW,QACX,WAAW,EAAE,KAAK,EAClB,YAAY,EAAE,iBAAiB,EAC/B,eAAe,EAAE;oBACb,SAAS,EAAE,MAAA,aAAa,CAAC,iBAAiB,0CAAE,YAAY,EAAE;oBAC1D,YAAY;oBACZ,QAAQ,EAAE,eAAe;oBACzB,KAAK,EAAE,CAAA,MAAA,aAAa,CAAC,iBAAiB,0CAAE,kBAAkB,EAAE,MAAK,KAAK,CAAC,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,iBAAiB,0CAAE,kBAAkB,EAAE,MAAK,OAAO,CAAC,CAAC,CAAC,SAAS;iBACzJ,GACH,CACL,CAAC;SACL;aAAM;YACH,OAAO,CACH;gBACI,8BAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,cAAc,EAAC,yCAAyC;oBAC3G,uCAAK,SAAS,EAAC,oEAAoE;wBAC/E,8BAAC,eAAM,IACH,cAAc,QACd,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;gCAC3G,KAAK,IAAI,CAAC,CAAC;gCACX,OAAO;oCACH,IAAI,EAAE,sBAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oCAChF,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;iCAC1B,CAAC;4BACN,CAAC,CAAC,EACF,KAAK,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,EAAE,0CAAE,QAAQ,EAAE,EACnC,QAAQ,EAAE,4BAA4B,EACtC,OAAO,EAAC,OAAO,EACf,SAAS,EAAC,MAAM,GAClB,CACA,CACA;gBACV,8BAAC,iBAAO,IAAC,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,cAAc,EAAC,4CAA4C;oBAChH,uCAAK,SAAS,EAAC,mEAAmE;wBAC9E,8BAAC,eAAM,IACH,cAAc,QACd,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,EAAE,EAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,KAAa,EAAE,EAAE;gCAC3G,OAAO;oCACH,IAAI,EAAE,sBAAY,CAAC,sBAAsB,CAAC,KAAK,EAAE,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oCAChF,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;iCAC1B,CAAC;4BACN,CAAC,CAAC,EACF,KAAK,EAAE,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,WAAW,EAAE,0CAAE,QAAQ,EAAE,EACrC,QAAQ,EAAE,8BAA8B,EACxC,OAAO,EAAC,OAAO,EACf,SAAS,EAAC,MAAM,GAClB,CACA,CACA,CACX,CACN,CAAC;SACL;IACL,CAAC,CAAC;IACF,OAAO,IAAA,eAAO,EACV,GAAG,EAAE;;QAAC,OAAA,CACF;YACI,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,yBAAyB,SAAS,sBAAsB,EAAE;oBAC5E,CAAC,0CAAM,CAAC,qBAAqB,CAAC,CAAC,EAAE,YAAY;oBAC7C,CAAC,0CAAM,CAAC,kCAAkC,CAAC,CAAC,EAAE,YAAY;iBAC7D,CAAC;gBAEF,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,4BAA4B,EAAE;wBAChD,8DAA8D,EAAE,CAAC,YAAY;wBAC7E,CAAC,0CAAM,CAAC,4BAA4B,CAAC,CAAC,EAAE,YAAY;qBACvD,CAAC,EACF,GAAG,EAAE,GAAG;oBAER,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,wBAAwB,EAAE;4BAC5C,2DAA2D,EAAE,CAAC,YAAY;4BAC1E,CAAC,0CAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,YAAY;yBACnD,CAAC;wBAEF,8BAAC,kBAAkB,OAAG;wBACtB,8BAAC,aAAa,OAAG;wBAEjB,8BAAC,iBAAO,IACJ,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,IAAA,oBAAU,EAAC,yCAAyC,EAAE;gCAClE,CAAC,0CAAM,CAAC,6BAA6B,CAAC,CAAC,EAAE,YAAY;6BACxD,CAAC;4BAEF,uCAAK,SAAS,EAAC,+CAA+C,EAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB;gCAC3G,uCAAK,SAAS,EAAC,8DAA8D;oCACzE,8BAAC,cAAI,IAAC,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAE,eAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,EAAC,CAAC,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,aAAK,CAAC,IAAI,IACxH,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,EAAC,CAAC,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,CACtD;oCACP,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAK,CAAC,QAAQ,GAAI,CACtD,CACJ,CACA;wBACV,8BAAC,iBAAO,IAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,6BAAmB,CAAC,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB;4BAC7I,uCAAK,SAAS,EAAC,cAAc;gCACzB;oCACI,8BAAC,wBAAc,IACX,KAAK,EAAE,MAAA,aAAa,CAAC,iBAAiB,0CAAE,YAAY,EAAE,EACtD,QAAQ,EAAE,eAAe,EACzB,KAAK,EACD,CAAA,MAAA,aAAa,CAAC,iBAAiB,0CAAE,kBAAkB,EAAE,MAAK,KAAK;4CAC3D,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,iBAAiB,0CAAE,kBAAkB,EAAE,MAAK,OAAO;4CACnE,CAAC,CAAC,SAAS,GAErB,CACA;gCAEN,uCAAK,SAAS,EAAC,0DAA0D;oCACrE,8BAAC,kBAAQ,IAAC,MAAM,QAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,uBAAuB,IACzD,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CACpB,CACT,CACJ,CACA,CACR;oBACN,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,wDAAwD,EAAE;4BAC5E,OAAO,EAAE,SAAS;4BAClB,CAAC,0CAAM,CAAC,yBAAyB,CAAC,CAAC,EAAE,YAAY;yBACpD,CAAC;wBAEF,8BAAC,kBAAQ,IAAC,MAAM,QAAC,OAAO,QAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,IAC3F,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CACxB,CACT,CACJ;gBACN,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,oCAAoC,EAAE;wBACxD,CAAC,0CAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,YAAY;qBAC9C,CAAC,IAED,CAAC,SAAS,CAAC,CAAC,CAAC,CACV,8BAAC,wBAAc,IAAC,IAAI,EAAE,CAAC,SAAS;oBAC5B;wBACI,8BAAC,mDAAwB,OAAG;wBAC3B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChB,8BAAC,mBAAS,IACN,UAAU,EAAE,IAAA,oBAAU,EAAC,wBAAwB,EAAE;gCAC7C,CAAC,0CAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,YAAY;6BACnD,CAAC,EACF,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAc,EACjC,cAAc,EAAE,qBAAqB,EACrC,qBAAqB,EAAE,4BAA4B,EACnD,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,GACpC,CACL,CAAC,CAAC,CAAC,CACA,8BAAC,4BAAkB,OAAG,CACzB,CACF,CACU,CACpB,CAAC,CAAC,CAAC,CACA,8BAAC,qBAAW,OAAG,CAClB,CACC,CACJ,CACP,CACN,CAAA;KAAA,EACD,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAC1F,CAAC;AACN,CAAC;AA1fD,8CA0fC;AAEM,MAAM,iCAAiC,GAAG,CAAC,SAAkB,EAAE,MAA4B,EAAE,EAAE;IAClG,IAAA,kBAAM,EACF,8BAAC,sCAA2B,IAAC,MAAM,EAAE,MAAM;QACvC,8BAAC,6BAAU,IACP,MAAM,EAAE;gBACJ,kBAAkB,EAAE,KAAK;gBACzB,oBAAoB,EAAE,KAAK;aAC9B;YAED,8BAAC,gDAA0B;gBACvB,8BAAC,kCAAmB;oBAChB,8BAAC,gCAAqB,IAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO;wBAC5D,8BAAC,+BAAoB;4BACjB,8BAAC,2BAA2B,IAAC,MAAM,EAAE,MAAM,GAAI,CAC5B,CACH,CACN,CACG,CACpB,CACa,EAC9B,SAAS,CACZ,CAAC;AACN,CAAC,CAAC;AAtBW,QAAA,iCAAiC,qCAsB5C;AAEK,MAAM,mBAAmB,GAAG,CAAC,EAChC,SAAS,EACT,WAAW,EACX,UAAU,GAAG,EAAE,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,GAiBlB,EAAE,EAAE;;IACD,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAE/B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,mCAAI,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,mCAAI,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,mCAAI,CAAC,CAAC,CAAC;IACnE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,mCAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;QACxC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC1C,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,EAAE;QACzC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;QACtC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzF,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,EAAE;QACf,OAAO,CACH,uCAAK,SAAS,EAAE,0CAAM,CAAC,aAAa,CAAC;YACjC,uCAAK,SAAS,EAAE,0CAAM,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,GAAG;gBAC/C,uCAAK,SAAS,EAAE,0CAAM,CAAC,aAAa,CAAC;oBACjC,uCAAK,SAAS,EAAE,0CAAM,CAAC,GAAG;wBACtB,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,IACjD,sBAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CACrC;wBACP,8BAAC,yBAAe,IAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,eAAQ,CAAC,KAAK,GAAI,CACvI,CACJ;gBACL,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB,uCAAK,SAAS,EAAE,0CAAM,CAAC,aAAa,CAAC;oBACjC,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,GAAI;oBAClC,uCAAK,SAAS,EAAE,0CAAM,CAAC,GAAG;wBACtB,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,IACjD,sBAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CACvC;wBACP,8BAAC,yBAAe,IAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,eAAQ,CAAC,KAAK,GAAI,CAC7I,CACJ,CACT;gBACA,WAAW,CAAC,CAAC,CAAC,CACX,uCAAK,SAAS,EAAE,0CAAM,CAAC,aAAa,CAAC;oBACjC,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,GAAI;oBAClC,uCAAK,SAAS,EAAE,0CAAM,CAAC,GAAG;wBACtB,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,IACjD,sBAAY,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CACvC;wBACP,8BAAC,yBAAe,IAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,eAAQ,CAAC,KAAK,GAAI,CACzH;oBAEN,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,GAAI,CAChC,CACT,CAAC,CAAC,CAAC,IAAI;gBACP,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClB,uCAAK,SAAS,EAAE,0CAAM,CAAC,aAAa,CAAC;oBACjC,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,GAAI;oBAClC,uCAAK,SAAS,EAAE,0CAAM,CAAC,GAAG;wBACtB,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,IACjD,sBAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAClC;wBACP,8BAAC,yBAAe,IAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,eAAQ,CAAC,KAAK,GAAI,CAC5H,CACJ,CACT;gBACA,eAAe,CAAC,CAAC,CAAC,CACf,uCAAK,SAAS,EAAE,0CAAM,CAAC,aAAa,CAAC;oBACjC,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,GAAI;oBAClC,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,0CAAM,CAAC,GAAG,CAAC;wBAClC,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,KAAK,IACjD,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAC3B;wBACP,8BAAC,wBAAc,IAAC,SAAS,EAAE,0CAAM,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,GAAI,CAC7I,CACJ,CACT,CAAC,CAAC,CAAC,IAAI,CACN,CACJ,CACT,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,OAAO,CACH,8BAAC,iBAAO,IACJ,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACd,SAAS,EAAE,KAAK,EAChB,aAAa,EAAE,SAAS,CAAC,OAAO,EAChC,SAAS,EAAC,WAAW,EACrB,QAAQ,EAAC,UAAU,EACnB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,EAC/B,SAAS,EAAE,0CAAM,CAAC,MAAM,EACxB,UAAU,UAET,KAAK,EAAE,CACF,CACb,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QACxB,MAAM,KAAK,GAAG,CAAC,sBAAY,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjE,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,sBAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE;QAED,IAAI,OAAO,GAAG,CAAC,EAAE;YACb,KAAK,CAAC,IAAI,CAAC,sBAAY,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;SAClE;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACH,uCAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAA,oBAAU,EAAC,kBAAkB,EAAE,6BAA6B,EAAE,0CAAM,CAAC,6BAA6B,CAAC,CAAC;QAChI,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,0CAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,CAAC,IAAI,CAAC;YACvE,uCAAK,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC;gBAC3B,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,MAAM,GAAI,CAC7B;YACN,uCAAK,SAAS,EAAE,0CAAM,CAAC,SAAS,CAAC;gBAC7B,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,IAAI,IAChD,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB;gBACP,8BAAC,cAAI,IAAC,SAAS,EAAE,0CAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,aAAK,CAAC,IAAI,IACvE,cAAc,EAAE,CACd,CACL;YAEN,8BAAC,cAAI,IAAC,IAAI,EAAE,eAAQ,CAAC,QAAQ,GAAI,CAC/B;QACL,OAAO,EAAE,CACR,CACT,CAAC;AACN,CAAC,CAAC;AA3KW,QAAA,mBAAmB,uBA2K9B","sourcesContent":["import { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContext, CompanyContextWrapper } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport classNames from 'classnames';\nimport { ErrorContextWrapper } from 'contexts/ErrorContext';\nimport { NotificationContextWrapper } from 'contexts/NotificationContext';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { render } from 'react-dom';\nimport { useTranslation } from 'react-i18next';\nimport { HashRouter } from 'react-router-dom';\nimport useMeasure from 'react-use-measure';\nimport { Translation } from 'translations/Translation';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport { BookingWizardOnBooking } from '@/components/generic/BookingWizard/BookingWizardContext';\nimport { BookNowPayLaterInfoBlock } from '@/components/generic/BookNowPayLaterInfoBlock';\nimport FloatingDatePicker from '@/components/generic/date/FloatingDatePicker';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport PromoCodeInput from '@/components/generic/PromoCodeInput';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport RatesNotFoundBlock from '@/components/steps/room/RatesNotFoundBlock';\nimport RoomRates from '@/components/steps/room/roomDetails/roomRates/RoomRates';\nimport type { InlineRoomMiniEngine } from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nimport { RoomListSearchEvent } from '@/events/actions/RoomListSearchEvent';\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { RoomListSearch } from '@/models/RoomListSearch';\nimport { SearchParameters } from '@/models/SearchParameters';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport StringHelper from '@/util/StringHelper';\n\nimport styles from './InlineRoomMiniEngine.module.scss';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { layout = 'default', policy, priceDescription } = props.engine.getConfig();\n const isCardLayout = layout === 'card';\n\n const { hotel } = useCurrentHotel();\n\n const { memberNumber } = useSignedInMember();\n\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const row = basketContext.currentBasketRows[0];\n const [isLoading, setLoading] = useState(true);\n const [ranFirstLoad, setRanFirstLoad] = useState(false);\n const [rooms, setRooms] = useState<Room[]>([]);\n\n const [isPromoModalOpen, setIsPromoModalOpen] = useState(false);\n\n const [featuredRates, setFeaturedRates] = useState<RoomRate[]>([]);\n const [standardRates, setStandardRates] = useState<RoomRate[]>([]);\n\n const [promoCode, setPromoCode] = useState(row?.getPromoCode());\n\n const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef<HTMLDivElement | null>(null);\n\n const { raise } = useEvent();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? t(Translation.Step.Date.PromoCodeTooltip.Checking) : t(Translation.Step.Date.PromoCodeTooltip.NoValue);\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Valid);\n } else {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Invalid);\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n // Filters availability results by the provided room code.\n row.setEnableRoomCodeFilter(true);\n row.setRoomCode(props.engine.getRoomCode());\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]);\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row, memberNumber]);\n\n useEffect(() => {\n if (row) {\n findRoomsOnClick();\n }\n }, [row?.getPromoCode()]);\n\n useEffect(() => {\n if (!(rooms && rooms.length > 0)) return;\n\n const room = rooms[0];\n\n let nonPromoRates: RoomRate[] = [];\n const toSetFeaturedRate: RoomRate[] = [];\n\n if (FeaturedPromoFeature.isActive()) {\n for (const currentRate of room.getRates()) {\n if (currentRate.promoCode?.toLowerCase() === basketContext.selectedBasketRow?.getPromoCode()?.toLowerCase()) {\n toSetFeaturedRate.unshift(currentRate);\n } else {\n nonPromoRates.push(currentRate);\n }\n }\n\n if (toSetFeaturedRate.length > 0) {\n setFeaturedRates(toSetFeaturedRate);\n }\n } else {\n nonPromoRates = room.getRates();\n }\n\n try {\n const search: SearchParameters = {\n checkInTime: row?.getStartDate()?.format('YYYY-M-D'),\n checkOutTime: row?.getEndDate()?.format('YYYY-M-D'),\n numAdults: row?.getAdults(),\n numChildren: row?.getChildren(),\n numRooms: 1,\n promoCode: promoCode,\n roomCode: props.engine.getRoomCode(),\n };\n\n const eventRooms: RoomListSearch[] =\n rooms?.map((room) => {\n const { name, code } = room;\n\n const foundRoom: RoomListSearch = {\n name: name as string,\n code: code as string,\n lowestPrice: room.getLowestPrice(),\n highestPrice: room.getHighestPrice(),\n currency: ccx.currentCurrency,\n\n rates:\n room.getRates()?.map((rate) => {\n const { name, code } = rate;\n return {\n name,\n code,\n\n price: {\n averagePrice: rate.getAveragePrice(),\n totalPrice: rate.getTotalPrice(),\n currency: ccx.currentCurrency,\n },\n };\n }) ?? [],\n };\n\n return foundRoom;\n }) ?? [];\n\n const event = new RoomListSearchEvent(search, eventRooms);\n raise(event);\n } catch (ex) {\n console.warn(ex);\n }\n\n setStandardRates(nonPromoRates);\n }, [rooms]);\n\n useEffect(() => {\n if (hotel?.colors) {\n // Do this manually as Guide Step manages this for Fullpage.\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel, hotel?.colors]);\n\n const updatePeopleValues = ({ adults, children }: { adults?: number; children?: number; promoCode?: string }) => {\n if (adults && adults !== row.getAdults()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setAdults(adults);\n }\n\n if ((children || children === 0) && children !== row.getChildren()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setChildren(children);\n }\n\n if (!isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n };\n\n const updateDateValues = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n if (startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n basketContext.updateBasketRow(row, false);\n }\n };\n\n if (!row?.getArrivalDate() && !row?.getDepartureDate()) {\n const today = Date.now();\n row?.setStartDate(dayjs(today));\n row?.setEndDate(dayjs(today).add(1, 'day'));\n }\n\n const isCompact = bounds.width < 1000 ? '--compact' : '';\n\n const findRoomsOnClick = async () => {\n if (isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n setLoading(true);\n setRooms(\n (await API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false))?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]\n );\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return t(Translation.Misc.BookNow);\n };\n\n const updateNumberOfAdultsOnChange = (value: string) => {\n updatePeopleValues({ adults: +value });\n };\n const updateNumberOfChildrenOnChange = (value: string) => {\n updatePeopleValues({ children: +value });\n };\n\n const defaultGuestValue: BookingWizardOnBooking['guests'] = {\n adults: row?.getAdults() ?? 1,\n children: row?.getChildren() ?? 0,\n infants: 0,\n room: 1,\n };\n\n const updatePromoCode = (code: string) => {\n DataLayer.instance.sendInteraction('Promo Code updated', InteractionType.FORM_FIELD, InteractionStep.ROOMS);\n\n if (row) {\n row.setPromoCode(code);\n basketContext.updateBasketRow(row);\n\n if (code) {\n setIsPromoModalOpen(false);\n }\n }\n };\n\n const onAddToBasketOverrideHandler = (rate: RoomRate) => {\n row.setRate(rate);\n basketContext.updateBasketRow(row);\n DataLayer.instance.sendRoomRateAddToCart(rate, row.getNumberOfDays(), row.getStartDate(), row.getEndDate(), row.getPreUpsellRoomRate());\n\n const session = props.engine.getSessionProvider();\n session\n .updateSession({\n step: StepConfirmation.getName(), // TODO:\n })\n .then(() => {\n // TODO: Remove this URL coupling\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${StepConfirmation.getStepUrl()}?session=${session.getCurrentSessionID()}`, '_self');\n });\n };\n const openPromoModalOnClick = () => {\n setIsPromoModalOpen(true);\n };\n const setPromoCodeOnClose = () => {\n setPromoCode(row?.getPromoCode());\n setIsPromoModalOpen(false);\n };\n const cancelPromoPopupOnClick = () => {\n DataLayer.instance.sendInteraction('Cancel Promo Popup', InteractionType.BUTTON, InteractionStep.ROOMS);\n setIsPromoModalOpen(false);\n };\n\n const changePromoCode = (val: any) => {\n updatePromoCode(val);\n };\n\n const maxOccupancy = hotel?.maxOccupancy ?? 1;\n\n const DatePickerSelector = () => {\n const inner = () => {\n if (isCardLayout) {\n return (\n <div className={classNames('u-cursor-pointer', styles['rs-inline-filter-item-dates-inner'])}>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckIn)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {row?.getArrivalDate() ? row.getArrivalDate() : t(Translation.Misc.CheckInPlaceHolder)}\n </Text>\n </div>\n </div>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckOut)}\n </Text>\n <Text className={styles['sub-title']}>{row?.getDepartureDate() ? row.getDepartureDate() : t(Translation.Misc.CheckOutPlaceHolder)}</Text>\n </div>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer\">\n <Text color={row?.getArrivalDate() ? Color.Accent : Color.Graphite} className=\"u-mw-75 u-align-center\" bold={!!row?.getArrivalDate()}>\n <span>{row?.getArrivalDate() ? row.getArrivalDate() : 'Arrival Date'}</span>\n </Text>\n <Icon icon={IconType.ArrowRight2} />\n <Text color={row?.getDepartureDate() ? Color.Accent : Color.Graphite} className=\"u-marg-right u-mw-75 u-align-center\" bold={!!row?.getDepartureDate()}>\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n );\n }\n };\n\n return (\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className={classNames('rs-inline-filter-item-dates', {\n 'u-w-100@xl- room-builder-progress--value u-marg-left--none ': !isCardLayout,\n [styles['rs-inline-filter-item-dates']]: isCardLayout,\n })}\n roomCode={props.engine.getRoomCode()}\n >\n <Tooltip title={t(Translation.Step.Date.SelectArrivalAndDepartureDatesByClickingHere)} wrapperClasses=\"u-w-100@xl-\">\n {inner()}\n </Tooltip>\n </FloatingDatePicker>\n );\n };\n\n const GuestSelector = () => {\n if (isCardLayout) {\n const numChildren = row?.getChildren?.() || 0;\n const maxAdults = maxOccupancy - numChildren;\n const maxChildren = maxOccupancy + 1 - (row?.getAdults?.() || 0);\n return (\n <GuestSelectorCustom\n maxAdults={maxAdults}\n maxChildren={maxChildren}\n onChange={(newValue) => {\n updatePeopleValues({\n adults: +newValue.adults,\n children: +newValue.children,\n });\n }}\n disableChild={false}\n showInfants={false}\n disableRoom\n applyButton={false}\n defaultValue={defaultGuestValue}\n promoCodeConfig={{\n promoCode: basketContext.selectedBasketRow?.getPromoCode(),\n setPromoCode,\n onChange: changePromoCode,\n valid: basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new' ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid' : undefined,\n }}\n />\n );\n } else {\n return (\n <>\n <Tooltip title={t(Translation.Step.Date.UpdateAdults)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-adult\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center \">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy - (row?.getChildren() ? row.getChildren() : 0))].map((v: any, value: number) => {\n value += 1;\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Adult, t),\n value: value.toString(),\n };\n })}\n value={row?.getAdults()?.toString()}\n onChange={updateNumberOfAdultsOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n <Tooltip title={t(Translation.Step.Date.UpdateChildren)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-children\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy + 1 - (row?.getAdults() ? row.getAdults() : 0))].map((v: any, value: number) => {\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Child, t),\n value: value.toString(),\n };\n })}\n value={row?.getChildren()?.toString()}\n onChange={updateNumberOfChildrenOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n </>\n );\n }\n };\n return useMemo(\n () => (\n <>\n <div\n className={classNames(`room-builder-progress ${isCompact} rs-inline-container`, {\n [styles['rs-inline-container']]: isCardLayout,\n [styles['rs-inline-container--card-layout']]: isCardLayout,\n })}\n >\n <div\n className={classNames('rs-inline-filter-container', {\n 'u-flex w-100 flex-wrap room-builder-progress--item --current': !isCardLayout,\n [styles['rs-inline-filter-container']]: isCardLayout,\n })}\n ref={ref}\n >\n <div\n className={classNames('rs-inline-filter-inner', {\n 'u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-': !isCardLayout,\n [styles['rs-inline-filter-inner']]: isCardLayout,\n })}\n >\n <DatePickerSelector />\n <GuestSelector />\n\n <Tooltip\n title={promoCodeTooltip}\n wrapperClasses={classNames('u-w-100@xl- rs-inline-filter-item-promo', {\n [styles['rs-inline-filter-item-promo']]: isCardLayout,\n })}\n >\n <div className=\"room-builder-progress--value u-cursor-pointer\" ref={thisElement} onClick={openPromoModalOnClick}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl-\">\n <Text className=\"u-pad-right--light\" type={TextType.Body} color={row?.getPromoCode() ? row?.getPromoCodeColour() : Color.Navy}>\n {row?.getPromoCode() ? row?.getPromoCode() : 'Promo Code'}\n </Text>\n <Icon icon={IconType.Dropdown} color={Color.DarkGrey} />\n </div>\n </div>\n </Tooltip>\n <Overlay open={isPromoModalOpen} container={RoomstayThemeEngine.EngineContainer} followElement={thisElement.current} onClose={setPromoCodeOnClose}>\n <div className=\"u-pad--heavy\">\n <div>\n <PromoCodeInput\n value={basketContext.selectedBasketRow?.getPromoCode()}\n onChange={changePromoCode}\n valid={\n basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new'\n ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid'\n : undefined\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText size=\"small\" onClick={cancelPromoPopupOnClick}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </div>\n </Overlay>\n </div>\n <div\n className={classNames(`u-flex flex-xl-nowrap flex-row rs-inline-filter-button`, {\n 'w-100': isCompact,\n [styles['rs-inline-filter-button']]: isCardLayout,\n })}\n >\n <BEButton filled primary isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n {t(Translation.Misc.CheckRates)}\n </BEButton>\n </div>\n </div>\n <div\n className={classNames('u-border-rounded rs-inline-content', {\n [styles['rs-inline-content']]: isCardLayout,\n })}\n >\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n classNames={classNames('rs-inline-content-list', {\n [styles['rs-inline-content-list']]: isCardLayout,\n })}\n featuredRates={featuredRates}\n rates={standardRates}\n roomCode={rooms[0].code as string}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n isCardLayout={isCardLayout}\n policy={policy}\n priceDescription={priceDescription}\n />\n ) : (\n <RatesNotFoundBlock />\n )}\n </>\n </AutoAutoHeight>\n ) : (\n <LargeLoader />\n )}\n </div>\n </div>\n </>\n ),\n [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]\n );\n}\n\nexport const renderInlineRoomMiniEngineElement = (container: Element, engine: InlineRoomMiniEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <HashRouter\n future={{\n v7_startTransition: false,\n v7_relativeSplatPath: false,\n }}\n >\n <NotificationContextWrapper>\n <ErrorContextWrapper>\n <CompanyContextWrapper configCompany={engine.getConfig().company}>\n <BasketContextWrapper>\n <InlineRoomMiniEngineElement engine={engine} />\n </BasketContextWrapper>\n </CompanyContextWrapper>\n </ErrorContextWrapper>\n </NotificationContextWrapper>\n </HashRouter>\n </BookingEngineContextWrapper>,\n container\n );\n};\n\nexport const GuestSelectorCustom = ({\n maxAdults,\n maxChildren,\n maxInfants = 10,\n defaultValue,\n onChange,\n disableChild,\n showInfants,\n disableRoom,\n applyButton,\n promoCodeConfig,\n}: {\n maxAdults?: number;\n maxChildren?: number;\n maxInfants?: number;\n defaultValue?: { adults?: number; children?: number; infants?: number; room?: number };\n onChange?: (params: { adults: number; children: number; infants: number; room: number }) => void;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n applyButton?: boolean;\n promoCodeConfig?: {\n promoCode: string;\n setPromoCode: React.Dispatch<React.SetStateAction<string>>;\n onChange: (val: any) => void;\n valid?: boolean;\n };\n}) => {\n const { t } = useTranslation();\n const ref = React.useRef(null);\n const targetRef = useRef(null);\n\n const [adults, setAdults] = useState(defaultValue?.adults ?? 1);\n const [children, setChildren] = useState(defaultValue?.children ?? 0);\n const [infants, setInfants] = useState(defaultValue?.infants ?? 0);\n const [room, setRoom] = useState(defaultValue?.room ?? 1);\n const [open, setOpen] = useState(false);\n\n const onChangeAdults = (newValue: number) => {\n setAdults(newValue);\n onChange?.({ adults: newValue, children: children, infants: infants, room: room });\n };\n const onChangeChildren = (newValue: number) => {\n setChildren(newValue);\n onChange?.({ adults: adults, children: newValue, infants: infants, room: room });\n };\n const onChangeInfants = (newValue: number) => {\n setInfants(newValue);\n onChange?.({ adults: adults, children: children, infants: newValue, room: room });\n };\n\n const onChangeRoom = (newValue: number) => {\n setRoom(newValue);\n onChange?.({ adults: adults, children: children, infants: infants, room: newValue });\n };\n\n const inner = () => {\n return (\n <div className={styles['popper--box']}>\n <div className={styles['popper--content']} ref={ref}>\n <div className={styles['row-wrapper']}>\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(adults, 'Adult', t)}\n </Text>\n <NumberIncrement number={adults} min={1} max={maxAdults} onChange={(value: number) => onChangeAdults(value)} textSize={TextType.Small} />\n </div>\n </div>\n {disableChild ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(children, 'Child', t)}\n </Text>\n <NumberIncrement number={children} min={0} max={maxChildren} onChange={(value: number) => onChangeChildren(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {showInfants ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(infants, 'Infant', t)}\n </Text>\n <NumberIncrement number={infants} min={0} onChange={(value: number) => onChangeInfants(value)} textSize={TextType.Small} />\n </div>\n\n <div className={styles.divider} />\n </div>\n ) : null}\n {disableRoom ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(room, 'Room', t)}\n </Text>\n <NumberIncrement number={room} min={1} max={10} onChange={(value: number) => onChangeRoom(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {promoCodeConfig ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={classNames(styles.row)}>\n <Text className={styles['title']} type={TextType.Small}>\n {t(Translation.Misc.Promocode)}\n </Text>\n <PromoCodeInput className={styles.promo} value={promoCodeConfig.promoCode} onChange={promoCodeConfig.onChange} valid={promoCodeConfig.valid} />\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n };\n\n const content = () => {\n return (\n <Overlay\n offset={[0, 6]}\n usePortal={false}\n followElement={targetRef.current}\n placement=\"top-start\"\n strategy=\"absolute\"\n open={open}\n onClose={() => setOpen?.(false)}\n className={styles.popper}\n hideStyles\n >\n {inner()}\n </Overlay>\n );\n };\n\n const getValueAsText = () => {\n const parts = [StringHelper.pluralWithCount(adults, 'Adult', t)];\n\n if (children > 0) {\n parts.push(StringHelper.pluralWithCount(children, 'Child', t));\n }\n\n if (infants > 0) {\n parts.push(StringHelper.pluralWithCount(infants, 'Infant', t));\n }\n\n return parts.join(' - ');\n };\n\n return (\n <div ref={targetRef} className={classNames('u-cursor-pointer', 'rs-inline-filter-item-guest', styles['rs-inline-filter-item-guest'])}>\n <div className={classNames(styles['card'])} onClick={() => setOpen?.(!open)}>\n <div className={styles['image']}>\n <Icon icon={IconType.People} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.Guests)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {getValueAsText()}\n </Text>\n </div>\n\n <Icon icon={IconType.Dropdown} />\n </div>\n {content()}\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"InlineRoomMiniEngineElement.js","sourceRoot":"/","sources":["src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContext, BasketContextWrapper, BookingEngineContextWrapper, CompanyContext, CompanyContextWrapper } from '@frontend/contexts';\nimport { useCurrentHotel, useEvent } from '@frontend/hooks';\nimport classNames from 'classnames';\nimport { ErrorContextWrapper } from 'contexts/ErrorContext';\nimport { NotificationContextWrapper } from 'contexts/NotificationContext';\nimport dayjs from 'dayjs';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { render } from 'react-dom';\nimport { useTranslation } from 'react-i18next';\nimport { HashRouter } from 'react-router-dom';\nimport useMeasure from 'react-use-measure';\nimport { Translation } from 'translations/Translation';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport API from '@/api/BookingAPI';\nimport BEButton from '@/components/generic/BEButton';\nimport { BookingWizardOnBooking } from '@/components/generic/BookingWizard/BookingWizardContext';\nimport { BookNowPayLaterInfoBlock } from '@/components/generic/BookNowPayLaterInfoBlock';\nimport FloatingDatePicker from '@/components/generic/date/FloatingDatePicker';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport LargeLoader from '@/components/generic/loader/LargeLoader';\nimport NumberIncrement from '@/components/generic/NumberIncrement';\nimport { Overlay } from '@/components/generic/Overlay/Overlay';\nimport PromoCodeInput from '@/components/generic/PromoCodeInput';\nimport { IDefaultSelectOption, Select } from '@/components/generic/Select/Select';\nimport Text, { TextType } from '@/components/generic/Text';\nimport Tooltip from '@/components/generic/Tooltip/Tooltip';\nimport RatesNotFoundBlock from '@/components/steps/room/RatesNotFoundBlock';\nimport RoomRates from '@/components/steps/room/roomDetails/roomRates/RoomRates';\nimport type { InlineRoomMiniEngine } from '@/engines/InlineRoomMiniEngine/InlineRoomMiniEngine';\nimport { RoomListSearchEvent } from '@/events/actions/RoomListSearchEvent';\nimport { useSignedInMember } from '@/hooks/useSignedInMember';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\nimport { RoomListSearch } from '@/models/RoomListSearch';\nimport { SearchParameters } from '@/models/SearchParameters';\nimport StepConfirmation from '@/pages/steps/StepConfirmation/StepConfirmation';\nimport FeaturedPromoFeature from '@/providers/feature/FeaturedPromoFeature';\nimport RoomstayThemeEngine from '@/providers/RoomstayThemeEngine';\nimport { Color } from '@/util/Color';\nimport DataLayer, { InteractionStep, InteractionType } from '@/util/DataLayer';\nimport StringHelper from '@/util/StringHelper';\n\nimport styles from './InlineRoomMiniEngine.module.scss';\n\nexport interface InlineRoomMiniEngineElementProps {\n engine: InlineRoomMiniEngine;\n}\n\nexport default function InlineRoomMiniEngineElement(props: InlineRoomMiniEngineElementProps) {\n const { layout = 'default', policy, priceDescription } = props.engine.getConfig();\n const isCardLayout = layout === 'card';\n\n const { hotel } = useCurrentHotel();\n\n const { memberNumber } = useSignedInMember();\n\n const basketContext = useContext(BasketContext);\n const ccx = useContext(CompanyContext);\n\n const row = basketContext.currentBasketRows[0];\n const [isLoading, setLoading] = useState(true);\n const [ranFirstLoad, setRanFirstLoad] = useState(false);\n const [rooms, setRooms] = useState<Room[]>([]);\n\n const [isPromoModalOpen, setIsPromoModalOpen] = useState(false);\n\n const [featuredRates, setFeaturedRates] = useState<RoomRate[]>([]);\n const [standardRates, setStandardRates] = useState<RoomRate[]>([]);\n\n const [promoCode, setPromoCode] = useState(row?.getPromoCode());\n\n const { t } = useTranslation();\n\n const [ref, bounds] = useMeasure();\n const thisElement = React.useRef<HTMLDivElement | null>(null);\n\n const { raise } = useEvent();\n\n let promoCodeTooltip = '';\n\n if (row?.getPromoCodeStatus() === 'new') {\n promoCodeTooltip = row.getPromoCode() ? t(Translation.Step.Date.PromoCodeTooltip.Checking) : t(Translation.Step.Date.PromoCodeTooltip.NoValue);\n } else {\n if (row?.getPromoCodeStatus() === 'valid') {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Valid);\n } else {\n promoCodeTooltip = t(Translation.Step.Date.PromoCodeTooltip.Invalid);\n }\n }\n\n useEffect(() => {\n let cancelled = false;\n\n if (!row) {\n basketContext.addBasketRow(new BasketRow());\n return;\n }\n\n // Filters availability results by the provided room code.\n row.setEnableRoomCodeFilter(true);\n row.setRoomCode(props.engine.getRoomCode());\n\n if (row && row.getStartDate() && row.getEndDate() && !ranFirstLoad) {\n API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false).then((hotelRooms) => {\n if (!cancelled) {\n setRooms(hotelRooms?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]);\n setLoading(false);\n setRanFirstLoad(true);\n }\n });\n }\n\n return () => {\n cancelled = true;\n };\n }, [row, memberNumber]);\n\n useEffect(() => {\n if (row) {\n findRoomsOnClick();\n }\n }, [row?.getPromoCode()]);\n\n useEffect(() => {\n if (!(rooms && rooms.length > 0)) return;\n\n const room = rooms[0];\n\n let nonPromoRates: RoomRate[] = [];\n const toSetFeaturedRate: RoomRate[] = [];\n\n if (FeaturedPromoFeature.isActive()) {\n for (const currentRate of room.getRates()) {\n if (currentRate.promoCode?.toLowerCase() === basketContext.selectedBasketRow?.getPromoCode()?.toLowerCase()) {\n toSetFeaturedRate.unshift(currentRate);\n } else {\n nonPromoRates.push(currentRate);\n }\n }\n\n if (toSetFeaturedRate.length > 0) {\n setFeaturedRates(toSetFeaturedRate);\n }\n } else {\n nonPromoRates = room.getRates();\n }\n\n try {\n const search: SearchParameters = {\n checkInTime: row?.getStartDate()?.format('YYYY-M-D'),\n checkOutTime: row?.getEndDate()?.format('YYYY-M-D'),\n numAdults: row?.getAdults(),\n numChildren: row?.getChildren(),\n numRooms: 1,\n promoCode: promoCode,\n roomCode: props.engine.getRoomCode(),\n };\n\n const eventRooms: RoomListSearch[] =\n rooms?.map((room) => {\n const { name, code } = room;\n\n const foundRoom: RoomListSearch = {\n name: name as string,\n code: code as string,\n lowestPrice: room.getLowestPrice(),\n highestPrice: room.getHighestPrice(),\n currency: ccx.currentCurrency,\n\n rates:\n room.getRates()?.map((rate) => {\n const { name, code } = rate;\n return {\n name,\n code,\n\n price: {\n averagePrice: rate.getAveragePrice(),\n totalPrice: rate.getTotalPrice(),\n currency: ccx.currentCurrency,\n },\n };\n }) ?? [],\n };\n\n return foundRoom;\n }) ?? [];\n\n const event = new RoomListSearchEvent(search, eventRooms);\n raise(event);\n } catch (ex) {\n console.warn(ex);\n }\n\n setStandardRates(nonPromoRates);\n }, [rooms]);\n\n useEffect(() => {\n if (hotel?.colors) {\n // Do this manually as Guide Step manages this for Fullpage.\n RoomstayThemeEngine.changeTheme(hotel.colors);\n }\n }, [hotel, hotel?.colors]);\n\n const updatePeopleValues = ({ adults, children }: { adults?: number; children?: number; promoCode?: string }) => {\n if (adults && adults !== row.getAdults()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setAdults(adults);\n }\n\n if ((children || children === 0) && children !== row.getChildren()) {\n DataLayer.instance.sendInteraction('Guests', InteractionType.NUMBER_INPUT, InteractionStep.ROOMS);\n row.setChildren(children);\n }\n\n if (!isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n };\n\n const updateDateValues = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n if (startDate && endDate) {\n row.setStartDate(startDate);\n row.setEndDate(endDate);\n\n basketContext.updateBasketRow(row, false);\n }\n };\n\n if (!row?.getArrivalDate() && !row?.getDepartureDate()) {\n row?.setStartDate(dayjs().add(7, 'day'));\n row?.setEndDate(dayjs().add(8, 'day'));\n }\n\n const isCompact = bounds.width < 1000 ? '--compact' : '';\n\n const findRoomsOnClick = async () => {\n if (isCardLayout) {\n basketContext.updateBasketRow(row);\n }\n setLoading(true);\n setRooms(\n (await API.Availability.fetchAvailabilityData(row, hotel?.hotelID as string, memberNumber, false))?.filter((room) => room.code === props.engine.getRoomCode()) as Room[]\n );\n setLoading(false);\n };\n const getButtonLabelHandler = () => {\n return t(Translation.Misc.BookNow);\n };\n\n const updateNumberOfAdultsOnChange = (value: string) => {\n updatePeopleValues({ adults: +value });\n };\n const updateNumberOfChildrenOnChange = (value: string) => {\n updatePeopleValues({ children: +value });\n };\n\n const defaultGuestValue: BookingWizardOnBooking['guests'] = {\n adults: row?.getAdults() ?? 1,\n children: row?.getChildren() ?? 0,\n infants: 0,\n room: 1,\n };\n\n const updatePromoCode = (code: string) => {\n DataLayer.instance.sendInteraction('Promo Code updated', InteractionType.FORM_FIELD, InteractionStep.ROOMS);\n\n if (row) {\n row.setPromoCode(code);\n basketContext.updateBasketRow(row);\n\n if (code) {\n setIsPromoModalOpen(false);\n }\n }\n };\n\n const onAddToBasketOverrideHandler = (rate: RoomRate) => {\n row.setRate(rate);\n basketContext.updateBasketRow(row);\n DataLayer.instance.sendRoomRateAddToCart(rate, row.getNumberOfDays(), row.getStartDate(), row.getEndDate(), row.getPreUpsellRoomRate());\n\n const session = props.engine.getSessionProvider();\n session\n .updateSession({\n step: StepConfirmation.getName(), // TODO:\n })\n .then(() => {\n // TODO: Remove this URL coupling\n window.open(`${hotel?.checkoutUrl ?? '/checkout/'}#${StepConfirmation.getStepUrl()}?session=${session.getCurrentSessionID()}`, '_self');\n });\n };\n const openPromoModalOnClick = () => {\n setIsPromoModalOpen(true);\n };\n const setPromoCodeOnClose = () => {\n setPromoCode(row?.getPromoCode());\n setIsPromoModalOpen(false);\n };\n const cancelPromoPopupOnClick = () => {\n DataLayer.instance.sendInteraction('Cancel Promo Popup', InteractionType.BUTTON, InteractionStep.ROOMS);\n setIsPromoModalOpen(false);\n };\n\n const changePromoCode = (val: any) => {\n updatePromoCode(val);\n };\n\n const maxOccupancy = hotel?.maxOccupancy ?? 1;\n\n const DatePickerSelector = () => {\n const inner = () => {\n if (isCardLayout) {\n return (\n <div className={classNames('u-cursor-pointer', styles['rs-inline-filter-item-dates-inner'])}>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckIn)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {row?.getArrivalDate() ? row.getArrivalDate() : t(Translation.Misc.CheckInPlaceHolder)}\n </Text>\n </div>\n </div>\n <div className={classNames(styles['card'])}>\n <div className={styles['image']}>\n <Icon icon={IconType.Calendar} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.CheckOut)}\n </Text>\n <Text className={styles['sub-title']}>{row?.getDepartureDate() ? row.getDepartureDate() : t(Translation.Misc.CheckOutPlaceHolder)}</Text>\n </div>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl- u-cursor-pointer\">\n <Text color={row?.getArrivalDate() ? Color.Accent : Color.Graphite} className=\"u-mw-75 u-align-center\" bold={!!row?.getArrivalDate()}>\n <span>{row?.getArrivalDate() ? row.getArrivalDate() : 'Arrival Date'}</span>\n </Text>\n <Icon icon={IconType.ArrowRight2} />\n <Text color={row?.getDepartureDate() ? Color.Accent : Color.Graphite} className=\"u-marg-right u-mw-75 u-align-center\" bold={!!row?.getDepartureDate()}>\n <span>{row?.getDepartureDate() ? row.getDepartureDate() : 'Departure Date'}</span>\n </Text>\n </div>\n );\n }\n };\n\n return (\n <FloatingDatePicker\n startDate={row?.getStartDate()}\n selectedDateChanged={updateDateValues}\n className={classNames('rs-inline-filter-item-dates', {\n 'u-w-100@xl- room-builder-progress--value u-marg-left--none ': !isCardLayout,\n [styles['rs-inline-filter-item-dates']]: isCardLayout,\n })}\n roomCode={props.engine.getRoomCode()}\n >\n <Tooltip title={t(Translation.Step.Date.SelectArrivalAndDepartureDatesByClickingHere)} wrapperClasses=\"u-w-100@xl-\">\n {inner()}\n </Tooltip>\n </FloatingDatePicker>\n );\n };\n\n const GuestSelector = () => {\n if (isCardLayout) {\n const numChildren = row?.getChildren?.() || 0;\n const maxAdults = maxOccupancy - numChildren;\n const maxChildren = maxOccupancy + 1 - (row?.getAdults?.() || 0);\n return (\n <GuestSelectorCustom\n maxAdults={maxAdults}\n maxChildren={maxChildren}\n onChange={(newValue) => {\n updatePeopleValues({\n adults: +newValue.adults,\n children: +newValue.children,\n });\n }}\n disableChild={false}\n showInfants={false}\n disableRoom\n applyButton={false}\n defaultValue={defaultGuestValue}\n promoCodeConfig={{\n promoCode: basketContext.selectedBasketRow?.getPromoCode(),\n setPromoCode,\n onChange: changePromoCode,\n valid: basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new' ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid' : undefined,\n }}\n />\n );\n } else {\n return (\n <>\n <Tooltip title={t(Translation.Step.Date.UpdateAdults)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-adult\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center \">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy - (row?.getChildren() ? row.getChildren() : 0))].map((v: any, value: number) => {\n value += 1;\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Adult, t),\n value: value.toString(),\n };\n })}\n value={row?.getAdults()?.toString()}\n onChange={updateNumberOfAdultsOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n <Tooltip title={t(Translation.Step.Date.UpdateChildren)} wrapperClasses=\"u-w-100@xl- rs-inline-filter-item-children\">\n <div className=\"room-builder-progress--value --mw-l u-flex justify-content-center\">\n <Select<IDefaultSelectOption, 'value'>\n nativeOnMobile\n options={[...Array(maxOccupancy + 1 - (row?.getAdults() ? row.getAdults() : 0))].map((v: any, value: number) => {\n return {\n text: StringHelper.pluralWithDictAndCount(value, Translation.Step.Date.Child, t),\n value: value.toString(),\n };\n })}\n value={row?.getChildren()?.toString()}\n onChange={updateNumberOfChildrenOnChange}\n keyName=\"value\"\n labelName=\"text\"\n />\n </div>\n </Tooltip>\n </>\n );\n }\n };\n return useMemo(\n () => (\n <>\n <div\n className={classNames(`room-builder-progress ${isCompact} rs-inline-container`, {\n [styles['rs-inline-container']]: isCardLayout,\n [styles['rs-inline-container--card-layout']]: isCardLayout,\n })}\n >\n <div\n className={classNames('rs-inline-filter-container', {\n 'u-flex w-100 flex-wrap room-builder-progress--item --current': !isCardLayout,\n [styles['rs-inline-filter-container']]: isCardLayout,\n })}\n ref={ref}\n >\n <div\n className={classNames('rs-inline-filter-inner', {\n 'u-flex u-flex-align-center flex-wrap flex-row u-w-100@xl-': !isCardLayout,\n [styles['rs-inline-filter-inner']]: isCardLayout,\n })}\n >\n <DatePickerSelector />\n <GuestSelector />\n\n <Tooltip\n title={promoCodeTooltip}\n wrapperClasses={classNames('u-w-100@xl- rs-inline-filter-item-promo', {\n [styles['rs-inline-filter-item-promo']]: isCardLayout,\n })}\n >\n <div className=\"room-builder-progress--value u-cursor-pointer\" ref={thisElement} onClick={openPromoModalOnClick}>\n <div className=\"u-flex align-items-center justify-content-center u-w-100@xl-\">\n <Text className=\"u-pad-right--light\" type={TextType.Body} color={row?.getPromoCode() ? row?.getPromoCodeColour() : Color.Navy}>\n {row?.getPromoCode() ? row?.getPromoCode() : 'Promo Code'}\n </Text>\n <Icon icon={IconType.Dropdown} color={Color.DarkGrey} />\n </div>\n </div>\n </Tooltip>\n <Overlay open={isPromoModalOpen} container={RoomstayThemeEngine.EngineContainer} followElement={thisElement.current} onClose={setPromoCodeOnClose}>\n <div className=\"u-pad--heavy\">\n <div>\n <PromoCodeInput\n value={basketContext.selectedBasketRow?.getPromoCode()}\n onChange={changePromoCode}\n valid={\n basketContext.selectedBasketRow?.getPromoCodeStatus() !== 'new'\n ? basketContext.selectedBasketRow?.getPromoCodeStatus() === 'valid'\n : undefined\n }\n />\n </div>\n\n <div className=\"u-flex justify-content-end align-items-center u-marg-top\">\n <BEButton isText size=\"small\" onClick={cancelPromoPopupOnClick}>\n {t(Translation.Misc.Cancel)}\n </BEButton>\n </div>\n </div>\n </Overlay>\n </div>\n <div\n className={classNames(`u-flex flex-xl-nowrap flex-row rs-inline-filter-button`, {\n 'w-100': isCompact,\n [styles['rs-inline-filter-button']]: isCardLayout,\n })}\n >\n <BEButton filled primary isLoading={isLoading} wide={isCompact !== ''} onClick={findRoomsOnClick}>\n {t(Translation.Misc.CheckRates)}\n </BEButton>\n </div>\n </div>\n <div\n className={classNames('u-border-rounded rs-inline-content', {\n [styles['rs-inline-content']]: isCardLayout,\n })}\n >\n {!isLoading ? (\n <AutoAutoHeight open={!isLoading}>\n <>\n <BookNowPayLaterInfoBlock />\n {rooms.length > 0 ? (\n <RoomRates\n classNames={classNames('rs-inline-content-list', {\n [styles['rs-inline-content-list']]: isCardLayout,\n })}\n featuredRates={featuredRates}\n rates={standardRates}\n roomCode={rooms[0].code as string}\n getButtonLabel={getButtonLabelHandler}\n onAddToBasketOverride={onAddToBasketOverrideHandler}\n isCardLayout={isCardLayout}\n policy={policy}\n priceDescription={priceDescription}\n />\n ) : (\n <RatesNotFoundBlock />\n )}\n </>\n </AutoAutoHeight>\n ) : (\n <LargeLoader />\n )}\n </div>\n </div>\n </>\n ),\n [isCompact, isLoading, rooms, basketContext.currentBasketRows, isPromoModalOpen, hotel]\n );\n}\n\nexport const renderInlineRoomMiniEngineElement = (container: Element, engine: InlineRoomMiniEngine) => {\n render(\n <BookingEngineContextWrapper engine={engine}>\n <HashRouter\n future={{\n v7_startTransition: false,\n v7_relativeSplatPath: false,\n }}\n >\n <NotificationContextWrapper>\n <ErrorContextWrapper>\n <CompanyContextWrapper configCompany={engine.getConfig().company}>\n <BasketContextWrapper>\n <InlineRoomMiniEngineElement engine={engine} />\n </BasketContextWrapper>\n </CompanyContextWrapper>\n </ErrorContextWrapper>\n </NotificationContextWrapper>\n </HashRouter>\n </BookingEngineContextWrapper>,\n container\n );\n};\n\nexport const GuestSelectorCustom = ({\n maxAdults,\n maxChildren,\n maxInfants = 10,\n defaultValue,\n onChange,\n disableChild,\n showInfants,\n disableRoom,\n applyButton,\n promoCodeConfig,\n}: {\n maxAdults?: number;\n maxChildren?: number;\n maxInfants?: number;\n defaultValue?: { adults?: number; children?: number; infants?: number; room?: number };\n onChange?: (params: { adults: number; children: number; infants: number; room: number }) => void;\n disableChild?: boolean;\n showInfants?: boolean;\n disableRoom?: boolean;\n applyButton?: boolean;\n promoCodeConfig?: {\n promoCode: string;\n setPromoCode: React.Dispatch<React.SetStateAction<string>>;\n onChange: (val: any) => void;\n valid?: boolean;\n };\n}) => {\n const { t } = useTranslation();\n const ref = React.useRef(null);\n const targetRef = useRef(null);\n\n const [adults, setAdults] = useState(defaultValue?.adults ?? 1);\n const [children, setChildren] = useState(defaultValue?.children ?? 0);\n const [infants, setInfants] = useState(defaultValue?.infants ?? 0);\n const [room, setRoom] = useState(defaultValue?.room ?? 1);\n const [open, setOpen] = useState(false);\n\n const onChangeAdults = (newValue: number) => {\n setAdults(newValue);\n onChange?.({ adults: newValue, children: children, infants: infants, room: room });\n };\n const onChangeChildren = (newValue: number) => {\n setChildren(newValue);\n onChange?.({ adults: adults, children: newValue, infants: infants, room: room });\n };\n const onChangeInfants = (newValue: number) => {\n setInfants(newValue);\n onChange?.({ adults: adults, children: children, infants: newValue, room: room });\n };\n\n const onChangeRoom = (newValue: number) => {\n setRoom(newValue);\n onChange?.({ adults: adults, children: children, infants: infants, room: newValue });\n };\n\n const inner = () => {\n return (\n <div className={styles['popper--box']}>\n <div className={styles['popper--content']} ref={ref}>\n <div className={styles['row-wrapper']}>\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(adults, 'Adult', t)}\n </Text>\n <NumberIncrement number={adults} min={1} max={maxAdults} onChange={(value: number) => onChangeAdults(value)} textSize={TextType.Small} />\n </div>\n </div>\n {disableChild ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(children, 'Child', t)}\n </Text>\n <NumberIncrement number={children} min={0} max={maxChildren} onChange={(value: number) => onChangeChildren(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {showInfants ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(infants, 'Infant', t)}\n </Text>\n <NumberIncrement number={infants} min={0} onChange={(value: number) => onChangeInfants(value)} textSize={TextType.Small} />\n </div>\n\n <div className={styles.divider} />\n </div>\n ) : null}\n {disableRoom ? null : (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={styles.row}>\n <Text className={styles['title']} type={TextType.Small}>\n {StringHelper.plural(room, 'Room', t)}\n </Text>\n <NumberIncrement number={room} min={1} max={10} onChange={(value: number) => onChangeRoom(value)} textSize={TextType.Small} />\n </div>\n </div>\n )}\n {promoCodeConfig ? (\n <div className={styles['row-wrapper']}>\n <div className={styles.divider} />\n <div className={classNames(styles.row)}>\n <Text className={styles['title']} type={TextType.Small}>\n {t(Translation.Misc.Promocode)}\n </Text>\n <PromoCodeInput className={styles.promo} value={promoCodeConfig.promoCode} onChange={promoCodeConfig.onChange} valid={promoCodeConfig.valid} />\n </div>\n </div>\n ) : null}\n </div>\n </div>\n );\n };\n\n const content = () => {\n return (\n <Overlay\n offset={[0, 6]}\n usePortal={false}\n followElement={targetRef.current}\n placement=\"top-start\"\n strategy=\"absolute\"\n open={open}\n onClose={() => setOpen?.(false)}\n className={styles.popper}\n hideStyles\n >\n {inner()}\n </Overlay>\n );\n };\n\n const getValueAsText = () => {\n const parts = [StringHelper.pluralWithCount(adults, 'Adult', t)];\n\n if (children > 0) {\n parts.push(StringHelper.pluralWithCount(children, 'Child', t));\n }\n\n if (infants > 0) {\n parts.push(StringHelper.pluralWithCount(infants, 'Infant', t));\n }\n\n return parts.join(' - ');\n };\n\n return (\n <div ref={targetRef} className={classNames('u-cursor-pointer', 'rs-inline-filter-item-guest', styles['rs-inline-filter-item-guest'])}>\n <div className={classNames(styles['card'])} onClick={() => setOpen?.(!open)}>\n <div className={styles['image']}>\n <Icon icon={IconType.People} />\n </div>\n <div className={styles['content']}>\n <Text className={styles['title']} type={TextType.Body}>\n {t(Translation.Misc.Guests)}\n </Text>\n <Text className={styles['sub-title']} type={TextType.Body} color={Color.Navy}>\n {getValueAsText()}\n </Text>\n </div>\n\n <Icon icon={IconType.Dropdown} />\n </div>\n {content()}\n </div>\n );\n};\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.mastercardPaymentHandler = void 0;
|
|
16
|
+
const core_1 = require("@roomstay/core");
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
18
|
+
const MastercardPaymentMethod_1 = require("../../components/steps/confirmation/MastercardPaymentMethod");
|
|
19
|
+
const hooks_1 = require("../../hooks");
|
|
20
|
+
const mastercardPaymentHandler = () => {
|
|
21
|
+
const { hotel } = (0, hooks_1.useCurrentHotel)();
|
|
22
|
+
return {
|
|
23
|
+
name: 'Mastercard',
|
|
24
|
+
isAvailable: (hotel === null || hotel === void 0 ? void 0 : hotel.cardProcessor) === core_1.EHotelCardProcessor.Mastercard,
|
|
25
|
+
isExclusive: true,
|
|
26
|
+
hasCustomConfirmButton: true,
|
|
27
|
+
requireBookingPlaced: true,
|
|
28
|
+
bookingPaymentMethod: core_1.EBookingPaymentMethod.Card,
|
|
29
|
+
onConfirm: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
return { success: true, message: 'Success' };
|
|
31
|
+
}),
|
|
32
|
+
getBookingPaymentRequestObject: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
return {
|
|
34
|
+
Method: core_1.EBookingPaymentMethod.Card,
|
|
35
|
+
};
|
|
36
|
+
}),
|
|
37
|
+
renderPaymentInput: () => react_1.default.createElement(MastercardPaymentMethod_1.MastercardPaymentMethod, null),
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
exports.mastercardPaymentHandler = mastercardPaymentHandler;
|
|
41
|
+
//# sourceMappingURL=MastercardPaymentHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MastercardPaymentHandler.js","sourceRoot":"/","sources":["src/handlers/payment/MastercardPaymentHandler.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAA4E;AAC5E,kDAA0B;AAE1B,qGAAkG;AAClG,mCAA0C;AAInC,MAAM,wBAAwB,GAAG,GAAmB,EAAE;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAC;IAEpC,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,MAAK,0BAAmB,CAAC,UAAU;QACpE,WAAW,EAAE,IAAI;QACjB,sBAAsB,EAAE,IAAI;QAC5B,oBAAoB,EAAE,IAAI;QAC1B,oBAAoB,EAAE,4BAAqB,CAAC,IAAI;QAChD,SAAS,EAAE,GAAS,EAAE;YAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACjD,CAAC,CAAA;QACD,8BAA8B,EAAE,GAAS,EAAE;YACvC,OAAO;gBACH,MAAM,EAAE,4BAAqB,CAAC,IAAI;aACrC,CAAC;QACN,CAAC,CAAA;QACD,kBAAkB,EAAE,GAAG,EAAE,CAAC,8BAAC,iDAAuB,OAAG;KACxD,CAAC;AACN,CAAC,CAAC;AApBW,QAAA,wBAAwB,4BAoBnC","sourcesContent":["import { EBookingPaymentMethod, EHotelCardProcessor } from '@roomstay/core';\nimport React from 'react';\n\nimport { MastercardPaymentMethod } from '@/components/steps/confirmation/MastercardPaymentMethod';\nimport { useCurrentHotel } from '@/hooks';\n\nimport { PaymentHandler } from './PaymentHandler';\n\nexport const mastercardPaymentHandler = (): PaymentHandler => {\n const { hotel } = useCurrentHotel();\n\n return {\n name: 'Mastercard',\n isAvailable: hotel?.cardProcessor === EHotelCardProcessor.Mastercard,\n isExclusive: true,\n hasCustomConfirmButton: true,\n requireBookingPlaced: true,\n bookingPaymentMethod: EBookingPaymentMethod.Card,\n onConfirm: async () => {\n return { success: true, message: 'Success' };\n },\n getBookingPaymentRequestObject: async () => {\n return {\n Method: EBookingPaymentMethod.Card,\n };\n },\n renderPaymentInput: () => <MastercardPaymentMethod />,\n };\n};\n"]}
|
|
@@ -15,6 +15,10 @@ export type PaymentHandler = {
|
|
|
15
15
|
* Only one exclusive payment handler will execute. This depends on the order of the handlers.
|
|
16
16
|
*/
|
|
17
17
|
isExclusive: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* An exclusive payment method may have its own confirm/pay button
|
|
20
|
+
*/
|
|
21
|
+
hasCustomConfirmButton?: boolean;
|
|
18
22
|
bookingPaymentMethod: EBookingPaymentMethod;
|
|
19
23
|
subOptions?: IRadioButtonOption[];
|
|
20
24
|
getBookingPaymentRequestObject: () => Promise<IBookingPayment>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentHandler.js","sourceRoot":"/","sources":["src/handlers/payment/PaymentHandler.ts"],"names":[],"mappings":"","sourcesContent":["import { EBookingPaymentMethod, IBookingPayment } from '@roomstay/core';\nimport { ReactNode } from 'react';\n\nimport { IRadioButtonOption } from '@/components/generic/RadioButtonGroup/RadioButtonGroup';\n\nexport type PaymentHandler = {\n name: string;\n /** If the payment option should be considered. It doesn't mean it will be selectable yet */\n isAvailable: boolean;\n\n isDisabled?: boolean;\n disabledReason?: string;\n\n requireFormFilled?: boolean;\n /** Payment handler will only be selectable if booking has been placed */\n requireBookingPlaced: boolean;\n /**\n * Exclusive payment methods will be displayed separately from all others.\n * Only one exclusive payment handler will execute. This depends on the order of the handlers.\n */\n isExclusive: boolean;\n bookingPaymentMethod: EBookingPaymentMethod;\n\n subOptions?: IRadioButtonOption[];\n\n getBookingPaymentRequestObject: () => Promise<IBookingPayment>;\n onSelect?: () => void;\n\n renderInput?: () => JSX.Element;\n renderPaymentInput?: () => ReactNode | undefined;\n\n onConfirm: () => Promise<{ success: boolean; message: string; data?: Partial<IBookingPayment> | any }>;\n\n onSubOptionChange?: (value?: string) => void;\n};\n\nexport interface PaymentHandlerElementRef {\n submitPayment: () => ReturnType<PaymentHandler['onConfirm']>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PaymentHandler.js","sourceRoot":"/","sources":["src/handlers/payment/PaymentHandler.ts"],"names":[],"mappings":"","sourcesContent":["import { EBookingPaymentMethod, IBookingPayment } from '@roomstay/core';\nimport { ReactNode } from 'react';\n\nimport { IRadioButtonOption } from '@/components/generic/RadioButtonGroup/RadioButtonGroup';\n\nexport type PaymentHandler = {\n name: string;\n /** If the payment option should be considered. It doesn't mean it will be selectable yet */\n isAvailable: boolean;\n\n isDisabled?: boolean;\n disabledReason?: string;\n\n requireFormFilled?: boolean;\n /** Payment handler will only be selectable if booking has been placed */\n requireBookingPlaced: boolean;\n /**\n * Exclusive payment methods will be displayed separately from all others.\n * Only one exclusive payment handler will execute. This depends on the order of the handlers.\n */\n isExclusive: boolean;\n\n /**\n * An exclusive payment method may have its own confirm/pay button\n */\n hasCustomConfirmButton?: boolean;\n\n bookingPaymentMethod: EBookingPaymentMethod;\n\n subOptions?: IRadioButtonOption[];\n\n getBookingPaymentRequestObject: () => Promise<IBookingPayment>;\n onSelect?: () => void;\n\n renderInput?: () => JSX.Element;\n renderPaymentInput?: () => ReactNode | undefined;\n\n onConfirm: () => Promise<{ success: boolean; message: string; data?: Partial<IBookingPayment> | any }>;\n\n onSubOptionChange?: (value?: string) => void;\n};\n\nexport interface PaymentHandlerElementRef {\n submitPayment: () => ReturnType<PaymentHandler['onConfirm']>;\n}\n"]}
|
|
@@ -20,12 +20,12 @@ export interface IAvailableNightStay {
|
|
|
20
20
|
available: boolean;
|
|
21
21
|
}
|
|
22
22
|
export declare const useCalendarNightStay: ({ basketContext, }: UseCalendarNightStayProps) => {
|
|
23
|
-
getLastValidDay: (fromDate: Dayjs, toDate: Dayjs) => Promise<{
|
|
23
|
+
getLastValidDay: (fromDate: Dayjs, toDate: Dayjs, roomCode?: string) => Promise<{
|
|
24
24
|
lastValidDay: Dayjs;
|
|
25
25
|
nightStayValidation: INightStayValidation;
|
|
26
26
|
isValidNightStay: boolean;
|
|
27
27
|
}>;
|
|
28
|
-
getArrivalNightStay: (fromDate: Dayjs) => Promise<IArrivalNightStay>;
|
|
28
|
+
getArrivalNightStay: (fromDate: Dayjs, roomCode: string) => Promise<IArrivalNightStay>;
|
|
29
29
|
checkAvailableNightStay: ({ arrivalNightStay, startDate, dateToCheck }: {
|
|
30
30
|
arrivalNightStay: IArrivalNightStay;
|
|
31
31
|
startDate: Dayjs | null;
|
|
@@ -26,14 +26,16 @@ const useCalendarNightStay = ({ basketContext, }) => {
|
|
|
26
26
|
validationMinNightStay: null,
|
|
27
27
|
validationMaxNightStay: null,
|
|
28
28
|
};
|
|
29
|
-
const getLastValidDay = (fromDate, toDate) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
|
+
const getLastValidDay = (fromDate, toDate, roomCode) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
30
|
var _a, _b, _c, _d;
|
|
31
31
|
const selectedBasketRow = basketContext.selectedBasketRow;
|
|
32
32
|
const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;
|
|
33
33
|
const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;
|
|
34
34
|
const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;
|
|
35
35
|
const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';
|
|
36
|
-
|
|
36
|
+
if (!roomCode) {
|
|
37
|
+
roomCode = selectedBasketRow ? selectedBasketRow.getRoomCode() : '';
|
|
38
|
+
}
|
|
37
39
|
const toDateDiff = (_a = toDate === null || toDate === void 0 ? void 0 : toDate.diff) === null || _a === void 0 ? void 0 : _a.call(toDate, fromDate, 'day');
|
|
38
40
|
for (let i = 0; i <= toDateDiff; i++) {
|
|
39
41
|
const dayToCheck = fromDate.add(i, 'day');
|
|
@@ -83,14 +85,13 @@ const useCalendarNightStay = ({ basketContext, }) => {
|
|
|
83
85
|
isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,
|
|
84
86
|
});
|
|
85
87
|
}));
|
|
86
|
-
const getArrivalNightStay = (fromDate) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
|
|
88
|
+
const getArrivalNightStay = (fromDate, roomCode) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () {
|
|
87
89
|
var _e, _f;
|
|
88
90
|
const selectedBasketRow = basketContext.selectedBasketRow;
|
|
89
91
|
const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;
|
|
90
92
|
const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;
|
|
91
93
|
const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;
|
|
92
94
|
const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';
|
|
93
|
-
const roomCode = selectedBasketRow ? selectedBasketRow.getRoomCode() : '';
|
|
94
95
|
const price = yield BookingAPI_1.default.Availability.getCheapestPriceForDay(fromDate, adults, children, infants, promoCode, roomCode, hotel === null || hotel === void 0 ? void 0 : hotel.hotelID, memberNumber, false);
|
|
95
96
|
return resolve({
|
|
96
97
|
arrivalMinNightStay: (_e = price === null || price === void 0 ? void 0 : price.arrivalMinNightStay) !== null && _e !== void 0 ? _e : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCalendarNightStay.js","sourceRoot":"/","sources":["src/hooks/useCalendarNightStay.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContextType } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { Dayjs } from 'dayjs';\n\nimport API from '@/api/BookingAPI';\n\nimport { useSignedInMember } from './useSignedInMember';\n\ninterface UseCalendarNightStayProps {\n basketContext: BasketContextType;\n}\n\nexport interface INightStayValidation {\n init: boolean;\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n validationMinNightStay: number | null;\n validationMaxNightStay: number | null;\n}\nexport interface IArrivalNightStay {\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n}\nexport interface IAvailableNightStay {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n}\n\nexport const useCalendarNightStay = ({\n basketContext,\n}: UseCalendarNightStayProps): {\n getLastValidDay: (\n fromDate: Dayjs,\n toDate: Dayjs\n ) => Promise<{\n lastValidDay: Dayjs;\n nightStayValidation: INightStayValidation;\n isValidNightStay: boolean;\n }>;\n getArrivalNightStay: (fromDate: Dayjs) => Promise<IArrivalNightStay>;\n checkAvailableNightStay: ({ arrivalNightStay, startDate, dateToCheck }: { arrivalNightStay: IArrivalNightStay; startDate: Dayjs | null; dateToCheck: Dayjs | null }) => {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n };\n} => {\n const { hotel } = useCurrentHotel();\n const { memberNumber } = useSignedInMember();\n const nightStayValidation: INightStayValidation = {\n init: false,\n arrivalMinNightStay: null,\n arrivalMaxNightStay: null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n };\n const getLastValidDay = (fromDate: Dayjs, toDate: Dayjs): Promise<{ lastValidDay: Dayjs; nightStayValidation: INightStayValidation; isValidNightStay: boolean }> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n const roomCode = selectedBasketRow ? selectedBasketRow.getRoomCode() : '';\n\n const toDateDiff = toDate?.diff?.(fromDate, 'day');\n\n for (let i = 0; i <= toDateDiff; i++) {\n const dayToCheck = fromDate.add(i, 'day');\n const price = await API.Availability.getCheapestPriceForDay(\n dayToCheck,\n adults,\n children,\n infants,\n promoCode,\n roomCode,\n hotel?.hotelID as string,\n memberNumber,\n false\n );\n const nextMustBreak = !price?.price && hotel;\n const departureDateDiff = dayToCheck?.diff?.(fromDate, 'day');\n if (departureDateDiff == 0) {\n //Arrival date\n Object.assign(nightStayValidation, {\n init: true,\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n });\n }\n if (nightStayValidation.arrivalMinNightStay) {\n //Min. Departure date\n if (departureDateDiff >= nightStayValidation.arrivalMinNightStay) {\n nightStayValidation.validationMinNightStay = null;\n } else {\n nightStayValidation.validationMinNightStay = nightStayValidation.arrivalMinNightStay;\n }\n }\n if (nightStayValidation.arrivalMaxNightStay) {\n //Max. Departure date\n if (departureDateDiff <= nightStayValidation.arrivalMaxNightStay) {\n nightStayValidation.validationMaxNightStay = null;\n } else {\n nightStayValidation.validationMaxNightStay = nightStayValidation.arrivalMaxNightStay;\n }\n }\n\n if (nextMustBreak) {\n //if true, this date only available for departure (no price for checking)\n return resolve({\n lastValidDay: dayToCheck,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n }\n }\n\n return resolve({\n lastValidDay: toDate,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n });\n\n const getArrivalNightStay = (fromDate: Dayjs): Promise<IArrivalNightStay> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n const roomCode = selectedBasketRow ? selectedBasketRow.getRoomCode() : '';\n\n const price = await API.Availability.getCheapestPriceForDay(fromDate, adults, children, infants, promoCode, roomCode, hotel?.hotelID as string, memberNumber, false);\n return resolve({\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n });\n });\n\n const checkAvailableNightStay = ({\n arrivalNightStay,\n startDate,\n dateToCheck,\n }: {\n arrivalNightStay: IArrivalNightStay;\n startDate: Dayjs | null;\n dateToCheck: Dayjs | null;\n }): IAvailableNightStay => {\n const arrivalMinNightStay = arrivalNightStay?.arrivalMinNightStay ?? null;\n const arrivalMaxNightStay = arrivalNightStay?.arrivalMaxNightStay ?? null;\n let minDate = null;\n let maxDate = null;\n if (dateToCheck && startDate && (arrivalMinNightStay || arrivalMaxNightStay)) {\n const validation: boolean[] = [];\n if (arrivalMinNightStay) {\n minDate = startDate.clone().add(arrivalMinNightStay, 'day');\n validation.push(dateToCheck >= minDate);\n }\n if (arrivalMaxNightStay) {\n maxDate = startDate.clone().add(arrivalMaxNightStay, 'day');\n validation.push(dateToCheck <= maxDate);\n }\n return {\n minDate,\n maxDate,\n available: validation.every((v) => v === true),\n };\n }\n return {\n minDate,\n maxDate,\n available: true,\n };\n };\n\n return {\n getLastValidDay,\n getArrivalNightStay,\n checkAvailableNightStay,\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"useCalendarNightStay.js","sourceRoot":"/","sources":["src/hooks/useCalendarNightStay.tsx"],"names":[],"mappings":"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","sourcesContent":["import { BasketContextType } from '@frontend/contexts';\nimport { useCurrentHotel } from '@frontend/hooks';\nimport { Dayjs } from 'dayjs';\n\nimport API from '@/api/BookingAPI';\n\nimport { useSignedInMember } from './useSignedInMember';\n\ninterface UseCalendarNightStayProps {\n basketContext: BasketContextType;\n}\n\nexport interface INightStayValidation {\n init: boolean;\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n validationMinNightStay: number | null;\n validationMaxNightStay: number | null;\n}\nexport interface IArrivalNightStay {\n arrivalMinNightStay: number | null;\n arrivalMaxNightStay: number | null;\n}\nexport interface IAvailableNightStay {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n}\n\nexport const useCalendarNightStay = ({\n basketContext,\n}: UseCalendarNightStayProps): {\n getLastValidDay: (\n fromDate: Dayjs,\n toDate: Dayjs,\n roomCode?: string\n ) => Promise<{\n lastValidDay: Dayjs;\n nightStayValidation: INightStayValidation;\n isValidNightStay: boolean;\n }>;\n getArrivalNightStay: (fromDate: Dayjs, roomCode: string) => Promise<IArrivalNightStay>;\n checkAvailableNightStay: ({ arrivalNightStay, startDate, dateToCheck }: { arrivalNightStay: IArrivalNightStay; startDate: Dayjs | null; dateToCheck: Dayjs | null }) => {\n minDate: Dayjs | null;\n maxDate: Dayjs | null;\n available: boolean;\n };\n} => {\n const { hotel } = useCurrentHotel();\n const { memberNumber } = useSignedInMember();\n const nightStayValidation: INightStayValidation = {\n init: false,\n arrivalMinNightStay: null,\n arrivalMaxNightStay: null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n };\n const getLastValidDay = (\n fromDate: Dayjs,\n toDate: Dayjs,\n roomCode?: string\n ): Promise<{ lastValidDay: Dayjs; nightStayValidation: INightStayValidation; isValidNightStay: boolean }> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n if (!roomCode) {\n roomCode = selectedBasketRow ? selectedBasketRow.getRoomCode() : '';\n }\n\n const toDateDiff = toDate?.diff?.(fromDate, 'day');\n\n for (let i = 0; i <= toDateDiff; i++) {\n const dayToCheck = fromDate.add(i, 'day');\n const price = await API.Availability.getCheapestPriceForDay(\n dayToCheck,\n adults,\n children,\n infants,\n promoCode,\n roomCode,\n hotel?.hotelID as string,\n memberNumber,\n false\n );\n const nextMustBreak = !price?.price && hotel;\n const departureDateDiff = dayToCheck?.diff?.(fromDate, 'day');\n if (departureDateDiff == 0) {\n //Arrival date\n Object.assign(nightStayValidation, {\n init: true,\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n validationMinNightStay: null,\n validationMaxNightStay: null,\n });\n }\n if (nightStayValidation.arrivalMinNightStay) {\n //Min. Departure date\n if (departureDateDiff >= nightStayValidation.arrivalMinNightStay) {\n nightStayValidation.validationMinNightStay = null;\n } else {\n nightStayValidation.validationMinNightStay = nightStayValidation.arrivalMinNightStay;\n }\n }\n if (nightStayValidation.arrivalMaxNightStay) {\n //Max. Departure date\n if (departureDateDiff <= nightStayValidation.arrivalMaxNightStay) {\n nightStayValidation.validationMaxNightStay = null;\n } else {\n nightStayValidation.validationMaxNightStay = nightStayValidation.arrivalMaxNightStay;\n }\n }\n\n if (nextMustBreak) {\n //if true, this date only available for departure (no price for checking)\n return resolve({\n lastValidDay: dayToCheck,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n }\n }\n\n return resolve({\n lastValidDay: toDate,\n nightStayValidation,\n isValidNightStay: !nightStayValidation.validationMinNightStay && !nightStayValidation.validationMaxNightStay,\n });\n });\n\n const getArrivalNightStay = (fromDate: Dayjs, roomCode: string): Promise<IArrivalNightStay> =>\n new Promise(async (resolve) => {\n const selectedBasketRow = basketContext.selectedBasketRow;\n const adults = selectedBasketRow ? selectedBasketRow.getAdults() : 0;\n const children = selectedBasketRow ? selectedBasketRow.getChildren() : 0;\n const infants = selectedBasketRow ? selectedBasketRow.getInfants() : 0;\n const promoCode = selectedBasketRow ? selectedBasketRow.getPromoCode() : '';\n\n const price = await API.Availability.getCheapestPriceForDay(fromDate, adults, children, infants, promoCode, roomCode, hotel?.hotelID as string, memberNumber, false);\n return resolve({\n arrivalMinNightStay: price?.arrivalMinNightStay ?? null,\n arrivalMaxNightStay: price?.arrivalMaxNightStay ?? null,\n });\n });\n\n const checkAvailableNightStay = ({\n arrivalNightStay,\n startDate,\n dateToCheck,\n }: {\n arrivalNightStay: IArrivalNightStay;\n startDate: Dayjs | null;\n dateToCheck: Dayjs | null;\n }): IAvailableNightStay => {\n const arrivalMinNightStay = arrivalNightStay?.arrivalMinNightStay ?? null;\n const arrivalMaxNightStay = arrivalNightStay?.arrivalMaxNightStay ?? null;\n let minDate = null;\n let maxDate = null;\n if (dateToCheck && startDate && (arrivalMinNightStay || arrivalMaxNightStay)) {\n const validation: boolean[] = [];\n if (arrivalMinNightStay) {\n minDate = startDate.clone().add(arrivalMinNightStay, 'day');\n validation.push(dateToCheck >= minDate);\n }\n if (arrivalMaxNightStay) {\n maxDate = startDate.clone().add(arrivalMaxNightStay, 'day');\n validation.push(dateToCheck <= maxDate);\n }\n return {\n minDate,\n maxDate,\n available: validation.every((v) => v === true),\n };\n }\n return {\n minDate,\n maxDate,\n available: true,\n };\n };\n\n return {\n getLastValidDay,\n getArrivalNightStay,\n checkAvailableNightStay,\n };\n};\n"]}
|
|
@@ -19,6 +19,8 @@ export type HotelRoomsDTO = {
|
|
|
19
19
|
export type HotelRoomGroupsDTO = {
|
|
20
20
|
groupName: string;
|
|
21
21
|
id: string;
|
|
22
|
+
checkInTime?: string | null;
|
|
23
|
+
checkOutTime?: string | null;
|
|
22
24
|
filters: {
|
|
23
25
|
[id: string]: {
|
|
24
26
|
name: string;
|
|
@@ -112,7 +114,7 @@ export type HotelDTO = {
|
|
|
112
114
|
stateFieldConfiguration?: EHotelStateFieldConfiguration;
|
|
113
115
|
itineraryNote: string;
|
|
114
116
|
disableSavedPayments: boolean;
|
|
115
|
-
} & Pick<AdminHotelConfig, 'childConfiguration' | 'perks' | 'perkTitle' | 'countryPrefix' | 'quoteImageDesktop' | 'quoteImageMobile' | 'memberOnlyImage' | 'captureChildAge' | 'company' | 'fees' | 'addDepositFeeToBookingTotal' | 'minAdultAge' | 'maxAdultAge' | 'countInfantsInOccupancy' | 'preferProviderBookingId'> & Pick<ClientHotelConfig, 'memberOnlyRenderRateLast'>;
|
|
117
|
+
} & Pick<AdminHotelConfig, 'childConfiguration' | 'perks' | 'perkTitle' | 'countryPrefix' | 'quoteImageDesktop' | 'quoteImageMobile' | 'memberOnlyImage' | 'captureChildAge' | 'company' | 'fees' | 'addDepositFeeToBookingTotal' | 'minAdultAge' | 'maxAdultAge' | 'countInfantsInOccupancy' | 'preferProviderBookingId' | 'showUnavailableRooms'> & Pick<ClientHotelConfig, 'memberOnlyRenderRateLast'>;
|
|
116
118
|
export declare enum VGSCardName {
|
|
117
119
|
Visa = "visa",
|
|
118
120
|
Mastercard = "mastercard",
|