@roomstay/frontend 2.6.57 → 2.6.59
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/493.bundle.js +1 -1
- package/dist/537.bundle.js +1 -0
- package/dist/903.bundle.js +1 -1
- package/dist/main.bundle.js +1 -1
- package/dist/src/api/AvailabilityAPI.js +8 -6
- package/dist/src/api/AvailabilityAPI.js.map +1 -1
- package/dist/src/components/generic/BookNowPayLaterInfoBlock.js +1 -1
- package/dist/src/components/generic/BookNowPayLaterInfoBlock.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +9 -1
- package/dist/src/components/generic/BookingWizard/BookingWizard.js +86 -1
- package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.d.ts +14 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js +27 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +19 -0
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +116 -30
- package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.d.ts +12 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardContext.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.d.ts +6 -2
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js +96 -29
- package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.d.ts +18 -3
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +118 -27
- package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js +53 -18
- package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js.map +1 -1
- package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js +5 -2
- package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.d.ts +6 -0
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.js +8 -7
- package/dist/src/components/generic/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.d.ts +2 -0
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js +11 -2
- package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js.map +1 -1
- package/dist/src/components/generic/Event/EventCard.js +6 -2
- package/dist/src/components/generic/Event/EventCard.js.map +1 -1
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.js +19 -4
- package/dist/src/components/generic/PaymentCard/PaymentCardInput.js.map +1 -1
- package/dist/src/components/generic/RadioButtonGroup/RadioButton.d.ts +1 -0
- package/dist/src/components/generic/RadioButtonGroup/RadioButton.js +2 -2
- package/dist/src/components/generic/RadioButtonGroup/RadioButton.js.map +1 -1
- package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.d.ts +3 -2
- package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +10 -10
- package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
- package/dist/src/components/generic/date/DatePicker.d.ts +5 -0
- package/dist/src/components/generic/date/DatePicker.js +7 -3
- package/dist/src/components/generic/date/DatePicker.js.map +1 -1
- package/dist/src/components/generic/date/DatePickerDay.js +13 -3
- package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
- package/dist/src/components/reservation/ReservationItem.js +5 -2
- package/dist/src/components/reservation/ReservationItem.js.map +1 -1
- package/dist/src/components/reservation/ReservationList.js +1 -1
- package/dist/src/components/reservation/ReservationList.js.map +1 -1
- package/dist/src/components/steps/confirmation/PaymentInformation.js +4 -1
- package/dist/src/components/steps/confirmation/PaymentInformation.js.map +1 -1
- package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js +7 -1
- package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +7 -4
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js +3 -1
- package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js.map +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js +1 -1
- package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +1 -0
- package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +9 -7
- package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
- package/dist/src/contexts/DatePickerContext.d.ts +1 -0
- package/dist/src/contexts/DatePickerContext.js.map +1 -1
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +3 -0
- package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +3 -3
- package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +9 -2
- package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +10 -10
- package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
- package/dist/src/handlers/payment/PaymentHandler.d.ts +1 -0
- package/dist/src/handlers/payment/PaymentHandler.js.map +1 -1
- package/dist/src/handlers/payment/VGSMemberPaymentHandler.js +13 -35
- package/dist/src/handlers/payment/VGSMemberPaymentHandler.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/Api/HotelDTO.d.ts +1 -1
- package/dist/src/models/Api/HotelDTO.js.map +1 -1
- package/dist/src/models/BasketRow.d.ts +3 -6
- package/dist/src/models/BasketRow.js +11 -15
- package/dist/src/models/BasketRow.js.map +1 -1
- package/dist/src/models/BookingWizard/BookingWizardProperty.d.ts +4 -0
- package/dist/src/models/BookingWizard/BookingWizardProperty.js.map +1 -1
- package/dist/src/models/Client/Hotel/Hotel.d.ts +4 -0
- package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
- package/dist/src/models/Confirmation.d.ts +1 -2
- package/dist/src/models/Confirmation.js.map +1 -1
- package/dist/src/models/Room/Room.d.ts +7 -0
- package/dist/src/models/Room/Room.js +13 -0
- package/dist/src/models/Room/Room.js.map +1 -1
- package/dist/src/models/Room/RoomRate.js +3 -0
- package/dist/src/models/Room/RoomRate.js.map +1 -1
- package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
- package/dist/src/pages/findReservation/FindReservationResults.js +12 -8
- package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
- package/dist/src/providers/RoomstayThemeEngine.d.ts +1 -1
- package/dist/src/providers/RoomstayThemeEngine.js +20 -5
- package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
- package/dist/src/stories/RadioButtonGroup.stories.d.ts +1 -1
- package/dist/src/translations/Translation.d.ts +7 -1
- package/dist/src/translations/Translation.js +7 -1
- package/dist/src/translations/Translation.js.map +1 -1
- package/dist/src/translations/languages/en-gb.js +7 -1
- package/dist/src/translations/languages/en-gb.js.map +1 -1
- package/dist/src/util/Analytics/GoogleAnalytics4.js +27 -12
- package/dist/src/util/Analytics/GoogleAnalytics4.js.map +1 -1
- package/dist/src/util/Analytics/UniversalAnalytics.js +3 -3
- package/dist/src/util/Analytics/UniversalAnalytics.js.map +1 -1
- package/dist/src/util/DataLayer.d.ts +5 -1
- package/dist/src/util/DataLayer.js +9 -2
- package/dist/src/util/DataLayer.js.map +1 -1
- package/dist/src/util/EventsHelper.d.ts +4 -1
- package/dist/src/util/EventsHelper.js +15 -4
- package/dist/src/util/EventsHelper.js.map +1 -1
- package/dist/test.bundle.js +1 -1
- package/dist/tests/offline/entry/config/hotelSpecDefault.js +1 -1
- package/dist/tests/offline/entry/config/hotelSpecDefault.js.map +1 -1
- package/dist/vendors.bundle.js +1 -1
- package/package.json +2 -2
- package/dist/586.bundle.js +0 -1
- package/dist/850.bundle.js +0 -1
|
@@ -34,31 +34,42 @@ const react_i18next_1 = require("react-i18next");
|
|
|
34
34
|
const AutoAutoHeight_1 = __importDefault(require("../../../../animations/AutoAutoHeight"));
|
|
35
35
|
const BEButton_1 = __importDefault(require("../../BEButton"));
|
|
36
36
|
const DateRangePicker_1 = __importDefault(require("../../DateRangePicker/DateRangePicker"));
|
|
37
|
-
const Icon_1 = __importStar(require("../../Icon/Icon"));
|
|
38
37
|
const Text_1 = __importDefault(require("../../Text"));
|
|
39
38
|
const Translation_1 = require("../../../../translations/Translation");
|
|
40
39
|
const FloatingDateRangePicker_1 = __importDefault(require("../../DateRangePicker/FloatingDateRangePicker"));
|
|
41
40
|
const BookingWizard_1 = require("../BookingWizard");
|
|
42
41
|
const BookingWizard_module_scss_1 = __importDefault(require("../BookingWizard.module.scss"));
|
|
43
|
-
const BookingWizardBottomSheet_1 =
|
|
42
|
+
const BookingWizardBottomSheet_1 = __importStar(require("../BookingWizardBottomSheet/BookingWizardBottomSheet"));
|
|
43
|
+
const BookingWizardContent_1 = require("../BookingWizardContent");
|
|
44
44
|
const BookingWizardContext_1 = require("../BookingWizardContext");
|
|
45
45
|
const BookingWizardDateSelector_module_scss_1 = __importDefault(require("./BookingWizardDateSelector.module.scss"));
|
|
46
46
|
const BookingWizardDateSelector = (props) => {
|
|
47
|
-
const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption } = props;
|
|
48
|
-
|
|
47
|
+
const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption, divider = true, hidden, inactive } = props;
|
|
48
|
+
if (hidden)
|
|
49
|
+
return null;
|
|
50
|
+
const { overlay, theme, layout, type: overlayType, isMobile, isSmallContainer, stateSections, onPrevHandler, onNextHandler, isImagesTheme, isImagesThemeMobile, } = (0, BookingWizardContext_1.useBookingWizard)();
|
|
49
51
|
const { t } = (0, react_i18next_1.useTranslation)();
|
|
50
52
|
const checkOutDatePickerRef = react_1.default.useRef(null);
|
|
51
|
-
|
|
52
|
-
const [
|
|
53
|
+
//With isImagesTheme, default both startDate and endDate are null
|
|
54
|
+
const [startDate, setStartDate] = (0, react_1.useState)(defaultStartDate !== null && defaultStartDate !== void 0 ? defaultStartDate : (isImagesTheme ? null : (0, dayjs_1.default)()));
|
|
55
|
+
const [endDate, setEndDate] = (0, react_1.useState)(defaultEndDate !== null && defaultEndDate !== void 0 ? defaultEndDate : (isImagesTheme ? null : (0, dayjs_1.default)().add(1, 'days')));
|
|
53
56
|
const [selectingStartDate, setSelectingStartDate] = (0, react_1.useState)(startDate);
|
|
54
57
|
const [selectingEndDate, setSelectingEndDate] = (0, react_1.useState)(endDate);
|
|
55
58
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
59
|
+
const [isOverlayOpen, setIsOverlayOpen] = (0, react_1.useState)(false);
|
|
56
60
|
const [checkInWrapperRef, setCheckInWrapperRef] = react_1.default.useState();
|
|
61
|
+
const [monthCount, setMonthCount] = (0, react_1.useState)(2);
|
|
62
|
+
(0, react_1.useEffect)(() => {
|
|
63
|
+
const opening = stateSections[BookingWizard_1.EBookingWizardSection.Date].opening;
|
|
64
|
+
setIsOpen(opening);
|
|
65
|
+
}, [stateSections]);
|
|
57
66
|
let RowWrapper = react_1.default.Fragment;
|
|
58
67
|
const rowWrapperProps = {};
|
|
59
68
|
if (layout === 'button' || isMobile || isSmallContainer) {
|
|
60
69
|
RowWrapper = 'div';
|
|
61
|
-
rowWrapperProps.className = BookingWizard_module_scss_1.default.itemGroup
|
|
70
|
+
rowWrapperProps.className = (0, classnames_1.default)(BookingWizard_module_scss_1.default.itemGroup, {
|
|
71
|
+
[BookingWizard_module_scss_1.default['inactive']]: inactive,
|
|
72
|
+
});
|
|
62
73
|
rowWrapperProps.ref = (ref) => {
|
|
63
74
|
if (layout === 'button') {
|
|
64
75
|
setCheckInWrapperRef(ref);
|
|
@@ -69,7 +80,9 @@ const BookingWizardDateSelector = (props) => {
|
|
|
69
80
|
var _a;
|
|
70
81
|
setStartDate(startDate);
|
|
71
82
|
setEndDate(endDate);
|
|
72
|
-
|
|
83
|
+
if (!isImagesThemeMobile) {
|
|
84
|
+
setIsOpen(false);
|
|
85
|
+
}
|
|
73
86
|
(_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, startDate, endDate);
|
|
74
87
|
};
|
|
75
88
|
const _onCheckoutDateChange = (newEndDate) => {
|
|
@@ -77,7 +90,9 @@ const BookingWizardDateSelector = (props) => {
|
|
|
77
90
|
(_a = props === null || props === void 0 ? void 0 : props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, startDate, newEndDate);
|
|
78
91
|
setEndDate(newEndDate);
|
|
79
92
|
if (newEndDate) {
|
|
80
|
-
|
|
93
|
+
if (!isImagesThemeMobile) {
|
|
94
|
+
setIsOpen(false);
|
|
95
|
+
}
|
|
81
96
|
}
|
|
82
97
|
};
|
|
83
98
|
const _toggleInlineDatePicker = () => {
|
|
@@ -85,19 +100,45 @@ const BookingWizardDateSelector = (props) => {
|
|
|
85
100
|
(_a = checkOutDatePickerRef === null || checkOutDatePickerRef === void 0 ? void 0 : checkOutDatePickerRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
|
|
86
101
|
setIsOpen(!isOpen);
|
|
87
102
|
};
|
|
103
|
+
const onOverlayOpenChange = (isOpen) => {
|
|
104
|
+
setIsOverlayOpen(isOpen);
|
|
105
|
+
};
|
|
106
|
+
const ClearButton = ({ date, onClick }) => {
|
|
107
|
+
return isImagesTheme ? react_1.default.createElement(BookingWizardContent_1.BWClearButton, { hidden: isOverlayOpen && !!date, onClick: onClick }) : react_1.default.createElement(react_1.default.Fragment, null);
|
|
108
|
+
};
|
|
109
|
+
const onApply = () => {
|
|
110
|
+
setDate(selectingStartDate, selectingEndDate);
|
|
111
|
+
};
|
|
88
112
|
const _checkInDate = (date, disabledClass) => {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
113
|
+
const defaultPlaceHolder = isImagesTheme ? t(Translation_1.Translation.Misc.CheckInPlaceHolder) : '-';
|
|
114
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)({
|
|
115
|
+
[BookingWizard_module_scss_1.default.item]: !disabledClass,
|
|
116
|
+
[BookingWizard_module_scss_1.default['item-fullwidth']]: isImagesTheme,
|
|
117
|
+
}), onClick: _toggleInlineDatePicker },
|
|
118
|
+
react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default['item-with-icon'] },
|
|
119
|
+
react_1.default.createElement("div", null,
|
|
120
|
+
react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.CheckIn)),
|
|
121
|
+
layout === 'horizontal-condensed' ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
122
|
+
react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-1'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('DD')) || defaultPlaceHolder),
|
|
123
|
+
react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-2'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('MMM')) || defaultPlaceHolder))) : (react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format(dateFormat)) || defaultPlaceHolder))),
|
|
124
|
+
react_1.default.createElement(ClearButton, { date: date, onClick: () => {
|
|
125
|
+
setDate(null, endDate);
|
|
126
|
+
} }))));
|
|
94
127
|
};
|
|
95
128
|
const _checkOutDate = (date) => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
129
|
+
const defaultPlaceHolder = isImagesTheme ? t(Translation_1.Translation.Misc.CheckOutPlaceHolder) : '-';
|
|
130
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(BookingWizard_module_scss_1.default.item, {
|
|
131
|
+
[BookingWizard_module_scss_1.default['active']]: isOverlayOpen && !!startDate && !endDate,
|
|
132
|
+
}), onClick: _toggleInlineDatePicker },
|
|
133
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(BookingWizard_module_scss_1.default['item-with-icon']) },
|
|
134
|
+
react_1.default.createElement("div", null,
|
|
135
|
+
react_1.default.createElement("label", { className: BookingWizard_module_scss_1.default.label }, t(Translation_1.Translation.Misc.CheckOut)),
|
|
136
|
+
layout === 'horizontal-condensed' ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
137
|
+
react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-1'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('DD')) || defaultPlaceHolder),
|
|
138
|
+
react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizardDateSelector_module_scss_1.default['line-2'], BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format('MMM')) || defaultPlaceHolder))) : (react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.date, BookingWizard_module_scss_1.default.value), bold: true }, (date === null || date === void 0 ? void 0 : date.format(dateFormat)) || defaultPlaceHolder))),
|
|
139
|
+
react_1.default.createElement(ClearButton, { date: date, onClick: () => {
|
|
140
|
+
setDate(startDate, null);
|
|
141
|
+
} }))));
|
|
101
142
|
};
|
|
102
143
|
const _combineDates = (checkIn, checkOut) => {
|
|
103
144
|
return (react_1.default.createElement("div", { onClick: _toggleInlineDatePicker },
|
|
@@ -117,20 +158,41 @@ const BookingWizardDateSelector = (props) => {
|
|
|
117
158
|
react_1.default.createElement(DateRangePicker_1.default, { selectedStartDate: startDate, selectedEndDate: endDate, onStartDateChanged: setStartDate, onEndDateChanged: _onCheckoutDateChange, theme: layout === 'horizontal-condensed' ? BookingWizard_1.EBookingWizardTheme.Specific : theme, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }))))));
|
|
118
159
|
}
|
|
119
160
|
if (overlayType === 'bottom-sheet') {
|
|
161
|
+
const DateRangePickerFooter = () => {
|
|
162
|
+
if (isImagesTheme) {
|
|
163
|
+
return (react_1.default.createElement(BEButton_1.default, { stopIconAnimation: true, outline: true, rounded: true, wide: true, onClick: () => {
|
|
164
|
+
setMonthCount((prev) => prev + 4);
|
|
165
|
+
} }, t(Translation_1.Translation.Misc.LoadMoreDates)));
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
return (react_1.default.createElement(BEButton_1.default, { wide: true, primary: true, filled: true, onClick: onApply }, t(Translation_1.Translation.Misc.Apply)));
|
|
169
|
+
}
|
|
170
|
+
};
|
|
120
171
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
121
172
|
react_1.default.createElement(RowWrapper, Object.assign({}, rowWrapperProps), !isMobile && layout === 'horizontal' ? (react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.item }, _combineDates(startDate, endDate))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
122
173
|
_checkInDate(startDate),
|
|
123
174
|
react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.divider }),
|
|
124
175
|
_checkOutDate(endDate)))),
|
|
125
|
-
react_1.default.createElement(BookingWizardBottomSheet_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.container, BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container']
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
176
|
+
react_1.default.createElement(BookingWizardBottomSheet_1.default, { className: (0, classnames_1.default)(BookingWizardDateSelector_module_scss_1.default.container, BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container'], {
|
|
177
|
+
[BookingWizardDateSelector_module_scss_1.default['custom-overlay-images-theme']]: isImagesTheme,
|
|
178
|
+
}), open: isOpen, onDismiss: () => {
|
|
179
|
+
if (!isImagesThemeMobile) {
|
|
180
|
+
setIsOpen(false);
|
|
181
|
+
}
|
|
182
|
+
}, header: react_1.default.createElement(BookingWizardBottomSheet_1.BWBottomSheetHeader, { title: t(Translation_1.Translation.Misc.ChooseDates), onClose: () => setIsOpen(false) }), footer: react_1.default.createElement(BookingWizardBottomSheet_1.BWBottomSheetFooter, { hidePrev: stateSections[BookingWizard_1.EBookingWizardSection.Date].isFirst, onPrev: () => onPrevHandler(BookingWizard_1.EBookingWizardSection.Date), onNext: () => onNextHandler(BookingWizard_1.EBookingWizardSection.Date), disabledNext: !startDate || !endDate }) },
|
|
129
183
|
react_1.default.createElement("div", { className: BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container-box'] },
|
|
130
|
-
react_1.default.createElement(DateRangePicker_1.default, { selectedStartDate: startDate, selectedEndDate: endDate, onStartDateChanged:
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
184
|
+
react_1.default.createElement(DateRangePicker_1.default, { selectedStartDate: startDate, selectedEndDate: endDate, onStartDateChanged: (date) => {
|
|
185
|
+
setSelectingStartDate(date);
|
|
186
|
+
if (isImagesThemeMobile) {
|
|
187
|
+
setStartDate(date);
|
|
188
|
+
}
|
|
189
|
+
}, onEndDateChanged: (date) => {
|
|
190
|
+
setSelectingEndDate(date);
|
|
191
|
+
if (isImagesThemeMobile) {
|
|
192
|
+
_onCheckoutDateChange(date);
|
|
193
|
+
}
|
|
194
|
+
}, theme: theme, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption, className: BookingWizardDateSelector_module_scss_1.default['bottom-sheet-container-box-calendar'], showMultipleMonths: isImagesTheme, showArrows: theme !== BookingWizard_1.EBookingWizardTheme.Images, monthCount: monthCount }),
|
|
195
|
+
react_1.default.createElement(DateRangePickerFooter, null)))));
|
|
134
196
|
}
|
|
135
197
|
if (layout === 'horizontal' && theme === BookingWizard_1.EBookingWizardTheme.Specific && !isMobile && !isSmallContainer) {
|
|
136
198
|
return (react_1.default.createElement(RowWrapper, Object.assign({}, rowWrapperProps),
|
|
@@ -139,11 +201,16 @@ const BookingWizardDateSelector = (props) => {
|
|
|
139
201
|
fallbackPlacements: overlay === null || overlay === void 0 ? void 0 : overlay.fallbackPlacements,
|
|
140
202
|
}, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }, _combineDates(startDate, endDate))));
|
|
141
203
|
}
|
|
204
|
+
const DateNotes = () => {
|
|
205
|
+
return (props === null || props === void 0 ? void 0 : props.notes) && isImagesTheme ? react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.notes }, props === null || props === void 0 ? void 0 : props.notes) : null;
|
|
206
|
+
};
|
|
142
207
|
return (react_1.default.createElement(RowWrapper, Object.assign({}, rowWrapperProps),
|
|
143
|
-
react_1.default.createElement(FloatingDateRangePicker_1.default, { ref: checkOutDatePickerRef, container: checkInWrapperRef, startDate: startDate, endDate: endDate, selectedDateChanged: setDate, overlayOffset: overlay === null || overlay === void 0 ? void 0 : overlay.dateOffset, theme: layout === 'horizontal-condensed' ? BookingWizard_1.EBookingWizardTheme.Specific : theme, showMultipleMonths: showMultipleMonths, className: BookingWizard_module_scss_1.default.item,
|
|
208
|
+
react_1.default.createElement(FloatingDateRangePicker_1.default, { ref: checkOutDatePickerRef, container: checkInWrapperRef, startDate: startDate, endDate: endDate, selectedDateChanged: setDate, overlayOffset: overlay === null || overlay === void 0 ? void 0 : overlay.dateOffset, theme: layout === 'horizontal-condensed' ? BookingWizard_1.EBookingWizardTheme.Specific : theme, showMultipleMonths: showMultipleMonths, className: (0, classnames_1.default)(BookingWizard_module_scss_1.default.item, {
|
|
209
|
+
[BookingWizard_module_scss_1.default['active']]: isOverlayOpen && !!endDate,
|
|
210
|
+
}), overlay: {
|
|
144
211
|
placement: overlay === null || overlay === void 0 ? void 0 : overlay.placement,
|
|
145
212
|
fallbackPlacements: overlay === null || overlay === void 0 ? void 0 : overlay.fallbackPlacements,
|
|
146
|
-
}, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption }, _checkInDate(startDate, true)),
|
|
213
|
+
}, showYearOnCalendar: showYearOnCalendar, yearDisplayOption: yearDisplayOption, notes: react_1.default.createElement(DateNotes, null), onOverlayOpenChange: onOverlayOpenChange }, _checkInDate(startDate, true)),
|
|
147
214
|
react_1.default.createElement("div", { className: layout !== 'button' && !isMobile ? BookingWizard_module_scss_1.default.divider : '' }),
|
|
148
215
|
_checkOutDate(endDate)));
|
|
149
216
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookingWizardDateSelector.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport BEButton from '@/components/generic/BEButton';\nimport DateRangePicker from '@/components/generic/DateRangePicker/DateRangePicker';\nimport Icon, { IconType } from '@/components/generic/Icon/Icon';\nimport Text from '@/components/generic/Text';\nimport { ShowYearOnCalendarProps } from '@/models/Api/HotelOverrideDTO';\nimport { Translation } from '@/translations/Translation';\n\nimport FloatingDateRangePicker, { FloatingDateRangePickerHandle } from '../../DateRangePicker/FloatingDateRangePicker';\nimport { EBookingWizardTheme } from '../BookingWizard';\nimport bookingWizardStyles from '../BookingWizard.module.scss';\nimport BookingWizardBottomSheet from '../BookingWizardBottomSheet/BookingWizardBottomSheet';\nimport { useBookingWizard } from '../BookingWizardContext';\nimport styles from './BookingWizardDateSelector.module.scss';\n\nexport interface BookingWizardDateSelectorProps extends ShowYearOnCalendarProps {\n open?: boolean;\n defaultStartDate?: dayjs.Dayjs;\n defaultEndDate?: dayjs.Dayjs;\n dateFormat?: string;\n onChange?: (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => void;\n}\n\nexport const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps> = (props) => {\n const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption } = props;\n const { overlay, theme, layout, type: overlayType, isMobile, isSmallContainer } = useBookingWizard();\n const { t } = useTranslation();\n\n const checkOutDatePickerRef = React.useRef<FloatingDateRangePickerHandle>(null);\n\n const [startDate, setStartDate] = useState<dayjs.Dayjs | null>(defaultStartDate ?? dayjs());\n const [endDate, setEndDate] = useState<dayjs.Dayjs | null>(defaultEndDate ?? dayjs().add(1, 'days'));\n const [selectingStartDate, setSelectingStartDate] = useState<dayjs.Dayjs | null>(startDate);\n const [selectingEndDate, setSelectingEndDate] = useState<dayjs.Dayjs | null>(endDate);\n const [isOpen, setIsOpen] = useState(false);\n const [checkInWrapperRef, setCheckInWrapperRef] = React.useState<HTMLElement | undefined>();\n\n let RowWrapper: any = React.Fragment;\n const rowWrapperProps = {} as any;\n if (layout === 'button' || isMobile || isSmallContainer) {\n RowWrapper = 'div';\n rowWrapperProps.className = bookingWizardStyles.itemGroup;\n rowWrapperProps.ref = (ref: any) => {\n if (layout === 'button') {\n setCheckInWrapperRef(ref);\n }\n };\n }\n\n const setDate = (startDate: dayjs.Dayjs, endDate: dayjs.Dayjs) => {\n setStartDate(startDate);\n setEndDate(endDate);\n\n setIsOpen(false);\n\n props.onChange?.(startDate, endDate);\n };\n\n const _onCheckoutDateChange = (newEndDate: dayjs.Dayjs) => {\n props?.onChange?.(startDate as Dayjs, newEndDate);\n\n setEndDate(newEndDate);\n if (newEndDate) {\n setIsOpen(false);\n }\n };\n\n const _toggleInlineDatePicker = () => {\n checkOutDatePickerRef?.current?.toggle();\n setIsOpen(!isOpen);\n };\n\n const _checkInDate = (date?: dayjs.Dayjs, disabledClass?: boolean) => {\n return (\n <div className={disabledClass ? '' : bookingWizardStyles.item} onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.CheckIn)}</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'])} bold>\n {date?.format('DD') || '-'}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'])} bold>\n {date?.format('MMM') || '-'}\n </Text>\n </>\n ) : (\n <Text className={styles.date} bold>\n {date?.format(dateFormat) || '-'}\n </Text>\n )}\n </div>\n );\n };\n\n const _checkOutDate = (date?: dayjs.Dayjs) => {\n return (\n <div className={bookingWizardStyles.item} onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.CheckOut)}</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'])} bold>\n {date?.format('DD') || '-'}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'])} bold>\n {date?.format('MMM') || '-'}\n </Text>\n </>\n ) : (\n <Text className={styles.date} bold>\n {date?.format(dateFormat) || '-'}\n </Text>\n )}\n </div>\n );\n };\n\n const _combineDates = (checkIn?: dayjs.Dayjs, checkOut?: dayjs.Dayjs) => {\n return (\n <div onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.Dates)}</label>\n <Text className={styles.date} bold>{`${checkIn?.format(dateFormat) || ''} - ${checkOut?.format(dateFormat) || ''}`}</Text>\n </div>\n );\n };\n\n const showMultipleMonths = layout === 'horizontal' && !isMobile;\n\n if (overlayType === 'inline') {\n return (\n <div className={classNames(styles.container, { [styles['--open']]: isOpen })}>\n <RowWrapper {...rowWrapperProps}>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n <div className={styles['inline-container']}>\n <AutoAutoHeight open={isOpen}>\n <div className={styles['inline-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={setStartDate}\n onEndDateChanged={_onCheckoutDateChange}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n />\n </div>\n </AutoAutoHeight>\n </div>\n </div>\n );\n }\n\n if (overlayType === 'bottom-sheet') {\n return (\n <>\n <RowWrapper {...rowWrapperProps}>\n {!isMobile && layout === 'horizontal' ? (\n <div className={bookingWizardStyles.item}>{_combineDates(startDate as Dayjs, endDate as Dayjs)}</div>\n ) : (\n <>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </>\n )}\n </RowWrapper>\n <BookingWizardBottomSheet\n className={classNames(styles.container, styles['bottom-sheet-container'])}\n open={isOpen}\n onDismiss={() => setIsOpen(false)}\n header={\n <div className={styles.header}>\n <Text>{t(Translation.Misc.ChooseDates)}</Text> <Icon icon={IconType.Close} onClick={() => setIsOpen(false)} />\n </div>\n }\n >\n <div className={styles['bottom-sheet-container-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={setSelectingStartDate}\n onEndDateChanged={setSelectingEndDate}\n theme={theme}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n />\n <BEButton\n wide\n primary\n filled\n onClick={() => {\n setDate(selectingStartDate as Dayjs, selectingEndDate as Dayjs);\n }}\n >\n {t(Translation.Misc.Apply)}\n </BEButton>\n </div>\n </BookingWizardBottomSheet>\n </>\n );\n }\n\n if (layout === 'horizontal' && theme === EBookingWizardTheme.Specific && !isMobile && !isSmallContainer) {\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n className={bookingWizardStyles.item}\n theme={theme}\n showMultipleMonths={showMultipleMonths}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n >\n {_combineDates(startDate as Dayjs, endDate as Dayjs)}\n </FloatingDateRangePicker>\n </RowWrapper>\n );\n }\n\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n showMultipleMonths={showMultipleMonths}\n className={bookingWizardStyles.item}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n >\n {_checkInDate(startDate as Dayjs, true)}\n </FloatingDateRangePicker>\n <div className={layout !== 'button' && !isMobile ? bookingWizardStyles.divider : ''} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"BookingWizardDateSelector.js","sourceRoot":"/","sources":["src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAAoC;AACpC,kDAAqC;AACrC,+CAA8D;AAC9D,iDAA+C;AAE/C,iFAAyD;AACzD,6EAAqD;AACrD,2GAAmF;AACnF,qEAA6C;AAE7C,4DAAyD;AAEzD,4GAAuH;AACvH,oDAA8E;AAC9E,6FAA+D;AAC/D,iHAA0I;AAC1I,kEAAwD;AACxD,kEAA2D;AAC3D,oHAA6D;AActD,MAAM,yBAAyB,GAA6C,CAAC,KAAK,EAAE,EAAE;IACzF,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,GAAG,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IACnJ,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,EACF,OAAO,EACP,KAAK,EACL,MAAM,EACN,IAAI,EAAE,WAAW,EACjB,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,GACtB,GAAG,IAAA,uCAAgB,GAAE,CAAC;IACvB,MAAM,EAAE,CAAC,EAAE,GAAG,IAAA,8BAAc,GAAE,CAAC;IAE/B,MAAM,qBAAqB,GAAG,eAAK,CAAC,MAAM,CAAgC,IAAI,CAAC,CAAC;IAEhF,iEAAiE;IACjE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAqB,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,eAAK,GAAE,CAAC,CAAC,CAAC;IACrH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAqB,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,eAAK,GAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9H,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,IAAA,gBAAQ,EAAqB,SAAS,CAAC,CAAC;IAC5F,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAqB,OAAO,CAAC,CAAC;IACtF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACrD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACnE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,eAAK,CAAC,QAAQ,EAA2B,CAAC;IAC5F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAS,CAAC,CAAC,CAAC;IAExD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,OAAO,GAAG,aAAa,CAAC,qCAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAClE,SAAS,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,IAAI,UAAU,GAAQ,eAAK,CAAC,QAAQ,CAAC;IACrC,MAAM,eAAe,GAAG,EAAS,CAAC;IAClC,IAAI,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,gBAAgB,EAAE;QACrD,UAAU,GAAG,KAAK,CAAC;QACnB,eAAe,CAAC,SAAS,GAAG,IAAA,oBAAU,EAAC,mCAAmB,CAAC,SAAS,EAAE;YAClE,CAAC,mCAAmB,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ;SAC9C,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,GAAG,CAAC,GAAQ,EAAE,EAAE;YAC/B,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACrB,oBAAoB,CAAC,GAAG,CAAC,CAAC;aAC7B;QACL,CAAC,CAAC;KACL;IAED,MAAM,OAAO,GAAG,CAAC,SAA6B,EAAE,OAA2B,EAAE,EAAE;;QAC3E,YAAY,CAAC,SAAS,CAAC,CAAC;QACxB,UAAU,CAAC,OAAO,CAAC,CAAC;QAEpB,IAAI,CAAC,mBAAmB,EAAE;YACtB,SAAS,CAAC,KAAK,CAAC,CAAC;SACpB;QAED,MAAA,KAAK,CAAC,QAAQ,sDAAG,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,UAAuB,EAAE,EAAE;;QACtD,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,sDAAG,SAAkB,EAAE,UAAU,CAAC,CAAC;QAElD,UAAU,CAAC,UAAU,CAAC,CAAC;QACvB,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,mBAAmB,EAAE;gBACtB,SAAS,CAAC,KAAK,CAAC,CAAC;aACpB;SACJ;IACL,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,GAAG,EAAE;;QACjC,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,OAAO,0CAAE,MAAM,EAAE,CAAC;QACzC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAE,EAAE;QAC5C,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAwC,EAAE,EAAE;QAC5E,OAAO,aAAa,CAAC,CAAC,CAAC,8BAAC,oCAAa,IAAC,MAAM,EAAE,aAAa,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC,6DAAK,CAAC;IACxG,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,OAAO,CAAC,kBAA2B,EAAE,gBAAyB,CAAC,CAAC;IACpE,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,aAAuB,EAAE,EAAE;QACjE,MAAM,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACxF,OAAO,CACH,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC;gBAClB,CAAC,mCAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa;gBAC1C,CAAC,mCAAmB,CAAC,gBAAgB,CAAC,CAAC,EAAE,aAAa;aACzD,CAAC,EACF,OAAO,EAAE,uBAAuB;YAEhC,uCAAK,SAAS,EAAE,mCAAmB,CAAC,gBAAgB,CAAC;gBACjD;oBACI,yCAAO,SAAS,EAAE,mCAAmB,CAAC,KAAK,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAS;oBACjF,MAAM,KAAK,sBAAsB,CAAC,CAAC,CAAC,CACjC;wBACI,8BAAC,cAAI,IAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,IAAI,EAAE,+CAAM,CAAC,QAAQ,CAAC,EAAE,mCAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,UACtF,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,IAAI,CAAC,KAAI,kBAAkB,CACtC;wBACP,8BAAC,cAAI,IAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,IAAI,EAAE,+CAAM,CAAC,QAAQ,CAAC,EAAE,mCAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,UACtF,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,KAAK,CAAC,KAAI,kBAAkB,CACvC,CACR,CACN,CAAC,CAAC,CAAC,CACA,8BAAC,cAAI,IAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,IAAI,EAAE,mCAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,UACpE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,UAAU,CAAC,KAAI,kBAAkB,CAC5C,CACV,CACC;gBACN,8BAAC,WAAW,IACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE;wBACV,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC3B,CAAC,GACH,CACA,CACJ,CACT,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,IAAkB,EAAE,EAAE;QACzC,MAAM,kBAAkB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACzF,OAAO,CACH,uCACI,SAAS,EAAE,IAAA,oBAAU,EAAC,mCAAmB,CAAC,IAAI,EAAE;gBAC5C,CAAC,mCAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO;aAC5E,CAAC,EACF,OAAO,EAAE,uBAAuB;YAEhC,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,mCAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAC7D;oBACI,yCAAO,SAAS,EAAE,mCAAmB,CAAC,KAAK,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAS;oBAClF,MAAM,KAAK,sBAAsB,CAAC,CAAC,CAAC,CACjC;wBACI,8BAAC,cAAI,IAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,IAAI,EAAE,+CAAM,CAAC,QAAQ,CAAC,EAAE,mCAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,UACtF,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,IAAI,CAAC,KAAI,kBAAkB,CACtC;wBACP,8BAAC,cAAI,IAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,IAAI,EAAE,+CAAM,CAAC,QAAQ,CAAC,EAAE,mCAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,UACtF,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,KAAK,CAAC,KAAI,kBAAkB,CACvC,CACR,CACN,CAAC,CAAC,CAAC,CACA,8BAAC,cAAI,IAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,IAAI,EAAE,mCAAmB,CAAC,KAAK,CAAC,EAAE,IAAI,UACpE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,UAAU,CAAC,KAAI,kBAAkB,CAC5C,CACV,CACC;gBACN,8BAAC,WAAW,IACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE;wBACV,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC7B,CAAC,GACH,CACA,CACJ,CACT,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,OAAqB,EAAE,QAAsB,EAAE,EAAE;QACpE,OAAO,CACH,uCAAK,OAAO,EAAE,uBAAuB;YACjC,yCAAO,SAAS,EAAE,mCAAmB,CAAC,KAAK,IAAG,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAS;YAChF,8BAAC,cAAI,IAAC,SAAS,EAAE,+CAAM,CAAC,IAAI,EAAE,IAAI,UAAE,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAC,UAAU,CAAC,KAAI,EAAE,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC,UAAU,CAAC,KAAI,EAAE,EAAE,CAAQ,CACxH,CACT,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC;IAEhE,IAAI,WAAW,KAAK,QAAQ,EAAE;QAC1B,OAAO,CACH,uCAAK,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,SAAS,EAAE,EAAE,CAAC,+CAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YACxE,8BAAC,UAAU,oBAAK,eAAe;gBAC1B,YAAY,CAAC,SAAkB,CAAC;gBACjC,uCAAK,SAAS,EAAE,mCAAmB,CAAC,OAAO,GAAI;gBAC9C,aAAa,CAAC,OAAgB,CAAC,CACvB;YACb,uCAAK,SAAS,EAAE,+CAAM,CAAC,kBAAkB,CAAC;gBACtC,8BAAC,wBAAc,IAAC,IAAI,EAAE,MAAM;oBACxB,uCAAK,SAAS,EAAE,+CAAM,CAAC,YAAY,CAAC;wBAChC,8BAAC,yBAAe,IACZ,iBAAiB,EAAE,SAAkB,EACrC,eAAe,EAAE,OAAgB,EACjC,kBAAkB,EAAE,YAAY,EAChC,gBAAgB,EAAE,qBAAqB,EACvC,KAAK,EAAE,MAAM,KAAK,sBAAsB,CAAC,CAAC,CAAC,mCAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAC/E,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,GACtC,CACA,CACO,CACf,CACJ,CACT,CAAC;KACL;IAED,IAAI,WAAW,KAAK,cAAc,EAAE;QAChC,MAAM,qBAAqB,GAAG,GAAG,EAAE;YAC/B,IAAI,aAAa,EAAE;gBACf,OAAO,CACH,8BAAC,kBAAQ,IACL,iBAAiB,QACjB,OAAO,QACP,OAAO,QACP,IAAI,QACJ,OAAO,EAAE,GAAG,EAAE;wBACV,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;oBACtC,CAAC,IAEA,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAC3B,CACd,CAAC;aACL;iBAAM;gBACH,OAAO,CACH,8BAAC,kBAAQ,IAAC,IAAI,QAAC,OAAO,QAAC,MAAM,QAAC,OAAO,EAAE,OAAO,IACzC,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CACnB,CACd,CAAC;aACL;QACL,CAAC,CAAC;QAEF,OAAO,CACH;YACI,8BAAC,UAAU,oBAAK,eAAe,GAC1B,CAAC,QAAQ,IAAI,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,CACpC,uCAAK,SAAS,EAAE,mCAAmB,CAAC,IAAI,IAAG,aAAa,CAAC,SAAkB,EAAE,OAAgB,CAAC,CAAO,CACxG,CAAC,CAAC,CAAC,CACA;gBACK,YAAY,CAAC,SAAkB,CAAC;gBACjC,uCAAK,SAAS,EAAE,mCAAmB,CAAC,OAAO,GAAI;gBAC9C,aAAa,CAAC,OAAgB,CAAC,CACjC,CACN,CACQ;YACb,8BAAC,kCAAwB,IACrB,SAAS,EAAE,IAAA,oBAAU,EAAC,+CAAM,CAAC,SAAS,EAAE,+CAAM,CAAC,wBAAwB,CAAC,EAAE;oBACtE,CAAC,+CAAM,CAAC,6BAA6B,CAAC,CAAC,EAAE,aAAa;iBACzD,CAAC,EACF,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,mBAAmB,EAAE;wBACtB,SAAS,CAAC,KAAK,CAAC,CAAC;qBACpB;gBACL,CAAC,EACD,MAAM,EAAE,8BAAC,8CAAmB,IAAC,KAAK,EAAE,CAAC,CAAC,yBAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAI,EACxG,MAAM,EACF,8BAAC,8CAAmB,IAChB,QAAQ,EAAE,aAAa,CAAC,qCAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,qCAAqB,CAAC,IAAI,CAAC,EACvD,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,qCAAqB,CAAC,IAAI,CAAC,EACvD,YAAY,EAAE,CAAC,SAAS,IAAI,CAAC,OAAO,GACtC;gBAGN,uCAAK,SAAS,EAAE,+CAAM,CAAC,4BAA4B,CAAC;oBAChD,8BAAC,yBAAe,IACZ,iBAAiB,EAAE,SAAkB,EACrC,eAAe,EAAE,OAAgB,EACjC,kBAAkB,EAAE,CAAC,IAAiB,EAAE,EAAE;4BACtC,qBAAqB,CAAC,IAAI,CAAC,CAAC;4BAC5B,IAAI,mBAAmB,EAAE;gCACrB,YAAY,CAAC,IAAI,CAAC,CAAC;6BACtB;wBACL,CAAC,EACD,gBAAgB,EAAE,CAAC,IAAiB,EAAE,EAAE;4BACpC,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAC1B,IAAI,mBAAmB,EAAE;gCACrB,qBAAqB,CAAC,IAAI,CAAC,CAAC;6BAC/B;wBACL,CAAC,EACD,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,+CAAM,CAAC,qCAAqC,CAAC,EACxD,kBAAkB,EAAE,aAAa,EACjC,UAAU,EAAE,KAAK,KAAK,mCAAmB,CAAC,MAAM,EAChD,UAAU,EAAE,UAAU,GACxB;oBACF,8BAAC,qBAAqB,OAAG,CACvB,CACiB,CAC5B,CACN,CAAC;KACL;IAED,IAAI,MAAM,KAAK,YAAY,IAAI,KAAK,KAAK,mCAAmB,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,EAAE;QACrG,OAAO,CACH,8BAAC,UAAU,oBAAK,eAAe;YAC3B,8BAAC,iCAAuB,IACpB,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAkB,EAC7B,OAAO,EAAE,OAAgB,EACzB,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAClC,SAAS,EAAE,mCAAmB,CAAC,IAAI,EACnC,KAAK,EAAE,KAAK,EACZ,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE;oBACL,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;oBAC7B,kBAAkB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB;iBAClD,EACD,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,IAEnC,aAAa,CAAC,SAAkB,EAAE,OAAgB,CAAC,CAC9B,CACjB,CAChB,CAAC;KACL;IAED,MAAM,SAAS,GAAG,GAAG,EAAE;QACnB,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,aAAa,CAAC,CAAC,CAAC,uCAAK,SAAS,EAAE,mCAAmB,CAAC,KAAK,IAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAClH,CAAC,CAAC;IAEF,OAAO,CACH,8BAAC,UAAU,oBAAK,eAAe;QAC3B,8BAAC,iCAAuB,IACpB,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,SAAkB,EAC7B,OAAO,EAAE,OAAgB,EACzB,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAClC,KAAK,EAAE,MAAM,KAAK,sBAAsB,CAAC,CAAC,CAAC,mCAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAC/E,kBAAkB,EAAE,kBAAkB,EACtC,SAAS,EAAE,IAAA,oBAAU,EAAC,mCAAmB,CAAC,IAAI,EAAE;gBAC5C,CAAC,mCAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,IAAI,CAAC,CAAC,OAAO;aAC9D,CAAC,EACF,OAAO,EAAE;gBACL,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;gBAC7B,kBAAkB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB;aAClD,EACD,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,8BAAC,SAAS,OAAG,EACpB,mBAAmB,EAAE,mBAAmB,IAEvC,YAAY,CAAC,SAAkB,EAAE,IAAI,CAAC,CACjB;QAC1B,uCAAK,SAAS,EAAE,MAAM,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,mCAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAI;QACtF,aAAa,CAAC,OAAgB,CAAC,CACvB,CAChB,CAAC;AACN,CAAC,CAAC;AA/VW,QAAA,yBAAyB,6BA+VpC","sourcesContent":["import classNames from 'classnames';\nimport dayjs, { Dayjs } from 'dayjs';\nimport React, { ReactNode, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport AutoAutoHeight from '@/animations/AutoAutoHeight';\nimport BEButton from '@/components/generic/BEButton';\nimport DateRangePicker from '@/components/generic/DateRangePicker/DateRangePicker';\nimport Text from '@/components/generic/Text';\nimport { ShowYearOnCalendarProps } from '@/models/Api/HotelOverrideDTO';\nimport { Translation } from '@/translations/Translation';\n\nimport FloatingDateRangePicker, { FloatingDateRangePickerHandle } from '../../DateRangePicker/FloatingDateRangePicker';\nimport { EBookingWizardSection, EBookingWizardTheme } from '../BookingWizard';\nimport bookingWizardStyles from '../BookingWizard.module.scss';\nimport BookingWizardBottomSheet, { BWBottomSheetFooter, BWBottomSheetHeader } from '../BookingWizardBottomSheet/BookingWizardBottomSheet';\nimport { BWClearButton } from '../BookingWizardContent';\nimport { useBookingWizard } from '../BookingWizardContext';\nimport styles from './BookingWizardDateSelector.module.scss';\n\nexport interface BookingWizardDateSelectorProps extends ShowYearOnCalendarProps {\n open?: boolean;\n defaultStartDate?: dayjs.Dayjs;\n defaultEndDate?: dayjs.Dayjs;\n dateFormat?: string;\n onChange?: (startDate: dayjs.Dayjs | null, endDate: dayjs.Dayjs | null) => void;\n notes?: ReactNode;\n divider?: boolean;\n hidden?: boolean;\n inactive?: boolean;\n}\n\nexport const BookingWizardDateSelector: React.FC<BookingWizardDateSelectorProps> = (props) => {\n const { defaultStartDate, defaultEndDate, dateFormat = 'MMM DD', showYearOnCalendar, yearDisplayOption, divider = true, hidden, inactive } = props;\n if (hidden) return null;\n const {\n overlay,\n theme,\n layout,\n type: overlayType,\n isMobile,\n isSmallContainer,\n stateSections,\n onPrevHandler,\n onNextHandler,\n isImagesTheme,\n isImagesThemeMobile,\n } = useBookingWizard();\n const { t } = useTranslation();\n\n const checkOutDatePickerRef = React.useRef<FloatingDateRangePickerHandle>(null);\n\n //With isImagesTheme, default both startDate and endDate are null\n const [startDate, setStartDate] = useState<dayjs.Dayjs | null>(defaultStartDate ?? (isImagesTheme ? null : dayjs()));\n const [endDate, setEndDate] = useState<dayjs.Dayjs | null>(defaultEndDate ?? (isImagesTheme ? null : dayjs().add(1, 'days')));\n const [selectingStartDate, setSelectingStartDate] = useState<dayjs.Dayjs | null>(startDate);\n const [selectingEndDate, setSelectingEndDate] = useState<dayjs.Dayjs | null>(endDate);\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [isOverlayOpen, setIsOverlayOpen] = useState<boolean>(false);\n const [checkInWrapperRef, setCheckInWrapperRef] = React.useState<HTMLElement | undefined>();\n const [monthCount, setMonthCount] = useState<number>(2);\n\n useEffect(() => {\n const opening = stateSections[EBookingWizardSection.Date].opening;\n setIsOpen(opening);\n }, [stateSections]);\n\n let RowWrapper: any = React.Fragment;\n const rowWrapperProps = {} as any;\n if (layout === 'button' || isMobile || isSmallContainer) {\n RowWrapper = 'div';\n rowWrapperProps.className = classNames(bookingWizardStyles.itemGroup, {\n [bookingWizardStyles['inactive']]: inactive,\n });\n rowWrapperProps.ref = (ref: any) => {\n if (layout === 'button') {\n setCheckInWrapperRef(ref);\n }\n };\n }\n\n const setDate = (startDate: dayjs.Dayjs | null, endDate: dayjs.Dayjs | null) => {\n setStartDate(startDate);\n setEndDate(endDate);\n\n if (!isImagesThemeMobile) {\n setIsOpen(false);\n }\n\n props.onChange?.(startDate, endDate);\n };\n\n const _onCheckoutDateChange = (newEndDate: dayjs.Dayjs) => {\n props?.onChange?.(startDate as Dayjs, newEndDate);\n\n setEndDate(newEndDate);\n if (newEndDate) {\n if (!isImagesThemeMobile) {\n setIsOpen(false);\n }\n }\n };\n\n const _toggleInlineDatePicker = () => {\n checkOutDatePickerRef?.current?.toggle();\n setIsOpen(!isOpen);\n };\n\n const onOverlayOpenChange = (isOpen: boolean) => {\n setIsOverlayOpen(isOpen);\n };\n\n const ClearButton = ({ date, onClick }: { date?: dayjs.Dayjs; onClick: any }) => {\n return isImagesTheme ? <BWClearButton hidden={isOverlayOpen && !!date} onClick={onClick} /> : <></>;\n };\n\n const onApply = () => {\n setDate(selectingStartDate as Dayjs, selectingEndDate as Dayjs);\n };\n\n const _checkInDate = (date?: dayjs.Dayjs, disabledClass?: boolean) => {\n const defaultPlaceHolder = isImagesTheme ? t(Translation.Misc.CheckInPlaceHolder) : '-';\n return (\n <div\n className={classNames({\n [bookingWizardStyles.item]: !disabledClass,\n [bookingWizardStyles['item-fullwidth']]: isImagesTheme,\n })}\n onClick={_toggleInlineDatePicker}\n >\n <div className={bookingWizardStyles['item-with-icon']}>\n <div>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.CheckIn)}</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'], bookingWizardStyles.value)} bold>\n {date?.format('DD') || defaultPlaceHolder}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'], bookingWizardStyles.value)} bold>\n {date?.format('MMM') || defaultPlaceHolder}\n </Text>\n </>\n ) : (\n <Text className={classNames(styles.date, bookingWizardStyles.value)} bold>\n {date?.format(dateFormat) || defaultPlaceHolder}\n </Text>\n )}\n </div>\n <ClearButton\n date={date}\n onClick={() => {\n setDate(null, endDate);\n }}\n />\n </div>\n </div>\n );\n };\n\n const _checkOutDate = (date?: dayjs.Dayjs) => {\n const defaultPlaceHolder = isImagesTheme ? t(Translation.Misc.CheckOutPlaceHolder) : '-';\n return (\n <div\n className={classNames(bookingWizardStyles.item, {\n [bookingWizardStyles['active']]: isOverlayOpen && !!startDate && !endDate,\n })}\n onClick={_toggleInlineDatePicker}\n >\n <div className={classNames(bookingWizardStyles['item-with-icon'])}>\n <div>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.CheckOut)}</label>\n {layout === 'horizontal-condensed' ? (\n <>\n <Text className={classNames(styles.date, styles['line-1'], bookingWizardStyles.value)} bold>\n {date?.format('DD') || defaultPlaceHolder}\n </Text>\n <Text className={classNames(styles.date, styles['line-2'], bookingWizardStyles.value)} bold>\n {date?.format('MMM') || defaultPlaceHolder}\n </Text>\n </>\n ) : (\n <Text className={classNames(styles.date, bookingWizardStyles.value)} bold>\n {date?.format(dateFormat) || defaultPlaceHolder}\n </Text>\n )}\n </div>\n <ClearButton\n date={date}\n onClick={() => {\n setDate(startDate, null);\n }}\n />\n </div>\n </div>\n );\n };\n\n const _combineDates = (checkIn?: dayjs.Dayjs, checkOut?: dayjs.Dayjs) => {\n return (\n <div onClick={_toggleInlineDatePicker}>\n <label className={bookingWizardStyles.label}>{t(Translation.Misc.Dates)}</label>\n <Text className={styles.date} bold>{`${checkIn?.format(dateFormat) || ''} - ${checkOut?.format(dateFormat) || ''}`}</Text>\n </div>\n );\n };\n\n const showMultipleMonths = layout === 'horizontal' && !isMobile;\n\n if (overlayType === 'inline') {\n return (\n <div className={classNames(styles.container, { [styles['--open']]: isOpen })}>\n <RowWrapper {...rowWrapperProps}>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n <div className={styles['inline-container']}>\n <AutoAutoHeight open={isOpen}>\n <div className={styles['inline-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={setStartDate}\n onEndDateChanged={_onCheckoutDateChange}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n />\n </div>\n </AutoAutoHeight>\n </div>\n </div>\n );\n }\n\n if (overlayType === 'bottom-sheet') {\n const DateRangePickerFooter = () => {\n if (isImagesTheme) {\n return (\n <BEButton\n stopIconAnimation\n outline\n rounded\n wide\n onClick={() => {\n setMonthCount((prev) => prev + 4);\n }}\n >\n {t(Translation.Misc.LoadMoreDates)}\n </BEButton>\n );\n } else {\n return (\n <BEButton wide primary filled onClick={onApply}>\n {t(Translation.Misc.Apply)}\n </BEButton>\n );\n }\n };\n\n return (\n <>\n <RowWrapper {...rowWrapperProps}>\n {!isMobile && layout === 'horizontal' ? (\n <div className={bookingWizardStyles.item}>{_combineDates(startDate as Dayjs, endDate as Dayjs)}</div>\n ) : (\n <>\n {_checkInDate(startDate as Dayjs)}\n <div className={bookingWizardStyles.divider} />\n {_checkOutDate(endDate as Dayjs)}\n </>\n )}\n </RowWrapper>\n <BookingWizardBottomSheet\n className={classNames(styles.container, styles['bottom-sheet-container'], {\n [styles['custom-overlay-images-theme']]: isImagesTheme,\n })}\n open={isOpen}\n onDismiss={() => {\n if (!isImagesThemeMobile) {\n setIsOpen(false);\n }\n }}\n header={<BWBottomSheetHeader title={t(Translation.Misc.ChooseDates)} onClose={() => setIsOpen(false)} />}\n footer={\n <BWBottomSheetFooter\n hidePrev={stateSections[EBookingWizardSection.Date].isFirst}\n onPrev={() => onPrevHandler(EBookingWizardSection.Date)}\n onNext={() => onNextHandler(EBookingWizardSection.Date)}\n disabledNext={!startDate || !endDate}\n />\n }\n >\n <div className={styles['bottom-sheet-container-box']}>\n <DateRangePicker\n selectedStartDate={startDate as Dayjs}\n selectedEndDate={endDate as Dayjs}\n onStartDateChanged={(date: dayjs.Dayjs) => {\n setSelectingStartDate(date);\n if (isImagesThemeMobile) {\n setStartDate(date);\n }\n }}\n onEndDateChanged={(date: dayjs.Dayjs) => {\n setSelectingEndDate(date);\n if (isImagesThemeMobile) {\n _onCheckoutDateChange(date);\n }\n }}\n theme={theme}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n className={styles['bottom-sheet-container-box-calendar']}\n showMultipleMonths={isImagesTheme}\n showArrows={theme !== EBookingWizardTheme.Images}\n monthCount={monthCount}\n />\n <DateRangePickerFooter />\n </div>\n </BookingWizardBottomSheet>\n </>\n );\n }\n\n if (layout === 'horizontal' && theme === EBookingWizardTheme.Specific && !isMobile && !isSmallContainer) {\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n className={bookingWizardStyles.item}\n theme={theme}\n showMultipleMonths={showMultipleMonths}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n >\n {_combineDates(startDate as Dayjs, endDate as Dayjs)}\n </FloatingDateRangePicker>\n </RowWrapper>\n );\n }\n\n const DateNotes = () => {\n return props?.notes && isImagesTheme ? <div className={bookingWizardStyles.notes}>{props?.notes}</div> : null;\n };\n\n return (\n <RowWrapper {...rowWrapperProps}>\n <FloatingDateRangePicker\n ref={checkOutDatePickerRef}\n container={checkInWrapperRef}\n startDate={startDate as Dayjs}\n endDate={endDate as Dayjs}\n selectedDateChanged={setDate}\n overlayOffset={overlay?.dateOffset}\n theme={layout === 'horizontal-condensed' ? EBookingWizardTheme.Specific : theme}\n showMultipleMonths={showMultipleMonths}\n className={classNames(bookingWizardStyles.item, {\n [bookingWizardStyles['active']]: isOverlayOpen && !!endDate,\n })}\n overlay={{\n placement: overlay?.placement,\n fallbackPlacements: overlay?.fallbackPlacements,\n }}\n showYearOnCalendar={showYearOnCalendar}\n yearDisplayOption={yearDisplayOption}\n notes={<DateNotes />}\n onOverlayOpenChange={onOverlayOpenChange}\n >\n {_checkInDate(startDate as Dayjs, true)}\n </FloatingDateRangePicker>\n <div className={layout !== 'button' && !isMobile ? bookingWizardStyles.divider : ''} />\n {_checkOutDate(endDate as Dayjs)}\n </RowWrapper>\n );\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
1
|
+
import React, { FC, ReactNode } from 'react';
|
|
2
2
|
export interface BookingWizardGuestSelectorProps {
|
|
3
3
|
disableChild?: boolean;
|
|
4
4
|
showInfants?: boolean;
|
|
@@ -20,7 +20,7 @@ export interface BookingWizardGuestSelectorProps {
|
|
|
20
20
|
* @param children
|
|
21
21
|
* @param room
|
|
22
22
|
*/
|
|
23
|
-
onChange?: (
|
|
23
|
+
onChange?: (params: {
|
|
24
24
|
adults: number;
|
|
25
25
|
children: number;
|
|
26
26
|
infants: number;
|
|
@@ -32,7 +32,7 @@ export interface BookingWizardGuestSelectorProps {
|
|
|
32
32
|
* @param children
|
|
33
33
|
* @param room
|
|
34
34
|
*/
|
|
35
|
-
onEditingChange?: (
|
|
35
|
+
onEditingChange?: (params: {
|
|
36
36
|
adults: number;
|
|
37
37
|
children: number;
|
|
38
38
|
infants: number;
|
|
@@ -46,5 +46,20 @@ export interface BookingWizardGuestSelectorProps {
|
|
|
46
46
|
max?: number;
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
|
+
notes?: ReactNode;
|
|
50
|
+
onOverlayOpenChange?: (isOpen: boolean) => void;
|
|
51
|
+
promoCodeConfig?: {
|
|
52
|
+
divider: boolean;
|
|
53
|
+
withLabel: boolean;
|
|
54
|
+
promoCode: string;
|
|
55
|
+
setPromoCode: React.Dispatch<React.SetStateAction<string>>;
|
|
56
|
+
onChange: (value?: string) => Promise<void>;
|
|
57
|
+
valid: boolean | undefined;
|
|
58
|
+
hideTooltip: boolean | undefined;
|
|
59
|
+
};
|
|
60
|
+
submitConfig?: {
|
|
61
|
+
onSubmit: () => false | undefined;
|
|
62
|
+
disabledNext: boolean;
|
|
63
|
+
};
|
|
49
64
|
}
|
|
50
65
|
export declare const BookingWizardGuestSelector: FC<BookingWizardGuestSelectorProps>;
|
|
@@ -39,12 +39,15 @@ const Text_1 = __importStar(require("../../Text"));
|
|
|
39
39
|
const Translation_1 = require("../../../../translations/Translation");
|
|
40
40
|
const StringHelper_1 = __importDefault(require("../../../../util/StringHelper"));
|
|
41
41
|
const AgedBetweenLabel_1 = require("../../AgedBetweenLabel/AgedBetweenLabel");
|
|
42
|
-
const
|
|
42
|
+
const BookingWizard_1 = require("../BookingWizard");
|
|
43
|
+
const BookingWizard_module_scss_1 = __importDefault(require("../BookingWizard.module.scss"));
|
|
44
|
+
const BookingWizardBottomSheet_1 = __importStar(require("../BookingWizardBottomSheet/BookingWizardBottomSheet"));
|
|
45
|
+
const BookingWizardContent_1 = require("../BookingWizardContent");
|
|
43
46
|
const BookingWizardContext_1 = require("../BookingWizardContext");
|
|
44
47
|
const BookingWizardGuestSelector_module_scss_1 = __importDefault(require("./BookingWizardGuestSelector.module.scss"));
|
|
45
|
-
const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, maxAdultAge, maxAdults = 10, maxChildren = 10, maxInfants = 10, disableRoom, defaultValue, followElement, hideTooltip, onChange, onEditingChange, ageRange, }) => {
|
|
48
|
+
const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, maxAdultAge, maxAdults = 10, maxChildren = 10, maxInfants = 10, disableRoom, defaultValue, followElement, hideTooltip, onChange, onEditingChange, ageRange, notes, onOverlayOpenChange, promoCodeConfig, submitConfig, }) => {
|
|
46
49
|
var _a, _b, _c, _d;
|
|
47
|
-
const { overlay, type: overlayType, layout, isSmallContainer } = (0, BookingWizardContext_1.useBookingWizard)();
|
|
50
|
+
const { overlay, type: overlayType, layout, isSmallContainer, stateSections, isImagesTheme, isImagesThemeMobile, onPrevHandler } = (0, BookingWizardContext_1.useBookingWizard)();
|
|
48
51
|
const { t } = (0, react_i18next_1.useTranslation)();
|
|
49
52
|
const ref = (0, react_1.useRef)(null);
|
|
50
53
|
const targetRef = (0, react_1.useRef)(null);
|
|
@@ -57,12 +60,14 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, ma
|
|
|
57
60
|
const [editingInfants, setEditingInfants] = (0, react_1.useState)(infants);
|
|
58
61
|
const [editingRoom, setEditingRoom] = (0, react_1.useState)(room);
|
|
59
62
|
const [open, setOpen] = (0, react_1.useState)(false);
|
|
63
|
+
const autoApply = isImagesTheme;
|
|
60
64
|
(0, react_1.useEffect)(() => {
|
|
61
|
-
var _a, _b, _c;
|
|
65
|
+
var _a, _b, _c, _d;
|
|
62
66
|
setAdults((_a = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.adults) !== null && _a !== void 0 ? _a : 1);
|
|
63
67
|
setChildren((_b = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.children) !== null && _b !== void 0 ? _b : 0);
|
|
64
68
|
setInfants((_c = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.infants) !== null && _c !== void 0 ? _c : 0);
|
|
65
|
-
|
|
69
|
+
setRoom((_d = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.room) !== null && _d !== void 0 ? _d : 1);
|
|
70
|
+
}, [defaultValue, isImagesTheme]);
|
|
66
71
|
(0, react_1.useEffect)(() => {
|
|
67
72
|
setEditingAdults(adults);
|
|
68
73
|
}, [adults]);
|
|
@@ -72,6 +77,11 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, ma
|
|
|
72
77
|
(0, react_1.useEffect)(() => {
|
|
73
78
|
setEditingInfants(infants);
|
|
74
79
|
}, [infants]);
|
|
80
|
+
(0, react_1.useEffect)(() => {
|
|
81
|
+
if (stateSections && stateSections[BookingWizard_1.EBookingWizardSection.Guest]) {
|
|
82
|
+
setOpen(stateSections[BookingWizard_1.EBookingWizardSection.Guest].opening);
|
|
83
|
+
}
|
|
84
|
+
}, [stateSections]);
|
|
75
85
|
const onApply = () => {
|
|
76
86
|
setAdults(editingAdults);
|
|
77
87
|
setChildren(editingChildren);
|
|
@@ -83,6 +93,12 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, ma
|
|
|
83
93
|
(0, react_1.useEffect)(() => {
|
|
84
94
|
onEditingChange === null || onEditingChange === void 0 ? void 0 : onEditingChange({ adults: editingAdults, children: editingChildren, infants: editingInfants, room: editingRoom });
|
|
85
95
|
}, [editingAdults, editingChildren, editingAdults, editingRoom]);
|
|
96
|
+
(0, react_1.useEffect)(() => {
|
|
97
|
+
onOverlayOpenChange === null || onOverlayOpenChange === void 0 ? void 0 : onOverlayOpenChange(open);
|
|
98
|
+
return () => {
|
|
99
|
+
onOverlayOpenChange === null || onOverlayOpenChange === void 0 ? void 0 : onOverlayOpenChange(false);
|
|
100
|
+
};
|
|
101
|
+
}, [open]);
|
|
86
102
|
const getValueAsText = () => {
|
|
87
103
|
if (layout === 'horizontal-condensed') {
|
|
88
104
|
return adults + children;
|
|
@@ -90,6 +106,11 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, ma
|
|
|
90
106
|
if (layout === 'booking-summary') {
|
|
91
107
|
return StringHelper_1.default.pluralWithCount(adults + children + infants, 'Guest', t);
|
|
92
108
|
}
|
|
109
|
+
if (isImagesTheme) {
|
|
110
|
+
if (adults + children + infants === 0) {
|
|
111
|
+
return t(Translation_1.Translation.Misc.GuestsPlaceHolder);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
93
114
|
const parts = [StringHelper_1.default.pluralWithCount(adults, 'Adult', t)];
|
|
94
115
|
if (children > 0) {
|
|
95
116
|
parts.push(StringHelper_1.default.pluralWithCount(children, 'Child', t));
|
|
@@ -99,28 +120,87 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, ma
|
|
|
99
120
|
}
|
|
100
121
|
return parts.join(' - ');
|
|
101
122
|
};
|
|
123
|
+
const GuestNotes = () => {
|
|
124
|
+
return notes ? react_1.default.createElement("div", { className: BookingWizard_module_scss_1.default.notes }, notes) : null;
|
|
125
|
+
};
|
|
126
|
+
const onChangeAdults = (applyButton, newValue) => {
|
|
127
|
+
if (applyButton) {
|
|
128
|
+
setEditingAdults(newValue);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
setAdults(newValue);
|
|
132
|
+
if (autoApply) {
|
|
133
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({ adults: newValue, children: editingChildren, infants: editingInfants, room: editingRoom });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const onChangeChildren = (applyButton, newValue) => {
|
|
138
|
+
if (applyButton) {
|
|
139
|
+
setEditingChildren(newValue);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
setChildren(newValue);
|
|
143
|
+
if (autoApply) {
|
|
144
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({ adults: editingAdults, children: newValue, infants: editingInfants, room: editingRoom });
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const onChangeInfants = (applyButton, newValue) => {
|
|
149
|
+
if (applyButton) {
|
|
150
|
+
setEditingInfants(newValue);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
setInfants(newValue);
|
|
154
|
+
if (autoApply) {
|
|
155
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({ adults: editingAdults, children: editingChildren, infants: newValue, room: editingRoom });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
const onChangeRoom = (applyButton, newValue) => {
|
|
160
|
+
if (applyButton) {
|
|
161
|
+
setEditingRoom(newValue);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
setRoom(newValue);
|
|
165
|
+
if (autoApply) {
|
|
166
|
+
onChange === null || onChange === void 0 ? void 0 : onChange({ adults: editingAdults, children: editingChildren, infants: editingInfants, room: newValue });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
102
170
|
const inner = (applyButton = true) => {
|
|
103
171
|
var _a, _b, _c, _d;
|
|
104
172
|
return (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['popper--box'] },
|
|
105
173
|
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['popper--content'], ref: ref },
|
|
106
|
-
react_1.default.createElement("div",
|
|
174
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['row-wrapper'] },
|
|
175
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
|
|
176
|
+
react_1.default.createElement(Text_1.default, { className: BookingWizardGuestSelector_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingAdults, 'Adult', t)),
|
|
177
|
+
react_1.default.createElement(NumberIncrement_1.default, { number: editingAdults, min: 1, max: maxAdults, onChange: (value) => onChangeAdults(applyButton, value), textSize: Text_1.TextType.Small, hideTooltips: hideTooltip })),
|
|
178
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['sub-title'] },
|
|
179
|
+
react_1.default.createElement(AgedBetweenLabel_1.AgedBetweenLabel, { min: minAdultAge, max: maxAdultAge })),
|
|
180
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.divider })),
|
|
181
|
+
disableChild ? null : (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['row-wrapper'] },
|
|
107
182
|
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
|
|
108
|
-
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, StringHelper_1.default.plural(
|
|
109
|
-
react_1.default.createElement(NumberIncrement_1.default, { number:
|
|
110
|
-
react_1.default.createElement(
|
|
111
|
-
|
|
183
|
+
react_1.default.createElement(Text_1.default, { className: BookingWizardGuestSelector_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingChildren, 'Child', t)),
|
|
184
|
+
react_1.default.createElement(NumberIncrement_1.default, { number: editingChildren, min: 0, max: maxChildren, onChange: (value) => onChangeChildren(applyButton, value), textSize: Text_1.TextType.Small, hideTooltips: hideTooltip })),
|
|
185
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['sub-title'] },
|
|
186
|
+
react_1.default.createElement(AgedBetweenLabel_1.AgedBetweenLabel, { min: (_a = ageRange === null || ageRange === void 0 ? void 0 : ageRange.child) === null || _a === void 0 ? void 0 : _a.min, max: (_b = ageRange === null || ageRange === void 0 ? void 0 : ageRange.child) === null || _b === void 0 ? void 0 : _b.max })),
|
|
187
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.divider }))),
|
|
188
|
+
showInfants ? (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['row-wrapper'] },
|
|
112
189
|
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
|
|
113
|
-
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, StringHelper_1.default.plural(
|
|
114
|
-
react_1.default.createElement(NumberIncrement_1.default, { number:
|
|
115
|
-
react_1.default.createElement(
|
|
116
|
-
|
|
190
|
+
react_1.default.createElement(Text_1.default, { className: BookingWizardGuestSelector_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingInfants, 'Infant', t)),
|
|
191
|
+
react_1.default.createElement(NumberIncrement_1.default, { number: editingInfants, min: 0, max: maxInfants, onChange: (value) => onChangeInfants(applyButton, value), textSize: Text_1.TextType.Small, hideTooltips: hideTooltip })),
|
|
192
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['sub-title'] },
|
|
193
|
+
react_1.default.createElement(AgedBetweenLabel_1.AgedBetweenLabel, { min: (_c = ageRange === null || ageRange === void 0 ? void 0 : ageRange.infant) === null || _c === void 0 ? void 0 : _c.min, max: (_d = ageRange === null || ageRange === void 0 ? void 0 : ageRange.infant) === null || _d === void 0 ? void 0 : _d.max })),
|
|
194
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.divider }))) : null,
|
|
195
|
+
disableRoom ? null : (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['row-wrapper'] },
|
|
117
196
|
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
|
|
118
|
-
react_1.default.createElement(Text_1.default, { type: Text_1.TextType.Small }, StringHelper_1.default.plural(
|
|
119
|
-
react_1.default.createElement(NumberIncrement_1.default, { number:
|
|
120
|
-
react_1.default.createElement(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
react_1.default.createElement(
|
|
197
|
+
react_1.default.createElement(Text_1.default, { className: BookingWizardGuestSelector_module_scss_1.default['title'], type: Text_1.TextType.Small }, StringHelper_1.default.plural(editingRoom, 'Room', t)),
|
|
198
|
+
react_1.default.createElement(NumberIncrement_1.default, { number: editingRoom, min: 1, max: 10, onChange: (value) => onChangeRoom(applyButton, value), textSize: Text_1.TextType.Small, hideTooltips: hideTooltip })),
|
|
199
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.divider }))),
|
|
200
|
+
react_1.default.createElement(GuestNotes, null),
|
|
201
|
+
isImagesThemeMobile && promoCodeConfig && (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['row-wrapper'] },
|
|
202
|
+
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.row },
|
|
203
|
+
react_1.default.createElement(BookingWizardContent_1.BWPromoCodeSection, { divider: promoCodeConfig.divider, withLabel: promoCodeConfig.withLabel, promoCode: promoCodeConfig.promoCode, setPromoCode: promoCodeConfig.setPromoCode, onChange: promoCodeConfig.onChange, valid: promoCodeConfig.valid, hideTooltip: promoCodeConfig.hideTooltip, t: t, inactive: false, hidden: false, isImagesTheme: true })))),
|
|
124
204
|
applyButton ? (react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default['popper--action'] },
|
|
125
205
|
react_1.default.createElement(BEButton_1.default, { wide: overlayType === 'bottom-sheet', className: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default.applyBtn, {
|
|
126
206
|
[BookingWizardGuestSelector_module_scss_1.default['--booking-summary']]: layout === 'booking-summary',
|
|
@@ -132,17 +212,26 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, ma
|
|
|
132
212
|
react_1.default.createElement(AutoAutoHeight_1.default, { open: open }, inner(false))));
|
|
133
213
|
}
|
|
134
214
|
if (['bottom-sheet', 'top-sheet'].includes(overlayType)) {
|
|
135
|
-
return (react_1.default.createElement(BookingWizardBottomSheet_1.default, Object.assign({ className: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default.container, BookingWizardGuestSelector_module_scss_1.default['--bottom-sheet']
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
215
|
+
return (react_1.default.createElement(BookingWizardBottomSheet_1.default, Object.assign({ className: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default.container, BookingWizardGuestSelector_module_scss_1.default['--bottom-sheet'], {
|
|
216
|
+
[BookingWizardGuestSelector_module_scss_1.default['custom-overlay-images-theme']]: isImagesTheme,
|
|
217
|
+
}), open: open, onDismiss: () => {
|
|
218
|
+
if (!isImagesThemeMobile) {
|
|
219
|
+
setOpen(false);
|
|
220
|
+
}
|
|
221
|
+
}, header: react_1.default.createElement(BookingWizardBottomSheet_1.BWBottomSheetHeader, { title: t(Translation_1.Translation.Misc.HowManyGuests), onClose: () => setOpen(false) }), footer: submitConfig ? (react_1.default.createElement(BookingWizardBottomSheet_1.BWBottomSheetFooter, { hidePrev: stateSections[BookingWizard_1.EBookingWizardSection.Guest].isFirst, onPrev: () => onPrevHandler(BookingWizard_1.EBookingWizardSection.Guest), onNext: () => submitConfig.onSubmit(), nextLabel: t(Translation_1.Translation.Misc.BookNow), disabledNext: submitConfig.disabledNext })) : null }, ('top-sheet' === overlayType && {
|
|
139
222
|
snapPoints: ({ maxHeight }) => [maxHeight],
|
|
140
223
|
})),
|
|
141
224
|
react_1.default.createElement("div", { className: BookingWizardGuestSelector_module_scss_1.default.popper },
|
|
142
|
-
inner(),
|
|
225
|
+
inner(!autoApply),
|
|
143
226
|
" ")));
|
|
144
227
|
}
|
|
145
|
-
return (react_1.default.createElement(Overlay_1.Overlay, { offset: overlay === null || overlay === void 0 ? void 0 : overlay.offset, usePortal: false, followElement: followElement || targetRef.current, placement: overlay === null || overlay === void 0 ? void 0 : overlay.placement, fallbackPlacements: overlay === null || overlay === void 0 ? void 0 : overlay.fallbackPlacements, strategy: "absolute", open: open, onClose: () => setOpen === null || setOpen === void 0 ? void 0 : setOpen(!open), className: BookingWizardGuestSelector_module_scss_1.default.popper, containerClassName: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default['custom-overlay'], {
|
|
228
|
+
return (react_1.default.createElement(Overlay_1.Overlay, { offset: overlay === null || overlay === void 0 ? void 0 : overlay.offset, usePortal: false, followElement: followElement || targetRef.current, placement: overlay === null || overlay === void 0 ? void 0 : overlay.placement, fallbackPlacements: overlay === null || overlay === void 0 ? void 0 : overlay.fallbackPlacements, strategy: "absolute", open: open, onClose: () => setOpen === null || setOpen === void 0 ? void 0 : setOpen(!open), className: BookingWizardGuestSelector_module_scss_1.default.popper, containerClassName: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default['custom-overlay'], {
|
|
229
|
+
[BookingWizardGuestSelector_module_scss_1.default['small-container']]: isSmallContainer,
|
|
230
|
+
[BookingWizardGuestSelector_module_scss_1.default['custom-overlay-images-theme']]: isImagesTheme,
|
|
231
|
+
}), hideStyles: true }, inner(!isImagesTheme)));
|
|
232
|
+
};
|
|
233
|
+
const DropdownIcon = () => {
|
|
234
|
+
return ['horizontal-condensed', 'booking-summary'].includes(layout) || isImagesTheme ? react_1.default.createElement(react_1.default.Fragment, null) : react_1.default.createElement(Icon_1.default, { icon: Icon_1.IconType.Dropdown });
|
|
146
235
|
};
|
|
147
236
|
return (react_1.default.createElement("div", { ref: targetRef, className: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default.container, {
|
|
148
237
|
[BookingWizardGuestSelector_module_scss_1.default['--inline']]: overlayType === 'inline',
|
|
@@ -152,8 +241,10 @@ const BookingWizardGuestSelector = ({ disableChild, showInfants, minAdultAge, ma
|
|
|
152
241
|
react_1.default.createElement(Text_1.default, { className: (0, classnames_1.default)(BookingWizardGuestSelector_module_scss_1.default['text-display'], {
|
|
153
242
|
[BookingWizardGuestSelector_module_scss_1.default['--line-1']]: layout === 'horizontal-condensed',
|
|
154
243
|
[BookingWizardGuestSelector_module_scss_1.default['--line-booking-summary']]: layout === 'booking-summary',
|
|
244
|
+
[BookingWizard_module_scss_1.default.value]: isImagesTheme,
|
|
245
|
+
[BookingWizard_module_scss_1.default['text-display']]: isImagesTheme,
|
|
155
246
|
}), bold: true }, getValueAsText()),
|
|
156
|
-
|
|
247
|
+
react_1.default.createElement(DropdownIcon, null)),
|
|
157
248
|
content()));
|
|
158
249
|
};
|
|
159
250
|
exports.BookingWizardGuestSelector = BookingWizardGuestSelector;
|