@uxf/datepicker 1.1.5 → 1.2.0
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/README.md +4 -4
- package/contexts/time-picker-context.d.ts +14 -0
- package/contexts/time-picker-context.js +17 -0
- package/hooks/use-date-picker-navigation.js +12 -15
- package/hooks/use-date-picker.js +6 -30
- package/hooks/use-date-range-picker.js +17 -41
- package/hooks/use-day.js +7 -10
- package/hooks/use-decade.js +6 -9
- package/hooks/use-hour.d.ts +17 -0
- package/hooks/use-hour.js +40 -0
- package/hooks/use-hour.test.d.ts +1 -0
- package/hooks/use-hour.test.js +46 -0
- package/hooks/use-hours.d.ts +12 -0
- package/hooks/use-hours.js +19 -0
- package/hooks/use-hours.test.d.ts +1 -0
- package/hooks/use-hours.test.js +67 -0
- package/hooks/use-minute.d.ts +17 -0
- package/hooks/use-minute.js +40 -0
- package/hooks/use-minute.test.d.ts +1 -0
- package/hooks/use-minute.test.js +46 -0
- package/hooks/use-minutes.d.ts +12 -0
- package/hooks/use-minutes.js +19 -0
- package/hooks/use-minutes.test.d.ts +1 -0
- package/hooks/use-minutes.test.js +43 -0
- package/hooks/use-month.js +5 -8
- package/hooks/use-time-picker.d.ts +28 -0
- package/hooks/use-time-picker.js +101 -0
- package/hooks/use-time-picker.test.d.ts +1 -0
- package/hooks/use-time-picker.test.js +94 -0
- package/hooks/use-year.js +4 -7
- package/package.json +8 -4
- package/utils/can-select-range.js +8 -11
- package/utils/dayjs-en.d.ts +3 -0
- package/utils/dayjs-en.js +32 -0
- package/utils/get-current-year-month-and-date.js +3 -6
- package/utils/get-date-month-and-year.js +5 -8
- package/utils/get-days.js +9 -12
- package/utils/get-each.js +6 -9
- package/utils/get-initial-months.js +3 -6
- package/utils/get-months.js +5 -8
- package/utils/get-next-active-month.js +4 -7
- package/utils/get-weekday-labels.js +4 -7
- package/utils/get-weekday-labels.test.d.ts +1 -1
- package/utils/get-weekday-labels.test.js +5 -1
- package/utils/get-years.js +3 -6
- package/utils/is-date-blocked.js +5 -8
- package/utils/is-date-hovered.js +9 -33
- package/utils/is-date-selected.js +3 -27
- package/utils/is-end-date.js +3 -6
- package/utils/is-first-or-last-selected-date.js +4 -6
- package/utils/is-in-unavailable-dates.js +3 -6
- package/utils/is-start-date.js +3 -6
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var use_hour_1 = require("./use-hour");
|
|
6
|
+
test("useHour", function () {
|
|
7
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
8
|
+
return (0, use_hour_1.useHour)({
|
|
9
|
+
hour: 5,
|
|
10
|
+
focusedHour: null,
|
|
11
|
+
isHourFocused: function () { return false; },
|
|
12
|
+
isHourSelected: function () { return false; },
|
|
13
|
+
onHourFocus: function () { return undefined; },
|
|
14
|
+
onHourSelect: function () { return undefined; },
|
|
15
|
+
});
|
|
16
|
+
}).result;
|
|
17
|
+
expect(result.current.tabIndex).toBe(0);
|
|
18
|
+
expect(result.current.isSelected).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
test("actions", function () {
|
|
21
|
+
var selectedHour = null;
|
|
22
|
+
var focusedHour = null;
|
|
23
|
+
var ref = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useRef)(null); }).result;
|
|
24
|
+
var _a = (0, react_hooks_1.renderHook)(function () {
|
|
25
|
+
return (0, use_hour_1.useHour)({
|
|
26
|
+
hour: 30,
|
|
27
|
+
focusedHour: null,
|
|
28
|
+
isHourFocused: function (hour) { return focusedHour === hour; },
|
|
29
|
+
isHourSelected: function (hour) { return selectedHour === hour; },
|
|
30
|
+
onHourFocus: function (hour) { return (focusedHour = hour); },
|
|
31
|
+
onHourSelect: function (hour) { return (selectedHour = hour); },
|
|
32
|
+
hourRef: ref.current,
|
|
33
|
+
});
|
|
34
|
+
}), result = _a.result, rerender = _a.rerender;
|
|
35
|
+
expect(result.current.tabIndex).toBe(0);
|
|
36
|
+
// select
|
|
37
|
+
expect(result.current.isSelected).toBe(false);
|
|
38
|
+
(0, react_hooks_1.act)(function () {
|
|
39
|
+
if (result.current.onClick) {
|
|
40
|
+
result.current.onClick();
|
|
41
|
+
}
|
|
42
|
+
rerender();
|
|
43
|
+
});
|
|
44
|
+
expect(result.current.isSelected).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtaG91ci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNERBQStEO0FBQy9ELCtCQUErQjtBQUMvQix1Q0FBcUM7QUFFckMsSUFBSSxDQUFDLFNBQVMsRUFBRTtJQUNKLElBQUEsTUFBTSxHQUFLLElBQUEsd0JBQVUsRUFBQztRQUMxQixPQUFBLElBQUEsa0JBQU8sRUFBQztZQUNKLElBQUksRUFBRSxDQUFDO1lBQ1AsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSztZQUMxQixjQUFjLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO1lBQzNCLFdBQVcsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7WUFDNUIsWUFBWSxFQUFFLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUztTQUNoQyxDQUFDO0lBUEYsQ0FPRSxDQUNMLE9BVGEsQ0FTWjtJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ1osSUFBSSxZQUFZLEdBQWtCLElBQUksQ0FBQztJQUN2QyxJQUFJLFdBQVcsR0FBa0IsSUFBSSxDQUFDO0lBRTlCLElBQVEsR0FBRyxHQUFLLElBQUEsd0JBQVUsRUFBQyxjQUFNLE9BQUEsSUFBQSxjQUFNLEVBQWMsSUFBSSxDQUFDLEVBQXpCLENBQXlCLENBQUMsT0FBaEQsQ0FBaUQ7SUFFOUQsSUFBQSxLQUF1QixJQUFBLHdCQUFVLEVBQUM7UUFDcEMsT0FBQSxJQUFBLGtCQUFPLEVBQUM7WUFDSixJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLFdBQVcsS0FBSyxJQUFJLEVBQXBCLENBQW9CO1lBQzNDLGNBQWMsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLFlBQVksS0FBSyxJQUFJLEVBQXJCLENBQXFCO1lBQzdDLFdBQVcsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFwQixDQUFvQjtZQUN6QyxZQUFZLEVBQUUsVUFBQSxJQUFJLElBQUksT0FBQSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBckIsQ0FBcUI7WUFDM0MsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1NBQ3ZCLENBQUM7SUFSRixDQVFFLENBQ0wsRUFWTyxNQUFNLFlBQUEsRUFBRSxRQUFRLGNBVXZCLENBQUM7SUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEMsU0FBUztJQUNULE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFBLGlCQUFHLEVBQUM7UUFDQSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7UUFDRCxRQUFRLEVBQUUsQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const labelFormatFn: (hour: number) => string;
|
|
2
|
+
export declare type HourType = {
|
|
3
|
+
value: number;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
export interface UseHoursProps {
|
|
7
|
+
labelFormat?: (hour: number) => string;
|
|
8
|
+
}
|
|
9
|
+
export interface UseHoursReturnType {
|
|
10
|
+
hours: HourType[];
|
|
11
|
+
}
|
|
12
|
+
export declare function useHours({ labelFormat }: UseHoursProps): UseHoursReturnType;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useHours = exports.labelFormatFn = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var labelFormatFn = function (hour) { return hour.toString().padStart(2, "0"); };
|
|
6
|
+
exports.labelFormatFn = labelFormatFn;
|
|
7
|
+
function useHours(_a) {
|
|
8
|
+
var _b = _a.labelFormat, labelFormat = _b === void 0 ? exports.labelFormatFn : _b;
|
|
9
|
+
var hours = (0, react_1.useMemo)(function () {
|
|
10
|
+
return Array(24)
|
|
11
|
+
.fill(0)
|
|
12
|
+
.map(function (_, i) { return ({ value: i, label: labelFormat(i) }); });
|
|
13
|
+
}, [labelFormat]);
|
|
14
|
+
return {
|
|
15
|
+
hours: hours,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.useHours = useHours;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1ob3Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFFekIsSUFBTSxhQUFhLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBaEMsQ0FBZ0MsQ0FBQztBQUFuRSxRQUFBLGFBQWEsaUJBQXNEO0FBZWhGLFNBQWdCLFFBQVEsQ0FBQyxFQUE4QztRQUE1QyxtQkFBMkIsRUFBM0IsV0FBVyxtQkFBRyxxQkFBYSxLQUFBO0lBQ2xELElBQU0sS0FBSyxHQUFHLElBQUEsZUFBTyxFQUNqQjtRQUNJLE9BQUEsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNKLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDUCxHQUFHLENBQUMsVUFBQyxDQUFDLEVBQUUsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQXJDLENBQXFDLENBQUM7SUFGekQsQ0FFeUQsRUFDN0QsQ0FBQyxXQUFXLENBQUMsQ0FDaEIsQ0FBQztJQUVGLE9BQU87UUFDSCxLQUFLLE9BQUE7S0FDUixDQUFDO0FBQ04sQ0FBQztBQVpELDRCQVlDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var use_hours_1 = require("./use-hours");
|
|
5
|
+
test("useHours", function () {
|
|
6
|
+
var result = (0, react_hooks_1.renderHook)(function () { return (0, use_hours_1.useHours)({}); }).result;
|
|
7
|
+
expect(result.current.hours).toStrictEqual([
|
|
8
|
+
{ label: "00", value: 0 },
|
|
9
|
+
{ label: "01", value: 1 },
|
|
10
|
+
{ label: "02", value: 2 },
|
|
11
|
+
{ label: "03", value: 3 },
|
|
12
|
+
{ label: "04", value: 4 },
|
|
13
|
+
{ label: "05", value: 5 },
|
|
14
|
+
{ label: "06", value: 6 },
|
|
15
|
+
{ label: "07", value: 7 },
|
|
16
|
+
{ label: "08", value: 8 },
|
|
17
|
+
{ label: "09", value: 9 },
|
|
18
|
+
{ label: "10", value: 10 },
|
|
19
|
+
{ label: "11", value: 11 },
|
|
20
|
+
{ label: "12", value: 12 },
|
|
21
|
+
{ label: "13", value: 13 },
|
|
22
|
+
{ label: "14", value: 14 },
|
|
23
|
+
{ label: "15", value: 15 },
|
|
24
|
+
{ label: "16", value: 16 },
|
|
25
|
+
{ label: "17", value: 17 },
|
|
26
|
+
{ label: "18", value: 18 },
|
|
27
|
+
{ label: "19", value: 19 },
|
|
28
|
+
{ label: "20", value: 20 },
|
|
29
|
+
{ label: "21", value: 21 },
|
|
30
|
+
{ label: "22", value: 22 },
|
|
31
|
+
{ label: "23", value: 23 },
|
|
32
|
+
]);
|
|
33
|
+
});
|
|
34
|
+
test("useMinutes with custom format", function () {
|
|
35
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
36
|
+
return (0, use_hours_1.useHours)({
|
|
37
|
+
labelFormat: function (hour) { return "--" + hour + "--"; },
|
|
38
|
+
});
|
|
39
|
+
}).result;
|
|
40
|
+
expect(result.current.hours).toStrictEqual([
|
|
41
|
+
{ label: "--0--", value: 0 },
|
|
42
|
+
{ label: "--1--", value: 1 },
|
|
43
|
+
{ label: "--2--", value: 2 },
|
|
44
|
+
{ label: "--3--", value: 3 },
|
|
45
|
+
{ label: "--4--", value: 4 },
|
|
46
|
+
{ label: "--5--", value: 5 },
|
|
47
|
+
{ label: "--6--", value: 6 },
|
|
48
|
+
{ label: "--7--", value: 7 },
|
|
49
|
+
{ label: "--8--", value: 8 },
|
|
50
|
+
{ label: "--9--", value: 9 },
|
|
51
|
+
{ label: "--10--", value: 10 },
|
|
52
|
+
{ label: "--11--", value: 11 },
|
|
53
|
+
{ label: "--12--", value: 12 },
|
|
54
|
+
{ label: "--13--", value: 13 },
|
|
55
|
+
{ label: "--14--", value: 14 },
|
|
56
|
+
{ label: "--15--", value: 15 },
|
|
57
|
+
{ label: "--16--", value: 16 },
|
|
58
|
+
{ label: "--17--", value: 17 },
|
|
59
|
+
{ label: "--18--", value: 18 },
|
|
60
|
+
{ label: "--19--", value: 19 },
|
|
61
|
+
{ label: "--20--", value: 20 },
|
|
62
|
+
{ label: "--21--", value: 21 },
|
|
63
|
+
{ label: "--22--", value: 22 },
|
|
64
|
+
{ label: "--23--", value: 23 },
|
|
65
|
+
]);
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXJzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWhvdXJzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0REFBMEQ7QUFDMUQseUNBQXVDO0FBRXZDLElBQUksQ0FBQyxVQUFVLEVBQUU7SUFDTCxJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUMsY0FBTSxPQUFBLElBQUEsb0JBQVEsRUFBQyxFQUFFLENBQUMsRUFBWixDQUFZLENBQUMsT0FBbkMsQ0FBb0M7SUFFbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ3ZDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3pCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO0tBQzdCLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLCtCQUErQixFQUFFO0lBQzFCLElBQUEsTUFBTSxHQUFLLElBQUEsd0JBQVUsRUFBQztRQUMxQixPQUFBLElBQUEsb0JBQVEsRUFBQztZQUNMLFdBQVcsRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFsQixDQUFrQjtTQUMxQyxDQUFDO0lBRkYsQ0FFRSxDQUNMLE9BSmEsQ0FJWjtJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUN2QyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUM1QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUM5QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtLQUNqQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { KeyboardEvent, RefObject } from "react";
|
|
2
|
+
export interface UseMinuteProps {
|
|
3
|
+
minute: number;
|
|
4
|
+
minuteRef?: RefObject<HTMLElement>;
|
|
5
|
+
focusedMinute: number | null;
|
|
6
|
+
isMinuteFocused: (minute: number) => boolean;
|
|
7
|
+
isMinuteSelected: (minute: number) => boolean;
|
|
8
|
+
onMinuteFocus: (minute: number) => void;
|
|
9
|
+
onMinuteSelect: (minute: number) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface UseMinuteReturnType {
|
|
12
|
+
isSelected: boolean;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
onKeyDown: (e: KeyboardEvent<HTMLElement>) => void;
|
|
15
|
+
tabIndex: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function useMinute({ minute, minuteRef, focusedMinute, isMinuteFocused, isMinuteSelected, onMinuteFocus, onMinuteSelect, }: UseMinuteProps): UseMinuteReturnType;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMinute = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
function useMinute(_a) {
|
|
6
|
+
var minute = _a.minute, minuteRef = _a.minuteRef, focusedMinute = _a.focusedMinute, isMinuteFocused = _a.isMinuteFocused, isMinuteSelected = _a.isMinuteSelected, onMinuteFocus = _a.onMinuteFocus, onMinuteSelect = _a.onMinuteSelect;
|
|
7
|
+
var onClick = (0, react_1.useCallback)(function () { return onMinuteSelect(minute); }, [minute, onMinuteSelect]);
|
|
8
|
+
(0, react_1.useEffect)(function () {
|
|
9
|
+
if (minuteRef && minuteRef.current && isMinuteFocused(minute)) {
|
|
10
|
+
minuteRef.current.focus();
|
|
11
|
+
}
|
|
12
|
+
}, [minuteRef, minute, isMinuteFocused]);
|
|
13
|
+
var onKeyDown = (0, react_1.useCallback)(function (e) {
|
|
14
|
+
if (["ArrowRight", "ArrowLeft", "ArrowUp", "ArrowDown"].includes(e.key)) {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
switch (e.key) {
|
|
17
|
+
case "ArrowRight":
|
|
18
|
+
onMinuteFocus(minute + 5);
|
|
19
|
+
break;
|
|
20
|
+
case "ArrowLeft":
|
|
21
|
+
onMinuteFocus(minute - 5);
|
|
22
|
+
break;
|
|
23
|
+
case "ArrowUp":
|
|
24
|
+
onMinuteFocus(minute - 20);
|
|
25
|
+
break;
|
|
26
|
+
case "ArrowDown":
|
|
27
|
+
onMinuteFocus(minute + 20);
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}, [minute, onMinuteFocus]);
|
|
32
|
+
return {
|
|
33
|
+
isSelected: isMinuteSelected(minute),
|
|
34
|
+
onClick: onClick,
|
|
35
|
+
onKeyDown: onKeyDown,
|
|
36
|
+
tabIndex: focusedMinute === null || isMinuteFocused(minute) ? 0 : -1,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.useMinute = useMinute;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtbWludXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUF5RTtBQW1CekUsU0FBZ0IsU0FBUyxDQUFDLEVBUVQ7UUFQYixNQUFNLFlBQUEsRUFDTixTQUFTLGVBQUEsRUFDVCxhQUFhLG1CQUFBLEVBQ2IsZUFBZSxxQkFBQSxFQUNmLGdCQUFnQixzQkFBQSxFQUNoQixhQUFhLG1CQUFBLEVBQ2IsY0FBYyxvQkFBQTtJQUVkLElBQU0sT0FBTyxHQUFHLElBQUEsbUJBQVcsRUFBQyxjQUFNLE9BQUEsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUF0QixDQUFzQixFQUFFLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFFcEYsSUFBQSxpQkFBUyxFQUFDO1FBQ04sSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0QsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUV6QyxJQUFNLFNBQVMsR0FBRyxJQUFBLG1CQUFXLEVBQ3pCLFVBQUMsQ0FBNkI7UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxLQUFLLFlBQVk7b0JBQ2IsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDMUIsTUFBTTtnQkFDVixLQUFLLFdBQVc7b0JBQ1osYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDMUIsTUFBTTtnQkFDVixLQUFLLFNBQVM7b0JBQ1YsYUFBYSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDM0IsTUFBTTtnQkFDVixLQUFLLFdBQVc7b0JBQ1osYUFBYSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDM0IsTUFBTTthQUNiO1NBQ0o7SUFDTCxDQUFDLEVBQ0QsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQzFCLENBQUM7SUFFRixPQUFPO1FBQ0gsVUFBVSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUNwQyxPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLFdBQUE7UUFDVCxRQUFRLEVBQUUsYUFBYSxLQUFLLElBQUksSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZFLENBQUM7QUFDTixDQUFDO0FBOUNELDhCQThDQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var use_minute_1 = require("./use-minute");
|
|
6
|
+
test("useMinute", function () {
|
|
7
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
8
|
+
return (0, use_minute_1.useMinute)({
|
|
9
|
+
minute: 30,
|
|
10
|
+
focusedMinute: null,
|
|
11
|
+
isMinuteFocused: function () { return false; },
|
|
12
|
+
isMinuteSelected: function () { return false; },
|
|
13
|
+
onMinuteFocus: function () { return undefined; },
|
|
14
|
+
onMinuteSelect: function () { return undefined; },
|
|
15
|
+
});
|
|
16
|
+
}).result;
|
|
17
|
+
expect(result.current.tabIndex).toBe(0);
|
|
18
|
+
expect(result.current.isSelected).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
test("actions", function () {
|
|
21
|
+
var selectedMinute = null;
|
|
22
|
+
var focusedMinute = null;
|
|
23
|
+
var ref = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useRef)(null); }).result;
|
|
24
|
+
var _a = (0, react_hooks_1.renderHook)(function () {
|
|
25
|
+
return (0, use_minute_1.useMinute)({
|
|
26
|
+
minute: 30,
|
|
27
|
+
focusedMinute: null,
|
|
28
|
+
isMinuteFocused: function (minute) { return focusedMinute === minute; },
|
|
29
|
+
isMinuteSelected: function (minute) { return selectedMinute === minute; },
|
|
30
|
+
onMinuteFocus: function (minute) { return (focusedMinute = minute); },
|
|
31
|
+
onMinuteSelect: function (minute) { return (selectedMinute = minute); },
|
|
32
|
+
minuteRef: ref.current,
|
|
33
|
+
});
|
|
34
|
+
}), result = _a.result, rerender = _a.rerender;
|
|
35
|
+
expect(result.current.tabIndex).toBe(0);
|
|
36
|
+
// select
|
|
37
|
+
expect(result.current.isSelected).toBe(false);
|
|
38
|
+
(0, react_hooks_1.act)(function () {
|
|
39
|
+
if (result.current.onClick) {
|
|
40
|
+
result.current.onClick();
|
|
41
|
+
}
|
|
42
|
+
rerender();
|
|
43
|
+
});
|
|
44
|
+
expect(result.current.isSelected).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1taW51dGUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDREQUErRDtBQUMvRCwrQkFBK0I7QUFDL0IsMkNBQXlDO0FBRXpDLElBQUksQ0FBQyxXQUFXLEVBQUU7SUFDTixJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUM7UUFDMUIsT0FBQSxJQUFBLHNCQUFTLEVBQUM7WUFDTixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxjQUFNLE9BQUEsS0FBSyxFQUFMLENBQUs7WUFDNUIsZ0JBQWdCLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO1lBQzdCLGFBQWEsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7WUFDOUIsY0FBYyxFQUFFLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUztTQUNsQyxDQUFDO0lBUEYsQ0FPRSxDQUNMLE9BVGEsQ0FTWjtJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFO0lBQ1osSUFBSSxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUN6QyxJQUFJLGFBQWEsR0FBa0IsSUFBSSxDQUFDO0lBRWhDLElBQVEsR0FBRyxHQUFLLElBQUEsd0JBQVUsRUFBQyxjQUFNLE9BQUEsSUFBQSxjQUFNLEVBQWMsSUFBSSxDQUFDLEVBQXpCLENBQXlCLENBQUMsT0FBaEQsQ0FBaUQ7SUFFOUQsSUFBQSxLQUF1QixJQUFBLHdCQUFVLEVBQUM7UUFDcEMsT0FBQSxJQUFBLHNCQUFTLEVBQUM7WUFDTixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGVBQWUsRUFBRSxVQUFBLE1BQU0sSUFBSSxPQUFBLGFBQWEsS0FBSyxNQUFNLEVBQXhCLENBQXdCO1lBQ25ELGdCQUFnQixFQUFFLFVBQUEsTUFBTSxJQUFJLE9BQUEsY0FBYyxLQUFLLE1BQU0sRUFBekIsQ0FBeUI7WUFDckQsYUFBYSxFQUFFLFVBQUEsTUFBTSxJQUFJLE9BQUEsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLEVBQXhCLENBQXdCO1lBQ2pELGNBQWMsRUFBRSxVQUFBLE1BQU0sSUFBSSxPQUFBLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxFQUF6QixDQUF5QjtZQUNuRCxTQUFTLEVBQUUsR0FBRyxDQUFDLE9BQU87U0FDekIsQ0FBQztJQVJGLENBUUUsQ0FDTCxFQVZPLE1BQU0sWUFBQSxFQUFFLFFBQVEsY0FVdkIsQ0FBQztJQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4QyxTQUFTO0lBQ1QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLElBQUEsaUJBQUcsRUFBQztRQUNBLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjtRQUNELFFBQVEsRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakQsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const labelFormatFn: (hour: number) => string;
|
|
2
|
+
export declare type MinuteType = {
|
|
3
|
+
value: number;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
export interface UseMinutesProps {
|
|
7
|
+
labelFormat?: (minute: number) => string;
|
|
8
|
+
}
|
|
9
|
+
export interface UseMinutesReturnType {
|
|
10
|
+
minutes: MinuteType[];
|
|
11
|
+
}
|
|
12
|
+
export declare function useMinutes({ labelFormat }: UseMinutesProps): UseMinutesReturnType;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMinutes = exports.labelFormatFn = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var labelFormatFn = function (hour) { return hour.toString().padStart(2, "0"); };
|
|
6
|
+
exports.labelFormatFn = labelFormatFn;
|
|
7
|
+
function useMinutes(_a) {
|
|
8
|
+
var _b = _a.labelFormat, labelFormat = _b === void 0 ? exports.labelFormatFn : _b;
|
|
9
|
+
var minutes = (0, react_1.useMemo)(function () {
|
|
10
|
+
return Array(12)
|
|
11
|
+
.fill(0)
|
|
12
|
+
.map(function (_, i) { return ({ value: i * 5, label: labelFormat(i * 5) }); });
|
|
13
|
+
}, [labelFormat]);
|
|
14
|
+
return {
|
|
15
|
+
minutes: minutes,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.useMinutes = useMinutes;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLW1pbnV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWdDO0FBRXpCLElBQU0sYUFBYSxHQUFHLFVBQUMsSUFBWSxJQUFLLE9BQUEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQWhDLENBQWdDLENBQUM7QUFBbkUsUUFBQSxhQUFhLGlCQUFzRDtBQWVoRixTQUFnQixVQUFVLENBQUMsRUFBZ0Q7UUFBOUMsbUJBQTJCLEVBQTNCLFdBQVcsbUJBQUcscUJBQWEsS0FBQTtJQUNwRCxJQUFNLE9BQU8sR0FBRyxJQUFBLGVBQU8sRUFDbkI7UUFDSSxPQUFBLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDSixJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ1AsR0FBRyxDQUFDLFVBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSyxPQUFBLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQTdDLENBQTZDLENBQUM7SUFGakUsQ0FFaUUsRUFDckUsQ0FBQyxXQUFXLENBQUMsQ0FDaEIsQ0FBQztJQUVGLE9BQU87UUFDSCxPQUFPLFNBQUE7S0FDVixDQUFDO0FBQ04sQ0FBQztBQVpELGdDQVlDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
4
|
+
var use_minutes_1 = require("./use-minutes");
|
|
5
|
+
test("useMinutes", function () {
|
|
6
|
+
var result = (0, react_hooks_1.renderHook)(function () { return (0, use_minutes_1.useMinutes)({}); }).result;
|
|
7
|
+
expect(result.current.minutes).toStrictEqual([
|
|
8
|
+
{ label: "00", value: 0 },
|
|
9
|
+
{ label: "05", value: 5 },
|
|
10
|
+
{ label: "10", value: 10 },
|
|
11
|
+
{ label: "15", value: 15 },
|
|
12
|
+
{ label: "20", value: 20 },
|
|
13
|
+
{ label: "25", value: 25 },
|
|
14
|
+
{ label: "30", value: 30 },
|
|
15
|
+
{ label: "35", value: 35 },
|
|
16
|
+
{ label: "40", value: 40 },
|
|
17
|
+
{ label: "45", value: 45 },
|
|
18
|
+
{ label: "50", value: 50 },
|
|
19
|
+
{ label: "55", value: 55 },
|
|
20
|
+
]);
|
|
21
|
+
});
|
|
22
|
+
test("useMinutes with custom format", function () {
|
|
23
|
+
var result = (0, react_hooks_1.renderHook)(function () {
|
|
24
|
+
return (0, use_minutes_1.useMinutes)({
|
|
25
|
+
labelFormat: function (minute) { return "--" + minute + "--"; },
|
|
26
|
+
});
|
|
27
|
+
}).result;
|
|
28
|
+
expect(result.current.minutes).toStrictEqual([
|
|
29
|
+
{ label: "--0--", value: 0 },
|
|
30
|
+
{ label: "--5--", value: 5 },
|
|
31
|
+
{ label: "--10--", value: 10 },
|
|
32
|
+
{ label: "--15--", value: 15 },
|
|
33
|
+
{ label: "--20--", value: 20 },
|
|
34
|
+
{ label: "--25--", value: 25 },
|
|
35
|
+
{ label: "--30--", value: 30 },
|
|
36
|
+
{ label: "--35--", value: 35 },
|
|
37
|
+
{ label: "--40--", value: 40 },
|
|
38
|
+
{ label: "--45--", value: 45 },
|
|
39
|
+
{ label: "--50--", value: 50 },
|
|
40
|
+
{ label: "--55--", value: 55 },
|
|
41
|
+
]);
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1pbnV0ZXMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2UtbWludXRlcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNERBQTBEO0FBQzFELDZDQUEyQztBQUUzQyxJQUFJLENBQUMsWUFBWSxFQUFFO0lBQ1AsSUFBQSxNQUFNLEdBQUssSUFBQSx3QkFBVSxFQUFDLGNBQU0sT0FBQSxJQUFBLHdCQUFVLEVBQUMsRUFBRSxDQUFDLEVBQWQsQ0FBYyxDQUFDLE9BQXJDLENBQXNDO0lBRXBELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN6QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUN6QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtRQUMxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtLQUM3QixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQywrQkFBK0IsRUFBRTtJQUMxQixJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUM7UUFDMUIsT0FBQSxJQUFBLHdCQUFVLEVBQUM7WUFDUCxXQUFXLEVBQUUsVUFBQSxNQUFNLElBQUksT0FBQSxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBcEIsQ0FBb0I7U0FDOUMsQ0FBQztJQUZGLENBRUUsQ0FDTCxPQUphLENBSVo7SUFFRixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDekMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7S0FDakMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMifQ==
|
package/hooks/use-month.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.useMonth = exports.monthLabelFormatFn = exports.weekdayLabelFormatFn = exports.dayLabelFormatFn = void 0;
|
|
7
|
-
var dayjs_1 = __importDefault(require("dayjs"));
|
|
8
4
|
var react_1 = require("react");
|
|
9
5
|
var get_days_1 = require("../utils/get-days");
|
|
10
6
|
var get_weekday_labels_1 = require("../utils/get-weekday-labels");
|
|
11
|
-
var
|
|
7
|
+
var dayjs_en_1 = require("../utils/dayjs-en");
|
|
8
|
+
var dayLabelFormatFn = function (date) { return (0, dayjs_en_1.dayjsEn)(date).format("DD"); };
|
|
12
9
|
exports.dayLabelFormatFn = dayLabelFormatFn;
|
|
13
|
-
var weekdayLabelFormatFn = function (date) { return (0,
|
|
10
|
+
var weekdayLabelFormatFn = function (date) { return (0, dayjs_en_1.dayjsEn)(date).format("dd"); }; // localization
|
|
14
11
|
exports.weekdayLabelFormatFn = weekdayLabelFormatFn;
|
|
15
|
-
var monthLabelFormatFn = function (date) { return (0,
|
|
12
|
+
var monthLabelFormatFn = function (date) { return (0, dayjs_en_1.dayjsEn)(date).format("MMMM YYYY"); };
|
|
16
13
|
exports.monthLabelFormatFn = monthLabelFormatFn;
|
|
17
14
|
function useMonth(_a) {
|
|
18
15
|
var _b = _a.dayLabelFormat, dayLabelFormat = _b === void 0 ? exports.dayLabelFormatFn : _b, _c = _a.firstDayOfWeek, firstDayOfWeek = _c === void 0 ? 0 : _c, month = _a.month, _d = _a.monthLabelFormat, monthLabelFormat = _d === void 0 ? exports.monthLabelFormatFn : _d, _e = _a.weekdayLabelFormat, weekdayLabelFormat = _e === void 0 ? exports.weekdayLabelFormatFn : _e, year = _a.year;
|
|
@@ -25,4 +22,4 @@ function useMonth(_a) {
|
|
|
25
22
|
};
|
|
26
23
|
}
|
|
27
24
|
exports.useMonth = useMonth;
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW1vbnRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1tb250aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBZ0M7QUFDaEMsOENBQXVFO0FBQ3ZFLGtFQUFzRjtBQUN0Riw4Q0FBNEM7QUFFckMsSUFBTSxnQkFBZ0IsR0FBRyxVQUFDLElBQVUsSUFBSyxPQUFBLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQTFCLENBQTBCLENBQUM7QUFBOUQsUUFBQSxnQkFBZ0Isb0JBQThDO0FBQ3BFLElBQU0sb0JBQW9CLEdBQUcsVUFBQyxJQUFVLElBQUssT0FBQSxJQUFBLGtCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUExQixDQUEwQixDQUFDLENBQUMsZUFBZTtBQUFsRixRQUFBLG9CQUFvQix3QkFBOEM7QUFDeEUsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLElBQVUsSUFBSyxPQUFBLElBQUEsa0JBQU8sRUFBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQWpDLENBQWlDLENBQUM7QUFBdkUsUUFBQSxrQkFBa0Isc0JBQXFEO0FBWXBGLFNBQWdCLFFBQVEsQ0FBQyxFQU9UO1FBTlosc0JBQWlDLEVBQWpDLGNBQWMsbUJBQUcsd0JBQWdCLEtBQUEsRUFDakMsc0JBQWtCLEVBQWxCLGNBQWMsbUJBQUcsQ0FBQyxLQUFBLEVBQ2xCLEtBQUssV0FBQSxFQUNMLHdCQUFxQyxFQUFyQyxnQkFBZ0IsbUJBQUcsMEJBQWtCLEtBQUEsRUFDckMsMEJBQXlDLEVBQXpDLGtCQUFrQixtQkFBRyw0QkFBb0IsS0FBQSxFQUN6QyxJQUFJLFVBQUE7SUFFSixJQUFNLElBQUksR0FBRyxJQUFBLGVBQU8sRUFDaEIsY0FBTSxPQUFBLElBQUEsa0JBQU8sRUFBQyxFQUFFLElBQUksTUFBQSxFQUFFLEtBQUssT0FBQSxFQUFFLGNBQWMsZ0JBQUEsRUFBRSxjQUFjLGdCQUFBLEVBQUUsQ0FBQyxFQUF4RCxDQUF3RCxFQUM5RCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUNoRCxDQUFDO0lBQ0YsSUFBTSxhQUFhLEdBQUcsSUFBQSxlQUFPLEVBQ3pCLGNBQU0sT0FBQSxJQUFBLHFDQUFnQixFQUFDLEVBQUUsY0FBYyxnQkFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLENBQUMsRUFBeEQsQ0FBd0QsRUFDOUQsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FDdkMsQ0FBQztJQUVGLE9BQU87UUFDSCxJQUFJLE1BQUE7UUFDSixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELGFBQWEsZUFBQTtLQUNoQixDQUFDO0FBQ04sQ0FBQztBQXRCRCw0QkFzQkMifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare type TimeType = {
|
|
2
|
+
hour: number;
|
|
3
|
+
minute: number;
|
|
4
|
+
};
|
|
5
|
+
export declare type OnTimeChangeType = TimeType | null;
|
|
6
|
+
export interface UseTimePickerProps {
|
|
7
|
+
onSelectCallback?: () => void;
|
|
8
|
+
onTimeChange: (data: OnTimeChangeType) => void;
|
|
9
|
+
selectedTime: TimeType | null;
|
|
10
|
+
}
|
|
11
|
+
export interface UseTimePickerReturnType {
|
|
12
|
+
onTimeSelect: (time: TimeType) => void;
|
|
13
|
+
goToPrevHour: () => void;
|
|
14
|
+
goToPrevMinute: () => void;
|
|
15
|
+
goToNextHour: () => void;
|
|
16
|
+
goToNextMinute: () => void;
|
|
17
|
+
focusedHour: number | null;
|
|
18
|
+
focusedMinute: number | null;
|
|
19
|
+
isHourFocused: (hour: number) => boolean;
|
|
20
|
+
isHourSelected: (hour: number) => boolean;
|
|
21
|
+
isMinuteFocused: (minute: number) => boolean;
|
|
22
|
+
isMinuteSelected: (minute: number) => boolean;
|
|
23
|
+
onHourFocus: (hour: number) => void;
|
|
24
|
+
onHourSelect: (hour: number) => void;
|
|
25
|
+
onMinuteFocus: (minute: number) => void;
|
|
26
|
+
onMinuteSelect: (minute: number) => void;
|
|
27
|
+
}
|
|
28
|
+
export declare function useTimePicker({ selectedTime, onTimeChange, onSelectCallback, }: UseTimePickerProps): UseTimePickerReturnType;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.useTimePicker = void 0;
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
function useTimePicker(_a) {
|
|
22
|
+
var _b, _c;
|
|
23
|
+
var selectedTime = _a.selectedTime, onTimeChange = _a.onTimeChange, onSelectCallback = _a.onSelectCallback;
|
|
24
|
+
var _d = __read((0, react_1.useState)((_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _b !== void 0 ? _b : null), 2), focusedHour = _d[0], setFocusedHour = _d[1];
|
|
25
|
+
var _e = __read((0, react_1.useState)((_c = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _c !== void 0 ? _c : null), 2), focusedMinute = _e[0], setFocusedMinute = _e[1];
|
|
26
|
+
var _isTimeSelected = function (time) { return time.hour === (selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) && time.minute === selectedTime.minute; };
|
|
27
|
+
function onTimeSelect(time) {
|
|
28
|
+
if (!_isTimeSelected(time)) {
|
|
29
|
+
onTimeChange(time);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
var isHourFocused = function (hour) { return hour === focusedHour; };
|
|
33
|
+
var isMinuteFocused = function (minute) { return minute === focusedMinute; };
|
|
34
|
+
var isHourSelected = function (hour) { return hour === (selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour); };
|
|
35
|
+
var isMinuteSelected = function (minute) { return minute === (selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute); };
|
|
36
|
+
var onHourFocus = function (hour) {
|
|
37
|
+
setFocusedHour(hour);
|
|
38
|
+
};
|
|
39
|
+
var onMinuteFocus = function (minute) {
|
|
40
|
+
setFocusedMinute(minute);
|
|
41
|
+
};
|
|
42
|
+
var onHourSelect = function (hour) {
|
|
43
|
+
var _a;
|
|
44
|
+
onTimeChange({ hour: hour, minute: (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _a !== void 0 ? _a : 0 });
|
|
45
|
+
onSelectCallback === null || onSelectCallback === void 0 ? void 0 : onSelectCallback();
|
|
46
|
+
};
|
|
47
|
+
var onMinuteSelect = function (minute) {
|
|
48
|
+
var _a;
|
|
49
|
+
onTimeChange({ hour: (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0, minute: minute });
|
|
50
|
+
onSelectCallback === null || onSelectCallback === void 0 ? void 0 : onSelectCallback();
|
|
51
|
+
};
|
|
52
|
+
var goToPrevHour = (0, react_1.useCallback)(function () {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
55
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
56
|
+
onTimeChange({ hour: nowHour === 0 ? 23 : nowHour - 1, minute: nowMinute });
|
|
57
|
+
}, [onTimeChange, selectedTime]);
|
|
58
|
+
var goToNextHour = (0, react_1.useCallback)(function () {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
61
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
62
|
+
onTimeChange({ hour: nowHour === 23 ? 0 : nowHour + 1, minute: nowMinute });
|
|
63
|
+
}, [onTimeChange, selectedTime]);
|
|
64
|
+
var goToPrevMinute = (0, react_1.useCallback)(function () {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
67
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
68
|
+
onTimeChange({
|
|
69
|
+
hour: nowMinute === 0 ? (nowHour === 0 ? 23 : nowHour - 1) : nowHour,
|
|
70
|
+
minute: nowMinute === 0 ? 59 : nowMinute - 1,
|
|
71
|
+
});
|
|
72
|
+
}, [onTimeChange, selectedTime]);
|
|
73
|
+
var goToNextMinute = (0, react_1.useCallback)(function () {
|
|
74
|
+
var _a, _b;
|
|
75
|
+
var nowHour = (_a = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.hour) !== null && _a !== void 0 ? _a : 0;
|
|
76
|
+
var nowMinute = (_b = selectedTime === null || selectedTime === void 0 ? void 0 : selectedTime.minute) !== null && _b !== void 0 ? _b : 0;
|
|
77
|
+
onTimeChange({
|
|
78
|
+
hour: nowMinute === 59 ? (nowHour === 23 ? 0 : nowHour + 1) : nowHour,
|
|
79
|
+
minute: nowMinute === 59 ? 0 : nowMinute + 1,
|
|
80
|
+
});
|
|
81
|
+
}, [onTimeChange, selectedTime]);
|
|
82
|
+
return {
|
|
83
|
+
goToPrevHour: goToPrevHour,
|
|
84
|
+
goToNextHour: goToNextHour,
|
|
85
|
+
goToPrevMinute: goToPrevMinute,
|
|
86
|
+
goToNextMinute: goToNextMinute,
|
|
87
|
+
onTimeSelect: onTimeSelect,
|
|
88
|
+
focusedHour: focusedHour,
|
|
89
|
+
focusedMinute: focusedMinute,
|
|
90
|
+
isHourFocused: isHourFocused,
|
|
91
|
+
isHourSelected: isHourSelected,
|
|
92
|
+
isMinuteFocused: isMinuteFocused,
|
|
93
|
+
isMinuteSelected: isMinuteSelected,
|
|
94
|
+
onHourFocus: onHourFocus,
|
|
95
|
+
onHourSelect: onHourSelect,
|
|
96
|
+
onMinuteFocus: onMinuteFocus,
|
|
97
|
+
onMinuteSelect: onMinuteSelect,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
exports.useTimePicker = useTimePicker;
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXRpbWUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS10aW1lLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQThDO0FBOEI5QyxTQUFnQixhQUFhLENBQUMsRUFJVDs7UUFIakIsWUFBWSxrQkFBQSxFQUNaLFlBQVksa0JBQUEsRUFDWixnQkFBZ0Isc0JBQUE7SUFFVixJQUFBLEtBQUEsT0FBZ0MsSUFBQSxnQkFBUSxFQUFnQixNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxJQUFJLG1DQUFJLElBQUksQ0FBQyxJQUFBLEVBQWxGLFdBQVcsUUFBQSxFQUFFLGNBQWMsUUFBdUQsQ0FBQztJQUNwRixJQUFBLEtBQUEsT0FBb0MsSUFBQSxnQkFBUSxFQUFnQixNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLG1DQUFJLElBQUksQ0FBQyxJQUFBLEVBQXhGLGFBQWEsUUFBQSxFQUFFLGdCQUFnQixRQUF5RCxDQUFDO0lBRWhHLElBQU0sZUFBZSxHQUFHLFVBQUMsSUFBYyxJQUFLLE9BQUEsSUFBSSxDQUFDLElBQUksTUFBSyxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsSUFBSSxDQUFBLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxFQUF2RSxDQUF1RSxDQUFDO0lBRXBILFNBQVMsWUFBWSxDQUFDLElBQWM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEI7SUFDTCxDQUFDO0lBRUQsSUFBTSxhQUFhLEdBQUcsVUFBQyxJQUFZLElBQUssT0FBQSxJQUFJLEtBQUssV0FBVyxFQUFwQixDQUFvQixDQUFDO0lBQzdELElBQU0sZUFBZSxHQUFHLFVBQUMsTUFBYyxJQUFLLE9B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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|