pixelize-design-library 2.2.52 → 2.2.54
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/Assets/defaultLogo.tsx +31 -0
- package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.d.ts +1 -0
- package/dist/Components/Apexcharts/ApexBarChart/ApexBarChart.stories.js +6 -0
- package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.d.ts +4 -0
- package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChart.js +58 -0
- package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChartProps.d.ts +21 -0
- package/dist/Components/Apexcharts/ApexDonutChart/ApexDonutChartProps.js +2 -0
- package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.d.ts +1 -0
- package/dist/Components/Apexcharts/ApexPieChart/ApexPieChart.stories.js +6 -0
- package/dist/Components/DatePicker/CalendarPanel.js +22 -9
- package/dist/Components/DatePicker/DatePicker.js +11 -2
- package/dist/Components/DatePicker/DatePickerProps.d.ts +1 -0
- package/dist/Components/DatePicker/RangeDatePicker.js +41 -12
- package/dist/Components/DatePicker/SingleDatePicker.js +15 -15
- package/dist/Components/DatePicker/TimeOnlyPicker.js +3 -0
- package/dist/Components/DatePicker/TimePicker.js +8 -8
- package/dist/Components/DatePicker/TimePickerInput.js +78 -8
- package/dist/Components/InputTextArea/InputTextArea.stories.d.ts +1 -0
- package/dist/Components/InputTextArea/InputTextArea.stories.js +7 -0
- package/dist/Components/KaTable/CustomHeader.d.ts +14 -0
- package/dist/Components/KaTable/CustomHeader.js +69 -0
- package/dist/Components/KaTable/KaTable.d.ts +13 -0
- package/dist/Components/KaTable/KaTable.js +111 -0
- package/dist/Components/KaTable/KaTableProps.d.ts +23 -0
- package/dist/Components/KaTable/KaTableProps.js +2 -0
- package/dist/Components/KaTable/SelectionCell.d.ts +8 -0
- package/dist/Components/KaTable/SelectionCell.js +38 -0
- package/dist/Components/KaTable/SelectionHeader.d.ts +3 -0
- package/dist/Components/KaTable/SelectionHeader.js +56 -0
- package/dist/Components/KaTable/ka-table.css +27 -0
- package/dist/Components/KaTable/useMergedChildComponents.d.ts +14 -0
- package/dist/Components/KaTable/useMergedChildComponents.js +224 -0
- package/dist/Components/NumberInput/NumberInput.stories.d.ts +1 -0
- package/dist/Components/NumberInput/NumberInput.stories.js +5 -0
- package/dist/Components/Table/Table.css +16 -0
- package/dist/Theme/Default/fonts.d.ts +35 -0
- package/dist/Theme/Default/fonts.js +37 -0
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCustomTheme } from "../Theme/useCustomTheme";
|
|
3
|
+
|
|
4
|
+
const DefaultLogo = () => {
|
|
5
|
+
const theme = useCustomTheme();
|
|
6
|
+
return (
|
|
7
|
+
<svg
|
|
8
|
+
width="12.09"
|
|
9
|
+
height="15.95"
|
|
10
|
+
viewBox="0 0 31 29"
|
|
11
|
+
fill="none"
|
|
12
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
13
|
+
>
|
|
14
|
+
<path
|
|
15
|
+
d="M30.4999 6.26137V7.81058H15.9761H14.8787V22.8508V28.8862H12.5226C9.6824 28.8862 7.32632 26.4656 7.06812 23.3995C7.06812 23.2381 7.06812 23.0444 7.06812 22.8508V18.3323C7.06812 18.2677 7.06812 18.2032 7.06812 18.1063V15.5889V6.2291C7.06812 2.80793 9.84378 -5.72205e-06 13.2972 -5.72205e-06H24.8517C28.0147 0.355021 30.4676 3.00158 30.4676 6.2291L30.4999 6.26137Z"
|
|
16
|
+
fill={theme.colors.black}
|
|
17
|
+
/>
|
|
18
|
+
<path
|
|
19
|
+
d="M7.10053 23.3672H7.03598C5.16402 23.2381 3.48571 22.4635 2.25926 21.3338C0.871428 20.0428 0 18.2677 0 16.3312V15.6211H7.06825V18.1386C7.06825 18.2032 7.06825 18.2677 7.06825 18.3645V22.883C7.06825 23.0767 7.06825 23.2381 7.06825 23.4317L7.10053 23.3672Z"
|
|
20
|
+
fill={theme.colors.black}
|
|
21
|
+
/>
|
|
22
|
+
<path
|
|
23
|
+
d="M30.4678 12.0063V15.6211V17.1703C30.4678 20.6238 26.272 23.3994 21.0757 23.3994H14.8789V22.8508V15.6211H22.6572V7.81056C22.6895 7.81056 30.5001 7.81056 30.5001 7.81056V11.5868C30.5001 11.7159 30.5001 11.8772 30.5001 12.0063H30.4678Z"
|
|
24
|
+
fill={theme.colors.black}
|
|
25
|
+
/>
|
|
26
|
+
</svg>
|
|
27
|
+
|
|
28
|
+
)
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default DefaultLogo;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import React from 'react';
|
|
3
|
+
// import { StoryFn, Meta } from '@storybook/react';
|
|
4
|
+
// import ApexBarChart from './ApexBarChart';
|
|
5
|
+
// import { ApexBarChartProps } from './ApexBarChartProps';
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ApexDonutChartProps } from "./ApexDonutChartProps";
|
|
3
|
+
declare const ApexDonutChart: ({ data, labels, title, titlePosition, height, width, donutColors, chartColor, titleStyle, legendStyle, }: ApexDonutChartProps) => React.JSX.Element;
|
|
4
|
+
export default ApexDonutChart;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var react_1 = __importDefault(require("react"));
|
|
18
|
+
var react_apexcharts_1 = __importDefault(require("react-apexcharts"));
|
|
19
|
+
var ApexDonutChart = function (_a) {
|
|
20
|
+
var _b;
|
|
21
|
+
var data = _a.data, labels = _a.labels, title = _a.title, _c = _a.titlePosition, titlePosition = _c === void 0 ? "center" : _c, _d = _a.height, height = _d === void 0 ? 400 : _d, _e = _a.width, width = _e === void 0 ? 500 : _e, donutColors = _a.donutColors, chartColor = _a.chartColor, _f = _a.titleStyle, titleStyle = _f === void 0 ? {
|
|
22
|
+
color: "#3182ce",
|
|
23
|
+
fontSize: "16px",
|
|
24
|
+
fontWeight: 600,
|
|
25
|
+
fontFamily: "Arial",
|
|
26
|
+
} : _f, _g = _a.legendStyle, legendStyle = _g === void 0 ? {
|
|
27
|
+
colors: "#000",
|
|
28
|
+
position: "bottom",
|
|
29
|
+
useSeriesColors: false,
|
|
30
|
+
} : _g;
|
|
31
|
+
var options = {
|
|
32
|
+
chart: {
|
|
33
|
+
type: "donut",
|
|
34
|
+
},
|
|
35
|
+
labels: labels,
|
|
36
|
+
colors: (_b = chartColor !== null && chartColor !== void 0 ? chartColor : donutColors) !== null && _b !== void 0 ? _b : ["#3182ce", "#e53e3e", "#38a169", "#dd6b20"],
|
|
37
|
+
legend: {
|
|
38
|
+
position: legendStyle.position,
|
|
39
|
+
labels: {
|
|
40
|
+
colors: legendStyle.colors,
|
|
41
|
+
useSeriesColors: legendStyle.useSeriesColors,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
title: {
|
|
45
|
+
text: title,
|
|
46
|
+
align: titlePosition,
|
|
47
|
+
style: __assign(__assign({}, titleStyle), { fontSize: (titleStyle === null || titleStyle === void 0 ? void 0 : titleStyle.fontSize)
|
|
48
|
+
? String(titleStyle.fontSize) // ✅ ensures string if number passed
|
|
49
|
+
: undefined }),
|
|
50
|
+
},
|
|
51
|
+
dataLabels: {
|
|
52
|
+
enabled: true,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
return (react_1.default.createElement("div", null,
|
|
56
|
+
react_1.default.createElement(react_apexcharts_1.default, { options: options, series: data, type: "donut", height: height, width: width })));
|
|
57
|
+
};
|
|
58
|
+
exports.default = ApexDonutChart;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ApexDonutChartProps = {
|
|
2
|
+
data: number[];
|
|
3
|
+
labels: string[];
|
|
4
|
+
title?: string;
|
|
5
|
+
titlePosition?: "left" | "center" | "right";
|
|
6
|
+
height?: number;
|
|
7
|
+
width?: number;
|
|
8
|
+
donutColors?: string[];
|
|
9
|
+
chartColor?: string[];
|
|
10
|
+
titleStyle?: {
|
|
11
|
+
color?: string;
|
|
12
|
+
fontSize?: string | number;
|
|
13
|
+
fontWeight?: number | string;
|
|
14
|
+
fontFamily?: string;
|
|
15
|
+
};
|
|
16
|
+
legendStyle?: {
|
|
17
|
+
colors?: string | string[];
|
|
18
|
+
useSeriesColors?: boolean;
|
|
19
|
+
position?: "top" | "right" | "bottom" | "left";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// import React from 'react';
|
|
3
|
+
// import { StoryFn, Meta } from '@storybook/react';
|
|
4
|
+
// import ApexPieChart from './ApexPieChart';
|
|
5
|
+
// import { ApexPieChartProps } from './ApexPieChartProps';
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -13,6 +13,8 @@ var useCustomTheme_1 = require("../../Theme/useCustomTheme");
|
|
|
13
13
|
var CalendarPanel = function (_a) {
|
|
14
14
|
var currentMonth = _a.currentMonth, setCurrentMonth = _a.setCurrentMonth, today = _a.today, isRange = _a.isRange, tempDate = _a.tempDate, tempRangeStart = _a.tempRangeStart, tempRangeEnd = _a.tempRangeEnd, isSameDay = _a.isSameDay, isBefore = _a.isBefore, isAfter = _a.isAfter, minDate = _a.minDate, maxDate = _a.maxDate, disablePastDates = _a.disablePastDates, disableFutureDates = _a.disableFutureDates, disableToday = _a.disableToday, onDaySelect = _a.onDaySelect, renderWeekdays = _a.renderWeekdays;
|
|
15
15
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
16
|
+
var isViewingCurrentMonth = currentMonth.getFullYear() === today.getFullYear() &&
|
|
17
|
+
currentMonth.getMonth() === today.getMonth();
|
|
16
18
|
var renderDays = function () {
|
|
17
19
|
var monthStart = (0, date_fns_1.startOfMonth)(currentMonth);
|
|
18
20
|
var monthEnd = (0, date_fns_1.endOfMonth)(currentMonth);
|
|
@@ -40,25 +42,25 @@ var CalendarPanel = function (_a) {
|
|
|
40
42
|
(disablePastDates && isBefore(thisDay, today) && !isSameDay(thisDay, today)) ||
|
|
41
43
|
(disableFutureDates && isAfter(thisDay, today) && !isSameDay(thisDay, today)) ||
|
|
42
44
|
(disableToday && isToday);
|
|
43
|
-
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")));
|
|
44
46
|
day = (0, date_fns_1.addDays)(day, 1);
|
|
45
47
|
};
|
|
46
48
|
for (var i = 0; i < 7; i++) {
|
|
47
49
|
_loop_1(i);
|
|
48
50
|
}
|
|
49
|
-
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));
|
|
50
52
|
}
|
|
51
53
|
return rows;
|
|
52
54
|
};
|
|
53
55
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
54
|
-
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", justifyContent: "space-between", mb:
|
|
55
|
-
react_1.default.createElement(Button_1.default, { variant: "ghost", size: "
|
|
56
|
-
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 })),
|
|
57
59
|
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", gap: 2 },
|
|
58
60
|
react_1.default.createElement(react_2.Box, { as: "select", value: currentMonth.getMonth(), onChange: function (e) {
|
|
59
61
|
var newMonth = parseInt(e.target.value, 10);
|
|
60
62
|
setCurrentMonth(function (prev) { return new Date(prev.getFullYear(), newMonth, 1); });
|
|
61
|
-
}, 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: {
|
|
62
64
|
borderColor: "gray.400",
|
|
63
65
|
borderWidth: "1px",
|
|
64
66
|
borderStyle: "solid",
|
|
@@ -70,6 +72,8 @@ var CalendarPanel = function (_a) {
|
|
|
70
72
|
boxShadow: "0 0 0 1px ".concat(theme.colors.primary[500]),
|
|
71
73
|
}, style: {
|
|
72
74
|
border: "1px solid #CBD5E0",
|
|
75
|
+
fontSize: "12px",
|
|
76
|
+
lineHeight: "1.25rem",
|
|
73
77
|
WebkitAppearance: "menulist",
|
|
74
78
|
MozAppearance: "menulist",
|
|
75
79
|
appearance: "menulist",
|
|
@@ -77,7 +81,7 @@ var CalendarPanel = function (_a) {
|
|
|
77
81
|
react_1.default.createElement(react_2.Box, { as: "select", value: currentMonth.getFullYear(), onChange: function (e) {
|
|
78
82
|
var newYear = parseInt(e.target.value, 10);
|
|
79
83
|
setCurrentMonth(function (prev) { return new Date(newYear, prev.getMonth(), 1); });
|
|
80
|
-
}, 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: {
|
|
81
85
|
borderColor: "gray.400",
|
|
82
86
|
borderWidth: "1px",
|
|
83
87
|
borderStyle: "solid",
|
|
@@ -89,6 +93,8 @@ var CalendarPanel = function (_a) {
|
|
|
89
93
|
boxShadow: "0 0 0 1px ".concat(theme.colors.primary[500]),
|
|
90
94
|
}, style: {
|
|
91
95
|
border: "1px solid #CBD5E0",
|
|
96
|
+
fontSize: "12px",
|
|
97
|
+
lineHeight: "1.25rem",
|
|
92
98
|
WebkitAppearance: "menulist",
|
|
93
99
|
MozAppearance: "menulist",
|
|
94
100
|
appearance: "menulist",
|
|
@@ -96,8 +102,15 @@ var CalendarPanel = function (_a) {
|
|
|
96
102
|
var year = new Date().getFullYear() - 50 + i;
|
|
97
103
|
return (react_1.default.createElement("option", { key: year, value: year }, year));
|
|
98
104
|
}))),
|
|
99
|
-
react_1.default.createElement(
|
|
100
|
-
|
|
105
|
+
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", gap: 1 },
|
|
106
|
+
!isViewingCurrentMonth && (react_1.default.createElement(Button_1.default, { variant: "ghost", size: "xs", onClick: function () {
|
|
107
|
+
setCurrentMonth(function (_prev) { return new Date(today.getFullYear(), today.getMonth(), 1); });
|
|
108
|
+
if (!disableToday) {
|
|
109
|
+
onDaySelect(new Date(today));
|
|
110
|
+
}
|
|
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)); }))),
|
|
101
114
|
renderDays()));
|
|
102
115
|
};
|
|
103
116
|
exports.CalendarPanel = CalendarPanel;
|
|
@@ -75,6 +75,8 @@ function CustomDatePicker(props) {
|
|
|
75
75
|
var _m = (0, react_1.useState)(rangeStart), tempRangeStart = _m[0], setTempRangeStart = _m[1];
|
|
76
76
|
var _o = (0, react_1.useState)(rangeEnd), tempRangeEnd = _o[0], setTempRangeEnd = _o[1];
|
|
77
77
|
var popoverRef = (0, react_1.useRef)(null);
|
|
78
|
+
var isViewingCurrentMonth = currentMonth.getFullYear() === today.getFullYear() &&
|
|
79
|
+
currentMonth.getMonth() === today.getMonth();
|
|
78
80
|
var handleOpen = function () {
|
|
79
81
|
if (!isRange && !selectedDate) {
|
|
80
82
|
// setTempDate(new Date());
|
|
@@ -234,8 +236,15 @@ function CustomDatePicker(props) {
|
|
|
234
236
|
var year = new Date().getFullYear() - 50 + i;
|
|
235
237
|
return (react_1.default.createElement("option", { key: year, value: year }, year));
|
|
236
238
|
}))),
|
|
237
|
-
react_1.default.createElement(
|
|
238
|
-
react_1.default.createElement(
|
|
239
|
+
react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", gap: 1 },
|
|
240
|
+
!isViewingCurrentMonth && (react_1.default.createElement(Button_1.default, { variant: "ghost", size: "sm", onClick: function () {
|
|
241
|
+
setCurrentMonth(new Date(today.getFullYear(), today.getMonth(), 1));
|
|
242
|
+
if (!disableToday && !isRange) {
|
|
243
|
+
handleDaySelect(new Date(today));
|
|
244
|
+
}
|
|
245
|
+
}, "aria-label": "Today", sx: { fontSize: "0.75rem", px: 2 }, isDisabled: disableToday }, "Today")),
|
|
246
|
+
react_1.default.createElement(Button_1.default, { variant: "ghost", size: "sm", onClick: function () { return setCurrentMonth(function (prev) { return (0, date_fns_1.addMonths)(prev, 1); }); } },
|
|
247
|
+
react_1.default.createElement(lucide_react_1.ChevronRightIcon, null)))),
|
|
239
248
|
react_1.default.createElement(react_2.Grid, { templateColumns: "repeat(7, 1fr)", gap: 1, fontWeight: "bold", mb: 1 }, ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map(function (day) { return (react_1.default.createElement(react_2.Box, { textAlign: "center", key: day }, day)); })),
|
|
240
249
|
renderDays())),
|
|
241
250
|
!isRange && showTime && (react_1.default.createElement(TimePicker_1.default
|
|
@@ -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"))))),
|
|
@@ -266,10 +266,10 @@ var normalizeTimeBuffer = function (tokenChar, rawBuffer, segmentLength, is12Hou
|
|
|
266
266
|
return { value: buf, completed: buf.length >= segmentLength };
|
|
267
267
|
};
|
|
268
268
|
var SingleDatePicker = function (props) {
|
|
269
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
270
|
-
var id = props.id, name = props.name, label = props.label, isRequired = props.isRequired, isInformation = props.isInformation, informationMessage = props.informationMessage, error = props.error, errorMessage = props.errorMessage, helperText = props.helperText, placeholderText = props.placeholderText,
|
|
269
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
270
|
+
var id = props.id, name = props.name, label = props.label, isRequired = props.isRequired, isInformation = props.isInformation, informationMessage = props.informationMessage, error = props.error, errorMessage = props.errorMessage, helperText = props.helperText, placeholderText = props.placeholderText, _l = props.dateFormat, dateFormat = _l === void 0 ? "dd/MM/yyyy" : _l, pickerType = props.pickerType, minDate = props.minDate, maxDate = props.maxDate, disableFutureDates = props.disableFutureDates, disablePastDates = props.disablePastDates, _m = props.autoComplete, autoComplete = _m === void 0 ? "off" : _m, disabled = props.disabled, _o = props.width, width = _o === void 0 ? "100%" : _o, _p = props.disableToday, disableToday = _p === void 0 ? false : _p;
|
|
271
271
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
272
|
-
var
|
|
272
|
+
var _q = (0, react_2.useDisclosure)(), isOpen = _q.isOpen, onOpen = _q.onOpen, onClose = _q.onClose;
|
|
273
273
|
var inputRef = (0, react_1.useRef)(null);
|
|
274
274
|
var popoverRef = (0, react_1.useRef)(null);
|
|
275
275
|
var triggerRef = (0, react_1.useRef)(null);
|
|
@@ -327,18 +327,18 @@ var SingleDatePicker = function (props) {
|
|
|
327
327
|
resolvedDateFormat.toLowerCase().includes("mm") ||
|
|
328
328
|
resolvedDateFormat.toLowerCase().includes("ss");
|
|
329
329
|
var selectedDate = ((_a = props.value) !== null && _a !== void 0 ? _a : props.selectedDate);
|
|
330
|
-
var
|
|
330
|
+
var _r = (0, react_1.useState)(selectedDate
|
|
331
331
|
? disableToday && (0, date_fns_1.isSameDay)(selectedDate, today)
|
|
332
332
|
? tomorrow
|
|
333
333
|
: selectedDate
|
|
334
334
|
: disableToday
|
|
335
335
|
? tomorrow
|
|
336
|
-
: today), currentMonth =
|
|
337
|
-
var
|
|
338
|
-
var
|
|
339
|
-
var
|
|
340
|
-
var
|
|
341
|
-
var
|
|
336
|
+
: today), currentMonth = _r[0], setCurrentMonth = _r[1];
|
|
337
|
+
var _s = (0, react_1.useState)(selectedDate !== null && selectedDate !== void 0 ? selectedDate : null), tempDate = _s[0], setTempDate = _s[1];
|
|
338
|
+
var _t = (0, react_1.useState)(""), inputValue = _t[0], setInputValue = _t[1];
|
|
339
|
+
var _u = (0, react_1.useState)(false), isTyping = _u[0], setIsTyping = _u[1];
|
|
340
|
+
var _v = (0, react_1.useState)(false), isMaskActive = _v[0], setIsMaskActive = _v[1];
|
|
341
|
+
var _w = (0, react_1.useState)(0), currentSegmentIndex = _w[0], setCurrentSegmentIndex = _w[1];
|
|
342
342
|
var lastSegmentIndexRef = (0, react_1.useRef)(0);
|
|
343
343
|
var resetCommitGuardAndOpen = function () {
|
|
344
344
|
didCommitRef.current = false;
|
|
@@ -948,11 +948,11 @@ var SingleDatePicker = function (props) {
|
|
|
948
948
|
react_1.default.createElement(react_2.Input, { ref: inputRef, id: id, name: name, placeholder: displayPlaceholder, value: displayValue, onChange: handleInputChange, onKeyDown: handleKeyDownMask, onPaste: handlePasteMask, onBlur: handleInputBlur, onClick: handleInputClickMask, onFocus: handleInputFocusMask, isDisabled: disabled, autoComplete: autoComplete, borderColor: error ? (_c = (_b = theme.colors.semantic) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c[500] : undefined, _focus: {
|
|
949
949
|
borderColor: error ? (_e = (_d = theme.colors.semantic) === null || _d === void 0 ? void 0 : _d.error) === null || _e === void 0 ? void 0 : _e[500] : theme.colors.primary[500],
|
|
950
950
|
boxShadow: error
|
|
951
|
-
? "0 0 0
|
|
952
|
-
: "0 0 0
|
|
951
|
+
? "0 0 0 0.125rem ".concat((_f = theme.colors.boxShadow) === null || _f === void 0 ? void 0 : _f.error)
|
|
952
|
+
: "0 0 0 0.125rem ".concat((_g = theme.colors.boxShadow) === null || _g === void 0 ? void 0 : _g.primary),
|
|
953
953
|
}, _hover: {
|
|
954
954
|
borderColor: error ? (_j = (_h = theme.colors.semantic) === null || _h === void 0 ? void 0 : _h.error) === null || _j === void 0 ? void 0 : _j[500] : undefined,
|
|
955
|
-
}, cursor: "text" }),
|
|
955
|
+
}, cursor: "text", boxShadow: error ? "0 0 0 0.125rem ".concat((_k = theme.colors.boxShadow) === null || _k === void 0 ? void 0 : _k.error) : "" }),
|
|
956
956
|
react_1.default.createElement(react_2.InputRightElement, { pr: 3, pointerEvents: "auto", onClick: function (e) {
|
|
957
957
|
e.stopPropagation();
|
|
958
958
|
if (!isOpen) {
|
|
@@ -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);
|
|
@@ -69,6 +69,9 @@ var TimeOnlyPicker = function (props) {
|
|
|
69
69
|
// Do not close; user asked only outside-click and OK to close
|
|
70
70
|
};
|
|
71
71
|
var handleOk = function () {
|
|
72
|
+
var commitValue = tempDate !== null && tempDate !== void 0 ? tempDate : new Date(resolvedTempDate.getFullYear(), resolvedTempDate.getMonth(), resolvedTempDate.getDate(), resolvedTempDate.getHours(), resolvedTempDate.getMinutes(), resolvedTempDate.getSeconds(), resolvedTempDate.getMilliseconds());
|
|
73
|
+
setTempDate(commitValue);
|
|
74
|
+
props.onChange(commitValue);
|
|
72
75
|
onClose();
|
|
73
76
|
};
|
|
74
77
|
(0, react_1.useEffect)(function () {
|
|
@@ -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: "5rem" },
|
|
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.5rem", 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
|
};
|