willba-component-library 0.2.32 → 0.2.34
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/core/components/calendar/CalendarTypes.d.ts +1 -1
- package/lib/index.d.ts +6 -7
- package/lib/index.esm.js +49 -16
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +49 -16
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +49 -16
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterCalendar/FilterCalendar.stories.tsx +122 -13
- package/src/core/components/calendar/Calendar.tsx +55 -20
- package/src/core/components/calendar/CalendarTypes.ts +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DateRange, Matcher } from 'react-day-picker';
|
|
3
|
-
import { Palette as Palette$1 } from 'src/themes/useTheme';
|
|
4
3
|
|
|
5
4
|
interface ButtonProps {
|
|
6
5
|
/**
|
|
@@ -29,6 +28,11 @@ interface ButtonProps {
|
|
|
29
28
|
*/
|
|
30
29
|
declare const Button: ({ type, textColor, size, onClick, label, }: ButtonProps) => React.JSX.Element;
|
|
31
30
|
|
|
31
|
+
type Palette = {
|
|
32
|
+
primary: string;
|
|
33
|
+
secondary: string;
|
|
34
|
+
};
|
|
35
|
+
|
|
32
36
|
type CalendarOffset = {
|
|
33
37
|
[key: string]: number;
|
|
34
38
|
};
|
|
@@ -61,17 +65,12 @@ type CalendarTypes = {
|
|
|
61
65
|
initialCalendarRange?: DateRange | undefined;
|
|
62
66
|
showFeedback?: boolean;
|
|
63
67
|
noActiveSelection?: boolean;
|
|
64
|
-
palette?: Palette
|
|
68
|
+
palette?: Palette;
|
|
65
69
|
updateCalendarMonthNavigation?: boolean;
|
|
66
70
|
setUpdateCalendarMonthNavigation?: (arg: (prev: boolean) => boolean) => void;
|
|
67
71
|
updateCalendarDefaultMoth?: number;
|
|
68
72
|
};
|
|
69
73
|
|
|
70
|
-
type Palette = {
|
|
71
|
-
primary: string;
|
|
72
|
-
secondary: string;
|
|
73
|
-
};
|
|
74
|
-
|
|
75
74
|
type FilterBarProps = {
|
|
76
75
|
language?: string;
|
|
77
76
|
ageCategories?: AgeCategoryType[];
|
package/lib/index.esm.js
CHANGED
|
@@ -10826,21 +10826,40 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10826
10826
|
// Handle overlapping availableDates.lastCheckOut and disabledDates.start
|
|
10827
10827
|
var _c = __read(useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
|
|
10828
10828
|
useMemo(function () {
|
|
10829
|
-
var _a
|
|
10829
|
+
var _a;
|
|
10830
10830
|
if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
|
|
10831
10831
|
var dateFormat_1 = 'dd-MM-yyyy';
|
|
10832
|
-
var
|
|
10833
|
-
(_a = disableCalendarDates.
|
|
10834
|
-
|
|
10835
|
-
});
|
|
10836
|
-
var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
|
|
10832
|
+
var newOverlappingDates_1 = [];
|
|
10833
|
+
var updatedDisabledDates = (_a = disableCalendarDates.disabledDates) === null || _a === void 0 ? void 0 : _a.map(function (dateRange) {
|
|
10834
|
+
var _a, _b;
|
|
10837
10835
|
var formattedFromDate = format(dateRange.from, dateFormat_1);
|
|
10838
|
-
|
|
10839
|
-
|
|
10836
|
+
var hasTwoOverlappingDates = (_a = disableCalendarDates.disabledDates) === null || _a === void 0 ? void 0 : _a.some(function (item) {
|
|
10837
|
+
return format(item.from, dateFormat_1) === formattedFromDate &&
|
|
10838
|
+
format(item.to, dateFormat_1) === formattedFromDate;
|
|
10839
|
+
});
|
|
10840
|
+
var hasOneOverlappingDate = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.some(function (item) {
|
|
10841
|
+
return format(item.from, dateFormat_1) === formattedFromDate &&
|
|
10842
|
+
format(item.to, dateFormat_1) !== formattedFromDate;
|
|
10843
|
+
});
|
|
10844
|
+
if (hasTwoOverlappingDates) {
|
|
10845
|
+
newOverlappingDates_1.push(dateRange);
|
|
10846
|
+
return {
|
|
10847
|
+
from: new Date(1),
|
|
10848
|
+
to: new Date(1),
|
|
10849
|
+
};
|
|
10850
|
+
}
|
|
10851
|
+
else if (hasOneOverlappingDate) {
|
|
10852
|
+
newOverlappingDates_1.push(dateRange);
|
|
10840
10853
|
return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
|
|
10841
10854
|
}
|
|
10842
10855
|
return dateRange;
|
|
10843
10856
|
});
|
|
10857
|
+
if (newOverlappingDates_1.length) {
|
|
10858
|
+
setOverlappingDate(function (prev) {
|
|
10859
|
+
if (prev === void 0) { prev = []; }
|
|
10860
|
+
return __spreadArray$1(__spreadArray$1([], __read(prev), false), __read(newOverlappingDates_1), false);
|
|
10861
|
+
});
|
|
10862
|
+
}
|
|
10844
10863
|
disableCalendarDates.disabledDates = updatedDisabledDates;
|
|
10845
10864
|
}
|
|
10846
10865
|
}, [disableCalendarDates]);
|
|
@@ -10864,14 +10883,15 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10864
10883
|
var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
|
|
10865
10884
|
var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
|
|
10866
10885
|
var calendarOverlappingDate = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)');
|
|
10867
|
-
var
|
|
10886
|
+
var tooltipClonesCheckIn = [];
|
|
10868
10887
|
var tooltipClonesCheckOut = [];
|
|
10888
|
+
var tooltipClonesSpinner = [];
|
|
10869
10889
|
var tooltipClonesOverlappingDates = [];
|
|
10870
10890
|
if (calendarTooltip && calendarButtons.length > 0) {
|
|
10871
10891
|
calendarButtons.forEach(function (element) {
|
|
10872
10892
|
var tooltipClone = calendarTooltip.cloneNode(true);
|
|
10873
10893
|
element.appendChild(tooltipClone);
|
|
10874
|
-
|
|
10894
|
+
tooltipClonesCheckIn.push(tooltipClone);
|
|
10875
10895
|
});
|
|
10876
10896
|
}
|
|
10877
10897
|
if (calendarTooltipCheckOut && calendarButtonsCheckOut.length > 0) {
|
|
@@ -10882,7 +10902,9 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10882
10902
|
});
|
|
10883
10903
|
}
|
|
10884
10904
|
if (loadingSpinner && calendarMonthContainer) {
|
|
10885
|
-
|
|
10905
|
+
var tooltipClone = loadingSpinner.cloneNode(true);
|
|
10906
|
+
calendarMonthContainer.appendChild(tooltipClone);
|
|
10907
|
+
tooltipClonesSpinner.push(tooltipClone);
|
|
10886
10908
|
}
|
|
10887
10909
|
if (calendarTooltipOverlappingDate &&
|
|
10888
10910
|
calendarOverlappingDate.length > 0) {
|
|
@@ -10893,8 +10915,9 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10893
10915
|
});
|
|
10894
10916
|
}
|
|
10895
10917
|
return function () {
|
|
10896
|
-
|
|
10918
|
+
tooltipClonesCheckIn.forEach(function (clone) { return clone.remove(); });
|
|
10897
10919
|
tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
|
|
10920
|
+
tooltipClonesSpinner.forEach(function (clone) { return clone.remove(); });
|
|
10898
10921
|
tooltipClonesOverlappingDates.forEach(function (clone) { return clone.remove(); });
|
|
10899
10922
|
};
|
|
10900
10923
|
}, [
|
|
@@ -10902,6 +10925,7 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10902
10925
|
updateCalendarMonthNavigation,
|
|
10903
10926
|
overlappingDate,
|
|
10904
10927
|
initialCalendarRange,
|
|
10928
|
+
updateCalendarDefaultMoth,
|
|
10905
10929
|
]);
|
|
10906
10930
|
return (React__default__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
|
|
10907
10931
|
React__default__default.createElement("div", { className: "will-calendar-filter-container" },
|
|
@@ -10960,7 +10984,11 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10960
10984
|
noActiveSelectionEnd: !calendarRange
|
|
10961
10985
|
? (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.to) || []
|
|
10962
10986
|
: [],
|
|
10963
|
-
overlappingDate: (!(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) &&
|
|
10987
|
+
overlappingDate: (!(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) &&
|
|
10988
|
+
(overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.map(function (item) { return ({
|
|
10989
|
+
from: item.from,
|
|
10990
|
+
}); }))) ||
|
|
10991
|
+
[],
|
|
10964
10992
|
} }),
|
|
10965
10993
|
React__default__default.createElement("div", { className: 'will-calendar-tooltip' },
|
|
10966
10994
|
React__default__default.createElement("div", null, t('noCheckIn'))),
|
|
@@ -10982,9 +11010,13 @@ var handleSelectedCheckIn = function (_a) {
|
|
|
10982
11010
|
var calendarFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
10983
11011
|
? format(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from, dateFormat)
|
|
10984
11012
|
: null;
|
|
10985
|
-
|
|
10986
|
-
|
|
11013
|
+
// const overlappingDateFrom = overlappingDate?.from
|
|
11014
|
+
// ? format(overlappingDate.from, dateFormat)
|
|
11015
|
+
// : null
|
|
11016
|
+
var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
|
|
11017
|
+
? overlappingDate.find(function (date) { return format(date.from || 1, dateFormat) === rangeFrom; })
|
|
10987
11018
|
: null;
|
|
11019
|
+
console.log(overlappingDateFrom);
|
|
10988
11020
|
var checkOutRange = ((_b = disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
10989
11021
|
? disableCalendarDates.availableDates.find(function (checkInDate) {
|
|
10990
11022
|
return format(checkInDate.checkIn || 1, dateFormat) ===
|
|
@@ -11006,7 +11038,8 @@ var handleSelectedCheckIn = function (_a) {
|
|
|
11006
11038
|
}
|
|
11007
11039
|
if ((rangeTo && rangeFrom && rangeFrom === rangeTo) ||
|
|
11008
11040
|
(!rangeTo && !rangeFrom) ||
|
|
11009
|
-
rangeFrom === overlappingDateFrom
|
|
11041
|
+
// rangeFrom === overlappingDateFrom
|
|
11042
|
+
overlappingDateFrom) {
|
|
11010
11043
|
setCalendarRange(undefined);
|
|
11011
11044
|
setDisabledDates && setDisabledDates([]);
|
|
11012
11045
|
}
|