pixelize-design-library 2.0.8 → 2.0.9
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/Checkbox/Checkbox.js +1 -1
- package/dist/Components/DatePicker/DatePicker.js +35 -30
- package/dist/Components/DatePicker/DatePickerProps.d.ts +6 -5
- package/dist/Components/DatePicker/TimePicker.js +6 -11
- package/dist/Components/Input/TextInput.styles.js +9 -2
- package/dist/Pages/datePick.js +28 -18
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ function CheckBox(_a) {
|
|
|
13
13
|
var label = _a.label, spacing = _a.spacing, isInvalid = _a.isInvalid, color = _a.color, iconColor = _a.iconColor, iconSize = _a.iconSize, isChecked = _a.isChecked, isIndeterminate = _a.isIndeterminate, onChange = _a.onChange, isDisabled = _a.isDisabled, size = _a.size, value = _a.value, defaultChecked = _a.defaultChecked, sx = _a.sx, isRequired = _a.isRequired, error = _a.error, errorMessage = _a.errorMessage, isInformation = _a.isInformation, informationMessage = _a.informationMessage, id = _a.id, helperText = _a.helperText;
|
|
14
14
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
15
15
|
return (react_1.default.createElement(react_2.FormControl, { isInvalid: error },
|
|
16
|
-
react_1.default.createElement(react_2.Checkbox, { spacing: spacing, isInvalid: isInvalid, isRequired: isRequired, colorScheme: color, iconColor: iconColor, iconSize: iconSize, isChecked: isChecked, isIndeterminate: isIndeterminate, onChange: onChange, isDisabled: isDisabled, size: size, value: value, defaultChecked: defaultChecked, borderColor: theme.colors.gray[500], sx: sx }, label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, id: id, isInformation: isInformation, informationMessage: informationMessage, isRequired: isRequired }))),
|
|
16
|
+
react_1.default.createElement(react_2.Checkbox, { spacing: spacing, isInvalid: isInvalid, isRequired: isRequired, colorScheme: color, iconColor: iconColor, iconSize: iconSize, isChecked: isChecked, isIndeterminate: isIndeterminate, onChange: onChange, isDisabled: isDisabled, size: size, value: value, defaultChecked: defaultChecked, borderColor: theme.colors.gray[500], sx: sx, display: "flex", alignItems: "inherit" }, label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, id: id, isInformation: isInformation, informationMessage: informationMessage, isRequired: isRequired }))),
|
|
17
17
|
error && react_1.default.createElement(ErrorMessage_1.default, { errorMessage: errorMessage }),
|
|
18
18
|
helperText && !error && react_1.default.createElement(HelperText_1.default, { helperText: helperText })));
|
|
19
19
|
}
|
|
@@ -62,17 +62,23 @@ function CustomDatePicker(props) {
|
|
|
62
62
|
var _k = (0, react_1.useState)(selectedDate !== null && selectedDate !== void 0 ? selectedDate : null), tempDate = _k[0], setTempDate = _k[1];
|
|
63
63
|
var _l = (0, react_1.useState)(rangeStart), tempRangeStart = _l[0], setTempRangeStart = _l[1];
|
|
64
64
|
var _m = (0, react_1.useState)(rangeEnd), tempRangeEnd = _m[0], setTempRangeEnd = _m[1];
|
|
65
|
-
|
|
65
|
+
var popoverRef = (0, react_1.useRef)(null);
|
|
66
|
+
var handleOpen = function () {
|
|
67
|
+
if (!isRange && !selectedDate) {
|
|
68
|
+
setTempDate(new Date());
|
|
69
|
+
}
|
|
70
|
+
onOpen();
|
|
71
|
+
};
|
|
66
72
|
(0, react_1.useEffect)(function () {
|
|
67
73
|
if (!isRange) {
|
|
68
74
|
if (selectedDate instanceof Date) {
|
|
69
75
|
setTempDate(new Date(selectedDate));
|
|
70
76
|
}
|
|
71
|
-
else
|
|
72
|
-
setTempDate(
|
|
77
|
+
else {
|
|
78
|
+
setTempDate(null);
|
|
73
79
|
}
|
|
74
80
|
}
|
|
75
|
-
}, [selectedDate, isRange
|
|
81
|
+
}, [selectedDate, isRange]);
|
|
76
82
|
var handleDaySelect = function (day) {
|
|
77
83
|
var updated = new Date(day);
|
|
78
84
|
if (isRange) {
|
|
@@ -93,8 +99,7 @@ function CustomDatePicker(props) {
|
|
|
93
99
|
setTempDate(function (prev) {
|
|
94
100
|
if (!prev)
|
|
95
101
|
return updated;
|
|
96
|
-
|
|
97
|
-
return newDateWithTime;
|
|
102
|
+
return new Date(updated.getFullYear(), updated.getMonth(), updated.getDate(), prev.getHours(), prev.getMinutes(), prev.getSeconds());
|
|
98
103
|
});
|
|
99
104
|
}
|
|
100
105
|
};
|
|
@@ -149,28 +154,32 @@ function CustomDatePicker(props) {
|
|
|
149
154
|
: tempDate
|
|
150
155
|
? (0, date_fns_1.format)(tempDate, dateFormat)
|
|
151
156
|
: "";
|
|
157
|
+
(0, react_1.useEffect)(function () {
|
|
158
|
+
var handleClickOutside = function (event) {
|
|
159
|
+
var _a;
|
|
160
|
+
if (popoverRef.current &&
|
|
161
|
+
!popoverRef.current.contains(event.target) &&
|
|
162
|
+
!((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
163
|
+
onClose();
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
if (isOpen) {
|
|
167
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
171
|
+
}
|
|
172
|
+
return function () {
|
|
173
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
174
|
+
};
|
|
175
|
+
}, [isOpen, onClose]);
|
|
152
176
|
return (react_1.default.createElement(react_2.Box, { width: width, position: "relative" },
|
|
153
177
|
label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage })),
|
|
154
|
-
react_1.default.createElement(react_2.Popover, { isLazy: true, isOpen: isOpen, onClose: onClose, placement: "bottom-start",
|
|
155
|
-
{
|
|
156
|
-
name: "flip",
|
|
157
|
-
enabled: true,
|
|
158
|
-
options: {
|
|
159
|
-
fallbackPlacements: ["top-start", "right-start", "left-start"],
|
|
160
|
-
},
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
name: "preventOverflow",
|
|
164
|
-
enabled: true,
|
|
165
|
-
options: {
|
|
166
|
-
boundary: "viewport",
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
] },
|
|
178
|
+
react_1.default.createElement(react_2.Popover, { isLazy: true, isOpen: isOpen, onClose: onClose, placement: "bottom-start", initialFocusRef: inputRef, closeOnBlur: true },
|
|
170
179
|
react_1.default.createElement(react_2.PopoverTrigger, null,
|
|
171
|
-
react_1.default.createElement(react_2.Box, { onClick:
|
|
180
|
+
react_1.default.createElement(react_2.Box, { onClick: handleOpen },
|
|
172
181
|
react_1.default.createElement(TextInput_1.default, { id: id, name: name, ref: inputRef, placeholder: placeholderText, value: displayValue, isReadOnly: true, error: error, errorMessage: errorMessage, helperText: helperText, autoComplete: autoComplete, isDisabled: disabled, width: width }))),
|
|
173
|
-
react_1.default.createElement(react_2.PopoverContent, { width: "auto", p: 2 },
|
|
182
|
+
react_1.default.createElement(react_2.PopoverContent, { width: "auto", p: 2, ref: popoverRef },
|
|
174
183
|
react_1.default.createElement(react_2.PopoverBody, null,
|
|
175
184
|
showDate && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
176
185
|
react_1.default.createElement(react_2.Box, { display: "flex", justifyContent: "space-between", mb: 2 },
|
|
@@ -187,8 +196,7 @@ function CustomDatePicker(props) {
|
|
|
187
196
|
} })),
|
|
188
197
|
react_1.default.createElement(react_2.Box, { display: "flex", justifyContent: "space-between", mt: 3 },
|
|
189
198
|
react_1.default.createElement(Button_1.default, { size: "sm", variant: "ghost", onClick: function () {
|
|
190
|
-
|
|
191
|
-
setTempDate(now);
|
|
199
|
+
setTempDate(null);
|
|
192
200
|
setTempRangeStart(null);
|
|
193
201
|
setTempRangeEnd(null);
|
|
194
202
|
setRangeStart(null);
|
|
@@ -201,10 +209,7 @@ function CustomDatePicker(props) {
|
|
|
201
209
|
if (isRange && tempRangeStart && tempRangeEnd) {
|
|
202
210
|
setRangeStart(tempRangeStart);
|
|
203
211
|
setRangeEnd(tempRangeEnd);
|
|
204
|
-
props.onChange({
|
|
205
|
-
from: tempRangeStart,
|
|
206
|
-
to: tempRangeEnd,
|
|
207
|
-
});
|
|
212
|
+
props.onChange({ from: tempRangeStart, to: tempRangeEnd });
|
|
208
213
|
}
|
|
209
214
|
else if (!isRange && tempDate) {
|
|
210
215
|
props.onChange(tempDate);
|
|
@@ -25,12 +25,13 @@ export interface SingleDatePickerProps extends BaseDatePickerProps {
|
|
|
25
25
|
selectedDate?: Date | null;
|
|
26
26
|
onChange: (date: Date | null) => void;
|
|
27
27
|
}
|
|
28
|
+
export interface RangeDate {
|
|
29
|
+
from: Date | null;
|
|
30
|
+
to: Date | null;
|
|
31
|
+
}
|
|
28
32
|
export interface RangeDatePickerProps extends BaseDatePickerProps {
|
|
29
33
|
isRange: true;
|
|
30
|
-
selectedDate?:
|
|
31
|
-
onChange: (
|
|
32
|
-
from: Date | null;
|
|
33
|
-
to: Date | null;
|
|
34
|
-
} | null) => void);
|
|
34
|
+
selectedDate?: RangeDate | null;
|
|
35
|
+
onChange: (range: RangeDate | null) => void;
|
|
35
36
|
}
|
|
36
37
|
export type DatePickerProps = SingleDatePickerProps | RangeDatePickerProps;
|
|
@@ -24,7 +24,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
var react_1 = __importStar(require("react"));
|
|
27
|
-
var padZero = function (num) { return (num < 10 ? "0".concat(num) : "".concat(num)); };
|
|
28
27
|
var TimePicker = function (_a) {
|
|
29
28
|
var date = _a.date, onChange = _a.onChange, dateFormat = _a.dateFormat;
|
|
30
29
|
var is12HourFormat = /(hh|h).*a/i.test(dateFormat);
|
|
@@ -36,12 +35,9 @@ var TimePicker = function (_a) {
|
|
|
36
35
|
setMinute(date.getMinutes());
|
|
37
36
|
}, [date]);
|
|
38
37
|
var convertTo24Hour = function (hr, meridiem) {
|
|
39
|
-
if (meridiem === "AM")
|
|
38
|
+
if (meridiem === "AM")
|
|
40
39
|
return hr === 12 ? 0 : hr;
|
|
41
|
-
|
|
42
|
-
else {
|
|
43
|
-
return hr === 12 ? 12 : hr + 12;
|
|
44
|
-
}
|
|
40
|
+
return hr === 12 ? 12 : hr + 12;
|
|
45
41
|
};
|
|
46
42
|
var updateTime = function (hrInput, min, meridiem) {
|
|
47
43
|
var newHour = is12HourFormat ? convertTo24Hour(hrInput, meridiem || ampm) : hrInput;
|
|
@@ -70,8 +66,7 @@ var TimePicker = function (_a) {
|
|
|
70
66
|
setMinute(min);
|
|
71
67
|
updateTime(hour, min, ampm);
|
|
72
68
|
};
|
|
73
|
-
var handleAmpmToggle = function (
|
|
74
|
-
e.preventDefault();
|
|
69
|
+
var handleAmpmToggle = function () {
|
|
75
70
|
var newMeridiem = ampm === "AM" ? "PM" : "AM";
|
|
76
71
|
var displayHr = hour % 12 === 0 ? 12 : hour % 12;
|
|
77
72
|
var newHr = convertTo24Hour(displayHr, newMeridiem);
|
|
@@ -80,9 +75,9 @@ var TimePicker = function (_a) {
|
|
|
80
75
|
};
|
|
81
76
|
var displayHour = is12HourFormat ? (hour % 12 === 0 ? 12 : hour % 12) : hour;
|
|
82
77
|
return (react_1.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: "0.5rem", fontSize: "1.25rem" } },
|
|
83
|
-
react_1.default.createElement("input", { type: "number", value:
|
|
78
|
+
react_1.default.createElement("input", { type: "number", value: displayHour, onChange: handleHourChange, min: is12HourFormat ? 1 : 0, max: is12HourFormat ? 12 : 23, style: { width: "3rem", textAlign: "center" } }),
|
|
84
79
|
":",
|
|
85
|
-
react_1.default.createElement("input", { type: "number", value:
|
|
86
|
-
is12HourFormat && (react_1.default.createElement("button", { onClick:
|
|
80
|
+
react_1.default.createElement("input", { type: "number", value: minute, onChange: handleMinuteChange, min: 0, max: 59, style: { width: "3rem", textAlign: "center" } }),
|
|
81
|
+
is12HourFormat && (react_1.default.createElement("button", { onClick: handleAmpmToggle, style: { fontWeight: "bold", padding: "0.25rem 0.5rem" } }, ampm))));
|
|
87
82
|
};
|
|
88
83
|
exports.default = TimePicker;
|
|
@@ -39,24 +39,31 @@ exports.Input = {
|
|
|
39
39
|
borderColor: borderColor,
|
|
40
40
|
_hover: {
|
|
41
41
|
borderColor: primary,
|
|
42
|
-
boxShadow:
|
|
42
|
+
// boxShadow: `0 0 0 0.125rem ${shadowPrimary}`,
|
|
43
|
+
outline: "0"
|
|
43
44
|
},
|
|
44
45
|
_focus: {
|
|
45
46
|
borderColor: primary,
|
|
46
47
|
boxShadow: "0 0 0 0.125rem ".concat(shadowPrimary),
|
|
48
|
+
outline: "0"
|
|
47
49
|
},
|
|
48
50
|
_invalid: {
|
|
49
51
|
borderColor: errorColor,
|
|
50
52
|
boxShadow: "0 0 0 0.125rem ".concat(shadowError),
|
|
51
53
|
_hover: {
|
|
52
54
|
borderColor: errorColor,
|
|
53
|
-
boxShadow:
|
|
55
|
+
// boxShadow: `0 0 0 0.125rem ${shadowError}`,
|
|
56
|
+
outline: "0"
|
|
54
57
|
},
|
|
55
58
|
_focus: {
|
|
56
59
|
borderColor: errorColor,
|
|
57
60
|
boxShadow: "0 0 0 0.125rem ".concat(shadowError),
|
|
61
|
+
outline: "0"
|
|
58
62
|
},
|
|
59
63
|
},
|
|
64
|
+
_readOnly: {
|
|
65
|
+
boxShadow: 'inherit',
|
|
66
|
+
},
|
|
60
67
|
},
|
|
61
68
|
};
|
|
62
69
|
},
|
package/dist/Pages/datePick.js
CHANGED
|
@@ -29,32 +29,42 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
var react_1 = __importStar(require("react"));
|
|
30
30
|
var DatePicker_1 = __importDefault(require("../Components/DatePicker/DatePicker"));
|
|
31
31
|
var DatePick = function () {
|
|
32
|
-
var _a = (0, react_1.useState)(
|
|
32
|
+
var _a = (0, react_1.useState)(null), selectedDate = _a[0], setSelectedDate = _a[1];
|
|
33
|
+
var _b = (0, react_1.useState)(null), selectedTime = _b[0], setSelectedTime = _b[1];
|
|
34
|
+
var _c = (0, react_1.useState)(null), selectedDateTime = _c[0], setSelectedDateTime = _c[1];
|
|
35
|
+
var _d = (0, react_1.useState)(null), selectedDateRange = _d[0], setSelectedDateRange = _d[1];
|
|
33
36
|
var handleDateChange = function (value) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
setSelectedDate(value);
|
|
38
|
+
console.log("Date selected:", value);
|
|
39
|
+
};
|
|
40
|
+
var handleTimeChange = function (value) {
|
|
41
|
+
setSelectedTime(value);
|
|
42
|
+
console.log("Time selected:", value);
|
|
43
|
+
};
|
|
44
|
+
var handleDateTimeChange = function (value) {
|
|
45
|
+
setSelectedDateTime(value);
|
|
46
|
+
console.log("DateTime selected:", value);
|
|
47
|
+
};
|
|
48
|
+
var handleDateRangeChange = function (value) {
|
|
49
|
+
if (value && "from" in value && "to" in value) {
|
|
50
|
+
setSelectedDateRange(value);
|
|
51
|
+
console.log("Date range selected:", value.from, value.to);
|
|
47
52
|
}
|
|
48
53
|
else {
|
|
49
|
-
|
|
50
|
-
console.log("Date
|
|
54
|
+
setSelectedDateRange(null);
|
|
55
|
+
console.log("Date range cleared");
|
|
51
56
|
}
|
|
52
57
|
};
|
|
53
58
|
return (react_1.default.createElement("div", null,
|
|
54
59
|
react_1.default.createElement("h2", null, "Single Date Picker"),
|
|
55
|
-
react_1.default.createElement(
|
|
60
|
+
react_1.default.createElement("h2", null, "Date "),
|
|
61
|
+
react_1.default.createElement(DatePicker_1.default, { selectedDate: selectedDate, onChange: handleDateChange, dateFormat: "dd/MM/yyyy", pickerType: "date", width: "300px", error: true, errorMessage: "Invalid date" }),
|
|
62
|
+
react_1.default.createElement("h2", null, "time "),
|
|
63
|
+
react_1.default.createElement(DatePicker_1.default, { selectedDate: selectedTime, onChange: handleTimeChange, dateFormat: "HH:mm", pickerType: "time", width: "300px", error: true, errorMessage: "Invalid date" }),
|
|
64
|
+
react_1.default.createElement("h2", null, "datetime "),
|
|
65
|
+
react_1.default.createElement(DatePicker_1.default, { selectedDate: selectedDateTime, onChange: handleDateTimeChange, dateFormat: "dd/MM/yyyy HH:mm", pickerType: "datetime", width: "300px", error: true, errorMessage: "Invalid date" }),
|
|
56
66
|
react_1.default.createElement("br", null),
|
|
57
67
|
react_1.default.createElement("h2", null, "Date Range Picker"),
|
|
58
|
-
react_1.default.createElement(DatePicker_1.default, { isRange: true, dateFormat: "dd/MM/yyyy", pickerType: "
|
|
68
|
+
react_1.default.createElement(DatePicker_1.default, { isRange: true, dateFormat: "dd/MM/yyyy", pickerType: "date", onChange: handleDateRangeChange, selectedDate: selectedDateRange, width: "300px", error: true, errorMessage: "Invalid date" })));
|
|
59
69
|
};
|
|
60
70
|
exports.default = DatePick;
|