@impulse-ui-native/datetime 2.1.0 → 2.1.2
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/dist/components/common/calendar-day.d.mts +16 -0
- package/dist/components/common/calendar-day.js +56 -0
- package/dist/components/common/calendar-day.js.map +1 -0
- package/dist/components/common/calendar.d.mts +14 -0
- package/dist/components/common/calendar.js +58 -0
- package/dist/components/common/calendar.js.map +1 -0
- package/dist/components/common/date-control.d.mts +14 -0
- package/dist/components/common/date-control.js +57 -0
- package/dist/components/common/date-control.js.map +1 -0
- package/dist/components/common/datetime-picker-flyout-actions.d.mts +15 -0
- package/dist/components/common/datetime-picker-flyout-actions.js +26 -0
- package/dist/components/common/datetime-picker-flyout-actions.js.map +1 -0
- package/dist/components/common/quick-date-options.d.mts +13 -0
- package/dist/components/common/quick-date-options.js +33 -0
- package/dist/components/common/quick-date-options.js.map +1 -0
- package/dist/components/common/visible-date-select.d.mts +11 -0
- package/dist/components/common/visible-date-select.js +70 -0
- package/dist/components/common/visible-date-select.js.map +1 -0
- package/dist/components/date/date-picker.d.mts +10 -0
- package/dist/components/date/date-picker.flyout.d.mts +12 -0
- package/dist/components/date/date-picker.flyout.js +58 -0
- package/dist/components/date/date-picker.flyout.js.map +1 -0
- package/dist/components/date/date-picker.js +61 -0
- package/dist/components/date/date-picker.js.map +1 -0
- package/dist/components/date/date-range-picker.d.mts +10 -0
- package/dist/components/date/date-range-picker.js +63 -0
- package/dist/components/date/date-range-picker.js.map +1 -0
- package/dist/components/datetime/datetime-picker.d.mts +10 -0
- package/dist/components/datetime/datetime-picker.flyout.d.mts +13 -0
- package/dist/components/datetime/datetime-picker.flyout.js +80 -0
- package/dist/components/datetime/datetime-picker.flyout.js.map +1 -0
- package/dist/components/datetime/datetime-picker.js +63 -0
- package/dist/components/datetime/datetime-picker.js.map +1 -0
- package/dist/components/datetime/datetime-range-picker.d.mts +10 -0
- package/dist/components/datetime/datetime-range-picker.flyout.d.mts +14 -0
- package/dist/components/datetime/datetime-range-picker.flyout.js +114 -0
- package/dist/components/datetime/datetime-range-picker.flyout.js.map +1 -0
- package/dist/components/datetime/datetime-range-picker.js +69 -0
- package/dist/components/datetime/datetime-range-picker.js.map +1 -0
- package/dist/components/index.d.mts +12 -0
- package/dist/components/index.js +13 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/time/picker-column.d.mts +15 -0
- package/dist/components/time/picker-column.js +177 -0
- package/dist/components/time/picker-column.js.map +1 -0
- package/dist/components/time/time-picker.d.mts +14 -0
- package/dist/components/time/time-picker.flyout.d.mts +13 -0
- package/dist/components/time/time-picker.flyout.js +153 -0
- package/dist/components/time/time-picker.flyout.js.map +1 -0
- package/dist/components/time/time-picker.js +111 -0
- package/dist/components/time/time-picker.js.map +1 -0
- package/dist/constants/index.d.mts +1 -0
- package/dist/constants/index.js +2 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/picker.constants.d.mts +11 -0
- package/dist/constants/picker.constants.js +17 -0
- package/dist/constants/picker.constants.js.map +1 -0
- package/dist/hooks/index.d.mts +6 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/use-datetime-picker.hook.d.mts +32 -0
- package/dist/hooks/use-datetime-picker.hook.js +112 -0
- package/dist/hooks/use-datetime-picker.hook.js.map +1 -0
- package/dist/hooks/use-datetime-range-picker.hook.d.mts +34 -0
- package/dist/hooks/use-datetime-range-picker.hook.js +161 -0
- package/dist/hooks/use-datetime-range-picker.hook.js.map +1 -0
- package/dist/index.d.mts +14 -117
- package/dist/index.js +3 -1741
- package/dist/index.js.map +1 -1
- package/dist/types/common.types.d.mts +42 -0
- package/dist/types/common.types.js +1 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/datetime-picker.types.d.mts +12 -0
- package/dist/types/datetime-picker.types.js +1 -0
- package/dist/types/datetime-picker.types.js.map +1 -0
- package/dist/types/datetime-range-picker.types.d.mts +12 -0
- package/dist/types/datetime-range-picker.types.js +1 -0
- package/dist/types/datetime-range-picker.types.js.map +1 -0
- package/dist/types/index.d.mts +5 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/calendar-day.utils.d.mts +32 -0
- package/dist/utils/calendar-day.utils.js +120 -0
- package/dist/utils/calendar-day.utils.js.map +1 -0
- package/dist/utils/datetime.utils.d.mts +22 -0
- package/dist/utils/datetime.utils.js +165 -0
- package/dist/utils/datetime.utils.js.map +1 -0
- package/dist/utils/index.d.mts +5 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +11 -10
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { useCallback, useEffect, useId, useState } from "react";
|
|
2
|
+
import { useControllableState, useIsOpen } from "@impulse-ui-native/core";
|
|
3
|
+
import { isDateInMonth, isSameDay } from "../utils";
|
|
4
|
+
function useDatetimePicker({
|
|
5
|
+
value,
|
|
6
|
+
defaultValue,
|
|
7
|
+
onChange
|
|
8
|
+
}) {
|
|
9
|
+
const id = useId();
|
|
10
|
+
const [visible, setVisible] = useState(
|
|
11
|
+
value ?? defaultValue ?? /* @__PURE__ */ new Date()
|
|
12
|
+
);
|
|
13
|
+
const [tempDate, setTempDate] = useState(
|
|
14
|
+
value ?? defaultValue ?? null
|
|
15
|
+
);
|
|
16
|
+
const [selected, setSelected] = useControllableState({
|
|
17
|
+
prop: value,
|
|
18
|
+
defaultProp: defaultValue ?? null,
|
|
19
|
+
onChange
|
|
20
|
+
});
|
|
21
|
+
const { isOpen, isClosed, open, close } = useIsOpen();
|
|
22
|
+
const onPressOpen = useCallback(() => {
|
|
23
|
+
setTempDate(selected);
|
|
24
|
+
open();
|
|
25
|
+
}, [open, selected]);
|
|
26
|
+
const syncState = useCallback(() => {
|
|
27
|
+
setTempDate(selected);
|
|
28
|
+
if (selected) {
|
|
29
|
+
setVisible(selected);
|
|
30
|
+
}
|
|
31
|
+
}, [selected]);
|
|
32
|
+
const onPressApply = useCallback(() => {
|
|
33
|
+
setSelected(tempDate);
|
|
34
|
+
close();
|
|
35
|
+
}, [close, tempDate]);
|
|
36
|
+
const onPressCancel = useCallback(() => {
|
|
37
|
+
close();
|
|
38
|
+
}, [close]);
|
|
39
|
+
const onPressCalendarDay = useCallback((date) => {
|
|
40
|
+
setTempDate((prev) => {
|
|
41
|
+
if (!prev) {
|
|
42
|
+
return date;
|
|
43
|
+
}
|
|
44
|
+
if (isSameDay(date, prev)) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const nextDate = new Date(date);
|
|
48
|
+
nextDate.setHours(prev.getHours());
|
|
49
|
+
nextDate.setMinutes(prev.getMinutes());
|
|
50
|
+
nextDate.setSeconds(prev.getSeconds());
|
|
51
|
+
nextDate.setMilliseconds(prev.getMilliseconds());
|
|
52
|
+
return nextDate;
|
|
53
|
+
});
|
|
54
|
+
}, []);
|
|
55
|
+
const onChangeTime = useCallback(
|
|
56
|
+
(time) => {
|
|
57
|
+
setTempDate((prev) => {
|
|
58
|
+
const nextDate = new Date(prev ?? visible);
|
|
59
|
+
nextDate.setHours(time?.hours ?? 0);
|
|
60
|
+
nextDate.setMinutes(time?.minutes ?? 0);
|
|
61
|
+
nextDate.setSeconds(time?.seconds ?? 0);
|
|
62
|
+
nextDate.setMilliseconds(0);
|
|
63
|
+
return nextDate;
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
[visible]
|
|
67
|
+
);
|
|
68
|
+
const onPressClear = useCallback(() => {
|
|
69
|
+
setTempDate(null);
|
|
70
|
+
}, []);
|
|
71
|
+
const onPressQuickDateOption = useCallback(
|
|
72
|
+
(optionValue) => {
|
|
73
|
+
if (!(optionValue instanceof Date)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
setTempDate(optionValue);
|
|
77
|
+
if (!isDateInMonth(optionValue, visible)) {
|
|
78
|
+
setVisible(optionValue);
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
[visible]
|
|
82
|
+
);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
if (!isOpen && isClosed) {
|
|
85
|
+
setTempDate(selected);
|
|
86
|
+
}
|
|
87
|
+
}, [isOpen, selected, isClosed]);
|
|
88
|
+
return {
|
|
89
|
+
id,
|
|
90
|
+
isOpen,
|
|
91
|
+
visible,
|
|
92
|
+
tempDate,
|
|
93
|
+
selected,
|
|
94
|
+
setVisible,
|
|
95
|
+
setTempDate,
|
|
96
|
+
setSelected,
|
|
97
|
+
open,
|
|
98
|
+
close,
|
|
99
|
+
onPressOpen,
|
|
100
|
+
onPressApply,
|
|
101
|
+
onPressCancel,
|
|
102
|
+
onPressCalendarDay,
|
|
103
|
+
onChangeTime,
|
|
104
|
+
onPressClear,
|
|
105
|
+
onPressQuickDateOption,
|
|
106
|
+
syncState
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export {
|
|
110
|
+
useDatetimePicker
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=use-datetime-picker.hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-datetime-picker.hook.ts"],"sourcesContent":["import { useCallback, useEffect, useId, useState } from \"react\";\n\nimport { useControllableState, useIsOpen } from \"@impulse-ui-native/core\";\n\nimport { TimePickerValue, TimeRange } from \"../types\";\nimport { isDateInMonth, isSameDay } from \"../utils\";\n\ninterface UseDatetimePickerStateOptions {\n value?: Date | null;\n defaultValue?: Date | null;\n onChange?: (value: Date | null) => void;\n}\n\nexport function useDatetimePicker({\n value,\n defaultValue,\n onChange,\n}: UseDatetimePickerStateOptions) {\n const id = useId();\n\n const [visible, setVisible] = useState<Date>(\n value ?? defaultValue ?? new Date(),\n );\n\n const [tempDate, setTempDate] = useState<Date | null>(\n value ?? defaultValue ?? null,\n );\n\n const [selected, setSelected] = useControllableState<Date | null>({\n prop: value,\n defaultProp: defaultValue ?? null,\n onChange,\n });\n\n const { isOpen, isClosed, open, close } = useIsOpen();\n\n const onPressOpen = useCallback(() => {\n setTempDate(selected);\n open();\n }, [open, selected]);\n\n const syncState = useCallback(() => {\n setTempDate(selected);\n\n if (selected) {\n setVisible(selected);\n }\n }, [selected]);\n\n const onPressApply = useCallback(() => {\n setSelected(tempDate);\n close();\n }, [close, tempDate]);\n\n const onPressCancel = useCallback(() => {\n close();\n }, [close]);\n\n const onPressCalendarDay = useCallback((date: Date) => {\n setTempDate((prev) => {\n if (!prev) {\n return date;\n }\n\n if (isSameDay(date, prev)) {\n return null;\n }\n\n const nextDate = new Date(date);\n\n nextDate.setHours(prev.getHours());\n nextDate.setMinutes(prev.getMinutes());\n nextDate.setSeconds(prev.getSeconds());\n nextDate.setMilliseconds(prev.getMilliseconds());\n\n return nextDate;\n });\n }, []);\n\n const onChangeTime = useCallback(\n (time: TimePickerValue | null) => {\n setTempDate((prev) => {\n const nextDate = new Date(prev ?? visible);\n\n nextDate.setHours(time?.hours ?? 0);\n nextDate.setMinutes(time?.minutes ?? 0);\n nextDate.setSeconds(time?.seconds ?? 0);\n nextDate.setMilliseconds(0);\n\n return nextDate;\n });\n },\n [visible],\n );\n\n const onPressClear = useCallback(() => {\n setTempDate(null);\n }, []);\n\n const onPressQuickDateOption = useCallback(\n (optionValue: Date | TimeRange) => {\n if (!(optionValue instanceof Date)) {\n return;\n }\n\n setTempDate(optionValue);\n\n if (!isDateInMonth(optionValue, visible)) {\n setVisible(optionValue);\n }\n },\n [visible],\n );\n\n useEffect(() => {\n if (!isOpen && isClosed) {\n setTempDate(selected);\n }\n }, [isOpen, selected, isClosed]);\n\n return {\n id,\n isOpen,\n visible,\n tempDate,\n selected,\n setVisible,\n setTempDate,\n setSelected,\n open,\n close,\n onPressOpen,\n onPressApply,\n onPressCancel,\n onPressCalendarDay,\n onChangeTime,\n onPressClear,\n onPressQuickDateOption,\n syncState,\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { TimeRange, RangeSide, TimePickerValue } from '../types/common.types.mjs';
|
|
3
|
+
import '@impulse-ui-native/flyout';
|
|
4
|
+
import '@impulse-ui-native/primitives';
|
|
5
|
+
|
|
6
|
+
interface UseDatetimeRangePickerStateOptions {
|
|
7
|
+
value?: TimeRange | null;
|
|
8
|
+
defaultValue?: TimeRange | null;
|
|
9
|
+
onChange?: (value: TimeRange | null) => void;
|
|
10
|
+
}
|
|
11
|
+
declare function useDatetimeRangePicker({ value, defaultValue, onChange, }: UseDatetimeRangePickerStateOptions): {
|
|
12
|
+
id: string;
|
|
13
|
+
isOpen: boolean;
|
|
14
|
+
visible: Date;
|
|
15
|
+
tempRange: TimeRange | null;
|
|
16
|
+
selected: TimeRange | null;
|
|
17
|
+
setVisible: react.Dispatch<react.SetStateAction<Date>>;
|
|
18
|
+
setTempRange: react.Dispatch<react.SetStateAction<TimeRange | null>>;
|
|
19
|
+
setSelected: (nextValue: react.SetStateAction<TimeRange | null>) => void;
|
|
20
|
+
open: () => void;
|
|
21
|
+
close: () => void;
|
|
22
|
+
onPressOpen: () => void;
|
|
23
|
+
onPressApply: () => void;
|
|
24
|
+
onPressCancel: () => void;
|
|
25
|
+
onPressCalendarDay: (date: Date) => void;
|
|
26
|
+
onChangeTime: (side: RangeSide, time: TimePickerValue | null) => void;
|
|
27
|
+
onChangeStartTime: (time: TimePickerValue | null) => void;
|
|
28
|
+
onChangeEndTime: (time: TimePickerValue | null) => void;
|
|
29
|
+
onPressClear: () => void;
|
|
30
|
+
onPressQuickDateOption: (optionValue: Date | TimeRange) => void;
|
|
31
|
+
syncState: () => void;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export { useDatetimeRangePicker };
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { useCallback, useEffect, useId, useState } from "react";
|
|
2
|
+
import { useControllableState, useIsOpen } from "@impulse-ui-native/core";
|
|
3
|
+
import {
|
|
4
|
+
applyTime,
|
|
5
|
+
endOfDay,
|
|
6
|
+
getInitialVisibleDate,
|
|
7
|
+
isDateInMonth,
|
|
8
|
+
isSameDay,
|
|
9
|
+
normalizeRange,
|
|
10
|
+
startOfDay
|
|
11
|
+
} from "../utils";
|
|
12
|
+
function useDatetimeRangePicker({
|
|
13
|
+
value,
|
|
14
|
+
defaultValue,
|
|
15
|
+
onChange
|
|
16
|
+
}) {
|
|
17
|
+
const id = useId();
|
|
18
|
+
const [visible, setVisible] = useState(
|
|
19
|
+
getInitialVisibleDate(value, defaultValue)
|
|
20
|
+
);
|
|
21
|
+
const [tempRange, setTempRange] = useState(
|
|
22
|
+
value ?? defaultValue ?? null
|
|
23
|
+
);
|
|
24
|
+
const [selected, setSelected] = useControllableState({
|
|
25
|
+
prop: value,
|
|
26
|
+
defaultProp: defaultValue ?? null,
|
|
27
|
+
onChange
|
|
28
|
+
});
|
|
29
|
+
const { isOpen, isClosed, open, close } = useIsOpen();
|
|
30
|
+
const onPressOpen = useCallback(() => {
|
|
31
|
+
setTempRange(selected);
|
|
32
|
+
open();
|
|
33
|
+
}, [open, selected]);
|
|
34
|
+
const syncState = useCallback(() => {
|
|
35
|
+
setTempRange(selected);
|
|
36
|
+
const nextVisible = selected?.start ?? selected?.end;
|
|
37
|
+
if (nextVisible) {
|
|
38
|
+
setVisible(nextVisible);
|
|
39
|
+
}
|
|
40
|
+
}, [selected]);
|
|
41
|
+
const onPressApply = useCallback(() => {
|
|
42
|
+
setSelected(normalizeRange(tempRange));
|
|
43
|
+
close();
|
|
44
|
+
}, [close, tempRange]);
|
|
45
|
+
const onPressCancel = useCallback(() => {
|
|
46
|
+
close();
|
|
47
|
+
}, [close]);
|
|
48
|
+
const onPressCalendarDay = useCallback((date) => {
|
|
49
|
+
setTempRange((prev) => {
|
|
50
|
+
const startDate = startOfDay(date);
|
|
51
|
+
const endDate = endOfDay(date);
|
|
52
|
+
if (!prev?.start || prev.end) {
|
|
53
|
+
return {
|
|
54
|
+
start: startDate
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (isSameDay(startDate, prev.start)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
if (startDate < prev.start) {
|
|
61
|
+
return {
|
|
62
|
+
start: startDate,
|
|
63
|
+
end: endOfDay(prev.start)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
start: prev.start,
|
|
68
|
+
end: endDate
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
}, []);
|
|
72
|
+
const onChangeStartTime = useCallback(
|
|
73
|
+
(time) => {
|
|
74
|
+
setTempRange((prev) => {
|
|
75
|
+
const fallbackDate = prev?.start ?? visible;
|
|
76
|
+
return normalizeRange({
|
|
77
|
+
start: applyTime(fallbackDate, time),
|
|
78
|
+
end: prev?.end
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
[visible]
|
|
83
|
+
);
|
|
84
|
+
const onChangeEndTime = useCallback(
|
|
85
|
+
(time) => {
|
|
86
|
+
setTempRange((prev) => {
|
|
87
|
+
const fallbackDate = prev?.end ?? prev?.start ?? visible;
|
|
88
|
+
return normalizeRange({
|
|
89
|
+
start: prev?.start,
|
|
90
|
+
end: applyTime(fallbackDate, time)
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
[visible]
|
|
95
|
+
);
|
|
96
|
+
const onChangeTime = useCallback(
|
|
97
|
+
(side, time) => {
|
|
98
|
+
if (side === "start") {
|
|
99
|
+
onChangeStartTime(time);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
onChangeEndTime(time);
|
|
103
|
+
},
|
|
104
|
+
[onChangeEndTime, onChangeStartTime]
|
|
105
|
+
);
|
|
106
|
+
const onPressClear = useCallback(() => {
|
|
107
|
+
setTempRange(null);
|
|
108
|
+
}, []);
|
|
109
|
+
const onPressQuickDateOption = useCallback(
|
|
110
|
+
(optionValue) => {
|
|
111
|
+
if (optionValue instanceof Date) {
|
|
112
|
+
const nextDate = startOfDay(optionValue);
|
|
113
|
+
setTempRange({
|
|
114
|
+
start: nextDate
|
|
115
|
+
});
|
|
116
|
+
if (!isDateInMonth(nextDate, visible)) {
|
|
117
|
+
setVisible(nextDate);
|
|
118
|
+
}
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const nextRange = normalizeRange(optionValue);
|
|
122
|
+
setTempRange(nextRange);
|
|
123
|
+
const nextVisible = nextRange?.start ?? nextRange?.end;
|
|
124
|
+
if (nextVisible && !isDateInMonth(nextVisible, visible)) {
|
|
125
|
+
setVisible(nextVisible);
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
[visible]
|
|
129
|
+
);
|
|
130
|
+
useEffect(() => {
|
|
131
|
+
if (!isOpen && isClosed) {
|
|
132
|
+
setTempRange(selected);
|
|
133
|
+
}
|
|
134
|
+
}, [isOpen, selected, isClosed]);
|
|
135
|
+
return {
|
|
136
|
+
id,
|
|
137
|
+
isOpen,
|
|
138
|
+
visible,
|
|
139
|
+
tempRange,
|
|
140
|
+
selected,
|
|
141
|
+
setVisible,
|
|
142
|
+
setTempRange,
|
|
143
|
+
setSelected,
|
|
144
|
+
open,
|
|
145
|
+
close,
|
|
146
|
+
onPressOpen,
|
|
147
|
+
onPressApply,
|
|
148
|
+
onPressCancel,
|
|
149
|
+
onPressCalendarDay,
|
|
150
|
+
onChangeTime,
|
|
151
|
+
onChangeStartTime,
|
|
152
|
+
onChangeEndTime,
|
|
153
|
+
onPressClear,
|
|
154
|
+
onPressQuickDateOption,
|
|
155
|
+
syncState
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
export {
|
|
159
|
+
useDatetimeRangePicker
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=use-datetime-range-picker.hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-datetime-range-picker.hook.ts"],"sourcesContent":["import { useCallback, useEffect, useId, useState } from \"react\";\n\nimport { useControllableState, useIsOpen } from \"@impulse-ui-native/core\";\n\nimport { RangeSide, TimePickerValue, TimeRange } from \"../types\";\nimport {\n applyTime,\n endOfDay,\n getInitialVisibleDate,\n isDateInMonth,\n isSameDay,\n normalizeRange,\n startOfDay,\n} from \"../utils\";\n\ninterface UseDatetimeRangePickerStateOptions {\n value?: TimeRange | null;\n defaultValue?: TimeRange | null;\n onChange?: (value: TimeRange | null) => void;\n}\n\nexport function useDatetimeRangePicker({\n value,\n defaultValue,\n onChange,\n}: UseDatetimeRangePickerStateOptions) {\n const id = useId();\n\n const [visible, setVisible] = useState<Date>(\n getInitialVisibleDate(value, defaultValue),\n );\n\n const [tempRange, setTempRange] = useState<TimeRange | null>(\n value ?? defaultValue ?? null,\n );\n\n const [selected, setSelected] = useControllableState<TimeRange | null>({\n prop: value,\n defaultProp: defaultValue ?? null,\n onChange,\n });\n\n const { isOpen, isClosed, open, close } = useIsOpen();\n\n const onPressOpen = useCallback(() => {\n setTempRange(selected);\n open();\n }, [open, selected]);\n\n const syncState = useCallback(() => {\n setTempRange(selected);\n\n const nextVisible = selected?.start ?? selected?.end;\n\n if (nextVisible) {\n setVisible(nextVisible);\n }\n }, [selected]);\n\n const onPressApply = useCallback(() => {\n setSelected(normalizeRange(tempRange));\n close();\n }, [close, tempRange]);\n\n const onPressCancel = useCallback(() => {\n close();\n }, [close]);\n\n const onPressCalendarDay = useCallback((date: Date) => {\n setTempRange((prev) => {\n const startDate = startOfDay(date);\n const endDate = endOfDay(date);\n\n if (!prev?.start || prev.end) {\n return {\n start: startDate,\n };\n }\n\n if (isSameDay(startDate, prev.start)) {\n return null;\n }\n\n if (startDate < prev.start) {\n return {\n start: startDate,\n end: endOfDay(prev.start),\n };\n }\n\n return {\n start: prev.start,\n end: endDate,\n };\n });\n }, []);\n\n const onChangeStartTime = useCallback(\n (time: TimePickerValue | null) => {\n setTempRange((prev) => {\n const fallbackDate = prev?.start ?? visible;\n\n return normalizeRange({\n start: applyTime(fallbackDate, time),\n end: prev?.end,\n });\n });\n },\n [visible],\n );\n\n const onChangeEndTime = useCallback(\n (time: TimePickerValue | null) => {\n setTempRange((prev) => {\n const fallbackDate = prev?.end ?? prev?.start ?? visible;\n\n return normalizeRange({\n start: prev?.start,\n end: applyTime(fallbackDate, time),\n });\n });\n },\n [visible],\n );\n\n const onChangeTime = useCallback(\n (side: RangeSide, time: TimePickerValue | null) => {\n if (side === \"start\") {\n onChangeStartTime(time);\n return;\n }\n\n onChangeEndTime(time);\n },\n [onChangeEndTime, onChangeStartTime],\n );\n\n const onPressClear = useCallback(() => {\n setTempRange(null);\n }, []);\n\n const onPressQuickDateOption = useCallback(\n (optionValue: Date | TimeRange) => {\n if (optionValue instanceof Date) {\n const nextDate = startOfDay(optionValue);\n\n setTempRange({\n start: nextDate,\n });\n\n if (!isDateInMonth(nextDate, visible)) {\n setVisible(nextDate);\n }\n\n return;\n }\n\n const nextRange = normalizeRange(optionValue);\n\n setTempRange(nextRange);\n\n const nextVisible = nextRange?.start ?? nextRange?.end;\n\n if (nextVisible && !isDateInMonth(nextVisible, visible)) {\n setVisible(nextVisible);\n }\n },\n [visible],\n );\n\n useEffect(() => {\n if (!isOpen && isClosed) {\n setTempRange(selected);\n }\n }, [isOpen, selected, isClosed]);\n\n return {\n id,\n isOpen,\n visible,\n tempRange,\n selected,\n setVisible,\n setTempRange,\n setSelected,\n open,\n close,\n onPressOpen,\n onPressApply,\n onPressCancel,\n onPressCalendarDay,\n onChangeTime,\n onChangeStartTime,\n onChangeEndTime,\n onPressClear,\n onPressQuickDateOption,\n syncState,\n };\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,117 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
start?: Date;
|
|
16
|
-
end?: Date;
|
|
17
|
-
}
|
|
18
|
-
interface InfiniteRangeItem {
|
|
19
|
-
key: string;
|
|
20
|
-
value: number;
|
|
21
|
-
index: number;
|
|
22
|
-
}
|
|
23
|
-
interface QuickDateOption<Value> {
|
|
24
|
-
label: string;
|
|
25
|
-
value: Value;
|
|
26
|
-
}
|
|
27
|
-
interface PickerFlyoutActions {
|
|
28
|
-
clearable?: boolean;
|
|
29
|
-
onPressApply?: PressableCoreProps["onPress"];
|
|
30
|
-
onPressCancel?: PressableCoreProps["onPress"];
|
|
31
|
-
onPressClear?: PressableCoreProps["onPress"];
|
|
32
|
-
}
|
|
33
|
-
interface DatetimePickerCommonProps extends Partial<ControlComponentProps>, ControlComponentCommonProps {
|
|
34
|
-
clearable?: boolean;
|
|
35
|
-
}
|
|
36
|
-
interface DatetimePickerFlyoutCommonProps extends FlyoutProps, PickerFlyoutActions {
|
|
37
|
-
visible: Date;
|
|
38
|
-
quickDateOptions?: QuickDateOption<Date | TimeRange>[];
|
|
39
|
-
onPressQuickDateOption?: (value: Date | TimeRange) => void;
|
|
40
|
-
onChangeVisible: (date: Date) => void;
|
|
41
|
-
onPressCalendarDay: (date: Date) => void;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
interface DatetimePickerProps extends DatetimePickerCommonProps {
|
|
45
|
-
value?: Date | null;
|
|
46
|
-
defaultValue?: Date | null;
|
|
47
|
-
onChange?: (value: Date | null) => void;
|
|
48
|
-
quickDateOptions?: QuickDateOption<Date>[];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
interface DatetimeRangePickerProps extends DatetimePickerCommonProps {
|
|
52
|
-
value?: TimeRange | null;
|
|
53
|
-
defaultValue?: TimeRange | null;
|
|
54
|
-
onChange?: (value: TimeRange | null) => void;
|
|
55
|
-
quickDateOptions?: QuickDateOption<TimeRange>[];
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
declare const DatePicker: react.MemoExoticComponent<(props: DatetimePickerProps) => react_jsx_runtime.JSX.Element>;
|
|
59
|
-
|
|
60
|
-
declare const DateRangePicker: react.MemoExoticComponent<(props: DatetimeRangePickerProps) => react_jsx_runtime.JSX.Element>;
|
|
61
|
-
|
|
62
|
-
declare const DatetimePicker: react.MemoExoticComponent<(props: DatetimePickerProps) => react_jsx_runtime.JSX.Element>;
|
|
63
|
-
|
|
64
|
-
declare const DatetimeRangePicker: react.MemoExoticComponent<(props: DatetimeRangePickerProps) => react_jsx_runtime.JSX.Element>;
|
|
65
|
-
|
|
66
|
-
interface TimePickerProps extends DatetimePickerCommonProps {
|
|
67
|
-
value?: TimePickerValue | null;
|
|
68
|
-
defaultValue?: TimePickerValue | null;
|
|
69
|
-
onChange?: (value: TimePickerValue | null) => void;
|
|
70
|
-
}
|
|
71
|
-
declare const TimePicker: react.MemoExoticComponent<(props: TimePickerProps) => react_jsx_runtime.JSX.Element>;
|
|
72
|
-
|
|
73
|
-
declare function getMonthNames(locale?: string, format?: "long" | "short" | "narrow"): string[];
|
|
74
|
-
declare function getDayNames(locale?: string, format?: "long" | "short" | "narrow"): string[];
|
|
75
|
-
declare function getYears(): number[];
|
|
76
|
-
declare function getMonthCalendarMatrix(year: number, month: number): Date[][];
|
|
77
|
-
declare function createInfiniteRange(max: number, repeats: number): any[];
|
|
78
|
-
declare function getInfiniteRangeInitialIndex(max: number, targetValue: number, repeats: number): number;
|
|
79
|
-
declare function getClosestIndexByValue(data: number[], value: number, currentIndex: number): number;
|
|
80
|
-
declare function formatTimepickerValue(value: TimePickerValue): string;
|
|
81
|
-
declare function applyTime(date: Date, time: TimePickerValue | null): Date;
|
|
82
|
-
declare function getInitialVisibleDate(value?: TimeRange | null, defaultValue?: TimeRange | null): Date;
|
|
83
|
-
declare function normalizeRange(range: TimeRange | null): TimeRange | null;
|
|
84
|
-
declare function endOfDay(date: Date): Date;
|
|
85
|
-
declare function addDays(date: Date, days: number): Date;
|
|
86
|
-
declare function startOfWeek(date: Date): Date;
|
|
87
|
-
declare function endOfWeek(date: Date): Date;
|
|
88
|
-
declare function startOfDay(date: Date): Date;
|
|
89
|
-
|
|
90
|
-
interface CalendarDayState {
|
|
91
|
-
isSelected: boolean;
|
|
92
|
-
isRangeStart: boolean;
|
|
93
|
-
isInRange: boolean;
|
|
94
|
-
isRangeEnd: boolean;
|
|
95
|
-
isCurrentMonth: boolean;
|
|
96
|
-
}
|
|
97
|
-
interface GetCalendarDayStateOptions {
|
|
98
|
-
date: Date;
|
|
99
|
-
visible: Date;
|
|
100
|
-
value?: Date | TimeRange | null;
|
|
101
|
-
}
|
|
102
|
-
declare function isTimeRange(value: unknown): value is TimeRange;
|
|
103
|
-
declare function isSameDay(left: Date, right: Date): boolean;
|
|
104
|
-
declare function isDateInMonth(date: Date, monthDate: Date): boolean;
|
|
105
|
-
declare function isBeforeDay(left: Date, right: Date): boolean;
|
|
106
|
-
declare function isAfterDay(left: Date, right: Date): boolean;
|
|
107
|
-
declare function isRangeStart(date: Date, rangeStart?: Date | null): boolean;
|
|
108
|
-
declare function isRangeEnd(date: Date, rangeEnd?: Date | null): boolean;
|
|
109
|
-
declare function isInRange(date: Date, rangeStart?: Date | null, rangeEnd?: Date | null): boolean;
|
|
110
|
-
declare function isSelected(date: Date, selected?: Date | null, rangeStart?: Date | null, rangeEnd?: Date | null): boolean;
|
|
111
|
-
declare function getCalendarDayState({ date, visible, value, }: GetCalendarDayStateOptions): CalendarDayState;
|
|
112
|
-
declare function createCalendarRange(date: Date, previousRange?: TimeRange): TimeRange | undefined;
|
|
113
|
-
declare function getQuickOptionKey(value: Date | TimeRange): string | undefined;
|
|
114
|
-
declare function isDateRange(value: unknown): value is TimeRange;
|
|
115
|
-
declare function getDateKey(date: Date): string;
|
|
116
|
-
|
|
117
|
-
export { type CalendarDayState, DatePicker, DateRangePicker, DatetimePicker, type DatetimePickerCommonProps, type DatetimePickerFlyoutCommonProps, type DatetimePickerProps, DatetimeRangePicker, type DatetimeRangePickerProps, type GetCalendarDayStateOptions, type InfiniteRangeItem, type PickerColumnType, type PickerFlyoutActions, type QuickDateOption, type RangeSide, type TimeFormat, TimePicker, type TimePickerValue, type TimeRange, addDays, applyTime, createCalendarRange, createInfiniteRange, endOfDay, endOfWeek, formatTimepickerValue, getCalendarDayState, getClosestIndexByValue, getDateKey, getDayNames, getInfiniteRangeInitialIndex, getInitialVisibleDate, getMonthCalendarMatrix, getMonthNames, getQuickOptionKey, getYears, isAfterDay, isBeforeDay, isDateInMonth, isDateRange, isInRange, isRangeEnd, isRangeStart, isSameDay, isSelected, isTimeRange, normalizeRange, startOfDay, startOfWeek };
|
|
1
|
+
export { DatePicker } from './components/date/date-picker.mjs';
|
|
2
|
+
export { DateRangePicker } from './components/date/date-range-picker.mjs';
|
|
3
|
+
export { DatetimePicker } from './components/datetime/datetime-picker.mjs';
|
|
4
|
+
export { DatetimeRangePicker } from './components/datetime/datetime-range-picker.mjs';
|
|
5
|
+
export { TimePicker } from './components/time/time-picker.mjs';
|
|
6
|
+
export { DatetimePickerCommonProps, DatetimePickerFlyoutCommonProps, InfiniteRangeItem, PickerColumnType, PickerFlyoutActions, QuickDateOption, RangeSide, TimeFormat, TimePickerValue, TimeRange } from './types/common.types.mjs';
|
|
7
|
+
export { DatetimePickerProps } from './types/datetime-picker.types.mjs';
|
|
8
|
+
export { DatetimeRangePickerProps } from './types/datetime-range-picker.types.mjs';
|
|
9
|
+
export { addDays, applyTime, createInfiniteRange, endOfDay, endOfWeek, formatTimepickerValue, getClosestIndexByValue, getDayNames, getInfiniteRangeInitialIndex, getInitialVisibleDate, getMonthCalendarMatrix, getMonthNames, getYears, normalizeRange, startOfDay, startOfWeek } from './utils/datetime.utils.mjs';
|
|
10
|
+
export { CalendarDayState, GetCalendarDayStateOptions, createCalendarRange, getCalendarDayState, getDateKey, getQuickOptionKey, isAfterDay, isBeforeDay, isDateInMonth, isDateRange, isInRange, isRangeEnd, isRangeStart, isSameDay, isSelected, isTimeRange } from './utils/calendar-day.utils.mjs';
|
|
11
|
+
import 'react';
|
|
12
|
+
import 'react/jsx-runtime';
|
|
13
|
+
import '@impulse-ui-native/flyout';
|
|
14
|
+
import '@impulse-ui-native/primitives';
|