@uxf/datepicker 1.1.6 → 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.
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ export declare type TimePickerContextProps = {
3
+ focusedHour: number | null;
4
+ focusedMinute: number | null;
5
+ isHourFocused: (hour: number) => boolean;
6
+ isHourSelected: (hour: number) => boolean;
7
+ isMinuteFocused: (minute: number) => boolean;
8
+ isMinuteSelected: (minute: number) => boolean;
9
+ onHourFocus: (hour: number) => void;
10
+ onHourSelect: (hour: number) => void;
11
+ onMinuteFocus: (minute: number) => void;
12
+ onMinuteSelect: (minute: number) => void;
13
+ };
14
+ export declare const TimePickerContext: import("react").Context<TimePickerContextProps>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TimePickerContext = void 0;
4
+ var react_1 = require("react");
5
+ exports.TimePickerContext = (0, react_1.createContext)({
6
+ focusedHour: null,
7
+ focusedMinute: null,
8
+ isHourFocused: function () { return false; },
9
+ isHourSelected: function () { return false; },
10
+ isMinuteFocused: function () { return false; },
11
+ isMinuteSelected: function () { return false; },
12
+ onHourFocus: function () { return undefined; },
13
+ onHourSelect: function () { return undefined; },
14
+ onMinuteFocus: function () { return undefined; },
15
+ onMinuteSelect: function () { return undefined; },
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0cy90aW1lLXBpY2tlci1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFzQztBQWV6QixRQUFBLGlCQUFpQixHQUFHLElBQUEscUJBQWEsRUFBeUI7SUFDbkUsV0FBVyxFQUFFLElBQUk7SUFDakIsYUFBYSxFQUFFLElBQUk7SUFDbkIsYUFBYSxFQUFFLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSztJQUMxQixjQUFjLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO0lBQzNCLGVBQWUsRUFBRSxjQUFNLE9BQUEsS0FBSyxFQUFMLENBQUs7SUFDNUIsZ0JBQWdCLEVBQUUsY0FBTSxPQUFBLEtBQUssRUFBTCxDQUFLO0lBQzdCLFdBQVcsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7SUFDNUIsWUFBWSxFQUFFLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUztJQUM3QixhQUFhLEVBQUUsY0FBTSxPQUFBLFNBQVMsRUFBVCxDQUFTO0lBQzlCLGNBQWMsRUFBRSxjQUFNLE9BQUEsU0FBUyxFQUFULENBQVM7Q0FDbEMsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,17 @@
1
+ import { KeyboardEvent, RefObject } from "react";
2
+ export interface UseHourProps {
3
+ hour: number;
4
+ hourRef?: RefObject<HTMLElement>;
5
+ focusedHour: number | null;
6
+ isHourFocused: (hour: number) => boolean;
7
+ isHourSelected: (hour: number) => boolean;
8
+ onHourFocus: (hour: number) => void;
9
+ onHourSelect: (hour: number) => void;
10
+ }
11
+ export interface UseHourReturnType {
12
+ isSelected: boolean;
13
+ onClick?: () => void;
14
+ onKeyDown: (e: KeyboardEvent<HTMLElement>) => void;
15
+ tabIndex: number;
16
+ }
17
+ export declare function useHour({ hour, hourRef, focusedHour, isHourFocused, isHourSelected, onHourFocus, onHourSelect, }: UseHourProps): UseHourReturnType;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useHour = void 0;
4
+ var react_1 = require("react");
5
+ function useHour(_a) {
6
+ var hour = _a.hour, hourRef = _a.hourRef, focusedHour = _a.focusedHour, isHourFocused = _a.isHourFocused, isHourSelected = _a.isHourSelected, onHourFocus = _a.onHourFocus, onHourSelect = _a.onHourSelect;
7
+ var onClick = (0, react_1.useCallback)(function () { return onHourSelect(hour); }, [hour, onHourSelect]);
8
+ (0, react_1.useEffect)(function () {
9
+ if (hourRef && hourRef.current && isHourFocused(hour)) {
10
+ hourRef.current.focus();
11
+ }
12
+ }, [hourRef, hour, isHourFocused]);
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
+ onHourFocus(hour + 1);
19
+ break;
20
+ case "ArrowLeft":
21
+ onHourFocus(hour - 1);
22
+ break;
23
+ case "ArrowUp":
24
+ onHourFocus(hour - 4);
25
+ break;
26
+ case "ArrowDown":
27
+ onHourFocus(hour + 4);
28
+ break;
29
+ }
30
+ }
31
+ }, [hour, onHourFocus]);
32
+ return {
33
+ isSelected: isHourSelected(hour),
34
+ onClick: onClick,
35
+ onKeyDown: onKeyDown,
36
+ tabIndex: focusedHour === null || isHourFocused(hour) ? 0 : -1,
37
+ };
38
+ }
39
+ exports.useHour = useHour;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWhvdXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWhvdXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQXlFO0FBbUJ6RSxTQUFnQixPQUFPLENBQUMsRUFRVDtRQVBYLElBQUksVUFBQSxFQUNKLE9BQU8sYUFBQSxFQUNQLFdBQVcsaUJBQUEsRUFDWCxhQUFhLG1CQUFBLEVBQ2IsY0FBYyxvQkFBQSxFQUNkLFdBQVcsaUJBQUEsRUFDWCxZQUFZLGtCQUFBO0lBRVosSUFBTSxPQUFPLEdBQUcsSUFBQSxtQkFBVyxFQUFDLGNBQU0sT0FBQSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQWxCLENBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUU1RSxJQUFBLGlCQUFTLEVBQUM7UUFDTixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuRCxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBRW5DLElBQU0sU0FBUyxHQUFHLElBQUEsbUJBQVcsRUFDekIsVUFBQyxDQUE2QjtRQUMxQixJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFO2dCQUNYLEtBQUssWUFBWTtvQkFDYixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWLEtBQUssU0FBUztvQkFDVixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2dCQUNWLEtBQUssV0FBVztvQkFDWixXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2FBQ2I7U0FDSjtJQUNMLENBQUMsRUFDRCxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FDdEIsQ0FBQztJQUVGLE9BQU87UUFDSCxVQUFVLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQztRQUNoQyxPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLFdBQUE7UUFDVCxRQUFRLEVBQUUsV0FBVyxLQUFLLElBQUksSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pFLENBQUM7QUFDTixDQUFDO0FBOUNELDBCQThDQyJ9
@@ -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_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==
@@ -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 {};
@@ -0,0 +1,94 @@
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_time_picker_1 = require("./use-time-picker");
6
+ test("base data", function () {
7
+ var BASE_TIME = { hour: 12, minute: 57 };
8
+ var result = (0, react_hooks_1.renderHook)(function () {
9
+ return (0, use_time_picker_1.useTimePicker)({
10
+ selectedTime: BASE_TIME,
11
+ onTimeChange: function () { return undefined; },
12
+ });
13
+ }).result;
14
+ expect(result.current.focusedHour).toBe(BASE_TIME.hour);
15
+ expect(result.current.focusedMinute).toBe(BASE_TIME.minute);
16
+ });
17
+ test("time focus", function () {
18
+ var BASE_TIME = { hour: 12, minute: 57 };
19
+ var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_TIME); }).result;
20
+ var result = (0, react_hooks_1.renderHook)(function () {
21
+ return (0, use_time_picker_1.useTimePicker)({ selectedTime: state.current[0], onTimeChange: function (time) { return state.current[1](time); } });
22
+ }).result;
23
+ var NEW_TIME = { hour: 13, minute: 15 };
24
+ expect(result.current.isHourFocused(BASE_TIME.hour)).toBe(true);
25
+ expect(result.current.isHourFocused(NEW_TIME.hour)).toBe(false);
26
+ expect(result.current.isMinuteFocused(BASE_TIME.minute)).toBe(true);
27
+ expect(result.current.isMinuteFocused(NEW_TIME.minute)).toBe(false);
28
+ (0, react_hooks_1.act)(function () {
29
+ result.current.onHourFocus(NEW_TIME.hour);
30
+ result.current.onMinuteFocus(NEW_TIME.minute);
31
+ });
32
+ expect(result.current.isHourFocused(NEW_TIME.hour)).toBe(true);
33
+ expect(result.current.isHourFocused(BASE_TIME.hour)).toBe(false);
34
+ expect(result.current.isMinuteFocused(NEW_TIME.minute)).toBe(true);
35
+ expect(result.current.isMinuteFocused(BASE_TIME.minute)).toBe(false);
36
+ });
37
+ test("time select", function () {
38
+ var BASE_TIME = { hour: 12, minute: 57 };
39
+ var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_TIME); }).result;
40
+ var _a = (0, react_hooks_1.renderHook)(function () {
41
+ return (0, use_time_picker_1.useTimePicker)({ selectedTime: state.current[0], onTimeChange: function (time) { return state.current[1](time); } });
42
+ }), result = _a.result, rerender = _a.rerender;
43
+ var NEW_TIME = { hour: 13, minute: 15 };
44
+ expect(result.current.isHourSelected(BASE_TIME.hour)).toBe(true);
45
+ expect(result.current.isHourSelected(NEW_TIME.hour)).toBe(false);
46
+ expect(result.current.isMinuteSelected(BASE_TIME.minute)).toBe(true);
47
+ expect(result.current.isMinuteSelected(NEW_TIME.minute)).toBe(false);
48
+ (0, react_hooks_1.act)(function () {
49
+ result.current.onTimeSelect(NEW_TIME);
50
+ rerender();
51
+ });
52
+ expect(result.current.isHourSelected(NEW_TIME.hour)).toBe(true);
53
+ expect(result.current.isHourSelected(BASE_TIME.hour)).toBe(false);
54
+ expect(result.current.isMinuteSelected(NEW_TIME.minute)).toBe(true);
55
+ expect(result.current.isMinuteSelected(BASE_TIME.minute)).toBe(false);
56
+ });
57
+ test("time navigation", function () {
58
+ var BASE_TIME = { hour: 1, minute: 58 };
59
+ var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_TIME); }).result;
60
+ var _a = (0, react_hooks_1.renderHook)(function () {
61
+ return (0, use_time_picker_1.useTimePicker)({ selectedTime: state.current[0], onTimeChange: function (time) { return state.current[1](time); } });
62
+ }), result = _a.result, rerender = _a.rerender;
63
+ (0, react_hooks_1.act)(function () {
64
+ result.current.goToPrevHour();
65
+ rerender();
66
+ });
67
+ expect(state.current[0]).toStrictEqual({ hour: 0, minute: 58 });
68
+ (0, react_hooks_1.act)(function () {
69
+ result.current.goToNextMinute();
70
+ rerender();
71
+ });
72
+ expect(state.current[0]).toStrictEqual({ hour: 0, minute: 59 });
73
+ (0, react_hooks_1.act)(function () {
74
+ result.current.goToPrevHour();
75
+ rerender();
76
+ });
77
+ expect(state.current[0]).toStrictEqual({ hour: 23, minute: 59 });
78
+ (0, react_hooks_1.act)(function () {
79
+ result.current.goToNextHour();
80
+ rerender();
81
+ });
82
+ expect(state.current[0]).toStrictEqual({ hour: 0, minute: 59 });
83
+ (0, react_hooks_1.act)(function () {
84
+ result.current.goToNextMinute();
85
+ rerender();
86
+ });
87
+ expect(state.current[0]).toStrictEqual({ hour: 1, minute: 0 });
88
+ (0, react_hooks_1.act)(function () {
89
+ result.current.goToPrevMinute();
90
+ rerender();
91
+ });
92
+ expect(state.current[0]).toStrictEqual({ hour: 0, minute: 59 });
93
+ });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXRpbWUtcGlja2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLXRpbWUtcGlja2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0REFBK0Q7QUFDL0QsK0JBQWlDO0FBQ2pDLHFEQUE0RDtBQUU1RCxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQ2QsSUFBTSxTQUFTLEdBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3QyxJQUFBLE1BQU0sR0FBSyxJQUFBLHdCQUFVLEVBQUM7UUFDMUIsT0FBQSxJQUFBLCtCQUFhLEVBQUM7WUFDVixZQUFZLEVBQUUsU0FBUztZQUN2QixZQUFZLEVBQUUsY0FBTSxPQUFBLFNBQVMsRUFBVCxDQUFTO1NBQ2hDLENBQUM7SUFIRixDQUdFLENBQ0wsT0FMYSxDQUtaO0lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLFlBQVksRUFBRTtJQUNmLElBQU0sU0FBUyxHQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDN0MsSUFBUSxLQUFLLEdBQUssSUFBQSx3QkFBVSxFQUFDLGNBQU0sT0FBQSxJQUFBLGdCQUFRLEVBQWtCLFNBQVMsQ0FBQyxFQUFwQyxDQUFvQyxDQUFDLE9BQTNELENBQTREO0lBQ3pFLElBQUEsTUFBTSxHQUFLLElBQUEsd0JBQVUsRUFBQztRQUMxQixPQUFBLElBQUEsK0JBQWEsRUFBQyxFQUFFLFlBQVks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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxf/datepicker",
3
- "version": "1.1.6",
3
+ "version": "1.2.0",
4
4
  "description": "A set of React hooks to create an awesome datepicker.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -47,5 +47,9 @@
47
47
  },
48
48
  "peerDependencies": {
49
49
  "react": ">=17"
50
+ },
51
+ "volta": {
52
+ "node": "16.5.0",
53
+ "yarn": "1.22.19"
50
54
  }
51
55
  }