willba-component-library 0.2.93 → 0.2.95
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/README.md +49 -16
- package/lib/assets/IconsSvg.d.ts +1 -1
- package/lib/components/FilterBar/FilterBarTypes.d.ts +1 -1
- package/lib/components/FilterBar/components/guests/Guests.d.ts +1 -1
- package/lib/components/FilterCalendar/hooks/useFilterCalendar.d.ts +0 -1
- package/lib/core/components/calendar/utils/calendarSelectionRules.d.ts +2 -3
- package/lib/core/components/calendar/utils/handleCalendarModifiers.d.ts +1 -9
- package/lib/core/components/calendar/utils/handleRangeContextDisabledDates.d.ts +1 -1
- package/lib/index.esm.js +77 -95
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +77 -95
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +77 -95
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/assets/IconsSvg.tsx +1 -0
- package/src/components/FilterBar/FilterBarTypes.ts +1 -1
- package/src/components/FilterBar/components/guests/GuestCount/GuestCount.tsx +5 -5
- package/src/components/FilterBar/components/guests/Guests.tsx +3 -7
- package/src/components/FilterCalendar/FilterCalendar.stories.tsx +275 -275
- package/src/components/FilterCalendar/FilterCalendar.tsx +0 -2
- package/src/components/FilterCalendar/hooks/useFilterCalendar.ts +0 -1
- package/src/core/components/calendar/Calendar.tsx +46 -35
- package/src/core/components/calendar/hooks/useUpdateDisabledDates.tsx +3 -3
- package/src/core/components/calendar/utils/calendarSelectionRules.tsx +0 -48
- package/src/core/components/calendar/utils/handleCalendarModifiers.tsx +1 -30
- package/src/core/components/calendar/utils/handleRangeContextDisabledDates.tsx +3 -3
package/lib/index.js
CHANGED
|
@@ -11000,26 +11000,6 @@ var reactResponsive = {exports: {}};
|
|
|
11000
11000
|
|
|
11001
11001
|
var reactResponsiveExports = reactResponsive.exports;
|
|
11002
11002
|
|
|
11003
|
-
var IconsSvg = function (_a) {
|
|
11004
|
-
var fill = _a.fill, size = _a.size, icon = _a.icon;
|
|
11005
|
-
switch (icon) {
|
|
11006
|
-
case 'spinner':
|
|
11007
|
-
return (React__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), viewBox: "0 0 24 24" },
|
|
11008
|
-
React__default.createElement("style", null, "\n .spinner_z9k8 {\n transform-origin: center;\n animation: spinner_StKS .75s infinite linear;\n }\n @keyframes spinner_StKS {\n 100% {\n transform: rotate(360deg);\n }\n }\n "),
|
|
11009
|
-
React__default.createElement("path", { d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z", opacity: ".25", fill: fill }),
|
|
11010
|
-
React__default.createElement("path", { d: "M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z", className: "spinner_z9k8", fill: fill })));
|
|
11011
|
-
case 'warning':
|
|
11012
|
-
return (React__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), className: "svg-icon", style: {
|
|
11013
|
-
verticalAlign: 'middle',
|
|
11014
|
-
fill: fill,
|
|
11015
|
-
overflow: 'hidden',
|
|
11016
|
-
minWidth: '25px',
|
|
11017
|
-
minHeight: '25px',
|
|
11018
|
-
}, viewBox: "0 0 1024 1024", version: "1.1" },
|
|
11019
|
-
React__default.createElement("path", { d: "M42.666667 896h938.666666L512 85.333333 42.666667 896z m512-128h-85.333334v-85.333333h85.333334v85.333333z m0-170.666667h-85.333334v-170.666666h85.333334v170.666666z" })));
|
|
11020
|
-
}
|
|
11021
|
-
};
|
|
11022
|
-
|
|
11023
11003
|
var parseDates = function (_a) {
|
|
11024
11004
|
var calendarRange = _a.calendarRange;
|
|
11025
11005
|
return (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
@@ -11045,7 +11025,7 @@ var nightsCount = function (_a) {
|
|
|
11045
11025
|
|
|
11046
11026
|
var calendarSelectionRules = function (_a) {
|
|
11047
11027
|
var _b;
|
|
11048
|
-
var range = _a.range, newDisableCalendarDates = _a.newDisableCalendarDates, setCalendarRange = _a.setCalendarRange,
|
|
11028
|
+
var range = _a.range, newDisableCalendarDates = _a.newDisableCalendarDates, setCalendarRange = _a.setCalendarRange, calendarRange = _a.calendarRange, overlappingDate = _a.overlappingDate, setCalendarHasError = _a.setCalendarHasError, rangeContext = _a.rangeContext;
|
|
11049
11029
|
// Get and parse needed data
|
|
11050
11030
|
var rangeFrom = (range === null || range === void 0 ? void 0 : range.from) ? endOfDay(range.from) : null;
|
|
11051
11031
|
var rangeTo = (range === null || range === void 0 ? void 0 : range.to) ? endOfDay(range.to) : null;
|
|
@@ -11082,13 +11062,6 @@ var calendarSelectionRules = function (_a) {
|
|
|
11082
11062
|
: false;
|
|
11083
11063
|
})
|
|
11084
11064
|
: null;
|
|
11085
|
-
// On check-in, disable future dates that are unavailable for checkout
|
|
11086
|
-
disableFutureDates({
|
|
11087
|
-
rangeFrom: rangeFrom,
|
|
11088
|
-
checkOutRange: checkOutRange,
|
|
11089
|
-
setDisabledDates: setDisabledDates,
|
|
11090
|
-
newDisableCalendarDates: newDisableCalendarDates,
|
|
11091
|
-
});
|
|
11092
11065
|
// Calendar selection rules: The cases are handled sequentially, starting from simple selections to more complex contextual selections.
|
|
11093
11066
|
// The rules are processed in a specific order, so one case is handled before another.
|
|
11094
11067
|
// Changing the order will cause the rules to break or not work properly.
|
|
@@ -11183,22 +11156,6 @@ var calendarSelectionRules = function (_a) {
|
|
|
11183
11156
|
}
|
|
11184
11157
|
setCalendarRange(range);
|
|
11185
11158
|
};
|
|
11186
|
-
/////////
|
|
11187
|
-
var disableFutureDates = function (_a) {
|
|
11188
|
-
var rangeFrom = _a.rangeFrom, checkOutRange = _a.checkOutRange, setDisabledDates = _a.setDisabledDates, newDisableCalendarDates = _a.newDisableCalendarDates;
|
|
11189
|
-
if (rangeFrom && checkOutRange && setDisabledDates) {
|
|
11190
|
-
// Get parse data
|
|
11191
|
-
var checkIn = addDays(checkOutRange.checkIn, 1);
|
|
11192
|
-
var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
|
|
11193
|
-
var noDatesRange = isEqual(checkIn, checkOutRange.firstCheckOut);
|
|
11194
|
-
setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [])), false), [
|
|
11195
|
-
{
|
|
11196
|
-
from: noDatesRange ? undefined : checkIn,
|
|
11197
|
-
to: noDatesRange ? undefined : firstCheckOut,
|
|
11198
|
-
},
|
|
11199
|
-
], false));
|
|
11200
|
-
}
|
|
11201
|
-
};
|
|
11202
11159
|
|
|
11203
11160
|
var disabledDatesByPage = function (_a) {
|
|
11204
11161
|
var _b, _c, _d;
|
|
@@ -11219,8 +11176,7 @@ var disabledDatesByPage = function (_a) {
|
|
|
11219
11176
|
};
|
|
11220
11177
|
|
|
11221
11178
|
var handleCalendarModifiers = function (_a) {
|
|
11222
|
-
var
|
|
11223
|
-
var newDisableCalendarDates = _a.newDisableCalendarDates, calendarRange = _a.calendarRange, disabledDatesByPage = _a.disabledDatesByPage, disabledDates = _a.disabledDates, overlappingDate = _a.overlappingDate, rangeContext = _a.rangeContext, firstPossibleRangeContextCheckIn = _a.firstPossibleRangeContextCheckIn, lastPossibleRangeContextCheckOut = _a.lastPossibleRangeContextCheckOut, findFirstPossibleRangeContextCheckIn = _a.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _a.findLastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate = _a.currentSelectionLastCheckoutDate, lastPossibleCheckout = _a.lastPossibleCheckout;
|
|
11179
|
+
var calendarRange = _a.calendarRange, disabledDates = _a.disabledDates, overlappingDate = _a.overlappingDate, rangeContext = _a.rangeContext, findFirstPossibleRangeContextCheckIn = _a.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _a.findLastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate = _a.currentSelectionLastCheckoutDate;
|
|
11224
11180
|
// Parse data
|
|
11225
11181
|
var calendarRangeFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) && endOfDay(calendarRange.from);
|
|
11226
11182
|
var calendarRangeTo = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && endOfDay(calendarRange.to);
|
|
@@ -11241,15 +11197,7 @@ var handleCalendarModifiers = function (_a) {
|
|
|
11241
11197
|
.map(function (date) { return ({ from: date.from }); })
|
|
11242
11198
|
: [];
|
|
11243
11199
|
return {
|
|
11244
|
-
booked:
|
|
11245
|
-
? disabledDatesByPage
|
|
11246
|
-
: (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
|
|
11247
|
-
? __spreadArray$1(__spreadArray$1(__spreadArray$1([
|
|
11248
|
-
lastPossibleCheckout || []
|
|
11249
|
-
], __read(disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : ((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
11250
|
-
? __spreadArray$1(__spreadArray$1(__spreadArray$1([
|
|
11251
|
-
lastPossibleCheckout || []
|
|
11252
|
-
], __read(newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : [],
|
|
11200
|
+
booked: disabledDates || [],
|
|
11253
11201
|
disabledAfterCheckIn: calendarRangeFrom
|
|
11254
11202
|
? [{ after: calendarRangeFrom }]
|
|
11255
11203
|
: [],
|
|
@@ -11327,8 +11275,8 @@ var handleRangeContextDisabledDates = function (_a) {
|
|
|
11327
11275
|
});
|
|
11328
11276
|
}
|
|
11329
11277
|
}
|
|
11330
|
-
// Get
|
|
11331
|
-
var
|
|
11278
|
+
// Get possible check-out dates for current check-in
|
|
11279
|
+
var currentSelectionAvailability = availableDates === null || availableDates === void 0 ? void 0 : availableDates.find(function (date) {
|
|
11332
11280
|
return calendarRangeFrom
|
|
11333
11281
|
? isEqual(endOfDay(date.checkIn), calendarRangeFrom)
|
|
11334
11282
|
: false;
|
|
@@ -11338,7 +11286,7 @@ var handleRangeContextDisabledDates = function (_a) {
|
|
|
11338
11286
|
findLastPossibleRangeContextCheckOut: findLastPossibleRangeContextCheckOut,
|
|
11339
11287
|
firstPossibleRangeContextCheckIn: firstPossibleRangeContextCheckIn,
|
|
11340
11288
|
lastPossibleRangeContextCheckOut: lastPossibleRangeContextCheckOut,
|
|
11341
|
-
|
|
11289
|
+
currentSelectionAvailability: currentSelectionAvailability,
|
|
11342
11290
|
};
|
|
11343
11291
|
};
|
|
11344
11292
|
|
|
@@ -11513,9 +11461,9 @@ var useUpdateDisabledDates = function (_a) {
|
|
|
11513
11461
|
return acc;
|
|
11514
11462
|
}, { updatedDisabledDates: [], newOverlappingDates: [] }), updatedDisabledDates = _b.updatedDisabledDates, newOverlappingDates = _b.newOverlappingDates;
|
|
11515
11463
|
// Find last possible checkout ( disable all dates after the last possible checkout )
|
|
11516
|
-
var
|
|
11517
|
-
if (
|
|
11518
|
-
setLatsPossibleCheckout({ after:
|
|
11464
|
+
var lastPossibleCheckoutDate = (_a = disableCalendarDates.availableDates.at(-1)) === null || _a === void 0 ? void 0 : _a.lastCheckOut;
|
|
11465
|
+
if (lastPossibleCheckoutDate) {
|
|
11466
|
+
setLatsPossibleCheckout({ after: lastPossibleCheckoutDate });
|
|
11519
11467
|
}
|
|
11520
11468
|
// Extract overlapping dates ( dates that are only available for checkout )
|
|
11521
11469
|
if (newOverlappingDates.length) {
|
|
@@ -11540,9 +11488,31 @@ styleInject(css_248z$9);
|
|
|
11540
11488
|
var css_248z$8 = ".will-calendar-filter-container {\n display: flex;\n justify-content: center;\n user-select: none;\n}\n\n/* Calendar overrides */\n\n.will-calendar-filter-container .DayPicker {\n font-size: 25px;\n}\n\n.will-calendar-filter-container .rdp-month {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 70px;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 70px;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav {\n border: 1px solid var(--will-primary);\n border-radius: 50%;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav svg {\n color: var(--will-primary);\n}\n\n\n.will-calendar-filter-container .rdp-month .rdp-caption {\n position: initial;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-caption > .rdp-caption_label,\n.will-calendar-filter-container .rdp-table .rdp-head {\n opacity: .6;\n}\n\n.will-calendar-filter-container .rdp-table {\n border-collapse: separate;\n border-spacing: 0px 2px;\n}\n\n.will-calendar-filter-container .rdp-button_reset.rdp-button.rdp-day.rdp-day_selected {\n background-color: var(--will-primary);\n opacity: 1;\n color: var(--will-white)\n}\n\n.will-calendar-filter-container .my-today:not(.rdp-day_selected) { \n font-weight: 700;\n opacity: 1;\n color: var(--will-primary);\n}\n\n.will-calendar-filter-container .rdp-cell {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-cell button {\n font-weight: 500;\n}\n\n.will-calendar-filter-container .rdp-cell button.booked {\n font-weight: 400;\n cursor: not-allowed;\n}\n\n.will-calendar-filter-container .rdp-cell .rdp-button[disabled] {\n color: var(--will-transparent-black);\n opacity: 1\n}\n\n@media (max-width: 960px) {\n .will-calendar-filter-container .rdp-month .rdp-nav {\n border: none;\n border-radius: initial;\n }\n\n .will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 10px;\n }\n \n .will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 10px;\n }\n}\n\n/* Tooltips */\n.will-root .will-calendar-filter-container .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only {\n position: absolute;\n top: -42px;\n transform: translateX(calc(-50% + 20px));\n display: none;\n white-space: nowrap;\n z-index: 2;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-tooltip > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only > div {\n background-color: white;\n position: relative;\n padding: 5px 10px;\n border: 1px solid var(--will-primary);\n border-radius: 5px;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-tooltip::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only::before {\n content: \"\";\n width: 10px;\n height: 10px;\n border: 1px solid var(--will-primary);\n position: absolute;\n bottom: -4px;\n left:calc(50% - 5.555px);\n rotate: 45deg;\n z-index: 0;\n background-color: var(--will-white);\n}\n\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-overlapping-date,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-in-only {\n display: block;\n}\n\n/* Loading spinner */\n\n.will-root .will-calendar-filter-container .rdp-months {\n position: relative;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-spinner {\n position: absolute;\n top:0;\n bottom:0;\n left: 0;\n right: 0;\n background-color: var(--will-white-transparent);\n z-index: 3;\n display: none;\n justify-content: center;\n align-items: center;\n font-weight: 600;\n}\n\n/* No active selection */\n\n.will-root .will-calendar-filter-container .no-active-selection-start,\n.will-root .will-calendar-filter-container .no-active-selection-mid,\n.will-root .will-calendar-filter-container .no-active-selection-end { \n position: initial;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-start::before,\n.will-root .will-calendar-filter-container .no-active-selection-mid::before,\n.will-root .will-calendar-filter-container .no-active-selection-end::before { \n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: 2px solid var(--will-light-grey);\n box-sizing: border-box;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-start::before {\n border-right: none;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-mid::before {\n border-right: none;\n border-left: none;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-end::before {\n border-left: none;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_middle.checkout-option {\n background-color: var(--will-primary-lightest);\n color: inherit;\n}\n\n/* Overlapping date */\n\n.will-root .will-calendar-filter-container .overlapping-date {\n user-select: none;\n pointer-events: none;\n}\n\n.will-root .will-calendar-filter-container .overlapping-date:hover {\n cursor: not-allowed;\n}\n\n@media (max-width: 600px) {\n /* Tooltips */\n.will-root .will-calendar-filter-container .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only {\n top: -70px;\n white-space: wrap;\n max-width: 120px;\n}\n}\n\n\n";
|
|
11541
11489
|
styleInject(css_248z$8);
|
|
11542
11490
|
|
|
11491
|
+
var IconsSvg = function (_a) {
|
|
11492
|
+
var fill = _a.fill, size = _a.size, icon = _a.icon;
|
|
11493
|
+
switch (icon) {
|
|
11494
|
+
case 'spinner':
|
|
11495
|
+
return (React__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), viewBox: "0 0 24 24" },
|
|
11496
|
+
React__default.createElement("style", null, "\n .spinner_z9k8 {\n transform-origin: center;\n animation: spinner_StKS .75s infinite linear;\n }\n @keyframes spinner_StKS {\n 100% {\n transform: rotate(360deg);\n }\n }\n "),
|
|
11497
|
+
React__default.createElement("path", { d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z", opacity: ".25", fill: fill }),
|
|
11498
|
+
React__default.createElement("path", { d: "M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z", className: "spinner_z9k8", fill: fill })));
|
|
11499
|
+
case 'warning':
|
|
11500
|
+
return (React__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), className: "svg-icon", style: {
|
|
11501
|
+
verticalAlign: 'middle',
|
|
11502
|
+
fill: fill,
|
|
11503
|
+
overflow: 'hidden',
|
|
11504
|
+
minWidth: '25px',
|
|
11505
|
+
minHeight: '25px',
|
|
11506
|
+
}, viewBox: "0 0 1024 1024", version: "1.1" },
|
|
11507
|
+
React__default.createElement("path", { d: "M42.666667 896h938.666666L512 85.333333 42.666667 896z m512-128h-85.333334v-85.333333h85.333334v85.333333z m0-170.666667h-85.333334v-170.666666h85.333334v170.666666z" })));
|
|
11508
|
+
default:
|
|
11509
|
+
return null;
|
|
11510
|
+
}
|
|
11511
|
+
};
|
|
11512
|
+
|
|
11543
11513
|
var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
11544
|
-
var _b
|
|
11545
|
-
var selectedPath = _a.selectedPath, calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, language = _a.language, disableCalendarDates = _a.disableCalendarDates, requestDates = _a.requestDates, disabledDates = _a.disabledDates,
|
|
11514
|
+
var _b;
|
|
11515
|
+
var selectedPath = _a.selectedPath, calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, language = _a.language, disableCalendarDates = _a.disableCalendarDates, requestDates = _a.requestDates, disabledDates = _a.disabledDates, updateCalendarMonthNavigation = _a.updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation = _a.setUpdateCalendarMonthNavigation, updateCalendarDefaultMonth = _a.updateCalendarDefaultMonth, loadingData = _a.loadingData, showFeedback = _a.showFeedback, palette = _a.palette, setCalendarHasError = _a.setCalendarHasError, setUpdatedForSubmit = _a.setUpdatedForSubmit, rangeContext = _a.rangeContext, calendarHasError = _a.calendarHasError;
|
|
11546
11516
|
// Translations
|
|
11547
11517
|
var t = useTranslation('common').t;
|
|
11548
11518
|
var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
|
|
@@ -11550,12 +11520,12 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
11550
11520
|
var selectedStartDate = calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from;
|
|
11551
11521
|
var rangeContextStartDate = rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.from;
|
|
11552
11522
|
// Handle initial disable dates including overlapping availableDates.lastCheckOut and disabledDates.start
|
|
11553
|
-
var
|
|
11523
|
+
var _c = useUpdateDisabledDates({
|
|
11554
11524
|
disableCalendarDates: disableCalendarDates,
|
|
11555
11525
|
calendarRange: calendarRange,
|
|
11556
11526
|
updateCalendarMonthNavigation: updateCalendarMonthNavigation,
|
|
11557
11527
|
updateCalendarDefaultMonth: updateCalendarDefaultMonth,
|
|
11558
|
-
}), newDisableCalendarDates =
|
|
11528
|
+
}), newDisableCalendarDates = _c.newDisableCalendarDates, overlappingDate = _c.overlappingDate, lastPossibleCheckout = _c.lastPossibleCheckout;
|
|
11559
11529
|
// Handle disable dates by page
|
|
11560
11530
|
var disabledDatesByPage$1 = disabledDatesByPage({
|
|
11561
11531
|
today: today,
|
|
@@ -11577,7 +11547,6 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
11577
11547
|
range: range,
|
|
11578
11548
|
newDisableCalendarDates: newDisableCalendarDates,
|
|
11579
11549
|
setCalendarRange: setCalendarRange,
|
|
11580
|
-
setDisabledDates: setDisabledDates,
|
|
11581
11550
|
calendarRange: calendarRange,
|
|
11582
11551
|
overlappingDate: overlappingDate,
|
|
11583
11552
|
setCalendarHasError: setCalendarHasError,
|
|
@@ -11586,11 +11555,11 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
11586
11555
|
setUpdatedForSubmit && setUpdatedForSubmit(true);
|
|
11587
11556
|
};
|
|
11588
11557
|
// Handle disabled dates for range context
|
|
11589
|
-
var
|
|
11558
|
+
var _d = handleRangeContextDisabledDates({
|
|
11590
11559
|
rangeContext: rangeContext,
|
|
11591
11560
|
availableDates: newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.availableDates,
|
|
11592
11561
|
calendarRange: calendarRange,
|
|
11593
|
-
}), findFirstPossibleRangeContextCheckIn =
|
|
11562
|
+
}), findFirstPossibleRangeContextCheckIn = _d.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _d.findLastPossibleRangeContextCheckOut, firstPossibleRangeContextCheckIn = _d.firstPossibleRangeContextCheckIn, lastPossibleRangeContextCheckOut = _d.lastPossibleRangeContextCheckOut, currentSelectionAvailability = _d.currentSelectionAvailability;
|
|
11594
11563
|
// Handle check for continuous selection in the range context
|
|
11595
11564
|
checkForContinuousSelection({
|
|
11596
11565
|
setCalendarHasError: setCalendarHasError,
|
|
@@ -11599,6 +11568,35 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
11599
11568
|
calendarHasError: calendarHasError,
|
|
11600
11569
|
disabledDates: newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates,
|
|
11601
11570
|
});
|
|
11571
|
+
var disabledInsideSelectableRange = function () {
|
|
11572
|
+
if (
|
|
11573
|
+
// Range end already selected
|
|
11574
|
+
(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ||
|
|
11575
|
+
// No current check-in availability
|
|
11576
|
+
!currentSelectionAvailability ||
|
|
11577
|
+
// No gap between check-in and first possible check-out, nothing to disable
|
|
11578
|
+
addDays(currentSelectionAvailability.checkIn, 1) >=
|
|
11579
|
+
currentSelectionAvailability.firstCheckOut) {
|
|
11580
|
+
return [];
|
|
11581
|
+
}
|
|
11582
|
+
// Disable dates between current check-in and first possible check-out
|
|
11583
|
+
return [
|
|
11584
|
+
{
|
|
11585
|
+
from: addDays(currentSelectionAvailability.checkIn, 1),
|
|
11586
|
+
to: addDays(currentSelectionAvailability.firstCheckOut, -1),
|
|
11587
|
+
},
|
|
11588
|
+
];
|
|
11589
|
+
};
|
|
11590
|
+
var base = disabledDatesByPage$1.length
|
|
11591
|
+
? disabledDatesByPage$1
|
|
11592
|
+
: (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
|
|
11593
|
+
? disabledDates
|
|
11594
|
+
: (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [];
|
|
11595
|
+
var disabled = disabledDatesByPage$1.length
|
|
11596
|
+
? base
|
|
11597
|
+
: __spreadArray$1(__spreadArray$1(__spreadArray$1(__spreadArray$1([
|
|
11598
|
+
lastPossibleCheckout
|
|
11599
|
+
], __read(base), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false), __read(disabledInsideSelectableRange()), false);
|
|
11602
11600
|
return (React__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
|
|
11603
11601
|
React__default.createElement("div", { className: "will-calendar-filter-container" },
|
|
11604
11602
|
React__default.createElement(DayPicker, { key: updateCalendarDefaultMonth, id: "will-calendar", mode: "range", locale: language === 'en' ? enUS : fi, numberOfMonths: !isTablet ? 2 : 1, weekStartsOn: 1, selected: calendarRange, onSelect: function (range) { return handleOnSelect(range); }, captionLayout: "dropdown-buttons", defaultMonth: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) ||
|
|
@@ -11606,19 +11604,9 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
11606
11604
|
rangeContextStartDate ||
|
|
11607
11605
|
(((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
11608
11606
|
? newDisableCalendarDates.disabledDates[0].from
|
|
11609
|
-
: today), disabled:
|
|
11610
|
-
?
|
|
11611
|
-
|
|
11612
|
-
? __spreadArray$1(__spreadArray$1(__spreadArray$1([
|
|
11613
|
-
lastPossibleCheckout && lastPossibleCheckout
|
|
11614
|
-
], __read(disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : ((_c = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _c === void 0 ? void 0 : _c.length)
|
|
11615
|
-
? __spreadArray$1(__spreadArray$1(__spreadArray$1([
|
|
11616
|
-
lastPossibleCheckout && lastPossibleCheckout
|
|
11617
|
-
], __read(newDisableCalendarDates.disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : [], fromMonth: today, onMonthChange: function (val) {
|
|
11618
|
-
requestDates && setUpdateCalendarMonthNavigation
|
|
11619
|
-
? (requestDates(val),
|
|
11620
|
-
setUpdateCalendarMonthNavigation(function (prev) { return !prev; }))
|
|
11621
|
-
: null;
|
|
11607
|
+
: today), disabled: disabled, fromMonth: today, onMonthChange: function (val) {
|
|
11608
|
+
requestDates === null || requestDates === void 0 ? void 0 : requestDates(val);
|
|
11609
|
+
setUpdateCalendarMonthNavigation === null || setUpdateCalendarMonthNavigation === void 0 ? void 0 : setUpdateCalendarMonthNavigation(function (prev) { return !prev; });
|
|
11622
11610
|
}, classNames: {
|
|
11623
11611
|
day_range_start: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) ? 'rdp-day_range_start' : '',
|
|
11624
11612
|
day_range_end: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ? 'rdp-day_range_end' : '',
|
|
@@ -11636,18 +11624,13 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
11636
11624
|
}, modifiers:
|
|
11637
11625
|
// This function handles conditions for applying the modifiersClassNames
|
|
11638
11626
|
handleCalendarModifiers({
|
|
11639
|
-
newDisableCalendarDates: newDisableCalendarDates,
|
|
11640
11627
|
calendarRange: calendarRange,
|
|
11641
|
-
|
|
11642
|
-
disabledDates: disabledDates,
|
|
11628
|
+
disabledDates: disabled,
|
|
11643
11629
|
overlappingDate: overlappingDate,
|
|
11644
11630
|
rangeContext: rangeContext,
|
|
11645
|
-
lastPossibleCheckout: lastPossibleCheckout,
|
|
11646
11631
|
findFirstPossibleRangeContextCheckIn: findFirstPossibleRangeContextCheckIn,
|
|
11647
11632
|
findLastPossibleRangeContextCheckOut: findLastPossibleRangeContextCheckOut,
|
|
11648
|
-
|
|
11649
|
-
lastPossibleRangeContextCheckOut: lastPossibleRangeContextCheckOut,
|
|
11650
|
-
currentSelectionLastCheckoutDate: currentSelectionLastCheckoutDate,
|
|
11633
|
+
currentSelectionLastCheckoutDate: currentSelectionAvailability,
|
|
11651
11634
|
}) }),
|
|
11652
11635
|
React__default.createElement("div", { className: 'will-calendar-tooltip' },
|
|
11653
11636
|
React__default.createElement("div", null, t('noCheckIn'))),
|
|
@@ -11899,17 +11882,17 @@ function GuestCount(_a) {
|
|
|
11899
11882
|
return (React__default.createElement("div", { className: "will-guests-filter-inner", style: { order: "".concat(sortOrder) } },
|
|
11900
11883
|
React__default.createElement("p", { className: "will-guests-filter-label" }, label),
|
|
11901
11884
|
React__default.createElement("div", { className: "will-guests-filter-counter" },
|
|
11902
|
-
React__default.createElement("button", { className: "will-guests-filter-counter-button", onClick: handleDecrement, disabled: (minVal && count <= minVal) || !count
|
|
11885
|
+
React__default.createElement("button", { className: "will-guests-filter-counter-button", onClick: handleDecrement, disabled: (minVal && count <= minVal) || !count, style: {
|
|
11903
11886
|
cursor: (minVal && count <= minVal) || !count ? 'initial' : 'pointer',
|
|
11904
11887
|
paddingBottom: '4px',
|
|
11905
11888
|
opacity: (minVal && count <= minVal) || !count ? 0.4 : 1,
|
|
11906
11889
|
} },
|
|
11907
11890
|
React__default.createElement("svg", { width: "10", height: "10", viewBox: "0 0 15 15", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
11908
|
-
React__default.createElement("path", { d: "M4 10H16", stroke: "currentColor",
|
|
11891
|
+
React__default.createElement("path", { d: "M4 10H16", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }))),
|
|
11909
11892
|
React__default.createElement("span", { className: "will-guests-filter-count" }, count),
|
|
11910
11893
|
React__default.createElement("button", { className: "will-guests-filter-counter-button", onClick: handleIncrement },
|
|
11911
11894
|
React__default.createElement("svg", { width: "15", height: "15", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
11912
|
-
React__default.createElement("path", { d: "M10 4V16M4 10H16", stroke: "currentColor",
|
|
11895
|
+
React__default.createElement("path", { d: "M10 4V16M4 10H16", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }))))));
|
|
11913
11896
|
}
|
|
11914
11897
|
|
|
11915
11898
|
var css_248z$4 = ".will-filter-bar-guests {\n text-align: initial;\n}\n\n.will-guests-filter-title {\n font-size: 22px;\n margin: 10px 0;\n}\n\n.will-guests-filter-subtitle {\n font-size: 15px;\n font-weight: 500;\n color:var(--will-text)\n}\n\n\n.will-guests-filter-container {\n display: flex;\n flex-direction: column;\n min-width: 400px;\n}\n\n\n@media (max-width: 960px) {\n .will-guests-filter-title {\n font-size: 18px;\n }\n\n .will-guests-filter-container {\n margin-top: 15px;\n min-width: 100%;\n }\n}";
|
|
@@ -11920,7 +11903,7 @@ var Guests = React__default.forwardRef(function (_a, ref) {
|
|
|
11920
11903
|
var t = useTranslation('filterBar').t;
|
|
11921
11904
|
return (React__default.createElement("div", { className: "will-filter-bar-guests", ref: ref },
|
|
11922
11905
|
React__default.createElement("h3", { className: "will-guests-filter-title" }, t('guests.title')),
|
|
11923
|
-
React__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default.createElement(GuestCount, { key: category.id, id:
|
|
11906
|
+
React__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default.createElement(GuestCount, { key: category.id, id: category.id, label: category.name, minVal: category.minVal, sortOrder: category.sortOrder, updateGuestsCount: updateGuestsCount, count: ageCategoryCounts["guests-".concat(category.id)] || 0 })); }))));
|
|
11924
11907
|
});
|
|
11925
11908
|
|
|
11926
11909
|
var css_248z$3 = ".will-filter-bar-divider {\n width: 1px;\n margin: 0 10px;\n background-color: var(--will-charcoal-blue);\n}\n\n@media (max-width: 960px) {\n .will-filter-bar-divider {\n width: auto;\n margin: 0 10px;\n height: 1px;\n background-color: var(--will-charcoal-blue);\n }\n}";
|
|
@@ -12127,7 +12110,6 @@ var useFilterCalendar = function (_a) {
|
|
|
12127
12110
|
handleSubmit: handleSubmit,
|
|
12128
12111
|
handleClearDates: handleClearDates,
|
|
12129
12112
|
setCalendarRange: setCalendarRange,
|
|
12130
|
-
setDisabledDates: setDisabledDates,
|
|
12131
12113
|
setUpdateCalendarMonthNavigation: setUpdateCalendarMonthNavigation,
|
|
12132
12114
|
calendarRange: calendarRange,
|
|
12133
12115
|
disabledDates: disabledDates,
|
|
@@ -12196,7 +12178,7 @@ function FilterCalendar(_a) {
|
|
|
12196
12178
|
toggleCalendar: toggleCalendar,
|
|
12197
12179
|
outerRangeContext: outerRangeContext,
|
|
12198
12180
|
outerDisableCalendarDates: outerDisableCalendarDates,
|
|
12199
|
-
}), setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates,
|
|
12181
|
+
}), setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, updateCalendarMonthNavigation = _b.updateCalendarMonthNavigation, updateCalendarDefaultMonth = _b.updateCalendarDefaultMonth, setUpdateCalendarMonthNavigation = _b.setUpdateCalendarMonthNavigation, calendarHasError = _b.calendarHasError, setCalendarHasError = _b.setCalendarHasError, setUpdatedForSubmit = _b.setUpdatedForSubmit, rangeContext = _b.rangeContext, disableCalendarDates = _b.disableCalendarDates;
|
|
12200
12182
|
// Display component after fully loaded
|
|
12201
12183
|
useAwaitRender();
|
|
12202
12184
|
// Handle close filter section
|
|
@@ -12208,7 +12190,7 @@ function FilterCalendar(_a) {
|
|
|
12208
12190
|
React__default.createElement("h2", null, t('filterBar:calendar.title')),
|
|
12209
12191
|
React__default.createElement(CloseButton, { handleClose: function () { return setToggleCalendar(false); } })),
|
|
12210
12192
|
React__default.createElement("div", { className: "will-calendar-main" },
|
|
12211
|
-
React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates,
|
|
12193
|
+
React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, updateCalendarMonthNavigation: updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation: setUpdateCalendarMonthNavigation, updateCalendarDefaultMonth: updateCalendarDefaultMonth, loadingData: loadingData, showFeedback: showFeedback, noActiveSelection: noActiveSelection, palette: palette, setCalendarHasError: setCalendarHasError, setUpdatedForSubmit: setUpdatedForSubmit, rangeContext: rangeContext, calendarHasError: calendarHasError })),
|
|
12212
12194
|
React__default.createElement("div", { className: "will-calendar-footer" },
|
|
12213
12195
|
React__default.createElement(Footer, { calendarHasError: calendarHasError, calendarRange: calendarRange, handleClearDates: handleClearDates, language: language, palette: palette }))))));
|
|
12214
12196
|
}
|