willba-component-library 0.2.40 → 0.2.42
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/index.esm.js +44 -32
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +44 -32
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +44 -32
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterCalendar/FilterCalendar.stories.tsx +14 -6
- package/src/components/FilterCalendar/hooks/useFilterCalendar.ts +1 -1
- package/src/core/components/calendar/Calendar.tsx +48 -32
package/lib/index.esm.js
CHANGED
|
@@ -10809,23 +10809,9 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10809
10809
|
var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
|
|
10810
10810
|
var today = startOfDay(new Date());
|
|
10811
10811
|
var selectedStartDate = calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from;
|
|
10812
|
-
// Handle loading spinner
|
|
10813
|
-
useEffect(function () {
|
|
10814
|
-
if (typeof document === 'undefined')
|
|
10815
|
-
return;
|
|
10816
|
-
var loadingSpinner = document.querySelector('.will-filter-bar-calendar .will-calendar-spinner');
|
|
10817
|
-
if (loadingData) {
|
|
10818
|
-
if (loadingSpinner)
|
|
10819
|
-
loadingSpinner.style.display = 'flex';
|
|
10820
|
-
}
|
|
10821
|
-
else {
|
|
10822
|
-
if (loadingSpinner)
|
|
10823
|
-
loadingSpinner.style.display = 'none';
|
|
10824
|
-
}
|
|
10825
|
-
}, [loadingData, updateCalendarMonthNavigation, updateCalendarDefaultMoth]);
|
|
10826
10812
|
// Handle overlapping availableDates.lastCheckOut and disabledDates.start
|
|
10827
10813
|
var _c = __read(useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
|
|
10828
|
-
useMemo(function () {
|
|
10814
|
+
var newDisableCalendarDates = useMemo(function () {
|
|
10829
10815
|
if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
|
|
10830
10816
|
var dateFormat_1 = 'dd-MM-yyyy';
|
|
10831
10817
|
var disabledDates_1 = disableCalendarDates.disabledDates;
|
|
@@ -10859,14 +10845,22 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10859
10845
|
return __spreadArray$1(__spreadArray$1([], __read(prev), false), __read(newOverlappingDates_1), false);
|
|
10860
10846
|
});
|
|
10861
10847
|
}
|
|
10862
|
-
disableCalendarDates
|
|
10848
|
+
var newDisableCalendarDates_1 = __assign$2(__assign$2({}, disableCalendarDates), { disabledDates: updatedDisabledDates });
|
|
10849
|
+
return newDisableCalendarDates_1;
|
|
10863
10850
|
}
|
|
10864
|
-
|
|
10851
|
+
return disableCalendarDates;
|
|
10852
|
+
}, [
|
|
10853
|
+
disableCalendarDates,
|
|
10854
|
+
calendarRange,
|
|
10855
|
+
updateCalendarMonthNavigation,
|
|
10856
|
+
initialCalendarRange,
|
|
10857
|
+
updateCalendarDefaultMoth,
|
|
10858
|
+
]);
|
|
10865
10859
|
// Handle disable dates by page
|
|
10866
10860
|
var disabledDatesByPage = handleDisabledDatesByPage({
|
|
10867
10861
|
today: today,
|
|
10868
10862
|
selectedPath: selectedPath,
|
|
10869
|
-
|
|
10863
|
+
newDisableCalendarDates: newDisableCalendarDates,
|
|
10870
10864
|
});
|
|
10871
10865
|
// Handle tooltip
|
|
10872
10866
|
useEffect(function () {
|
|
@@ -10884,6 +10878,7 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10884
10878
|
var calendarOverlappingDate = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)');
|
|
10885
10879
|
var tooltipClonesCheckIn = [];
|
|
10886
10880
|
var tooltipClonesCheckOut = [];
|
|
10881
|
+
var tooltipClonesSpinner = [];
|
|
10887
10882
|
var tooltipClonesOverlappingDates = [];
|
|
10888
10883
|
if (calendarTooltip && calendarButtons.length > 0) {
|
|
10889
10884
|
calendarButtons.forEach(function (element) {
|
|
@@ -10900,7 +10895,9 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10900
10895
|
});
|
|
10901
10896
|
}
|
|
10902
10897
|
if (loadingSpinner && calendarMonthContainer) {
|
|
10903
|
-
|
|
10898
|
+
var tooltipClone = loadingSpinner.cloneNode(true);
|
|
10899
|
+
calendarMonthContainer.appendChild(tooltipClone);
|
|
10900
|
+
tooltipClonesSpinner.push(tooltipClone);
|
|
10904
10901
|
}
|
|
10905
10902
|
if (calendarTooltipOverlappingDate &&
|
|
10906
10903
|
calendarOverlappingDate.length > 0) {
|
|
@@ -10913,6 +10910,7 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10913
10910
|
return function () {
|
|
10914
10911
|
tooltipClonesCheckIn.forEach(function (clone) { return clone.remove(); });
|
|
10915
10912
|
tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
|
|
10913
|
+
tooltipClonesSpinner.forEach(function (clone) { return clone.remove(); });
|
|
10916
10914
|
tooltipClonesOverlappingDates.forEach(function (clone) { return clone.remove(); });
|
|
10917
10915
|
};
|
|
10918
10916
|
}, [
|
|
@@ -10922,12 +10920,26 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10922
10920
|
initialCalendarRange,
|
|
10923
10921
|
updateCalendarDefaultMoth,
|
|
10924
10922
|
]);
|
|
10923
|
+
// Handle loading spinner
|
|
10924
|
+
useEffect(function () {
|
|
10925
|
+
if (typeof document === 'undefined')
|
|
10926
|
+
return;
|
|
10927
|
+
var loadingSpinner = document.querySelector('.will-filter-bar-calendar .rdp-months .will-calendar-spinner');
|
|
10928
|
+
if (loadingData) {
|
|
10929
|
+
if (loadingSpinner)
|
|
10930
|
+
loadingSpinner.style.display = 'flex';
|
|
10931
|
+
}
|
|
10932
|
+
else {
|
|
10933
|
+
if (loadingSpinner)
|
|
10934
|
+
loadingSpinner.style.display = 'none';
|
|
10935
|
+
}
|
|
10936
|
+
}, [loadingData, updateCalendarMonthNavigation, updateCalendarDefaultMoth]);
|
|
10925
10937
|
return (React__default__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
|
|
10926
10938
|
React__default__default.createElement("div", { className: "will-calendar-filter-container" },
|
|
10927
10939
|
React__default__default.createElement(DayPicker, { key: updateCalendarDefaultMoth, id: "will-calendar", mode: "range", locale: language === 'en' ? enUS : fi, numberOfMonths: !isTablet ? 2 : 1, weekStartsOn: 1, selected: calendarRange, onSelect: function (range) {
|
|
10928
10940
|
return handleSelectedCheckIn({
|
|
10929
10941
|
range: range,
|
|
10930
|
-
|
|
10942
|
+
newDisableCalendarDates: newDisableCalendarDates,
|
|
10931
10943
|
setCalendarRange: setCalendarRange,
|
|
10932
10944
|
setDisabledDates: setDisabledDates,
|
|
10933
10945
|
calendarRange: calendarRange,
|
|
@@ -10935,13 +10947,13 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10935
10947
|
});
|
|
10936
10948
|
}, captionLayout: "dropdown-buttons", defaultMonth: (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from) ||
|
|
10937
10949
|
selectedStartDate ||
|
|
10938
|
-
(((_b =
|
|
10939
|
-
?
|
|
10950
|
+
(((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
10951
|
+
? newDisableCalendarDates.disabledDates[0].from
|
|
10940
10952
|
: today), disabled: disabledDatesByPage.length
|
|
10941
10953
|
? disabledDatesByPage
|
|
10942
10954
|
: (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
|
|
10943
10955
|
? disabledDates
|
|
10944
|
-
: (
|
|
10956
|
+
: (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [], fromMonth: today, onMonthChange: function (val) {
|
|
10945
10957
|
requestDates && setUpdateCalendarMonthNavigation
|
|
10946
10958
|
? (requestDates(val),
|
|
10947
10959
|
setUpdateCalendarMonthNavigation(function (prev) { return !prev; }))
|
|
@@ -10959,7 +10971,7 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10959
10971
|
? disabledDatesByPage
|
|
10960
10972
|
: (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
|
|
10961
10973
|
? disabledDates
|
|
10962
|
-
: (
|
|
10974
|
+
: (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [],
|
|
10963
10975
|
disabledAfterCheckIn: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
10964
10976
|
? [{ after: calendarRange.from }]
|
|
10965
10977
|
: [],
|
|
@@ -10997,7 +11009,7 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10997
11009
|
/////////
|
|
10998
11010
|
var handleSelectedCheckIn = function (_a) {
|
|
10999
11011
|
var _b;
|
|
11000
|
-
var range = _a.range,
|
|
11012
|
+
var range = _a.range, newDisableCalendarDates = _a.newDisableCalendarDates, setCalendarRange = _a.setCalendarRange, setDisabledDates = _a.setDisabledDates, calendarRange = _a.calendarRange, overlappingDate = _a.overlappingDate;
|
|
11001
11013
|
// Calendar dates select logic
|
|
11002
11014
|
var dateFormat = 'dd-MM-yyyy';
|
|
11003
11015
|
var rangeFrom = (range === null || range === void 0 ? void 0 : range.from) ? format(range.from, dateFormat) : null;
|
|
@@ -11008,8 +11020,8 @@ var handleSelectedCheckIn = function (_a) {
|
|
|
11008
11020
|
var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
|
|
11009
11021
|
? overlappingDate.find(function (date) { return format(date.from || 1, dateFormat) === rangeFrom; })
|
|
11010
11022
|
: null;
|
|
11011
|
-
var checkOutRange = ((_b =
|
|
11012
|
-
?
|
|
11023
|
+
var checkOutRange = ((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.availableDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
11024
|
+
? newDisableCalendarDates.availableDates.find(function (checkInDate) {
|
|
11013
11025
|
return format(checkInDate.checkIn || 1, dateFormat) ===
|
|
11014
11026
|
format((range === null || range === void 0 ? void 0 : range.from) || 1, dateFormat);
|
|
11015
11027
|
})
|
|
@@ -11019,7 +11031,7 @@ var handleSelectedCheckIn = function (_a) {
|
|
|
11019
11031
|
var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
|
|
11020
11032
|
var noDatesRange = format(checkIn, dateFormat) ===
|
|
11021
11033
|
format(checkOutRange.firstCheckOut, dateFormat);
|
|
11022
|
-
setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((
|
|
11034
|
+
setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [])), false), [
|
|
11023
11035
|
{
|
|
11024
11036
|
from: noDatesRange ? undefined : checkIn,
|
|
11025
11037
|
to: noDatesRange ? undefined : firstCheckOut,
|
|
@@ -11045,10 +11057,10 @@ var handleSelectedCheckIn = function (_a) {
|
|
|
11045
11057
|
};
|
|
11046
11058
|
var handleDisabledDatesByPage = function (_a) {
|
|
11047
11059
|
var _b, _c, _d;
|
|
11048
|
-
var
|
|
11049
|
-
var daysToOffsetCalendar = (
|
|
11060
|
+
var newDisableCalendarDates = _a.newDisableCalendarDates, selectedPath = _a.selectedPath, today = _a.today;
|
|
11061
|
+
var daysToOffsetCalendar = (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDatesByPage) && selectedPath
|
|
11050
11062
|
? [
|
|
11051
|
-
(_b =
|
|
11063
|
+
(_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDatesByPage) === null || _b === void 0 ? void 0 : _b.find(function (item) { return selectedPath === item.page; }),
|
|
11052
11064
|
]
|
|
11053
11065
|
: [];
|
|
11054
11066
|
return daysToOffsetCalendar.length
|
|
@@ -11463,7 +11475,7 @@ var useFilterCalendar = function (_a) {
|
|
|
11463
11475
|
var endDateParam = urlSearchParams.get('endDate');
|
|
11464
11476
|
if (startDateParam && endDateParam) {
|
|
11465
11477
|
if (noActiveSelection) {
|
|
11466
|
-
|
|
11478
|
+
handleClearDates();
|
|
11467
11479
|
setUpdateCalendarDefaultMoth(function (prev) { return prev + 1; });
|
|
11468
11480
|
setInitialCalendarRange({
|
|
11469
11481
|
from: new Date(startDateParam),
|