pixelize-design-library 2.2.53 → 2.2.55
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/DatePicker/CalendarPanel.js +15 -11
- package/dist/Components/DatePicker/DatePickerProps.d.ts +1 -0
- package/dist/Components/DatePicker/RangeDatePicker.js +41 -12
- package/dist/Components/DatePicker/SingleDatePicker.js +2 -2
- package/dist/Components/DatePicker/TimePicker.js +8 -8
- package/dist/Components/DatePicker/TimePickerInput.js +44 -2
- package/dist/index.d.ts +2 -3
- package/dist/index.js +4 -5
- package/package.json +1 -1
|
@@ -42,25 +42,25 @@ var CalendarPanel = function (_a) {
|
|
|
42
42
|
(disablePastDates && isBefore(thisDay, today) && !isSameDay(thisDay, today)) ||
|
|
43
43
|
(disableFutureDates && isAfter(thisDay, today) && !isSameDay(thisDay, today)) ||
|
|
44
44
|
(disableToday && isToday);
|
|
45
|
-
days.push(react_1.default.createElement(Button_1.default, { key: thisDay.toString(), size: "
|
|
45
|
+
days.push(react_1.default.createElement(Button_1.default, { key: thisDay.toString(), size: "xs", variant: isStart || isEnd || isSelected ? "solid" : isInRange ? "outline" : "ghost", colorScheme: isStart || isEnd || isInRange || isSelected ? "primary" : "gray", opacity: isInCurrentMonth ? 1 : 0.45, onClick: function () { return !disabled && onDaySelect(new Date(thisDay)); }, isDisabled: disabled, border: isToday ? "0.125rem solid ".concat(theme.colors.primary[500]) : undefined, borderRadius: "md" }, (0, date_fns_1.format)(thisDay, "d")));
|
|
46
46
|
day = (0, date_fns_1.addDays)(day, 1);
|
|
47
47
|
};
|
|
48
48
|
for (var i = 0; i < 7; i++) {
|
|
49
49
|
_loop_1(i);
|
|
50
50
|
}
|
|
51
|
-
rows.push(react_1.default.createElement(react_2.Grid, { key: day.toString(), templateColumns: "repeat(7, 1fr)", gap:
|
|
51
|
+
rows.push(react_1.default.createElement(react_2.Grid, { key: day.toString(), templateColumns: "repeat(7, 1fr)", gap: 0.5 }, days));
|
|
52
52
|
}
|
|
53
53
|
return rows;
|
|
54
54
|
};
|
|
55
55
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
56
|
-
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", mb:
|
|
57
|
-
react_1.default.createElement(Button_1.default, { variant: "ghost", size: "
|
|
58
|
-
react_1.default.createElement(lucide_react_1.ChevronLeftIcon, { size:
|
|
56
|
+
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", mb: 3 },
|
|
57
|
+
react_1.default.createElement(Button_1.default, { variant: "ghost", size: "xs", onClick: function () { return setCurrentMonth(function (prev) { return new Date(prev.getFullYear(), prev.getMonth() - 1, 1); }); }, "aria-label": "Previous month" },
|
|
58
|
+
react_1.default.createElement(lucide_react_1.ChevronLeftIcon, { size: 18 })),
|
|
59
59
|
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", gap: 2 },
|
|
60
60
|
react_1.default.createElement(react_2.Box, { as: "select", value: currentMonth.getMonth(), onChange: function (e) {
|
|
61
61
|
var newMonth = parseInt(e.target.value, 10);
|
|
62
62
|
setCurrentMonth(function (prev) { return new Date(prev.getFullYear(), newMonth, 1); });
|
|
63
|
-
}, border: "1px solid", borderColor: "gray.300", borderRadius: "md", px:
|
|
63
|
+
}, border: "1px solid", borderColor: "gray.300", borderRadius: "md", px: 1.5, py: 0.5, fontSize: "xs", fontWeight: "semibold", cursor: "pointer", bg: "white", outline: "none", _hover: {
|
|
64
64
|
borderColor: "gray.400",
|
|
65
65
|
borderWidth: "1px",
|
|
66
66
|
borderStyle: "solid",
|
|
@@ -72,6 +72,8 @@ var CalendarPanel = function (_a) {
|
|
|
72
72
|
boxShadow: "0 0 0 1px ".concat(theme.colors.primary[500]),
|
|
73
73
|
}, style: {
|
|
74
74
|
border: "1px solid #CBD5E0",
|
|
75
|
+
fontSize: "12px",
|
|
76
|
+
lineHeight: "1.25rem",
|
|
75
77
|
WebkitAppearance: "menulist",
|
|
76
78
|
MozAppearance: "menulist",
|
|
77
79
|
appearance: "menulist",
|
|
@@ -79,7 +81,7 @@ var CalendarPanel = function (_a) {
|
|
|
79
81
|
react_1.default.createElement(react_2.Box, { as: "select", value: currentMonth.getFullYear(), onChange: function (e) {
|
|
80
82
|
var newYear = parseInt(e.target.value, 10);
|
|
81
83
|
setCurrentMonth(function (prev) { return new Date(newYear, prev.getMonth(), 1); });
|
|
82
|
-
}, border: "1px solid", borderColor: "gray.300", borderRadius: "md", px:
|
|
84
|
+
}, border: "1px solid", borderColor: "gray.300", borderRadius: "md", px: 1.5, py: 0.5, fontSize: "xs", fontWeight: "semibold", cursor: "pointer", bg: "white", outline: "none", _hover: {
|
|
83
85
|
borderColor: "gray.400",
|
|
84
86
|
borderWidth: "1px",
|
|
85
87
|
borderStyle: "solid",
|
|
@@ -91,6 +93,8 @@ var CalendarPanel = function (_a) {
|
|
|
91
93
|
boxShadow: "0 0 0 1px ".concat(theme.colors.primary[500]),
|
|
92
94
|
}, style: {
|
|
93
95
|
border: "1px solid #CBD5E0",
|
|
96
|
+
fontSize: "12px",
|
|
97
|
+
lineHeight: "1.25rem",
|
|
94
98
|
WebkitAppearance: "menulist",
|
|
95
99
|
MozAppearance: "menulist",
|
|
96
100
|
appearance: "menulist",
|
|
@@ -99,14 +103,14 @@ var CalendarPanel = function (_a) {
|
|
|
99
103
|
return (react_1.default.createElement("option", { key: year, value: year }, year));
|
|
100
104
|
}))),
|
|
101
105
|
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", gap: 1 },
|
|
102
|
-
!isViewingCurrentMonth && (react_1.default.createElement(Button_1.default, { variant: "ghost", size: "
|
|
106
|
+
!isViewingCurrentMonth && (react_1.default.createElement(Button_1.default, { variant: "ghost", size: "xs", onClick: function () {
|
|
103
107
|
setCurrentMonth(function (_prev) { return new Date(today.getFullYear(), today.getMonth(), 1); });
|
|
104
108
|
if (!disableToday) {
|
|
105
109
|
onDaySelect(new Date(today));
|
|
106
110
|
}
|
|
107
|
-
}, "aria-label": "Today", sx: { fontSize: "0.
|
|
108
|
-
react_1.default.createElement(Button_1.default, { variant: "ghost", size: "
|
|
109
|
-
react_1.default.createElement(lucide_react_1.ChevronRightIcon, { size:
|
|
111
|
+
}, "aria-label": "Today", sx: { fontSize: "0.7rem", px: 2 }, isDisabled: disableToday }, "Today")),
|
|
112
|
+
react_1.default.createElement(Button_1.default, { variant: "ghost", size: "xs", onClick: function () { return setCurrentMonth(function (prev) { return new Date(prev.getFullYear(), prev.getMonth() + 1, 1); }); }, "aria-label": "Next month" },
|
|
113
|
+
react_1.default.createElement(lucide_react_1.ChevronRightIcon, { size: 18 })))), renderWeekdays !== null && renderWeekdays !== void 0 ? renderWeekdays : (react_1.default.createElement(react_2.Grid, { templateColumns: "repeat(7, 1fr)", gap: 0.5, fontWeight: "semibold", mb: 1 }, ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map(function (day) { return (react_1.default.createElement(react_2.Box, { textAlign: "center", key: day, fontSize: "xs", color: "gray.600", py: 1 }, day)); }))),
|
|
110
114
|
renderDays()));
|
|
111
115
|
};
|
|
112
116
|
exports.CalendarPanel = CalendarPanel;
|
|
@@ -37,6 +37,7 @@ var HelperText_1 = __importDefault(require("../Common/HelperText"));
|
|
|
37
37
|
var ErrorMessage_1 = __importDefault(require("../Common/ErrorMessage"));
|
|
38
38
|
var CalendarPanel_1 = __importDefault(require("./CalendarPanel"));
|
|
39
39
|
var useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
40
|
+
var TimePicker_1 = __importDefault(require("./TimePicker"));
|
|
40
41
|
var TimePickerInput_1 = require("./TimePickerInput");
|
|
41
42
|
// helper to set time on date while preserving date part
|
|
42
43
|
var setTimeFrom = function (base, time) {
|
|
@@ -59,10 +60,24 @@ var RangeDatePicker = function (props) {
|
|
|
59
60
|
var _v = (0, react_1.useState)((_d = selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to) !== null && _d !== void 0 ? _d : null), tempRangeEnd = _v[0], setTempRangeEnd = _v[1];
|
|
60
61
|
var _w = (0, react_1.useState)(true), selectingStart = _w[0], setSelectingStart = _w[1];
|
|
61
62
|
var _x = (0, react_1.useState)(""), inputValue = _x[0], setInputValue = _x[1];
|
|
62
|
-
var formatHasTime = (0, react_1.useMemo)(function () {
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
var formatHasTime = (0, react_1.useMemo)(function () { return /(h{1,2}|H{1,2})/.test(dateFormat); }, [dateFormat]);
|
|
64
|
+
var formatHasSeconds = (0, react_1.useMemo)(function () { return /s{1,2}/i.test(dateFormat); }, [dateFormat]);
|
|
65
|
+
var shouldUseSelectTimePicker = formatHasTime && !formatHasSeconds;
|
|
66
|
+
var timePickerFormat = (0, react_1.useMemo)(function () {
|
|
67
|
+
var has24Hour = /H{1,2}/.test(dateFormat);
|
|
68
|
+
var has12Hour = !has24Hour && /h{1,2}/.test(dateFormat);
|
|
69
|
+
var hasMeridiem = /a/i.test(dateFormat);
|
|
70
|
+
if (has24Hour) {
|
|
71
|
+
return "HH:mm";
|
|
72
|
+
}
|
|
73
|
+
if (has12Hour) {
|
|
74
|
+
var base = "hh:mm";
|
|
75
|
+
return hasMeridiem ? "".concat(base, " a") : base;
|
|
76
|
+
}
|
|
77
|
+
return "HH:mm";
|
|
65
78
|
}, [dateFormat]);
|
|
79
|
+
var startTimeBaseDate = (0, react_1.useMemo)(function () { var _a; return (_a = tempRangeStart !== null && tempRangeStart !== void 0 ? tempRangeStart : tempRangeEnd) !== null && _a !== void 0 ? _a : new Date(); }, [tempRangeStart, tempRangeEnd]);
|
|
80
|
+
var endTimeBaseDate = (0, react_1.useMemo)(function () { var _a; return (_a = tempRangeEnd !== null && tempRangeEnd !== void 0 ? tempRangeEnd : tempRangeStart) !== null && _a !== void 0 ? _a : new Date(); }, [tempRangeEnd, tempRangeStart]);
|
|
66
81
|
(0, react_1.useEffect)(function () {
|
|
67
82
|
if ((selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.from) && (selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to)) {
|
|
68
83
|
var start = new Date(selectedRange.from);
|
|
@@ -176,25 +191,39 @@ var RangeDatePicker = function (props) {
|
|
|
176
191
|
react_1.default.createElement(react_2.PopoverContent, { width: "auto", p: 4, ref: popoverRef, boxShadow: "lg" },
|
|
177
192
|
react_1.default.createElement(react_2.PopoverBody, null,
|
|
178
193
|
react_1.default.createElement(CalendarPanel_1.default, { currentMonth: currentMonth, setCurrentMonth: function (updater) { return setCurrentMonthState(function (prev) { return updater(prev); }); }, today: today, isRange: true, tempDate: null, tempRangeStart: tempRangeStart, tempRangeEnd: tempRangeEnd, isSameDay: date_fns_1.isSameDay, isBefore: date_fns_1.isBefore, isAfter: date_fns_1.isAfter, minDate: minDate, maxDate: maxDate, disablePastDates: disablePastDates, disableFutureDates: disableFutureDates, disableToday: disableToday, onDaySelect: handleDaySelect }),
|
|
179
|
-
formatHasTime && (react_1.default.createElement(react_2.Box, { mt:
|
|
194
|
+
formatHasTime && (react_1.default.createElement(react_2.Box, { mt: 3, display: "grid", gridTemplateColumns: "1fr 1fr", gap: 2 },
|
|
180
195
|
react_1.default.createElement(react_2.Box, null,
|
|
181
|
-
react_1.default.createElement(react_2.Box, { fontSize: "
|
|
182
|
-
react_1.default.createElement(
|
|
196
|
+
react_1.default.createElement(react_2.Box, { fontSize: "xs", color: "gray.600", mb: 1 }, "Start time"),
|
|
197
|
+
shouldUseSelectTimePicker ? (react_1.default.createElement(TimePicker_1.default, { date: startTimeBaseDate, onChange: function (updated) {
|
|
198
|
+
if (!tempRangeStart) {
|
|
199
|
+
setTempRangeStart(updated);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
var withStartDate = new Date(tempRangeStart.getFullYear(), tempRangeStart.getMonth(), tempRangeStart.getDate(), updated.getHours(), updated.getMinutes(), 0, 0);
|
|
203
|
+
setTempRangeStart(withStartDate);
|
|
204
|
+
}, dateFormat: dateFormat, disabled: disabled || !tempRangeStart })) : (react_1.default.createElement(TimePickerInput_1.TimePickerInput, { value: tempRangeStart, onChange: function (t) {
|
|
183
205
|
if (!t) {
|
|
184
206
|
setTempRangeStart(null);
|
|
185
207
|
return;
|
|
186
208
|
}
|
|
187
|
-
setTempRangeStart(setTimeFrom(
|
|
188
|
-
}, dateFormat:
|
|
209
|
+
setTempRangeStart(setTimeFrom(startTimeBaseDate, t));
|
|
210
|
+
}, dateFormat: timePickerFormat, disabled: disabled || !tempRangeStart }))),
|
|
189
211
|
react_1.default.createElement(react_2.Box, null,
|
|
190
|
-
react_1.default.createElement(react_2.Box, { fontSize: "
|
|
191
|
-
react_1.default.createElement(
|
|
212
|
+
react_1.default.createElement(react_2.Box, { fontSize: "xs", color: "gray.600", mb: 1 }, "End time"),
|
|
213
|
+
shouldUseSelectTimePicker ? (react_1.default.createElement(TimePicker_1.default, { date: endTimeBaseDate, onChange: function (updated) {
|
|
214
|
+
if (!tempRangeEnd) {
|
|
215
|
+
setTempRangeEnd(updated);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
var withEndDate = new Date(tempRangeEnd.getFullYear(), tempRangeEnd.getMonth(), tempRangeEnd.getDate(), updated.getHours(), updated.getMinutes(), 0, 0);
|
|
219
|
+
setTempRangeEnd(withEndDate);
|
|
220
|
+
}, dateFormat: dateFormat, disabled: disabled || !tempRangeEnd })) : (react_1.default.createElement(TimePickerInput_1.TimePickerInput, { value: tempRangeEnd, onChange: function (t) {
|
|
192
221
|
if (!t) {
|
|
193
222
|
setTempRangeEnd(null);
|
|
194
223
|
return;
|
|
195
224
|
}
|
|
196
|
-
setTempRangeEnd(setTimeFrom(
|
|
197
|
-
}, dateFormat:
|
|
225
|
+
setTempRangeEnd(setTimeFrom(endTimeBaseDate, t));
|
|
226
|
+
}, dateFormat: timePickerFormat, disabled: disabled || !tempRangeEnd }))))),
|
|
198
227
|
react_1.default.createElement(react_2.Box, { display: "flex", justifyContent: "space-between", mt: 4, pt: 4, borderTop: "1px solid", borderColor: "gray.200" },
|
|
199
228
|
react_1.default.createElement(Button_1.default, { size: "sm", variant: "ghost", onClick: handleClear }, "Clear"),
|
|
200
229
|
react_1.default.createElement(Button_1.default, { size: "sm", colorScheme: "primary", onClick: requestClose }, "OK"))))),
|
|
@@ -966,7 +966,7 @@ var SingleDatePicker = function (props) {
|
|
|
966
966
|
react_1.default.createElement(react_2.PopoverContent, { width: "auto", p: 4, ref: popoverRef, boxShadow: "lg" },
|
|
967
967
|
react_1.default.createElement(react_2.PopoverBody, null,
|
|
968
968
|
showDate && (react_1.default.createElement(CalendarPanel_1.default, { currentMonth: currentMonth, setCurrentMonth: function (updater) { return setCurrentMonth(function (prev) { return updater(prev); }); }, today: today, isRange: false, tempDate: tempDate, tempRangeStart: null, tempRangeEnd: null, isSameDay: date_fns_1.isSameDay, isBefore: date_fns_1.isBefore, isAfter: date_fns_1.isAfter, minDate: minDate, maxDate: maxDate, disablePastDates: disablePastDates, disableFutureDates: disableFutureDates, disableToday: disableToday, onDaySelect: handleDaySelect })),
|
|
969
|
-
showTime && (react_1.default.createElement(react_2.Box, { mt: showDate ?
|
|
969
|
+
showTime && (react_1.default.createElement(react_2.Box, { mt: showDate ? 3 : 0 }, resolvedPickerType === "time" ? (react_1.default.createElement(TimePickerInput_1.TimePickerInput, { value: tempDate, onChange: function (updatedDate) {
|
|
970
970
|
setTempDate(updatedDate);
|
|
971
971
|
setInputValue(updatedDate ? (0, date_fns_1.format)(updatedDate, resolvedDateFormat) : "");
|
|
972
972
|
setIsTyping(false);
|
|
@@ -974,7 +974,7 @@ var SingleDatePicker = function (props) {
|
|
|
974
974
|
setTempDate(updatedDate);
|
|
975
975
|
setInputValue((0, date_fns_1.format)(updatedDate, resolvedDateFormat));
|
|
976
976
|
setIsTyping(false);
|
|
977
|
-
} })))),
|
|
977
|
+
}, disabled: disabled })))),
|
|
978
978
|
react_1.default.createElement(react_2.Box, { display: "flex", justifyContent: "space-between", mt: 4, pt: 4, borderTop: "1px solid", borderColor: "gray.200" },
|
|
979
979
|
react_1.default.createElement(Button_1.default, { size: "sm", variant: "ghost", onClick: function () {
|
|
980
980
|
setTempDate(null);
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
var react_1 = __importStar(require("react"));
|
|
27
27
|
var react_2 = require("@chakra-ui/react");
|
|
28
28
|
var TimePicker = function (_a) {
|
|
29
|
-
var date = _a.date, onChange = _a.onChange, dateFormat = _a.dateFormat;
|
|
29
|
+
var date = _a.date, onChange = _a.onChange, dateFormat = _a.dateFormat, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
|
|
30
30
|
var is12HourFormat = /(hh|h).*a/i.test(dateFormat);
|
|
31
31
|
var deriveDisplayHour = function (rawHour) {
|
|
32
32
|
if (!is12HourFormat)
|
|
@@ -35,9 +35,9 @@ var TimePicker = function (_a) {
|
|
|
35
35
|
return mod === 0 ? 12 : mod;
|
|
36
36
|
};
|
|
37
37
|
var initialHour = deriveDisplayHour(date.getHours());
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
var
|
|
38
|
+
var _c = (0, react_1.useState)(initialHour), hour = _c[0], setHour = _c[1];
|
|
39
|
+
var _d = (0, react_1.useState)(date.getMinutes()), minute = _d[0], setMinute = _d[1];
|
|
40
|
+
var _e = (0, react_1.useState)(is12HourFormat ? (date.getHours() >= 12 ? "PM" : "AM") : ""), ampm = _e[0], setAmpm = _e[1];
|
|
41
41
|
(0, react_1.useEffect)(function () {
|
|
42
42
|
var rawHour = date.getHours();
|
|
43
43
|
setHour(deriveDisplayHour(rawHour));
|
|
@@ -75,13 +75,13 @@ var TimePicker = function (_a) {
|
|
|
75
75
|
updateTime(hour, minute, newMeridiem);
|
|
76
76
|
};
|
|
77
77
|
var displayHour = is12HourFormat ? (hour % 12 === 0 ? 12 : hour % 12) : hour;
|
|
78
|
-
return (react_1.default.createElement(react_2.HStack, { spacing:
|
|
79
|
-
react_1.default.createElement(react_2.Select, { value: displayHour, onChange: handleHourChange, w: "
|
|
78
|
+
return (react_1.default.createElement(react_2.HStack, { spacing: 1.5, mt: 3 },
|
|
79
|
+
react_1.default.createElement(react_2.Select, { value: displayHour, onChange: handleHourChange, w: "3.5rem", size: "sm", isDisabled: disabled }, Array.from({ length: is12HourFormat ? 12 : 24 }, function (_, i) {
|
|
80
80
|
var value = is12HourFormat ? i + 1 : i;
|
|
81
81
|
return (react_1.default.createElement("option", { key: value, value: value }, value.toString().padStart(2, "0")));
|
|
82
82
|
})),
|
|
83
|
-
react_1.default.createElement(react_2.Select, { value: minute, onChange: handleMinuteChange, w: "
|
|
84
|
-
is12HourFormat && (react_1.default.createElement(react_2.Select, { value: ampm, onChange: handleAmpmChange, w: "
|
|
83
|
+
react_1.default.createElement(react_2.Select, { value: minute, onChange: handleMinuteChange, w: "3.5rem", size: "sm", isDisabled: disabled }, Array.from({ length: 60 }, function (_, i) { return (react_1.default.createElement("option", { key: i, value: i }, i.toString().padStart(2, "0"))); })),
|
|
84
|
+
is12HourFormat && (react_1.default.createElement(react_2.Select, { value: ampm, onChange: handleAmpmChange, w: "3.8rem", size: "sm", isDisabled: disabled },
|
|
85
85
|
react_1.default.createElement("option", { value: "AM" }, "AM"),
|
|
86
86
|
react_1.default.createElement("option", { value: "PM" }, "PM")))));
|
|
87
87
|
};
|
|
@@ -126,7 +126,7 @@ var TimePickerInput = function (_a) {
|
|
|
126
126
|
var is12Hour = (0, react_1.useMemo)(function () { return /h{1,2}/i.test(dateFormat) && !/H{1,2}/.test(dateFormat); }, [dateFormat]);
|
|
127
127
|
var placeholderText = (0, react_1.useMemo)(function () { return placeholder || formatToPlaceholder(dateFormat); }, [placeholder, dateFormat]);
|
|
128
128
|
var ampmRef = (0, react_1.useRef)("AM");
|
|
129
|
-
var _f = (0, react_1.useState)(""), ampm = _f[0], setAmpm = _f[1];
|
|
129
|
+
var _f = (0, react_1.useState)("AM"), ampm = _f[0], setAmpm = _f[1];
|
|
130
130
|
var setInputValueAndCaret = (0, react_1.useCallback)(function (formatted, caretDigitIndex) {
|
|
131
131
|
requestAnimationFrame(function () {
|
|
132
132
|
var el = inputRef.current;
|
|
@@ -156,6 +156,38 @@ var TimePickerInput = function (_a) {
|
|
|
156
156
|
}
|
|
157
157
|
return { digits: clamped, nextDigitIndex: nextDigitIndex };
|
|
158
158
|
}, [dateFormat, is12Hour, onChange, setInputValueAndCaret]);
|
|
159
|
+
var updateAmpmValue = (0, react_1.useCallback)(function (next) {
|
|
160
|
+
if (!is12Hour)
|
|
161
|
+
return;
|
|
162
|
+
var upperNext = next.toUpperCase() === "PM" ? "PM" : "AM";
|
|
163
|
+
var formattedDigits = formatDigits(digitsRef.current);
|
|
164
|
+
ampmRef.current = upperNext;
|
|
165
|
+
setAmpm(upperNext);
|
|
166
|
+
if (digitsRef.current.length === 4) {
|
|
167
|
+
var parsed = (0, date_fns_1.parse)("".concat(formattedDigits, " ").concat(upperNext), dateFormat, new Date());
|
|
168
|
+
if ((0, date_fns_1.isValid)(parsed))
|
|
169
|
+
onChange(parsed);
|
|
170
|
+
}
|
|
171
|
+
var el = inputRef.current;
|
|
172
|
+
if (!el)
|
|
173
|
+
return;
|
|
174
|
+
if (isFocusedRef.current) {
|
|
175
|
+
el.value = formattedDigits;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
el.value = formattedDigits ? "".concat(formattedDigits, " ").concat(upperNext) : "";
|
|
179
|
+
}
|
|
180
|
+
}, [dateFormat, is12Hour, onChange]);
|
|
181
|
+
var toggleAmpm = (0, react_1.useCallback)(function () {
|
|
182
|
+
if (!is12Hour)
|
|
183
|
+
return;
|
|
184
|
+
var current = (ampmRef.current || ampm || "AM").toUpperCase();
|
|
185
|
+
var next = current === "AM" ? "PM" : "AM";
|
|
186
|
+
updateAmpmValue(next);
|
|
187
|
+
}, [ampm, is12Hour, updateAmpmValue]);
|
|
188
|
+
var setAmpmFromKey = (0, react_1.useCallback)(function (next) {
|
|
189
|
+
updateAmpmValue(next);
|
|
190
|
+
}, [updateAmpmValue]);
|
|
159
191
|
var handleDigitInput = (0, react_1.useCallback)(function (digit) {
|
|
160
192
|
var _a, _b;
|
|
161
193
|
var el = inputRef.current;
|
|
@@ -274,11 +306,21 @@ var TimePickerInput = function (_a) {
|
|
|
274
306
|
handleArrow("right");
|
|
275
307
|
return;
|
|
276
308
|
}
|
|
309
|
+
if (is12Hour && (key === "ArrowUp" || key === "ArrowDown")) {
|
|
310
|
+
e.preventDefault();
|
|
311
|
+
toggleAmpm();
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
if (is12Hour && (key.toLowerCase() === "a" || key.toLowerCase() === "p")) {
|
|
315
|
+
e.preventDefault();
|
|
316
|
+
setAmpmFromKey(key.toLowerCase() === "a" ? "AM" : "PM");
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
277
319
|
if (key === "Tab" || key === "Shift" || key === "Enter" || key === "Escape") {
|
|
278
320
|
return;
|
|
279
321
|
}
|
|
280
322
|
e.preventDefault();
|
|
281
|
-
}, [disabled, handleDigitInput, handleBackspace, handleDelete, handleArrow]);
|
|
323
|
+
}, [disabled, handleDigitInput, handleBackspace, handleDelete, handleArrow, is12Hour, toggleAmpm, setAmpmFromKey]);
|
|
282
324
|
var handleFocus = (0, react_1.useCallback)(function () {
|
|
283
325
|
setIsFocused(true);
|
|
284
326
|
isFocusedRef.current = true;
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,6 @@ import ButtonGroupIcon from "./Components/ButtonGroupIcon/ButtonGroupIcon";
|
|
|
9
9
|
import Card from "./Components/Card/Card";
|
|
10
10
|
import Checkbox from "./Components/Checkbox/Checkbox";
|
|
11
11
|
import ContactForm from "./Components/ContactForm/ContactForm";
|
|
12
|
-
import DatePicker from "./Components/DatePicker/DatePicker";
|
|
13
12
|
import Drawer, { DrawerHeader, DrawerBody, DrawerFooter } from "./Components/Drawer/Drawer";
|
|
14
13
|
import Dropdown from "./Components/Dropdown/DropDown";
|
|
15
14
|
import Editor from "./Components/Editor/Editor";
|
|
@@ -59,6 +58,6 @@ import { InputSwitch } from "./Components/Input/Switch/InputSwitch";
|
|
|
59
58
|
import PaymentCard from "./Components/Card/PaymentCard/PaymentCard";
|
|
60
59
|
import ApexLineChart from "./Components/Apexcharts/ApexLineChart/ApexLineChart";
|
|
61
60
|
import Notification from "./Components/Notification/Notification";
|
|
62
|
-
import
|
|
63
|
-
export { Accordian, AlertDialog, ApexBarChart, ApexPieChart, ApexPolarChart, ApexLineChart, Breadcrumbs, Button, ButtonGroupIcon, Card, Checkbox, ContactForm, DatePicker,
|
|
61
|
+
import DatePicker from "./Components/DatePicker/ThemeDatePicker";
|
|
62
|
+
export { Accordian, AlertDialog, ApexBarChart, ApexPieChart, ApexPolarChart, ApexLineChart, Breadcrumbs, Button, ButtonGroupIcon, Card, Checkbox, ContactForm, DatePicker, Drawer, DrawerHeader, DrawerBody, DrawerFooter, Dropdown, Editor, FileUpload, FileUploader, FormWrapper, Header, HeaderActions, InputTextArea, InputSwitch, KanbanBoard, Loading, Modal, ModalHeader, ModalBody, ModalFooter, NavigationBar, Notification, NoteTextArea, MultiSelect, NumberInput, PaymentCard, PhoneNumberInput, PinInput, ProductCard, ProductDetails, ProfileCard, ProfileCardHeader, ProfileCardBody, ProfileCardFooter, ProfilePhotoViewer, ProgressBar, RadioButton, RadioButtonGroup, Reorder, Search, Select, SearchSelect, SelectSearch, SideBar, Slider, Skeletons, Switch, Table, TableToggle, Tag, TextInput, Timeline, Toaster, ToolTip, useToaster, VerifyEmailOtp, useCustomTheme, ThemesList, debounce, };
|
|
64
63
|
export default withTheme;
|
package/dist/index.js
CHANGED
|
@@ -27,8 +27,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.RadioButton = exports.ProgressBar = exports.ProfilePhotoViewer = exports.ProfileCardFooter = exports.ProfileCardBody = exports.ProfileCardHeader = exports.ProfileCard = exports.ProductDetails = exports.ProductCard = exports.PinInput = exports.PhoneNumberInput = exports.PaymentCard = exports.NumberInput = exports.MultiSelect = exports.NoteTextArea = exports.Notification = exports.NavigationBar = exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = exports.Loading = exports.KanbanBoard = exports.InputSwitch = exports.InputTextArea = exports.HeaderActions = exports.Header = exports.FormWrapper = exports.FileUploader = exports.FileUpload = exports.Editor = exports.Dropdown = exports.DrawerFooter = exports.DrawerBody = exports.DrawerHeader = exports.Drawer = exports.
|
|
31
|
-
exports.debounce = exports.ThemesList = exports.useCustomTheme = exports.VerifyEmailOtp = exports.useToaster = exports.ToolTip = exports.Toaster = exports.Timeline = exports.TextInput = exports.Tag = exports.TableToggle = exports.Table = exports.Switch = exports.Skeletons = exports.Slider = exports.SideBar = exports.SelectSearch = exports.SearchSelect = exports.Select = exports.Search = exports.Reorder =
|
|
30
|
+
exports.RadioButtonGroup = exports.RadioButton = exports.ProgressBar = exports.ProfilePhotoViewer = exports.ProfileCardFooter = exports.ProfileCardBody = exports.ProfileCardHeader = exports.ProfileCard = exports.ProductDetails = exports.ProductCard = exports.PinInput = exports.PhoneNumberInput = exports.PaymentCard = exports.NumberInput = exports.MultiSelect = exports.NoteTextArea = exports.Notification = exports.NavigationBar = exports.ModalFooter = exports.ModalBody = exports.ModalHeader = exports.Modal = exports.Loading = exports.KanbanBoard = exports.InputSwitch = exports.InputTextArea = exports.HeaderActions = exports.Header = exports.FormWrapper = exports.FileUploader = exports.FileUpload = exports.Editor = exports.Dropdown = exports.DrawerFooter = exports.DrawerBody = exports.DrawerHeader = exports.Drawer = exports.DatePicker = exports.ContactForm = exports.Checkbox = exports.Card = exports.ButtonGroupIcon = exports.Button = exports.Breadcrumbs = exports.ApexLineChart = exports.ApexPolarChart = exports.ApexPieChart = exports.ApexBarChart = exports.AlertDialog = exports.Accordian = void 0;
|
|
31
|
+
exports.debounce = exports.ThemesList = exports.useCustomTheme = exports.VerifyEmailOtp = exports.useToaster = exports.ToolTip = exports.Toaster = exports.Timeline = exports.TextInput = exports.Tag = exports.TableToggle = exports.Table = exports.Switch = exports.Skeletons = exports.Slider = exports.SideBar = exports.SelectSearch = exports.SearchSelect = exports.Select = exports.Search = exports.Reorder = void 0;
|
|
32
32
|
var Accordion_1 = __importDefault(require("./Components/Accordion/Accordion"));
|
|
33
33
|
exports.Accordian = Accordion_1.default;
|
|
34
34
|
var AlertDialog_1 = __importDefault(require("./Components/AlertDialog/AlertDialog"));
|
|
@@ -51,8 +51,7 @@ var Checkbox_1 = __importDefault(require("./Components/Checkbox/Checkbox"));
|
|
|
51
51
|
exports.Checkbox = Checkbox_1.default;
|
|
52
52
|
var ContactForm_1 = __importDefault(require("./Components/ContactForm/ContactForm"));
|
|
53
53
|
exports.ContactForm = ContactForm_1.default;
|
|
54
|
-
|
|
55
|
-
exports.DatePicker = DatePicker_1.default;
|
|
54
|
+
// import DatePicker from "./Components/DatePicker/DatePicker";
|
|
56
55
|
var Drawer_1 = __importStar(require("./Components/Drawer/Drawer"));
|
|
57
56
|
exports.Drawer = Drawer_1.default;
|
|
58
57
|
Object.defineProperty(exports, "DrawerHeader", { enumerable: true, get: function () { return Drawer_1.DrawerHeader; } });
|
|
@@ -162,5 +161,5 @@ exports.ApexLineChart = ApexLineChart_1.default;
|
|
|
162
161
|
var Notification_1 = __importDefault(require("./Components/Notification/Notification"));
|
|
163
162
|
exports.Notification = Notification_1.default;
|
|
164
163
|
var ThemeDatePicker_1 = __importDefault(require("./Components/DatePicker/ThemeDatePicker"));
|
|
165
|
-
exports.
|
|
164
|
+
exports.DatePicker = ThemeDatePicker_1.default;
|
|
166
165
|
exports.default = withTheme_1.default;
|