willba-component-library 0.2.22 → 0.2.23
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/lib/components/FilterCalendar/FilterCalendar.d.ts +1 -1
- package/lib/components/FilterCalendar/hooks/useFilterCalendar.d.ts +3 -1
- package/lib/core/components/calendar/CalendarTypes.d.ts +3 -0
- package/lib/index.d.ts +4 -1
- package/lib/index.esm.js +82 -18
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +82 -18
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +82 -18
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterCalendar/FilterCalendar.stories.tsx +9 -836
- package/src/components/FilterCalendar/FilterCalendar.tsx +7 -1
- package/src/components/FilterCalendar/hooks/useFilterCalendar.ts +19 -5
- package/src/core/components/calendar/Calendar.css +6 -0
- package/src/core/components/calendar/Calendar.tsx +85 -8
- package/src/core/components/calendar/CalendarTypes.ts +3 -0
- package/src/locales/fi/filterBar.json +1 -1
package/lib/index.js
CHANGED
|
@@ -2884,7 +2884,7 @@ var enCommon = {
|
|
|
2884
2884
|
};
|
|
2885
2885
|
|
|
2886
2886
|
var calendar = {
|
|
2887
|
-
label: "
|
|
2887
|
+
label: "Päivät",
|
|
2888
2888
|
roomsLabelPlaceholder: "Lisää check-in ja check-out",
|
|
2889
2889
|
eventsLabelPlaceholder: "Lisää aikaväli",
|
|
2890
2890
|
startDate: "Alku",
|
|
@@ -10806,12 +10806,12 @@ var reactResponsiveExports = reactResponsive.exports;
|
|
|
10806
10806
|
var css_248z$9 = ".rdp {\n --rdp-cell-size: 40px;\n --rdp-caption-font-size: 18px;\n --rdp-accent-color: #0000ff;\n --rdp-background-color: #e7edff;\n --rdp-accent-color-dark: #3003e1;\n --rdp-background-color-dark: #180270;\n --rdp-outline: 2px solid var(--rdp-accent-color); /* Outline border for focused elements */\n --rdp-outline-selected: 3px solid var(--rdp-accent-color); /* Outline border for focused _and_ selected elements */\n\n margin: 1em;\n}\n\n/* Hide elements for devices that are not screen readers */\n.rdp-vhidden {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n background: transparent;\n border: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n position: absolute !important;\n top: 0;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n overflow: hidden !important;\n clip: rect(1px, 1px, 1px, 1px) !important;\n border: 0 !important;\n}\n\n/* Buttons */\n.rdp-button_reset {\n appearance: none;\n position: relative;\n margin: 0;\n padding: 0;\n cursor: default;\n color: inherit;\n background: none;\n font: inherit;\n\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n.rdp-button_reset:focus-visible {\n /* Make sure to reset outline only when :focus-visible is supported */\n outline: none;\n}\n\n.rdp-button {\n border: 2px solid transparent;\n}\n\n.rdp-button[disabled]:not(.rdp-day_selected) {\n opacity: 0.25;\n}\n\n.rdp-button:not([disabled]) {\n cursor: pointer;\n}\n\n.rdp-button:focus-visible:not([disabled]) {\n color: inherit;\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n}\n\n.rdp-button:hover:not([disabled]):not(.rdp-day_selected) {\n background-color: var(--rdp-background-color);\n}\n\n.rdp-months {\n display: flex;\n}\n\n.rdp-month {\n margin: 0 1em;\n}\n\n.rdp-month:first-child {\n margin-left: 0;\n}\n\n.rdp-month:last-child {\n margin-right: 0;\n}\n\n.rdp-table {\n margin: 0;\n max-width: calc(var(--rdp-cell-size) * 7);\n border-collapse: collapse;\n}\n\n.rdp-with_weeknumber .rdp-table {\n max-width: calc(var(--rdp-cell-size) * 8);\n border-collapse: collapse;\n}\n\n.rdp-caption {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0;\n text-align: left;\n}\n\n.rdp-multiple_months .rdp-caption {\n position: relative;\n display: block;\n text-align: center;\n}\n\n.rdp-caption_dropdowns {\n position: relative;\n display: inline-flex;\n}\n\n.rdp-caption_label {\n position: relative;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: 0;\n padding: 0 0.25em;\n white-space: nowrap;\n color: currentColor;\n border: 0;\n border: 2px solid transparent;\n font-family: inherit;\n font-size: var(--rdp-caption-font-size);\n font-weight: bold;\n}\n\n.rdp-nav {\n white-space: nowrap;\n}\n\n.rdp-multiple_months .rdp-caption_start .rdp-nav {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n}\n\n.rdp-multiple_months .rdp-caption_end .rdp-nav {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n}\n\n.rdp-nav_button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n padding: 0.25em;\n border-radius: 100%;\n}\n\n/* ---------- */\n/* Dropdowns */\n/* ---------- */\n\n.rdp-dropdown_year,\n.rdp-dropdown_month {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown {\n appearance: none;\n position: absolute;\n z-index: 2;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n opacity: 0;\n border: none;\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n.rdp-dropdown[disabled] {\n opacity: unset;\n color: unset;\n}\n\n.rdp-dropdown:focus-visible:not([disabled]) + .rdp-caption_label {\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n border-radius: 6px;\n}\n\n.rdp-dropdown_icon {\n margin: 0 0 0 5px;\n}\n\n.rdp-head {\n border: 0;\n}\n\n.rdp-head_row,\n.rdp-row {\n height: 100%;\n}\n\n.rdp-head_cell {\n vertical-align: middle;\n font-size: 0.75em;\n font-weight: 700;\n text-align: center;\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-transform: uppercase;\n}\n\n.rdp-tbody {\n border: 0;\n}\n\n.rdp-tfoot {\n margin: 0.5em;\n}\n\n.rdp-cell {\n width: var(--rdp-cell-size);\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-align: center;\n}\n\n.rdp-weeknumber {\n font-size: 0.75em;\n}\n\n.rdp-weeknumber,\n.rdp-day {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--rdp-cell-size);\n max-width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n margin: 0;\n border: 2px solid transparent;\n border-radius: 100%;\n}\n\n.rdp-day_today:not(.rdp-day_outside) {\n font-weight: bold;\n}\n\n.rdp-day_selected,\n.rdp-day_selected:focus-visible,\n.rdp-day_selected:hover {\n color: white;\n opacity: 1;\n background-color: var(--rdp-accent-color);\n}\n\n.rdp-day_outside {\n opacity: 0.5;\n}\n\n.rdp-day_selected:focus-visible {\n /* Since the background is the same use again the outline */\n outline: var(--rdp-outline);\n outline-offset: 2px;\n z-index: 1;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp-day_range_end.rdp-day_range_start {\n border-radius: 100%;\n}\n\n.rdp-day_range_middle {\n border-radius: 0;\n}";
|
|
10807
10807
|
styleInject(css_248z$9);
|
|
10808
10808
|
|
|
10809
|
-
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\n.will-calendar-filter-container .DayPicker {\n font-size: 25px; /* Adjust this value to make the DayPicker bigger */\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-button_reset.rdp-button.rdp-day.rdp-day_selected {\n background-color: var(--will-primary);\n opacity: 1;\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 opacity: 0.5;\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/* Tooltip */\n.will-root .will-calendar-filter-container .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out {\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.will-root .will-calendar-filter-container .will-calendar-tooltip > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out> 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 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 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\n";
|
|
10809
|
+
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\n.will-calendar-filter-container .DayPicker {\n font-size: 25px; /* Adjust this value to make the DayPicker bigger */\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-button_reset.rdp-button.rdp-day.rdp-day_selected {\n background-color: var(--will-primary);\n opacity: 1;\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 opacity: 0.5;\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/* Tooltip */\n.will-root .will-calendar-filter-container .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out {\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.will-root .will-calendar-filter-container .will-calendar-tooltip > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out> 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 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 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 {\n background-color: lightgrey;\n}\n\n\n";
|
|
10810
10810
|
styleInject(css_248z$8);
|
|
10811
10811
|
|
|
10812
10812
|
var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
10813
10813
|
var _b;
|
|
10814
|
-
var selectedPath = _a.selectedPath, calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, language = _a.language, disableCalendarDates = _a.disableCalendarDates, requestDates = _a.requestDates, disabledDates = _a.disabledDates, setDisabledDates = _a.setDisabledDates, updateCalendar = _a.updateCalendar, setUpdateCalendar = _a.setUpdateCalendar, loadingData = _a.loadingData;
|
|
10814
|
+
var selectedPath = _a.selectedPath, calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, language = _a.language, disableCalendarDates = _a.disableCalendarDates, requestDates = _a.requestDates, disabledDates = _a.disabledDates, setDisabledDates = _a.setDisabledDates, updateCalendar = _a.updateCalendar, setUpdateCalendar = _a.setUpdateCalendar, loadingData = _a.loadingData, initialCalendarRange = _a.initialCalendarRange, showFeedback = _a.showFeedback;
|
|
10815
10815
|
// Translations
|
|
10816
10816
|
var t = useTranslation('common').t;
|
|
10817
10817
|
var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
|
|
@@ -10833,7 +10833,7 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
10833
10833
|
}, [disableCalendarDates, calendarRange]);
|
|
10834
10834
|
// Handle tooltip
|
|
10835
10835
|
React__default.useEffect(function () {
|
|
10836
|
-
if (typeof document === 'undefined')
|
|
10836
|
+
if (typeof document === 'undefined' || !showFeedback)
|
|
10837
10837
|
return;
|
|
10838
10838
|
var calendarTooltip = document.querySelector('.will-calendar-tooltip');
|
|
10839
10839
|
var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
|
|
@@ -10879,6 +10879,25 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
10879
10879
|
loadingSpinner.style.display = 'none';
|
|
10880
10880
|
}
|
|
10881
10881
|
}, [loadingData]);
|
|
10882
|
+
// Handle overlapping availableDates.lastCheckOut and disabledDates.start
|
|
10883
|
+
React__default.useEffect(function () {
|
|
10884
|
+
var _a, _b;
|
|
10885
|
+
if (disableCalendarDates) {
|
|
10886
|
+
var dateFormat_1 = 'dd-MM-yyyy';
|
|
10887
|
+
var availableDateMap_1 = new Map();
|
|
10888
|
+
(_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.forEach(function (available) {
|
|
10889
|
+
availableDateMap_1.set(format(available.lastCheckOut, dateFormat_1), available);
|
|
10890
|
+
});
|
|
10891
|
+
var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
|
|
10892
|
+
var formattedFromDate = format(dateRange.from, dateFormat_1);
|
|
10893
|
+
if (availableDateMap_1.has(formattedFromDate)) {
|
|
10894
|
+
return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
|
|
10895
|
+
}
|
|
10896
|
+
return dateRange;
|
|
10897
|
+
});
|
|
10898
|
+
disableCalendarDates.disabledDates = updatedDisabledDates;
|
|
10899
|
+
}
|
|
10900
|
+
}, [disableCalendarDates]);
|
|
10882
10901
|
// Handle disable dates by page
|
|
10883
10902
|
var disabledDatesByPage = handleDisabledDatesByPage({
|
|
10884
10903
|
today: today,
|
|
@@ -10899,6 +10918,7 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
10899
10918
|
today: 'my-today',
|
|
10900
10919
|
booked: 'booked',
|
|
10901
10920
|
disabledAfterCheckIn: 'disabled-after-check-in',
|
|
10921
|
+
noActiveSelection: 'no-active-selection',
|
|
10902
10922
|
}, captionLayout: "dropdown-buttons", defaultMonth: selectedStartDate ||
|
|
10903
10923
|
(((_b = disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
10904
10924
|
? disableCalendarDates.disabledDates[0].from
|
|
@@ -10919,6 +10939,9 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
|
10919
10939
|
disabledAfterCheckIn: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
10920
10940
|
? [{ after: calendarRange.from }]
|
|
10921
10941
|
: [],
|
|
10942
|
+
noActiveSelection: !calendarRange
|
|
10943
|
+
? initialCalendarRange || []
|
|
10944
|
+
: [],
|
|
10922
10945
|
} }),
|
|
10923
10946
|
React__default.createElement("div", { className: 'will-calendar-tooltip' },
|
|
10924
10947
|
React__default.createElement("div", null, t('noCheckIn'))),
|
|
@@ -10946,14 +10969,23 @@ var handleSelectedCheckIn = function (_a) {
|
|
|
10946
10969
|
format((range === null || range === void 0 ? void 0 : range.from) || 1, dateFormat);
|
|
10947
10970
|
})
|
|
10948
10971
|
: null;
|
|
10949
|
-
if (rangeFrom &&
|
|
10950
|
-
// rangeFrom !== calendarTo &&
|
|
10951
|
-
checkOutRange &&
|
|
10952
|
-
setDisabledDates) {
|
|
10972
|
+
if (rangeFrom && checkOutRange && setDisabledDates) {
|
|
10953
10973
|
var checkIn = addDays(checkOutRange.checkIn, 1);
|
|
10954
10974
|
var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
|
|
10955
10975
|
var noDatesRange = format(checkIn, dateFormat) ===
|
|
10956
10976
|
format(checkOutRange.firstCheckOut, dateFormat);
|
|
10977
|
+
// Handle overlapping availableDates.lastCheckOut and disabledDates.start
|
|
10978
|
+
// const filteredDisabledCalendarDates =
|
|
10979
|
+
// disableCalendarDates?.disabledDates?.map((dateRange) => {
|
|
10980
|
+
// if (
|
|
10981
|
+
// dateRange.from &&
|
|
10982
|
+
// format(dateRange.from, dateFormat) ===
|
|
10983
|
+
// format(checkOutRange.lastCheckOut, dateFormat)
|
|
10984
|
+
// ) {
|
|
10985
|
+
// return { ...dateRange, from: addDays(checkOutRange.lastCheckOut, 1) }
|
|
10986
|
+
// }
|
|
10987
|
+
// return dateRange
|
|
10988
|
+
// })
|
|
10957
10989
|
setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) || [])), false), [
|
|
10958
10990
|
{
|
|
10959
10991
|
from: noDatesRange ? undefined : checkIn,
|
|
@@ -10996,6 +11028,31 @@ var handleDisabledDatesByPage = function (_a) {
|
|
|
10996
11028
|
]
|
|
10997
11029
|
: [];
|
|
10998
11030
|
};
|
|
11031
|
+
// const handleOverlappingDates = ({
|
|
11032
|
+
// disableCalendarDates,
|
|
11033
|
+
// }: {
|
|
11034
|
+
// disableCalendarDates?: DisableCalendarDates
|
|
11035
|
+
// }): DisableCalendarDates | undefined => {
|
|
11036
|
+
// if (!disableCalendarDates) return undefined
|
|
11037
|
+
// const dateFormat = 'dd-MM-yyyy'
|
|
11038
|
+
// disableCalendarDates.disabledDates = disableCalendarDates.disabledDates?.map(
|
|
11039
|
+
// (dateRange) => {
|
|
11040
|
+
// const overlappingDate = disableCalendarDates.availableDates?.find(
|
|
11041
|
+
// (available) =>
|
|
11042
|
+
// format(available.lastCheckOut, dateFormat) ===
|
|
11043
|
+
// format(dateRange.from, dateFormat)
|
|
11044
|
+
// )
|
|
11045
|
+
// if (overlappingDate) {
|
|
11046
|
+
// return {
|
|
11047
|
+
// ...dateRange,
|
|
11048
|
+
// from: addDays(dateRange.from, 1),
|
|
11049
|
+
// }
|
|
11050
|
+
// }
|
|
11051
|
+
// return dateRange
|
|
11052
|
+
// }
|
|
11053
|
+
// )
|
|
11054
|
+
// return disableCalendarDates
|
|
11055
|
+
// }
|
|
10999
11056
|
|
|
11000
11057
|
var parseDates = function (_a) {
|
|
11001
11058
|
var calendarRange = _a.calendarRange;
|
|
@@ -11383,10 +11440,11 @@ var AGE_CATEGORIES_FALLBACK = [
|
|
|
11383
11440
|
var REDIRECT_URL_FALLBACK = 'http://localhost:3000/';
|
|
11384
11441
|
|
|
11385
11442
|
var useFilterCalendar = function (_a) {
|
|
11386
|
-
var onSubmit = _a.onSubmit, setToggleCalendar = _a.setToggleCalendar;
|
|
11443
|
+
var onSubmit = _a.onSubmit, setToggleCalendar = _a.setToggleCalendar, noActiveSelection = _a.noActiveSelection;
|
|
11387
11444
|
var _b = __read(React__default.useState(), 2), calendarRange = _b[0], setCalendarRange = _b[1];
|
|
11388
|
-
var _c = __read(React__default.useState(
|
|
11389
|
-
var _d = __read(React__default.useState(
|
|
11445
|
+
var _c = __read(React__default.useState(), 2), initialCalendarRange = _c[0], setInitialCalendarRange = _c[1];
|
|
11446
|
+
var _d = __read(React__default.useState([]), 2), disabledDates = _d[0], setDisabledDates = _d[1];
|
|
11447
|
+
var _e = __read(React__default.useState(false), 2), updateCalendar = _e[0], setUpdateCalendar = _e[1];
|
|
11390
11448
|
React__default.useEffect(function () {
|
|
11391
11449
|
if (typeof window === 'undefined')
|
|
11392
11450
|
return;
|
|
@@ -11394,10 +11452,15 @@ var useFilterCalendar = function (_a) {
|
|
|
11394
11452
|
var startDateParam = urlSearchParams.get('startDate');
|
|
11395
11453
|
var endDateParam = urlSearchParams.get('endDate');
|
|
11396
11454
|
if (startDateParam && endDateParam) {
|
|
11397
|
-
|
|
11398
|
-
|
|
11399
|
-
|
|
11400
|
-
|
|
11455
|
+
noActiveSelection
|
|
11456
|
+
? setInitialCalendarRange({
|
|
11457
|
+
from: new Date(startDateParam),
|
|
11458
|
+
to: new Date(endDateParam),
|
|
11459
|
+
})
|
|
11460
|
+
: setCalendarRange({
|
|
11461
|
+
from: new Date(startDateParam),
|
|
11462
|
+
to: new Date(endDateParam),
|
|
11463
|
+
});
|
|
11401
11464
|
}
|
|
11402
11465
|
}, []);
|
|
11403
11466
|
var handleSubmit = function () {
|
|
@@ -11417,6 +11480,7 @@ var useFilterCalendar = function (_a) {
|
|
|
11417
11480
|
calendarRange: calendarRange,
|
|
11418
11481
|
disabledDates: disabledDates,
|
|
11419
11482
|
updateCalendar: updateCalendar,
|
|
11483
|
+
initialCalendarRange: initialCalendarRange,
|
|
11420
11484
|
};
|
|
11421
11485
|
};
|
|
11422
11486
|
|
|
@@ -11424,12 +11488,12 @@ var css_248z = ".will-root .will-calendar-wrapper {\n box-shadow: var(--will-
|
|
|
11424
11488
|
styleInject(css_248z);
|
|
11425
11489
|
|
|
11426
11490
|
function FilterCalendar(_a) {
|
|
11427
|
-
var calendarOffset = _a.calendarOffset, language = _a.language, palette = _a.palette, onSubmit = _a.onSubmit, disableCalendarDates = _a.disableCalendarDates, toggleCalendar = _a.toggleCalendar, loadingData = _a.loadingData, setToggleCalendar = _a.setToggleCalendar, requestDates = _a.requestDates;
|
|
11491
|
+
var calendarOffset = _a.calendarOffset, language = _a.language, palette = _a.palette, onSubmit = _a.onSubmit, disableCalendarDates = _a.disableCalendarDates, toggleCalendar = _a.toggleCalendar, loadingData = _a.loadingData, setToggleCalendar = _a.setToggleCalendar, requestDates = _a.requestDates, showFeedback = _a.showFeedback, noActiveSelection = _a.noActiveSelection;
|
|
11428
11492
|
var themePalette = useTheme({ palette: palette });
|
|
11429
11493
|
// Translations
|
|
11430
11494
|
useUpdateTranslations({ language: language });
|
|
11431
11495
|
var t = useTranslation().t;
|
|
11432
|
-
var _b = useFilterCalendar({ onSubmit: onSubmit, setToggleCalendar: setToggleCalendar }), handleSubmit = _b.handleSubmit, setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, setDisabledDates = _b.setDisabledDates, updateCalendar = _b.updateCalendar, setUpdateCalendar = _b.setUpdateCalendar;
|
|
11496
|
+
var _b = useFilterCalendar({ onSubmit: onSubmit, setToggleCalendar: setToggleCalendar, noActiveSelection: noActiveSelection }), handleSubmit = _b.handleSubmit, setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, setDisabledDates = _b.setDisabledDates, updateCalendar = _b.updateCalendar, setUpdateCalendar = _b.setUpdateCalendar, initialCalendarRange = _b.initialCalendarRange;
|
|
11433
11497
|
// Display component after fully loaded
|
|
11434
11498
|
useAwaitRender();
|
|
11435
11499
|
// Handle close filter section
|
|
@@ -11442,7 +11506,7 @@ function FilterCalendar(_a) {
|
|
|
11442
11506
|
React__default.createElement("h2", null, t('filterBar:calendar.title')),
|
|
11443
11507
|
React__default.createElement(CloseButton, { handleClose: function () { return setToggleCalendar(false); } })),
|
|
11444
11508
|
React__default.createElement("div", { className: "will-calendar-main" },
|
|
11445
|
-
React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, setDisabledDates: setDisabledDates, updateCalendar: updateCalendar, setUpdateCalendar: setUpdateCalendar, loadingData: loadingData })),
|
|
11509
|
+
React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, setDisabledDates: setDisabledDates, updateCalendar: updateCalendar, setUpdateCalendar: setUpdateCalendar, loadingData: loadingData, initialCalendarRange: initialCalendarRange, showFeedback: showFeedback, noActiveSelection: noActiveSelection })),
|
|
11446
11510
|
React__default.createElement("div", { className: "will-calendar-footer" },
|
|
11447
11511
|
React__default.createElement("div", { className: "will-calendar-footer-dates" },
|
|
11448
11512
|
React__default.createElement("div", null,
|