@navikt/ds-react 2.8.13 → 2.8.15
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/cjs/date/datepicker/caption/DropdownCaption.js +6 -2
- package/cjs/date/hooks/useDatepicker.js +14 -6
- package/cjs/date/hooks/useMonthPicker.js +27 -17
- package/cjs/date/hooks/useRangeDatepicker.js +3 -1
- package/cjs/date/monthpicker/MonthCaption.js +18 -15
- package/cjs/date/utils/check-dates.js +1 -5
- package/cjs/date/utils/get-dates.js +9 -1
- package/cjs/date/utils/index.js +1 -2
- package/esm/date/datepicker/caption/DropdownCaption.js +6 -2
- package/esm/date/datepicker/caption/DropdownCaption.js.map +1 -1
- package/esm/date/hooks/useDatepicker.js +15 -7
- package/esm/date/hooks/useDatepicker.js.map +1 -1
- package/esm/date/hooks/useEscape.d.ts +1 -2
- package/esm/date/hooks/useEscape.js.map +1 -1
- package/esm/date/hooks/useMonthPicker.js +28 -18
- package/esm/date/hooks/useMonthPicker.js.map +1 -1
- package/esm/date/hooks/useOutsideClickHandler.d.ts +1 -2
- package/esm/date/hooks/useOutsideClickHandler.js.map +1 -1
- package/esm/date/hooks/useRangeDatepicker.js +3 -1
- package/esm/date/hooks/useRangeDatepicker.js.map +1 -1
- package/esm/date/monthpicker/MonthCaption.js +19 -16
- package/esm/date/monthpicker/MonthCaption.js.map +1 -1
- package/esm/date/utils/check-dates.d.ts +0 -1
- package/esm/date/utils/check-dates.js +0 -3
- package/esm/date/utils/check-dates.js.map +1 -1
- package/esm/date/utils/get-dates.d.ts +1 -1
- package/esm/date/utils/get-dates.js +9 -1
- package/esm/date/utils/get-dates.js.map +1 -1
- package/esm/date/utils/index.d.ts +1 -1
- package/esm/date/utils/index.js +1 -1
- package/esm/date/utils/index.js.map +1 -1
- package/package.json +5 -4
- package/src/date/datepicker/caption/DropdownCaption.tsx +9 -3
- package/src/date/datepicker/datepicker.stories.tsx +2 -3
- package/src/date/hooks/useDatepicker.tsx +22 -7
- package/src/date/hooks/useEscape.tsx +2 -2
- package/src/date/hooks/useMonthPicker.tsx +36 -21
- package/src/date/hooks/useOutsideClickHandler.tsx +2 -2
- package/src/date/hooks/useRangeDatepicker.tsx +7 -1
- package/src/date/monthpicker/MonthCaption.tsx +21 -17
- package/src/date/monthpicker/monthpicker.stories.tsx +3 -1
- package/src/date/utils/__tests__/check-dates.test.ts +1 -27
- package/src/date/utils/__tests__/get-dates.test.ts +44 -2
- package/src/date/utils/check-dates.ts +0 -4
- package/src/date/utils/get-dates.ts +17 -1
- package/src/date/utils/index.ts +1 -1
|
@@ -13,6 +13,7 @@ const react_day_picker_1 = require("react-day-picker");
|
|
|
13
13
|
const __1 = require("../../..");
|
|
14
14
|
const get_dates_1 = require("../../utils/get-dates");
|
|
15
15
|
const labels_1 = require("../../utils/labels");
|
|
16
|
+
const date_fns_1 = require("date-fns");
|
|
16
17
|
const DropdownCaption = ({ displayMonth, id }) => {
|
|
17
18
|
const { goToMonth, nextMonth, previousMonth } = (0, react_day_picker_1.useNavigation)();
|
|
18
19
|
const { fromDate, toDate, formatters: { formatYearCaption, formatMonthCaption, formatCaption }, labels: { labelPrevious, labelNext }, locale, } = (0, react_day_picker_1.useDayPicker)();
|
|
@@ -20,9 +21,12 @@ const DropdownCaption = ({ displayMonth, id }) => {
|
|
|
20
21
|
console.warn("Using dropdownCaption required fromDate and toDate");
|
|
21
22
|
return null;
|
|
22
23
|
}
|
|
23
|
-
const handleYearChange = (e) =>
|
|
24
|
+
const handleYearChange = (e) => {
|
|
25
|
+
const newMonth = (0, setYear_1.default)((0, startOfMonth_1.default)(displayMonth), Number(e.target.value));
|
|
26
|
+
goToMonth((0, startOfMonth_1.default)((0, date_fns_1.min)([(0, date_fns_1.max)([newMonth, fromDate]), toDate])));
|
|
27
|
+
};
|
|
24
28
|
const handleMonthChange = (e) => goToMonth((0, setMonth_1.default)((0, startOfMonth_1.default)(displayMonth), Number(e.target.value)));
|
|
25
|
-
const years = (0, get_dates_1.getYears)(fromDate, toDate);
|
|
29
|
+
const years = (0, get_dates_1.getYears)(fromDate, toDate, displayMonth.getFullYear());
|
|
26
30
|
const months = (0, get_dates_1.getMonths)(fromDate, toDate, displayMonth);
|
|
27
31
|
const previousLabel = labelPrevious(previousMonth, { locale });
|
|
28
32
|
const nextLabel = labelNext(nextMonth, { locale });
|
|
@@ -27,12 +27,18 @@ const useDatepicker = (opt = {}) => {
|
|
|
27
27
|
? (0, utils_1.formatDateForInput)(defaultSelected, locale, "date", inputFormat)
|
|
28
28
|
: "";
|
|
29
29
|
const [inputValue, setInputValue] = (0, react_1.useState)(defaultInputValue);
|
|
30
|
-
(0,
|
|
30
|
+
const handleOpen = (0, react_1.useCallback)((open) => {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
setOpen(open);
|
|
33
|
+
!open &&
|
|
34
|
+
setMonth((_b = (_a = selectedDay !== null && selectedDay !== void 0 ? selectedDay : defaultSelected) !== null && _a !== void 0 ? _a : defaultMonth) !== null && _b !== void 0 ? _b : today);
|
|
35
|
+
}, [defaultMonth, defaultSelected, selectedDay, today]);
|
|
36
|
+
(0, useOutsideClickHandler_1.useOutsideClickHandler)(open, handleOpen, [
|
|
31
37
|
daypickerRef,
|
|
32
38
|
inputRef.current,
|
|
33
39
|
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
|
|
34
40
|
]);
|
|
35
|
-
(0, useEscape_1.useEscape)(open,
|
|
41
|
+
(0, useEscape_1.useEscape)(open, handleOpen, inputRef);
|
|
36
42
|
const updateDate = (date) => {
|
|
37
43
|
onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(date);
|
|
38
44
|
setSelectedDay(date);
|
|
@@ -52,11 +58,13 @@ const useDatepicker = (opt = {}) => {
|
|
|
52
58
|
setInputValue(date ? (0, utils_1.formatDateForInput)(date, locale, "date", inputFormat) : "");
|
|
53
59
|
};
|
|
54
60
|
const handleFocus = (e) => {
|
|
55
|
-
!open && openOnFocus &&
|
|
61
|
+
!open && openOnFocus && handleOpen(true);
|
|
56
62
|
let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
|
|
57
63
|
if ((0, utils_1.isValidDate)(day)) {
|
|
58
|
-
setMonth(day);
|
|
59
64
|
setInputValue((0, utils_1.formatDateForInput)(day, locale, "date", inputFormat));
|
|
65
|
+
const isBefore = fromDate && day && (0, differenceInCalendarDays_1.default)(fromDate, day) > 0;
|
|
66
|
+
const isAfter = toDate && day && (0, differenceInCalendarDays_1.default)(day, toDate) > 0;
|
|
67
|
+
!isBefore && !isAfter && setMonth(day);
|
|
60
68
|
}
|
|
61
69
|
};
|
|
62
70
|
const handleBlur = (e) => {
|
|
@@ -67,7 +75,7 @@ const useDatepicker = (opt = {}) => {
|
|
|
67
75
|
/* Only allow de-selecting if not required */
|
|
68
76
|
const handleDayClick = (day, { selected }) => {
|
|
69
77
|
if (day && !selected) {
|
|
70
|
-
|
|
78
|
+
handleOpen(false);
|
|
71
79
|
inputRef.current && inputRef.current.focus();
|
|
72
80
|
}
|
|
73
81
|
if (!required && selected) {
|
|
@@ -127,7 +135,7 @@ const useDatepicker = (opt = {}) => {
|
|
|
127
135
|
toDate,
|
|
128
136
|
today,
|
|
129
137
|
open,
|
|
130
|
-
onOpenToggle: () =>
|
|
138
|
+
onOpenToggle: () => handleOpen(!open),
|
|
131
139
|
disabled,
|
|
132
140
|
disableWeekends,
|
|
133
141
|
ref: setDaypickerRef,
|
|
@@ -6,11 +6,21 @@ const utils_1 = require("../utils");
|
|
|
6
6
|
const useEscape_1 = require("./useEscape");
|
|
7
7
|
const useOutsideClickHandler_1 = require("./useOutsideClickHandler");
|
|
8
8
|
const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidMonth: true }, val));
|
|
9
|
+
const getIsBefore = (opt) => opt.fromDate &&
|
|
10
|
+
opt.date &&
|
|
11
|
+
(opt.fromDate.getFullYear() > opt.date.getFullYear() ||
|
|
12
|
+
(opt.fromDate.getFullYear() === opt.date.getFullYear() &&
|
|
13
|
+
opt.fromDate.getMonth() > opt.date.getMonth()));
|
|
14
|
+
const getIsAfter = (opt) => opt.toDate &&
|
|
15
|
+
opt.date &&
|
|
16
|
+
(opt.toDate.getFullYear() < opt.date.getFullYear() ||
|
|
17
|
+
(opt.toDate.getFullYear() === opt.date.getFullYear() &&
|
|
18
|
+
opt.toDate.getMonth() < opt.date.getMonth()));
|
|
9
19
|
const useMonthpicker = (opt = {}) => {
|
|
10
20
|
var _a, _b;
|
|
11
21
|
const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true, openOnFocus = true, } = opt;
|
|
12
22
|
const [defaultSelected, setDefaultSelected] = (0, react_1.useState)(_defaultSelected);
|
|
13
|
-
const today = new Date();
|
|
23
|
+
const today = (0, react_1.useMemo)(() => new Date(), []);
|
|
14
24
|
const locale = (0, utils_1.getLocaleFromString)(_locale);
|
|
15
25
|
const inputRef = (0, react_1.useRef)(null);
|
|
16
26
|
const [monthpickerRef, setMonthpickerRef] = (0, react_1.useState)();
|
|
@@ -22,12 +32,18 @@ const useMonthpicker = (opt = {}) => {
|
|
|
22
32
|
? (0, utils_1.formatDateForInput)(defaultSelected, locale, "month", inputFormat)
|
|
23
33
|
: "";
|
|
24
34
|
const [inputValue, setInputValue] = (0, react_1.useState)(defaultInputValue);
|
|
25
|
-
(0,
|
|
35
|
+
const handleOpen = (0, react_1.useCallback)((open) => {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
setOpen(open);
|
|
38
|
+
!open &&
|
|
39
|
+
setYear((_b = (_a = selectedMonth !== null && selectedMonth !== void 0 ? selectedMonth : defaultSelected) !== null && _a !== void 0 ? _a : defaultYear) !== null && _b !== void 0 ? _b : today);
|
|
40
|
+
}, [defaultSelected, defaultYear, selectedMonth, today]);
|
|
41
|
+
(0, useOutsideClickHandler_1.useOutsideClickHandler)(open, handleOpen, [
|
|
26
42
|
monthpickerRef,
|
|
27
43
|
inputRef.current,
|
|
28
44
|
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
|
|
29
45
|
]);
|
|
30
|
-
(0, useEscape_1.useEscape)(open,
|
|
46
|
+
(0, useEscape_1.useEscape)(open, handleOpen, inputRef);
|
|
31
47
|
const updateMonth = (date) => {
|
|
32
48
|
onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(date);
|
|
33
49
|
setSelectedMonth(date);
|
|
@@ -48,10 +64,12 @@ const useMonthpicker = (opt = {}) => {
|
|
|
48
64
|
};
|
|
49
65
|
const handleFocus = (e) => {
|
|
50
66
|
var _a;
|
|
51
|
-
!open && openOnFocus &&
|
|
67
|
+
!open && openOnFocus && handleOpen(true);
|
|
52
68
|
let day = (0, utils_1.parseDate)(e.target.value, today, locale, "month", allowTwoDigitYear);
|
|
69
|
+
const isBefore = getIsBefore({ fromDate, date: day });
|
|
70
|
+
const isAfter = getIsAfter({ toDate, date: day });
|
|
53
71
|
if ((0, utils_1.isValidDate)(day)) {
|
|
54
|
-
setYear(day);
|
|
72
|
+
!isBefore && !isAfter && setYear(day);
|
|
55
73
|
setInputValue((0, utils_1.formatDateForInput)(day, locale, "month", inputFormat));
|
|
56
74
|
}
|
|
57
75
|
else {
|
|
@@ -66,7 +84,7 @@ const useMonthpicker = (opt = {}) => {
|
|
|
66
84
|
/* Only allow de-selecting if not required */
|
|
67
85
|
const handleMonthClick = (month) => {
|
|
68
86
|
if (month) {
|
|
69
|
-
|
|
87
|
+
handleOpen(false);
|
|
70
88
|
inputRef.current && inputRef.current.focus();
|
|
71
89
|
setYear(month);
|
|
72
90
|
}
|
|
@@ -87,16 +105,8 @@ const useMonthpicker = (opt = {}) => {
|
|
|
87
105
|
const handleChange = (e) => {
|
|
88
106
|
setInputValue(e.target.value);
|
|
89
107
|
const month = (0, utils_1.parseDate)(e.target.value, today, locale, "month", allowTwoDigitYear);
|
|
90
|
-
const isBefore = fromDate
|
|
91
|
-
|
|
92
|
-
(fromDate.getFullYear() > month.getFullYear() ||
|
|
93
|
-
(fromDate.getFullYear() === month.getFullYear() &&
|
|
94
|
-
fromDate.getMonth() > month.getMonth()));
|
|
95
|
-
const isAfter = toDate &&
|
|
96
|
-
month &&
|
|
97
|
-
(toDate.getFullYear() < month.getFullYear() ||
|
|
98
|
-
(toDate.getFullYear() === month.getFullYear() &&
|
|
99
|
-
toDate.getMonth() < month.getMonth()));
|
|
108
|
+
const isBefore = getIsBefore({ fromDate, date: month });
|
|
109
|
+
const isAfter = getIsAfter({ toDate, date: month });
|
|
100
110
|
if (!(0, utils_1.isValidDate)(month) || (disabled && (0, utils_1.isMatch)(month, disabled))) {
|
|
101
111
|
updateMonth(undefined);
|
|
102
112
|
updateValidation({
|
|
@@ -133,7 +143,7 @@ const useMonthpicker = (opt = {}) => {
|
|
|
133
143
|
fromDate,
|
|
134
144
|
toDate,
|
|
135
145
|
open,
|
|
136
|
-
onOpenToggle: () =>
|
|
146
|
+
onOpenToggle: () => handleOpen(!open),
|
|
137
147
|
disabled,
|
|
138
148
|
ref: setMonthpickerRef,
|
|
139
149
|
};
|
|
@@ -142,10 +142,12 @@ const useRangeDatepicker = (opt = {}) => {
|
|
|
142
142
|
!open && openOnFocus && setOpen(true);
|
|
143
143
|
let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
|
|
144
144
|
if ((0, utils_1.isValidDate)(day)) {
|
|
145
|
-
setMonth(day);
|
|
146
145
|
src === RANGE.FROM
|
|
147
146
|
? setFromInputValue((0, utils_1.formatDateForInput)(day, locale, "date", inputFormat))
|
|
148
147
|
: setToInputValue((0, utils_1.formatDateForInput)(day, locale, "date", inputFormat));
|
|
148
|
+
const isBefore = fromDate && day && (0, differenceInCalendarDays_1.default)(fromDate, day) > 0;
|
|
149
|
+
const isAfter = toDate && day && (0, differenceInCalendarDays_1.default)(day, toDate) > 0;
|
|
150
|
+
!isBefore && !isAfter && setMonth(day);
|
|
149
151
|
}
|
|
150
152
|
};
|
|
151
153
|
const handleBlur = (e, src) => {
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.MonthCaption = void 0;
|
|
7
7
|
const ds_icons_1 = require("@navikt/ds-icons");
|
|
8
|
-
const isSameYear_1 = __importDefault(require("date-fns/isSameYear"));
|
|
9
8
|
const setYear_1 = __importDefault(require("date-fns/setYear"));
|
|
10
9
|
const startOfMonth_1 = __importDefault(require("date-fns/startOfMonth"));
|
|
11
10
|
const startOfYear_1 = __importDefault(require("date-fns/startOfYear"));
|
|
@@ -14,6 +13,7 @@ const react_day_picker_1 = require("react-day-picker");
|
|
|
14
13
|
const __1 = require("../..");
|
|
15
14
|
const context_1 = require("../context");
|
|
16
15
|
const utils_1 = require("../utils");
|
|
16
|
+
const date_fns_1 = require("date-fns");
|
|
17
17
|
const MonthCaption = () => {
|
|
18
18
|
const { fromDate, toDate, formatters: { formatYearCaption }, locale, } = (0, react_day_picker_1.useDayPicker)();
|
|
19
19
|
const { hasDropdown, year, toYear } = (0, context_1.useSharedMonthContext)();
|
|
@@ -24,27 +24,30 @@ const MonthCaption = () => {
|
|
|
24
24
|
for (let year = fromYear; year <= toYear; year++) {
|
|
25
25
|
years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), year));
|
|
26
26
|
}
|
|
27
|
+
if (!years.map((x) => x.getFullYear()).includes(year.getFullYear())) {
|
|
28
|
+
years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), year.getFullYear()));
|
|
29
|
+
}
|
|
30
|
+
years.sort((a, b) => a.getFullYear() - b.getFullYear());
|
|
27
31
|
}
|
|
28
32
|
const handleYearChange = (e) => toYear((0, setYear_1.default)((0, startOfMonth_1.default)(new Date()), Number(e.target.value)));
|
|
29
33
|
const handleButtonClick = (val) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
newMonth = (0, setYear_1.default)(year, newYear);
|
|
38
|
-
toYear(newMonth);
|
|
39
|
-
}
|
|
34
|
+
const newYear = Number(year.getFullYear() + val);
|
|
35
|
+
toYear((0, setYear_1.default)(year, newYear));
|
|
36
|
+
};
|
|
37
|
+
const hasPrevYear = () => {
|
|
38
|
+
return fromDate
|
|
39
|
+
? (0, date_fns_1.isBefore)((year === null || year === void 0 ? void 0 : year.getFullYear()) - 1, fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear())
|
|
40
|
+
: true;
|
|
40
41
|
};
|
|
41
|
-
const
|
|
42
|
-
return
|
|
42
|
+
const hasNextYear = () => {
|
|
43
|
+
return toDate
|
|
44
|
+
? (0, date_fns_1.isAfter)((year === null || year === void 0 ? void 0 : year.getFullYear()) + 1, toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear())
|
|
45
|
+
: true;
|
|
43
46
|
};
|
|
44
47
|
return (react_1.default.createElement("div", { className: "navds-date__caption" },
|
|
45
|
-
react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled:
|
|
48
|
+
react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled: hasPrevYear(), onClick: () => handleButtonClick(-1), "aria-label": (0, utils_1.labelPrevYear)(locale === null || locale === void 0 ? void 0 : locale.code), icon: react_1.default.createElement(ds_icons_1.Left, { "aria-hidden": true }), variant: "tertiary", type: "button" }),
|
|
46
49
|
hasDropdown ? (react_1.default.createElement(__1.Select, { label: "velg \u00E5r", hideLabel: true, value: year === null || year === void 0 ? void 0 : year.getFullYear(), onChange: handleYearChange, className: "navds-date__caption__year" }, years.map((year) => (react_1.default.createElement("option", { key: year.getFullYear(), value: year.getFullYear() }, formatYearCaption(year, { locale })))))) : (react_1.default.createElement("span", { className: "navds-date__year-label", "aria-live": "polite" }, year.getFullYear())),
|
|
47
|
-
react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled:
|
|
50
|
+
react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled: hasNextYear(), onClick: () => handleButtonClick(1), "aria-label": (0, utils_1.labelNextYear)(locale === null || locale === void 0 ? void 0 : locale.code), icon: react_1.default.createElement(ds_icons_1.Right, { "aria-hidden": true }), variant: "tertiary", type: "button" })));
|
|
48
51
|
};
|
|
49
52
|
exports.MonthCaption = MonthCaption;
|
|
50
53
|
exports.default = exports.MonthCaption;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.isValidDate = exports.dateIsInCurrentMonth = void 0;
|
|
7
7
|
const setYear_1 = __importDefault(require("date-fns/setYear"));
|
|
8
8
|
const isThisMonth_1 = __importDefault(require("date-fns/isThisMonth"));
|
|
9
9
|
const dateIsInCurrentMonth = (date, dateToCompare) => {
|
|
@@ -15,7 +15,3 @@ function isValidDate(day) {
|
|
|
15
15
|
return day && !isNaN(day === null || day === void 0 ? void 0 : day.getTime()) && day.getFullYear() > 999;
|
|
16
16
|
}
|
|
17
17
|
exports.isValidDate = isValidDate;
|
|
18
|
-
const hasNextYear = (year, years, val) => {
|
|
19
|
-
return years.some((x) => year.getFullYear() + val === x.getFullYear());
|
|
20
|
-
};
|
|
21
|
-
exports.hasNextYear = hasNextYear;
|
|
@@ -35,16 +35,24 @@ const getMonths = (start, end, current) => {
|
|
|
35
35
|
dropdownMonths.push((0, setMonth_1.default)(date, month));
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
if (!dropdownMonths.map((d) => d.getMonth()).includes(current.getMonth())) {
|
|
39
|
+
dropdownMonths.push(current);
|
|
40
|
+
}
|
|
41
|
+
dropdownMonths.sort((a, b) => a.getMonth() - b.getMonth());
|
|
38
42
|
return dropdownMonths;
|
|
39
43
|
};
|
|
40
44
|
exports.getMonths = getMonths;
|
|
41
|
-
const getYears = (start, end) => {
|
|
45
|
+
const getYears = (start, end, currentYear) => {
|
|
42
46
|
const years = [];
|
|
43
47
|
const fromYear = start.getFullYear();
|
|
44
48
|
const toYear = end.getFullYear();
|
|
45
49
|
for (let year = fromYear; year <= toYear; year++) {
|
|
46
50
|
years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), year));
|
|
47
51
|
}
|
|
52
|
+
if (fromYear > currentYear || toYear < currentYear) {
|
|
53
|
+
years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), currentYear));
|
|
54
|
+
}
|
|
55
|
+
years.sort((a, b) => a.getFullYear() - b.getFullYear());
|
|
48
56
|
return years;
|
|
49
57
|
};
|
|
50
58
|
exports.getYears = getYears;
|
package/cjs/date/utils/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nextEnabled = exports.isDateInRange = exports.isMatch = exports.getInitialYear = exports.
|
|
3
|
+
exports.nextEnabled = exports.isDateInRange = exports.isMatch = exports.getInitialYear = exports.isValidDate = exports.dateIsInCurrentMonth = exports.disableDate = exports.getLocaleFromString = exports.parseDate = exports.INPUT_DATE_STRING_FORMAT_MONTH = exports.INPUT_DATE_STRING_FORMAT_DATE = exports.labelPrevYear = exports.labelNextYear = exports.labels = exports.labelYearDropdown = exports.labelMonthDropdown = exports.getYears = exports.getMonths = exports.formatDateForInput = void 0;
|
|
4
4
|
var format_date_1 = require("./format-date");
|
|
5
5
|
Object.defineProperty(exports, "formatDateForInput", { enumerable: true, get: function () { return format_date_1.formatDateForInput; } });
|
|
6
6
|
var get_dates_1 = require("./get-dates");
|
|
@@ -23,7 +23,6 @@ Object.defineProperty(exports, "disableDate", { enumerable: true, get: function
|
|
|
23
23
|
var check_dates_1 = require("./check-dates");
|
|
24
24
|
Object.defineProperty(exports, "dateIsInCurrentMonth", { enumerable: true, get: function () { return check_dates_1.dateIsInCurrentMonth; } });
|
|
25
25
|
Object.defineProperty(exports, "isValidDate", { enumerable: true, get: function () { return check_dates_1.isValidDate; } });
|
|
26
|
-
Object.defineProperty(exports, "hasNextYear", { enumerable: true, get: function () { return check_dates_1.hasNextYear; } });
|
|
27
26
|
var get_initial_year_1 = require("./get-initial-year");
|
|
28
27
|
Object.defineProperty(exports, "getInitialYear", { enumerable: true, get: function () { return get_initial_year_1.getInitialYear; } });
|
|
29
28
|
var is_match_1 = require("./is-match");
|
|
@@ -7,6 +7,7 @@ import { useDayPicker, useNavigation } from "react-day-picker";
|
|
|
7
7
|
import { Button, Select } from "../../..";
|
|
8
8
|
import { getMonths, getYears } from "../../utils/get-dates";
|
|
9
9
|
import { labelMonthDropdown, labelYearDropdown } from "../../utils/labels";
|
|
10
|
+
import { max, min } from "date-fns";
|
|
10
11
|
export const DropdownCaption = ({ displayMonth, id }) => {
|
|
11
12
|
const { goToMonth, nextMonth, previousMonth } = useNavigation();
|
|
12
13
|
const { fromDate, toDate, formatters: { formatYearCaption, formatMonthCaption, formatCaption }, labels: { labelPrevious, labelNext }, locale, } = useDayPicker();
|
|
@@ -14,9 +15,12 @@ export const DropdownCaption = ({ displayMonth, id }) => {
|
|
|
14
15
|
console.warn("Using dropdownCaption required fromDate and toDate");
|
|
15
16
|
return null;
|
|
16
17
|
}
|
|
17
|
-
const handleYearChange = (e) =>
|
|
18
|
+
const handleYearChange = (e) => {
|
|
19
|
+
const newMonth = setYear(startOfMonth(displayMonth), Number(e.target.value));
|
|
20
|
+
goToMonth(startOfMonth(min([max([newMonth, fromDate]), toDate])));
|
|
21
|
+
};
|
|
18
22
|
const handleMonthChange = (e) => goToMonth(setMonth(startOfMonth(displayMonth), Number(e.target.value)));
|
|
19
|
-
const years = getYears(fromDate, toDate);
|
|
23
|
+
const years = getYears(fromDate, toDate, displayMonth.getFullYear());
|
|
20
24
|
const months = getMonths(fromDate, toDate, displayMonth);
|
|
21
25
|
const previousLabel = labelPrevious(previousMonth, { locale });
|
|
22
26
|
const nextLabel = labelNext(nextMonth, { locale });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownCaption.js","sourceRoot":"","sources":["../../../../src/date/datepicker/caption/DropdownCaption.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAgB,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DropdownCaption.js","sourceRoot":"","sources":["../../../../src/date/datepicker/caption/DropdownCaption.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import differenceInCalendarDays from "date-fns/differenceInCalendarDays";
|
|
2
2
|
import isWeekend from "date-fns/isWeekend";
|
|
3
|
-
import { useRef, useState } from "react";
|
|
3
|
+
import { useCallback, useRef, useState } from "react";
|
|
4
4
|
import { isMatch } from "react-day-picker";
|
|
5
5
|
import { formatDateForInput, getLocaleFromString, isValidDate, parseDate, } from "../utils";
|
|
6
6
|
import { useEscape } from "./useEscape";
|
|
@@ -21,12 +21,18 @@ export const useDatepicker = (opt = {}) => {
|
|
|
21
21
|
? formatDateForInput(defaultSelected, locale, "date", inputFormat)
|
|
22
22
|
: "";
|
|
23
23
|
const [inputValue, setInputValue] = useState(defaultInputValue);
|
|
24
|
-
|
|
24
|
+
const handleOpen = useCallback((open) => {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
setOpen(open);
|
|
27
|
+
!open &&
|
|
28
|
+
setMonth((_b = (_a = selectedDay !== null && selectedDay !== void 0 ? selectedDay : defaultSelected) !== null && _a !== void 0 ? _a : defaultMonth) !== null && _b !== void 0 ? _b : today);
|
|
29
|
+
}, [defaultMonth, defaultSelected, selectedDay, today]);
|
|
30
|
+
useOutsideClickHandler(open, handleOpen, [
|
|
25
31
|
daypickerRef,
|
|
26
32
|
inputRef.current,
|
|
27
33
|
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
|
|
28
34
|
]);
|
|
29
|
-
useEscape(open,
|
|
35
|
+
useEscape(open, handleOpen, inputRef);
|
|
30
36
|
const updateDate = (date) => {
|
|
31
37
|
onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(date);
|
|
32
38
|
setSelectedDay(date);
|
|
@@ -46,11 +52,13 @@ export const useDatepicker = (opt = {}) => {
|
|
|
46
52
|
setInputValue(date ? formatDateForInput(date, locale, "date", inputFormat) : "");
|
|
47
53
|
};
|
|
48
54
|
const handleFocus = (e) => {
|
|
49
|
-
!open && openOnFocus &&
|
|
55
|
+
!open && openOnFocus && handleOpen(true);
|
|
50
56
|
let day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
|
|
51
57
|
if (isValidDate(day)) {
|
|
52
|
-
setMonth(day);
|
|
53
58
|
setInputValue(formatDateForInput(day, locale, "date", inputFormat));
|
|
59
|
+
const isBefore = fromDate && day && differenceInCalendarDays(fromDate, day) > 0;
|
|
60
|
+
const isAfter = toDate && day && differenceInCalendarDays(day, toDate) > 0;
|
|
61
|
+
!isBefore && !isAfter && setMonth(day);
|
|
54
62
|
}
|
|
55
63
|
};
|
|
56
64
|
const handleBlur = (e) => {
|
|
@@ -61,7 +69,7 @@ export const useDatepicker = (opt = {}) => {
|
|
|
61
69
|
/* Only allow de-selecting if not required */
|
|
62
70
|
const handleDayClick = (day, { selected }) => {
|
|
63
71
|
if (day && !selected) {
|
|
64
|
-
|
|
72
|
+
handleOpen(false);
|
|
65
73
|
inputRef.current && inputRef.current.focus();
|
|
66
74
|
}
|
|
67
75
|
if (!required && selected) {
|
|
@@ -121,7 +129,7 @@ export const useDatepicker = (opt = {}) => {
|
|
|
121
129
|
toDate,
|
|
122
130
|
today,
|
|
123
131
|
open,
|
|
124
|
-
onOpenToggle: () =>
|
|
132
|
+
onOpenToggle: () => handleOpen(!open),
|
|
125
133
|
disabled,
|
|
126
134
|
disableWeekends,
|
|
127
135
|
ref: setDaypickerRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,mCAAmC,CAAC;AACzE,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,mCAAmC,CAAC;AACzE,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAc,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAwB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,SAAS,GACV,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA2FlE,MAAM,oBAAoB,GAAG,CAAC,GAAG,GAAG,EAAE,EAAmB,EAAE,CAAC,iBAC1D,UAAU,EAAE,KAAK,EACjB,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,KAAK,EACd,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE,KAAK,EACd,WAAW,EAAE,IAAI,IACd,GAAG,EACN,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAA4B,EAAE,EACV,EAAE;;IACtB,MAAM,EACJ,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,QAAQ,EACR,eAAe,EAAE,gBAAgB,EACjC,KAAK,GAAG,IAAI,IAAI,EAAE,EAClB,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,iBAAiB,GAAG,IAAI,EACxB,WAAW,GAAG,IAAI,GACnB,GAAG,GAAG,CAAC;IAER,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAkB,CAAC;IAEnE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAEzE,oBAAoB;IACpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAA,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,YAAY,mCAAI,KAAK,CAAC,CAAC;IAC7E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,iBAAiB,GAAG,eAAe;QACvC,CAAC,CAAC,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,IAAa,EAAE,EAAE;;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,CAAC,IAAI;YACH,QAAQ,CAAC,MAAA,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,eAAe,mCAAI,YAAY,mCAAI,KAAK,CAAC,CAAC;IACtE,CAAC,EACD,CAAC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,CACpD,CAAC;IAEF,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE;QACvC,YAAY;QACZ,QAAQ,CAAC,OAAO;QAChB,MAAA,QAAQ,CAAC,OAAO,0CAAE,WAAW;KAC9B,CAAC,CAAC;IAEH,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,CAAC,IAAW,EAAE,EAAE;QACjC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,IAAI,CAAC,CAAC;QACrB,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,MAAgC,EAAE,EAAE,EAAE,CAC9D,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,GAAG,EAAE;;QACjB,UAAU,CAAC,eAAe,CAAC,CAAC;QAC5B,QAAQ,CAAC,MAAA,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,YAAY,mCAAI,KAAK,CAAC,CAAC;QACnD,aAAa,CAAC,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI,EAAE,CAAC,CAAC;QACvC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,IAAsB,EAAE,EAAE;;QAC7C,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,MAAA,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY,mCAAI,KAAK,CAAC,CAAC;QACxC,aAAa,CACX,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAClE,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,WAAW,GAA8C,CAAC,CAAC,EAAE,EAAE;QACnE,CAAC,IAAI,IAAI,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,GAAG,GAAG,SAAS,CACjB,CAAC,CAAC,MAAM,CAAC,KAAK,EACd,KAAK,EACL,MAAM,EACN,MAAM,EACN,iBAAiB,CAClB,CAAC;QACF,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;YACpB,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;YAEpE,MAAM,QAAQ,GACZ,QAAQ,IAAI,GAAG,IAAI,wBAAwB,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,OAAO,GACX,MAAM,IAAI,GAAG,IAAI,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAE7D,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;SACxC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAA8C,CAAC,CAAC,EAAE,EAAE;QAClE,IAAI,GAAG,GAAG,SAAS,CACjB,CAAC,CAAC,MAAM,CAAC,KAAK,EACd,KAAK,EACL,MAAM,EACN,MAAM,EACN,iBAAiB,CAClB,CAAC;QACF,WAAW,CAAC,GAAG,CAAC;YACd,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC;IAEF,6CAA6C;IAC7C,MAAM,cAAc,GAAyB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACjE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;YACpB,UAAU,CAAC,KAAK,CAAC,CAAC;YAClB,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;SAC9C;QAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;YACzB,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,gBAAgB,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,OAAO;SACR;QACD,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,gBAAgB,EAAE,CAAC;QACnB,QAAQ,CAAC,GAAG,CAAC,CAAC;QACd,aAAa,CACX,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAChE,CAAC;IACJ,CAAC,CAAC;IAEF,0EAA0E;IAC1E,8EAA8E;IAC9E,wBAAwB;IACxB,MAAM,YAAY,GAA+C,CAAC,CAAC,EAAE,EAAE;QACrE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,SAAS,CACnB,CAAC,CAAC,MAAM,CAAC,KAAK,EACd,KAAK,EACL,MAAM,EACN,MAAM,EACN,iBAAiB,CAClB,CAAC;QAEF,MAAM,QAAQ,GACZ,QAAQ,IAAI,GAAG,IAAI,wBAAwB,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,MAAM,IAAI,GAAG,IAAI,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAE3E,IACE,CAAC,WAAW,CAAC,GAAG,CAAC;YACjB,CAAC,eAAe,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EACpC;YACA,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,gBAAgB,CAAC;gBACf,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC;gBAC3B,SAAS,EAAE,eAAe,IAAI,SAAS,CAAC,GAAG,CAAC;gBAC5C,UAAU,EAAE,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAC9C,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;gBACxB,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAK;gBAC3B,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK;aAC1B,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAI,QAAQ,IAAI,OAAO,EAAE;YACvB,UAAU,CAAC,SAAS,CAAC,CAAC;YACtB,gBAAgB,CAAC;gBACf,WAAW,EAAE,KAAK;gBAClB,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,KAAK;gBAC3B,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK;aAC1B,CAAC,CAAC;YACH,OAAO;SACR;QACD,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,gBAAgB,EAAE,CAAC;QACnB,QAAQ,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG;QACtB,KAAK;QACL,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzC,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,IAAI,CAAC,cAAc,CAAC;QACjD,MAAM,EAAE,OAAO;QACf,QAAQ;QACR,MAAM;QACN,KAAK;QACL,IAAI;QACJ,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QACrC,QAAQ;QACR,eAAe;QACf,GAAG,EAAE,eAAe;KACrB,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,QAAQ;KACd,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAC1E,CAAC,CAAC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const useEscape: (open: boolean, setOpen: React.Dispatch<React.SetStateAction<boolean>>, focusRef: any) => void;
|
|
1
|
+
export declare const useEscape: (open: boolean, setOpen: (openState: boolean) => void, focusRef: any) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEscape.js","sourceRoot":"","sources":["../../../src/date/hooks/useEscape.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"useEscape.js","sourceRoot":"","sources":["../../../src/date/hooks/useEscape.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAa,EACb,OAAqC,EACrC,QAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAExB,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,WAAW,EAAE,EAClD,CAAC,WAAW,EAAE,IAAI,CAAC,CACpB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAElD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
import { useRef, useState } from "react";
|
|
1
|
+
import { useCallback, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { formatDateForInput, getLocaleFromString, isMatch, isValidDate, parseDate, } from "../utils";
|
|
3
3
|
import { useEscape } from "./useEscape";
|
|
4
4
|
import { useOutsideClickHandler } from "./useOutsideClickHandler";
|
|
5
5
|
const getValidationMessage = (val = {}) => (Object.assign({ isDisabled: false, isEmpty: false, isInvalid: false, isBefore: false, isAfter: false, isValidMonth: true }, val));
|
|
6
|
+
const getIsBefore = (opt) => opt.fromDate &&
|
|
7
|
+
opt.date &&
|
|
8
|
+
(opt.fromDate.getFullYear() > opt.date.getFullYear() ||
|
|
9
|
+
(opt.fromDate.getFullYear() === opt.date.getFullYear() &&
|
|
10
|
+
opt.fromDate.getMonth() > opt.date.getMonth()));
|
|
11
|
+
const getIsAfter = (opt) => opt.toDate &&
|
|
12
|
+
opt.date &&
|
|
13
|
+
(opt.toDate.getFullYear() < opt.date.getFullYear() ||
|
|
14
|
+
(opt.toDate.getFullYear() === opt.date.getFullYear() &&
|
|
15
|
+
opt.toDate.getMonth() < opt.date.getMonth()));
|
|
6
16
|
export const useMonthpicker = (opt = {}) => {
|
|
7
17
|
var _a, _b;
|
|
8
18
|
const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true, openOnFocus = true, } = opt;
|
|
9
19
|
const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
|
|
10
|
-
const today = new Date();
|
|
20
|
+
const today = useMemo(() => new Date(), []);
|
|
11
21
|
const locale = getLocaleFromString(_locale);
|
|
12
22
|
const inputRef = useRef(null);
|
|
13
23
|
const [monthpickerRef, setMonthpickerRef] = useState();
|
|
@@ -19,12 +29,18 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
19
29
|
? formatDateForInput(defaultSelected, locale, "month", inputFormat)
|
|
20
30
|
: "";
|
|
21
31
|
const [inputValue, setInputValue] = useState(defaultInputValue);
|
|
22
|
-
|
|
32
|
+
const handleOpen = useCallback((open) => {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
setOpen(open);
|
|
35
|
+
!open &&
|
|
36
|
+
setYear((_b = (_a = selectedMonth !== null && selectedMonth !== void 0 ? selectedMonth : defaultSelected) !== null && _a !== void 0 ? _a : defaultYear) !== null && _b !== void 0 ? _b : today);
|
|
37
|
+
}, [defaultSelected, defaultYear, selectedMonth, today]);
|
|
38
|
+
useOutsideClickHandler(open, handleOpen, [
|
|
23
39
|
monthpickerRef,
|
|
24
40
|
inputRef.current,
|
|
25
41
|
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
|
|
26
42
|
]);
|
|
27
|
-
useEscape(open,
|
|
43
|
+
useEscape(open, handleOpen, inputRef);
|
|
28
44
|
const updateMonth = (date) => {
|
|
29
45
|
onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(date);
|
|
30
46
|
setSelectedMonth(date);
|
|
@@ -45,10 +61,12 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
45
61
|
};
|
|
46
62
|
const handleFocus = (e) => {
|
|
47
63
|
var _a;
|
|
48
|
-
!open && openOnFocus &&
|
|
64
|
+
!open && openOnFocus && handleOpen(true);
|
|
49
65
|
let day = parseDate(e.target.value, today, locale, "month", allowTwoDigitYear);
|
|
66
|
+
const isBefore = getIsBefore({ fromDate, date: day });
|
|
67
|
+
const isAfter = getIsAfter({ toDate, date: day });
|
|
50
68
|
if (isValidDate(day)) {
|
|
51
|
-
setYear(day);
|
|
69
|
+
!isBefore && !isAfter && setYear(day);
|
|
52
70
|
setInputValue(formatDateForInput(day, locale, "month", inputFormat));
|
|
53
71
|
}
|
|
54
72
|
else {
|
|
@@ -63,7 +81,7 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
63
81
|
/* Only allow de-selecting if not required */
|
|
64
82
|
const handleMonthClick = (month) => {
|
|
65
83
|
if (month) {
|
|
66
|
-
|
|
84
|
+
handleOpen(false);
|
|
67
85
|
inputRef.current && inputRef.current.focus();
|
|
68
86
|
setYear(month);
|
|
69
87
|
}
|
|
@@ -84,16 +102,8 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
84
102
|
const handleChange = (e) => {
|
|
85
103
|
setInputValue(e.target.value);
|
|
86
104
|
const month = parseDate(e.target.value, today, locale, "month", allowTwoDigitYear);
|
|
87
|
-
const isBefore = fromDate
|
|
88
|
-
|
|
89
|
-
(fromDate.getFullYear() > month.getFullYear() ||
|
|
90
|
-
(fromDate.getFullYear() === month.getFullYear() &&
|
|
91
|
-
fromDate.getMonth() > month.getMonth()));
|
|
92
|
-
const isAfter = toDate &&
|
|
93
|
-
month &&
|
|
94
|
-
(toDate.getFullYear() < month.getFullYear() ||
|
|
95
|
-
(toDate.getFullYear() === month.getFullYear() &&
|
|
96
|
-
toDate.getMonth() < month.getMonth()));
|
|
105
|
+
const isBefore = getIsBefore({ fromDate, date: month });
|
|
106
|
+
const isAfter = getIsAfter({ toDate, date: month });
|
|
97
107
|
if (!isValidDate(month) || (disabled && isMatch(month, disabled))) {
|
|
98
108
|
updateMonth(undefined);
|
|
99
109
|
updateValidation({
|
|
@@ -130,7 +140,7 @@ export const useMonthpicker = (opt = {}) => {
|
|
|
130
140
|
fromDate,
|
|
131
141
|
toDate,
|
|
132
142
|
open,
|
|
133
|
-
onOpenToggle: () =>
|
|
143
|
+
onOpenToggle: () => handleOpen(!open),
|
|
134
144
|
disabled,
|
|
135
145
|
ref: setMonthpickerRef,
|
|
136
146
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const useOutsideClickHandler: (open: boolean, setOpen: React.Dispatch<React.SetStateAction<boolean>>, refs: Array<any>) => void;
|
|
1
|
+
export declare const useOutsideClickHandler: (open: boolean, setOpen: (openState: boolean) => void, refs: Array<any>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOutsideClickHandler.js","sourceRoot":"","sources":["../../../src/date/hooks/useOutsideClickHandler.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"useOutsideClickHandler.js","sourceRoot":"","sources":["../../../src/date/hooks/useOutsideClickHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAa,EACb,OAAqC,EACrC,IAAgB,EAChB,EAAE;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,CAAC,EAAE,EAAE;;QACJ,MAAM,QAAQ,GAAG,MAAA,MAAA,CAAC,CAAC,YAAY,iDAAI,0CAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,QAAQ,CAAA,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACR;QACD,IACE,CAAC,IAAI,CAAC,IAAI,CACR,CAAC,OAAO,EAAE,EAAE,CACV,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAC7D,EACD;YACA,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC,EACD,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CACtB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE;;YACV,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,uDAAG,SAAS,EAAE,aAAa,CAAC,CAAC;YACxD,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,uDAAG,aAAa,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC"}
|