willba-component-library 0.2.28 → 0.2.30
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/assets/SpinnerSvg.d.ts +5 -0
- package/lib/core/components/calendar/CalendarTypes.d.ts +2 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.esm.js +27 -18
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +27 -18
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +27 -18
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/assets/SpinnerSvg.tsx +40 -0
- package/src/components/FilterCalendar/FilterCalendar.tsx +1 -0
- package/src/core/components/calendar/Calendar.tsx +20 -15
- package/src/core/components/calendar/CalendarTypes.ts +2 -0
package/lib/index.umd.js
CHANGED
|
@@ -10809,6 +10809,14 @@
|
|
|
10809
10809
|
|
|
10810
10810
|
var reactResponsiveExports = reactResponsive.exports;
|
|
10811
10811
|
|
|
10812
|
+
var SpinnerSVG = function (_a) {
|
|
10813
|
+
var fill = _a.fill, size = _a.size;
|
|
10814
|
+
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" },
|
|
10815
|
+
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 "),
|
|
10816
|
+
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 }),
|
|
10817
|
+
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 })));
|
|
10818
|
+
};
|
|
10819
|
+
|
|
10812
10820
|
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}";
|
|
10813
10821
|
styleInject(css_248z$9);
|
|
10814
10822
|
|
|
@@ -10817,7 +10825,7 @@
|
|
|
10817
10825
|
|
|
10818
10826
|
var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
10819
10827
|
var _b;
|
|
10820
|
-
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
|
|
10828
|
+
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, palette = _a.palette;
|
|
10821
10829
|
// Translations
|
|
10822
10830
|
var t = useTranslation('common').t;
|
|
10823
10831
|
var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
|
|
@@ -10868,17 +10876,19 @@
|
|
|
10868
10876
|
React__default.useEffect(function () {
|
|
10869
10877
|
if (typeof document === 'undefined' || !showFeedback)
|
|
10870
10878
|
return;
|
|
10879
|
+
// Children
|
|
10871
10880
|
var calendarTooltip = document.querySelector('.will-calendar-tooltip');
|
|
10872
10881
|
var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
|
|
10873
10882
|
var calendarTooltipOverlappingDate = document.querySelector('.will-calendar-tooltip-overlapping-date');
|
|
10874
10883
|
var loadingSpinner = document.querySelector('.will-filter-bar-calendar .will-calendar-spinner');
|
|
10884
|
+
// Parents
|
|
10875
10885
|
var calendarButtons = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked):not(:has(.disabled-after-check-in))');
|
|
10876
10886
|
var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
|
|
10877
10887
|
var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
|
|
10878
|
-
var calendarOverlappingDate = document.
|
|
10879
|
-
var appendedOverlappingDateTooltip = document.querySelector('.will-filter-bar-calendar .rdp-cell .will-calendar-tooltip-overlapping-date');
|
|
10888
|
+
var calendarOverlappingDate = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)');
|
|
10880
10889
|
var tooltipClones = [];
|
|
10881
10890
|
var tooltipClonesCheckOut = [];
|
|
10891
|
+
var tooltipClonesOverlappingDates = [];
|
|
10882
10892
|
if (calendarTooltip && calendarButtons.length > 0) {
|
|
10883
10893
|
calendarButtons.forEach(function (element) {
|
|
10884
10894
|
var tooltipClone = calendarTooltip.cloneNode(true);
|
|
@@ -10896,23 +10906,20 @@
|
|
|
10896
10906
|
if (loadingSpinner && calendarMonthContainer) {
|
|
10897
10907
|
calendarMonthContainer.appendChild(loadingSpinner);
|
|
10898
10908
|
}
|
|
10899
|
-
if (
|
|
10900
|
-
|
|
10901
|
-
|
|
10902
|
-
|
|
10903
|
-
|
|
10904
|
-
|
|
10905
|
-
|
|
10906
|
-
appendedOverlappingDateTooltip.style.display = 'none';
|
|
10907
|
-
}
|
|
10908
|
-
else if (!calendarRange && appendedOverlappingDateTooltip) {
|
|
10909
|
-
appendedOverlappingDateTooltip.style.display = 'block';
|
|
10909
|
+
if (calendarTooltipOverlappingDate &&
|
|
10910
|
+
calendarOverlappingDate.length > 0) {
|
|
10911
|
+
calendarOverlappingDate.forEach(function (element) {
|
|
10912
|
+
var tooltipClone = calendarTooltipOverlappingDate.cloneNode(true);
|
|
10913
|
+
element.appendChild(tooltipClone);
|
|
10914
|
+
tooltipClonesOverlappingDates.push(tooltipClone);
|
|
10915
|
+
});
|
|
10910
10916
|
}
|
|
10911
10917
|
return function () {
|
|
10912
10918
|
tooltipClones.forEach(function (clone) { return clone.remove(); });
|
|
10913
10919
|
tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
|
|
10920
|
+
tooltipClonesOverlappingDates.forEach(function (clone) { return clone.remove(); });
|
|
10914
10921
|
};
|
|
10915
|
-
}, [calendarRange, overlappingDate]);
|
|
10922
|
+
}, [calendarRange, updateCalendar, overlappingDate]);
|
|
10916
10923
|
return (React__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
|
|
10917
10924
|
React__default.createElement("div", { className: "will-calendar-filter-container" },
|
|
10918
10925
|
React__default.createElement(DayPicker, { id: "will-calendar", mode: "range", locale: language === 'en' ? enUS : fi, numberOfMonths: !isTablet ? 2 : 1, weekStartsOn: 1, selected: calendarRange, onSelect: function (range) {
|
|
@@ -10924,7 +10931,8 @@
|
|
|
10924
10931
|
calendarRange: calendarRange,
|
|
10925
10932
|
overlappingDate: overlappingDate,
|
|
10926
10933
|
});
|
|
10927
|
-
}, captionLayout: "dropdown-buttons", defaultMonth:
|
|
10934
|
+
}, captionLayout: "dropdown-buttons", defaultMonth: (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from) ||
|
|
10935
|
+
selectedStartDate ||
|
|
10928
10936
|
(((_b = disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
10929
10937
|
? disableCalendarDates.disabledDates[0].from
|
|
10930
10938
|
: today), disabled: disabledDatesByPage.length
|
|
@@ -10976,7 +10984,8 @@
|
|
|
10976
10984
|
React__default.createElement("div", null, t('noCheckOut'))),
|
|
10977
10985
|
React__default.createElement("div", { className: 'will-calendar-tooltip-overlapping-date' },
|
|
10978
10986
|
React__default.createElement("div", null, t('checkOutOnly'))),
|
|
10979
|
-
React__default.createElement("div", { className: 'will-calendar-spinner' },
|
|
10987
|
+
React__default.createElement("div", { className: 'will-calendar-spinner' },
|
|
10988
|
+
React__default.createElement(SpinnerSVG, { fill: (palette === null || palette === void 0 ? void 0 : palette.primary) || 'inherit', size: 50 })))));
|
|
10980
10989
|
});
|
|
10981
10990
|
/////////
|
|
10982
10991
|
var handleSelectedCheckIn = function (_a) {
|
|
@@ -11512,7 +11521,7 @@
|
|
|
11512
11521
|
React__default.createElement("h2", null, t('filterBar:calendar.title')),
|
|
11513
11522
|
React__default.createElement(CloseButton, { handleClose: function () { return setToggleCalendar(false); } })),
|
|
11514
11523
|
React__default.createElement("div", { className: "will-calendar-main" },
|
|
11515
|
-
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 })),
|
|
11524
|
+
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, palette: palette })),
|
|
11516
11525
|
React__default.createElement("div", { className: "will-calendar-footer" },
|
|
11517
11526
|
React__default.createElement("div", { className: "will-calendar-footer-dates" },
|
|
11518
11527
|
React__default.createElement("div", null,
|