wini-web-components 2.7.0 → 2.7.1

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.
Files changed (87) hide show
  1. package/dist/types/index.d.ts +1 -0
  2. package/dist/vite.svg +1 -0
  3. package/dist/wini-web-components.css +4 -0
  4. package/dist/wini-web-components.js +32 -0
  5. package/dist/wini-web-components.mjs +6753 -0
  6. package/package.json +44 -82
  7. package/README.md +0 -21
  8. package/dist/component/button/button.d.ts +0 -21
  9. package/dist/component/button/button.js +0 -73
  10. package/dist/component/calendar/calendar.d.ts +0 -30
  11. package/dist/component/calendar/calendar.js +0 -357
  12. package/dist/component/card/card-info.d.ts +0 -15
  13. package/dist/component/card/card-info.js +0 -51
  14. package/dist/component/card/card.d.ts +0 -13
  15. package/dist/component/card/card.js +0 -33
  16. package/dist/component/checkbox/checkbox.d.ts +0 -24
  17. package/dist/component/checkbox/checkbox.js +0 -90
  18. package/dist/component/ck-editor/ckeditor.d.ts +0 -36
  19. package/dist/component/ck-editor/ckeditor.js +0 -392
  20. package/dist/component/component-status.d.ts +0 -8
  21. package/dist/component/component-status.js +0 -39
  22. package/dist/component/date-picker/date-picker.d.ts +0 -25
  23. package/dist/component/date-picker/date-picker.js +0 -329
  24. package/dist/component/date-time-picker/date-time-picker.d.ts +0 -36
  25. package/dist/component/date-time-picker/date-time-picker.js +0 -528
  26. package/dist/component/dialog/dialog.d.ts +0 -18
  27. package/dist/component/dialog/dialog.js +0 -113
  28. package/dist/component/import-file/import-file.d.ts +0 -33
  29. package/dist/component/import-file/import-file.js +0 -151
  30. package/dist/component/infinite-scroll/infinite-scroll.d.ts +0 -17
  31. package/dist/component/infinite-scroll/infinite-scroll.js +0 -37
  32. package/dist/component/input-multi-select/input-multi-select.d.ts +0 -21
  33. package/dist/component/input-multi-select/input-multi-select.js +0 -260
  34. package/dist/component/input-opt/input-opt.d.ts +0 -21
  35. package/dist/component/input-opt/input-opt.js +0 -157
  36. package/dist/component/input-otp/input-otp.d.ts +0 -22
  37. package/dist/component/input-otp/input-otp.js +0 -131
  38. package/dist/component/number-picker/number-picker.d.ts +0 -23
  39. package/dist/component/number-picker/number-picker.js +0 -125
  40. package/dist/component/pagination/pagination.d.ts +0 -13
  41. package/dist/component/pagination/pagination.js +0 -90
  42. package/dist/component/popup/popup.d.ts +0 -40
  43. package/dist/component/popup/popup.js +0 -125
  44. package/dist/component/progress-bar/progress-bar.d.ts +0 -16
  45. package/dist/component/progress-bar/progress-bar.js +0 -23
  46. package/dist/component/progress-circle/progress-circle.d.ts +0 -14
  47. package/dist/component/progress-circle/progress-circle.js +0 -19
  48. package/dist/component/radio-button/radio-button.d.ts +0 -20
  49. package/dist/component/radio-button/radio-button.js +0 -33
  50. package/dist/component/rating/rating.d.ts +0 -23
  51. package/dist/component/rating/rating.js +0 -54
  52. package/dist/component/select1/select1.d.ts +0 -31
  53. package/dist/component/select1/select1.js +0 -249
  54. package/dist/component/slider/slider.d.ts +0 -31
  55. package/dist/component/slider/slider.js +0 -64
  56. package/dist/component/switch/switch.d.ts +0 -23
  57. package/dist/component/switch/switch.js +0 -50
  58. package/dist/component/table/table.d.ts +0 -51
  59. package/dist/component/table/table.js +0 -66
  60. package/dist/component/tag/tag.d.ts +0 -22
  61. package/dist/component/tag/tag.js +0 -19
  62. package/dist/component/text/text.d.ts +0 -16
  63. package/dist/component/text/text.js +0 -20
  64. package/dist/component/text-area/text-area.d.ts +0 -27
  65. package/dist/component/text-area/text-area.js +0 -57
  66. package/dist/component/text-field/text-field.d.ts +0 -36
  67. package/dist/component/text-field/text-field.js +0 -80
  68. package/dist/component/toast-noti/toast-noti.d.ts +0 -5
  69. package/dist/component/toast-noti/toast-noti.js +0 -25
  70. package/dist/component/wini-icon/winicon.d.ts +0 -20
  71. package/dist/component/wini-icon/winicon.js +0 -176
  72. package/dist/form/login/view.d.ts +0 -40
  73. package/dist/form/login/view.js +0 -66
  74. package/dist/i18n.d.ts +0 -2
  75. package/dist/i18n.js +0 -125
  76. package/dist/index.d.ts +0 -33
  77. package/dist/index.js +0 -2
  78. package/dist/index.js.LICENSE.txt +0 -18
  79. package/dist/language/i18n.d.ts +0 -2
  80. package/dist/language/i18n.js +0 -146
  81. package/global.d.ts +0 -4
  82. /package/{public → dist}/favicon.ico +0 -0
  83. /package/{public → dist}/index.html +0 -0
  84. /package/{public → dist}/logo192.png +0 -0
  85. /package/{public → dist}/logo512.png +0 -0
  86. /package/{public → dist}/manifest.json +0 -0
  87. /package/{public → dist}/robots.txt +0 -0
@@ -1,528 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DateTimePicker = DateTimePicker;
7
- const date_time_picker_module_css_1 = __importDefault(require("./date-time-picker.module.css"));
8
- const react_1 = require("react");
9
- const react_hook_form_1 = require("react-hook-form");
10
- const react_i18next_1 = require("react-i18next");
11
- const date_fns_1 = require("date-fns");
12
- const react_2 = __importDefault(require("react"));
13
- const popup_1 = require("../popup/popup");
14
- const text_1 = require("../text/text");
15
- const winicon_1 = require("../wini-icon/winicon");
16
- const text_field_1 = require("../text-field/text-field");
17
- const calendar_1 = require("../calendar/calendar");
18
- const button_1 = require("../button/button");
19
- const checkbox_1 = require("../checkbox/checkbox");
20
- const today = new Date();
21
- const startDate = new Date(today.getFullYear() - 100, today.getMonth(), today.getDate());
22
- const endDate = new Date(today.getFullYear() + 100, today.getMonth(), today.getDate());
23
- const dateToString = (x, y = "dd/mm/yyyy") => {
24
- let splitDateTime = y.split(" ");
25
- let dateFormat = splitDateTime[0];
26
- let timeFormat = splitDateTime[1];
27
- if (dateFormat.includes('hh')) {
28
- dateFormat = splitDateTime[1];
29
- timeFormat = splitDateTime[0];
30
- }
31
- let dateConvert = dateFormat.split(y.includes("/") ? "/" : "-").map(type => {
32
- switch (type.toLowerCase()) {
33
- case "dd":
34
- return x.getDate() < 10 ? `0${x.getDate()}` : `${x.getDate()}`;
35
- case "mm":
36
- return (x.getMonth() + 1) < 10 ? `0${(x.getMonth() + 1)}` : `${(x.getMonth() + 1)}`;
37
- case "yyyy":
38
- return `${x.getFullYear()}`;
39
- default:
40
- return '';
41
- }
42
- }).join(y.includes("/") ? "/" : "-");
43
- if (timeFormat) {
44
- let timeConvert = timeFormat.split(":").map(type => {
45
- switch (type) {
46
- case "hh":
47
- return x.getHours() < 10 ? `0${x.getHours()}` : `${x.getHours()}`;
48
- case "mm":
49
- return x.getMinutes() < 10 ? `0${x.getMinutes()}` : `${x.getMinutes()}`;
50
- case "ss":
51
- return x.getSeconds() < 10 ? `0${x.getSeconds()}` : `${x.getSeconds()}`;
52
- default:
53
- return '';
54
- }
55
- }).join(":");
56
- return dateConvert + " " + timeConvert;
57
- }
58
- return dateConvert;
59
- };
60
- const stringToDate = (_date, _format = "dd/mm/yyyy", _delimiter = "/") => {
61
- var _a, _b, _c, _d, _e;
62
- let dayformat = _format;
63
- let hourformat = '';
64
- let day = _date;
65
- let hours = '';
66
- let isHour = false;
67
- if (_format.trim().indexOf(" ") > -1) {
68
- dayformat = _format.trim().split(" ")[0];
69
- hourformat = _format.trim().split(" ")[1];
70
- day = _date.trim().split(" ")[0];
71
- hours = (_a = _date.trim().split(" ")[1]) !== null && _a !== void 0 ? _a : '00:00:00';
72
- isHour = true;
73
- }
74
- let formatLowerCase = dayformat.toLowerCase();
75
- let formatItems = formatLowerCase.split(_delimiter);
76
- let dateItems = day.split(_delimiter);
77
- let monthIndex = formatItems.indexOf("mm");
78
- let dayIndex = formatItems.indexOf("dd");
79
- let yearIndex = formatItems.indexOf("yyyy");
80
- let hour = 0;
81
- let min = 0;
82
- let sec = 0;
83
- if (isHour) {
84
- let tmpHour = hourformat.split(":");
85
- let hourindex = tmpHour.indexOf("HH");
86
- if (hourindex < 0) {
87
- hourindex = tmpHour.indexOf("hh");
88
- }
89
- let mmindex = tmpHour.indexOf("mm");
90
- let ssindex = tmpHour.indexOf("ss");
91
- let time = hours.split(":");
92
- hour = parseInt((_b = time[hourindex]) !== null && _b !== void 0 ? _b : '0');
93
- min = parseInt((_c = time[mmindex]) !== null && _c !== void 0 ? _c : '0');
94
- sec = parseInt((_d = time[ssindex]) !== null && _d !== void 0 ? _d : '0');
95
- }
96
- let month = parseInt(dateItems[monthIndex]);
97
- month -= 1;
98
- var formatedDate = new Date(parseInt(dateItems[yearIndex]), month, parseInt((_e = dateItems[dayIndex]) !== null && _e !== void 0 ? _e : '0'), hour, min, sec);
99
- return formatedDate;
100
- };
101
- const inRangeTime = (date, startDate, endDate) => ((0, date_fns_1.differenceInCalendarDays)(date, startDate) > -1 && (0, date_fns_1.differenceInCalendarDays)(endDate, date) > -1);
102
- function DateTimePicker(props) {
103
- const popupRef = (0, react_1.useRef)(null);
104
- const inputRef = (0, react_1.useRef)(null);
105
- const [value, setValue] = (0, react_1.useState)();
106
- const txtValue = (0, react_1.useMemo)(() => {
107
- var _a, _b, _c, _d, _e, _f;
108
- if (!value)
109
- return react_2.default.createElement(text_1.Text, { className: date_time_picker_module_css_1.default["value"], style: { color: "var(--neutral-text-subtitle-color)" } }, (_a = props.placeholder) !== null && _a !== void 0 ? _a : "");
110
- if (value instanceof Date)
111
- return react_2.default.createElement(text_1.Text, { className: date_time_picker_module_css_1.default["value"] }, dateToString(value, `dd/mm/yyyy${((_b = props.pickerType) === null || _b === void 0 ? void 0 : _b.includes("time")) ? " hh:mm" : ""}`));
112
- else
113
- return react_2.default.createElement(react_2.default.Fragment, null,
114
- react_2.default.createElement(text_1.Text, { className: date_time_picker_module_css_1.default["value"], style: { flex: "none", width: "fit-content" } },
115
- dateToString((_c = value.start) !== null && _c !== void 0 ? _c : new Date(), `dd/mm/yyyy${(((_d = props.pickerType) === null || _d === void 0 ? void 0 : _d.includes("time")) || props.pickerType === "auto") ? " hh:mm" : ""}`),
116
- " - ",
117
- dateToString((_e = value.end) !== null && _e !== void 0 ? _e : new Date(), `dd/mm/yyyy${(((_f = props.pickerType) === null || _f === void 0 ? void 0 : _f.includes("time")) || props.pickerType === "auto") ? " hh:mm" : ""}`)),
118
- value.repeatData && react_2.default.createElement(winicon_1.Winicon, { src: "outline/arrows/loop-2", size: "1.2rem" }));
119
- }, [value]);
120
- (0, react_1.useEffect)(() => {
121
- if (inputRef.current) {
122
- if (value && value instanceof Date)
123
- inputRef.current.value = dateToString(value, `dd/mm/yyyy`);
124
- else
125
- inputRef.current.value = "";
126
- }
127
- }, [value, inputRef.current]);
128
- (0, react_1.useEffect)(() => {
129
- switch (props.pickerType) {
130
- case "date":
131
- case "datetime":
132
- setValue(props.value);
133
- break;
134
- default:
135
- setValue((!props.value || !props.endValue) ? undefined : { start: props.value, end: props.endValue, repeatData: props.pickerType === "auto" ? props.repeatValue : undefined });
136
- break;
137
- }
138
- }, [props.value, props.endValue, props.repeatValue, props.pickerType]);
139
- const showCalendar = (rect) => {
140
- (0, popup_1.showPopup)({
141
- ref: popupRef,
142
- clickOverlayClosePopup: true,
143
- content: react_2.default.createElement(PopupDateTimePicker, { ref: popupRef, max: props.max, min: props.min, value: value instanceof Date ? value : value === null || value === void 0 ? void 0 : value.start, endValue: value instanceof Date ? undefined : value === null || value === void 0 ? void 0 : value.end, pickerType: props.pickerType, enableRepeat: props.enableRepeat, style: { top: rect.bottom + 2, left: rect.left + 16 }, onApply: (ev) => {
144
- setValue(ev);
145
- (0, popup_1.closePopup)(popupRef);
146
- if (props.onChange)
147
- props.onChange(ev);
148
- if (inputRef.current)
149
- inputRef.current.focus();
150
- } })
151
- });
152
- };
153
- const returnUI = () => {
154
- var _a, _b, _c, _d, _e, _f, _g;
155
- switch (props.pickerType) {
156
- case "date":
157
- return react_2.default.createElement("div", { id: props.id, className: `row ${date_time_picker_module_css_1.default["date-time-picker"]} ${(_a = props.className) !== null && _a !== void 0 ? _a : "body-3"} ${((_b = props.helperText) === null || _b === void 0 ? void 0 : _b.length) ? date_time_picker_module_css_1.default['helper-text'] : ""}`, "helper-text": props.helperText, style: props.style ? Object.assign(Object.assign({}, { '--helper-text-color': (_c = props.helperTextColor) !== null && _c !== void 0 ? _c : '#e14337' }), props.style) : { '--helper-text-color': (_d = props.helperTextColor) !== null && _d !== void 0 ? _d : '#e14337' }, onClick: (ev) => {
158
- const rect = ev.target.closest("div").getBoundingClientRect();
159
- showCalendar(rect);
160
- } }, (_e = props.prefix) !== null && _e !== void 0 ? _e : react_2.default.createElement(winicon_1.Winicon, { className: date_time_picker_module_css_1.default["prefix-icon"], src: "outline/user interface/calendar-date", size: "1.2rem" }),
161
- react_2.default.createElement("input", { className: date_time_picker_module_css_1.default["value"], ref: inputRef, autoComplete: 'off', disabled: props.disabled, placeholder: props.placeholder, readOnly: props.pickOnly, onKeyDown: (ev) => {
162
- switch (ev.key.toLowerCase()) {
163
- case "enter":
164
- ev.target.blur();
165
- break;
166
- default:
167
- break;
168
- }
169
- }, onBlur: props.pickOnly ? undefined : (ev) => {
170
- var _a, _b, _c, _d, _e, _f;
171
- const inputValue = ev.target.value.trim();
172
- let dateValue = undefined;
173
- if (inputValue.match(/[0-9]{1,2}(\/|-)[0-9]{1,2}(\/|-)[0-9]{4}/g)) {
174
- dateValue = stringToDate(inputValue, 'dd/MM/yyyy', '/');
175
- if (inRangeTime(dateValue, (_a = props.min) !== null && _a !== void 0 ? _a : startDate, (_b = props.min) !== null && _b !== void 0 ? _b : endDate)) {
176
- }
177
- else if ((0, date_fns_1.differenceInCalendarDays)((_c = props.min) !== null && _c !== void 0 ? _c : startDate, dateValue) > -1) {
178
- dateValue = (_d = props.min) !== null && _d !== void 0 ? _d : startDate;
179
- }
180
- else if ((0, date_fns_1.differenceInCalendarDays)(dateValue, (_e = props.min) !== null && _e !== void 0 ? _e : endDate) > -1) {
181
- dateValue = (_f = props.max) !== null && _f !== void 0 ? _f : endDate;
182
- }
183
- else {
184
- dateValue = undefined;
185
- }
186
- }
187
- setValue(dateValue);
188
- if (props.onChange)
189
- props.onChange(dateValue);
190
- } }));
191
- default:
192
- return react_2.default.createElement("button", { id: props.id, type: "button", disabled: props.disabled, className: `row ${date_time_picker_module_css_1.default["date-time-picker"]} ${(_f = props.className) !== null && _f !== void 0 ? _f : "body-3"}`, style: props.style, onClick: (ev) => {
193
- const rect = ev.target.closest("button").getBoundingClientRect();
194
- showCalendar(rect);
195
- } }, (_g = props.prefix) !== null && _g !== void 0 ? _g : react_2.default.createElement(winicon_1.Winicon, { className: date_time_picker_module_css_1.default["prefix-icon"], src: "outline/user interface/calendar-date", size: "1.2rem" }),
196
- txtValue);
197
- }
198
- };
199
- return react_2.default.createElement(react_2.default.Fragment, null,
200
- react_2.default.createElement(popup_1.Popup, { ref: popupRef }),
201
- returnUI());
202
- }
203
- const PopupDateTimePicker = (0, react_1.forwardRef)(function PopupDateTimePicker({ value, style, endValue, repeatValue, onApply, pickerType = "auto", enableRepeat = false, min, max }, ref) {
204
- const methods = (0, react_hook_form_1.useForm)({ shouldFocusError: false });
205
- const [selectTime, setSelectTime] = (0, react_1.useState)(false);
206
- const [isRepeat, setIsRepeat] = (0, react_1.useState)(false);
207
- const today = new Date();
208
- const [repeatData, setRepeatData] = (0, react_1.useState)({ type: 1, value: ["everyday"] }); // 1: daily, 2: weekly, 3: monthly
209
- const popupRef = (0, react_1.useRef)(null);
210
- const inputStartRef = (0, react_1.useRef)(null);
211
- const inputEndRef = (0, react_1.useRef)(null);
212
- const { t } = (0, react_i18next_1.useTranslation)();
213
- const regexDate = /[0-9]{1,2}(\/|-)[0-9]{1,2}(\/|-)[0-9]{4}/g;
214
- const regexTime = /^(?:[01]\d|2[0-3]):[0-5]\d(?:[:][0-5]\d)?$/g;
215
- (0, react_1.useEffect)(() => {
216
- if (repeatValue && enableRepeat) {
217
- setIsRepeat(true);
218
- setRepeatData(repeatValue);
219
- }
220
- else
221
- setIsRepeat(false);
222
- }, [repeatValue]);
223
- (0, react_1.useEffect)(() => {
224
- if (selectTime && pickerType !== "auto" && !pickerType.includes("time")) {
225
- setSelectTime(false);
226
- methods.setValue('time-start', null);
227
- methods.setValue('time-end', null);
228
- }
229
- else if (!selectTime && pickerType.includes("time")) {
230
- setSelectTime(true);
231
- }
232
- }, [pickerType]);
233
- const initStartValue = () => {
234
- if (value) {
235
- const initStart = new Date(value);
236
- methods.setValue('date-start', initStart);
237
- inputStartRef.current.getInput().value = dateToString(initStart);
238
- if (pickerType.includes("time") || initStart.getSeconds() === 1) {
239
- setSelectTime(true);
240
- methods.setValue('time-start', `${initStart.getHours() < 9 ? `0${initStart.getHours()}` : initStart.getHours()}:${initStart.getMinutes() < 9 ? `0${initStart.getMinutes()}` : initStart.getMinutes()}`);
241
- }
242
- }
243
- else
244
- inputStartRef.current.getInput().value = "";
245
- };
246
- const initEndValue = () => {
247
- if (((pickerType === null || pickerType === void 0 ? void 0 : pickerType.includes("range")) || pickerType === "auto") && inputEndRef.current) {
248
- if (endValue) {
249
- const initEnd = new Date(endValue);
250
- methods.setValue('date-end', initEnd);
251
- inputEndRef.current.getInput().value = dateToString(initEnd);
252
- if (pickerType.includes("time") || initEnd.getSeconds() === 59)
253
- methods.setValue('time-end', `${initEnd.getHours() < 9 ? `0${initEnd.getHours()}` : initEnd.getHours()}:${initEnd.getMinutes() < 9 ? `0${initEnd.getMinutes()}` : initEnd.getMinutes()}`);
254
- }
255
- else
256
- inputEndRef.current.getInput().value = "";
257
- }
258
- };
259
- (0, react_1.useEffect)(() => {
260
- if (value && inputStartRef.current)
261
- initStartValue();
262
- }, [value, inputStartRef]);
263
- (0, react_1.useEffect)(() => {
264
- initEndValue();
265
- }, [endValue, inputEndRef, pickerType]);
266
- return react_2.default.createElement("div", { className: "col", style: Object.assign({ width: "31.2rem" }, style) },
267
- react_2.default.createElement(popup_1.Popup, { ref: popupRef }),
268
- react_2.default.createElement(calendar_1.Calendar, { min: min, max: max, range: pickerType.includes("range") || pickerType === "auto", value: pickerType === "date" || pickerType === "datetime" ? methods.watch('date-start') : (methods.watch('date-start') && methods.watch('date-end') ? { sTime: methods.watch('date-start'), eTime: methods.watch('date-end') } : undefined), header: pickerType !== "date" && react_2.default.createElement("div", { className: 'row', style: { flexWrap: "wrap", gap: "0.8rem 1.2rem", padding: "1.6rem", borderBottom: "var(--neutral-main-border)" } },
269
- react_2.default.createElement(text_field_1.TextField, { ref: inputStartRef, autoComplete: "off", className: 'col12 body-3', style: { "--gutter": "1.2rem", padding: "0.4rem 1.2rem" }, placeholder: pickerType.includes("range") || pickerType === "auto" ? t("start-date") : "dd/mm/yyyy", onComplete: (ev) => ev.target.blur(), onBlur: (ev) => {
270
- const inputValue = ev.target.value;
271
- if (regexDate.test(inputValue)) {
272
- const dateValue = stringToDate(inputValue, 'dd/mm/yyyy', '/');
273
- if ((pickerType.includes("range") || pickerType === "auto") && (0, date_fns_1.differenceInCalendarDays)(methods.getValues('date-end'), dateValue) < 0) {
274
- methods.setValue('date-end', dateValue);
275
- inputEndRef.current.getInput().value = dateToString(dateValue);
276
- }
277
- methods.setValue('date-start', dateValue);
278
- }
279
- else
280
- ev.target.value = methods.getValues('date-start') ? dateToString(methods.getValues('date-start')) : "";
281
- } }),
282
- (pickerType.includes("range") || pickerType === "auto") &&
283
- react_2.default.createElement(text_field_1.TextField, { ref: inputEndRef, autoComplete: "off", className: 'col12 body-3', style: { "--gutter": "1.2rem", padding: "0.4rem 1.2rem" }, placeholder: t("end-date"), onComplete: (ev) => ev.target.blur(), onBlur: (ev) => {
284
- const inputValue = ev.target.value;
285
- if (regexDate.test(inputValue)) {
286
- const dateValue = stringToDate(inputValue, 'dd/mm/yyyy', '/');
287
- if ((0, date_fns_1.differenceInCalendarDays)(dateValue, methods.getValues('date-start')) < 0) {
288
- methods.setValue('date-start', dateValue);
289
- inputStartRef.current.getInput().value = dateToString(dateValue);
290
- }
291
- methods.setValue('date-end', dateValue);
292
- }
293
- else
294
- ev.target.value = methods.getValues('date-end') ? dateToString(methods.getValues('date-end')) : "";
295
- } }),
296
- selectTime && react_2.default.createElement(react_2.default.Fragment, null,
297
- react_2.default.createElement(text_field_1.TextField, { autoComplete: "off", name: 'time-start', style: { "--gutter": "1.2rem", padding: "0.4rem 1.2rem" }, onComplete: (ev) => { ev.target.blur(); }, register: methods.register("time-start", {
298
- onChange: (ev) => ev.target.value = ev.target.value.trim(),
299
- onBlur: (ev) => {
300
- if (regexTime.test(ev.target.value)) {
301
- methods.setValue('time-start', ev.target.value);
302
- }
303
- else
304
- ev.target.value = "";
305
- }
306
- }), className: 'col12 body-3', placeholder: "hh:mm", onFocus: (ev) => {
307
- const rect = ev.target.closest("div").getBoundingClientRect();
308
- (0, popup_1.showPopup)({
309
- ref: popupRef,
310
- clickOverlayClosePopup: true,
311
- content: react_2.default.createElement("div", { className: `col ${date_time_picker_module_css_1.default['popup-actions']}`, style: { maxHeight: "24rem", top: rect.bottom + 2, right: document.body.offsetWidth - rect.right, width: rect.width, overflow: "hidden auto", border: "var(--neutral-main-border)" } }, Array.from({ length: 48 }).map((_, i) => {
312
- if (i % 2 === 0)
313
- var timeValue = `${(i / 2) < 9 ? `0${i / 2}` : (i / 2)}:00`;
314
- else
315
- timeValue = `${((i - 1) / 2) < 9 ? `0${(i - 1) / 2}` : ((i - 1) / 2)}:30`;
316
- return react_2.default.createElement("button", { key: "time-" + i, type: "button", className: "row", onClick: () => {
317
- methods.setValue("time-start", timeValue);
318
- (0, popup_1.closePopup)(popupRef);
319
- } },
320
- react_2.default.createElement(text_1.Text, { className: "body-3" }, timeValue));
321
- }))
322
- });
323
- } }),
324
- (pickerType.includes("range") || pickerType === "auto") &&
325
- react_2.default.createElement(text_field_1.TextField, { autoComplete: "off", name: 'time-end', style: { "--gutter": "1.2rem", padding: "0.4rem 1.2rem" }, onComplete: (ev) => { ev.target.blur(); }, register: methods.register("time-end", {
326
- onChange: (ev) => ev.target.value = ev.target.value.trim(),
327
- onBlur: (ev) => {
328
- if (regexTime.test(ev.target.value)) {
329
- methods.setValue('time-end', ev.target.value);
330
- }
331
- else
332
- ev.target.value = "";
333
- }
334
- }), className: 'col12 body-3', placeholder: "hh:mm", onFocus: (ev) => {
335
- const rect = ev.target.closest("div").getBoundingClientRect();
336
- (0, popup_1.showPopup)({
337
- ref: popupRef,
338
- clickOverlayClosePopup: true,
339
- content: react_2.default.createElement("div", { className: `col ${date_time_picker_module_css_1.default['popup-actions']}`, style: { maxHeight: "24rem", top: rect.bottom + 2, right: document.body.offsetWidth - rect.right, width: rect.width, overflow: "hidden auto", border: "var(--neutral-main-border)" } }, Array.from({ length: 48 }).map((_, i) => {
340
- if (i % 2 === 0)
341
- var timeValue = `${(i / 2) < 9 ? `0${i / 2}` : (i / 2)}:00`;
342
- else
343
- timeValue = `${((i - 1) / 2) < 9 ? `0${(i - 1) / 2}` : ((i - 1) / 2)}:30`;
344
- return react_2.default.createElement("button", { key: "time-" + i, type: "button", className: "row", onClick: () => {
345
- methods.setValue("time-end", timeValue);
346
- (0, popup_1.closePopup)(popupRef);
347
- } },
348
- react_2.default.createElement(text_1.Text, { className: "body-3" }, timeValue));
349
- }))
350
- });
351
- } }))), footer: pickerType !== "date" && react_2.default.createElement(react_2.default.Fragment, null,
352
- isRepeat && react_2.default.createElement("div", { className: 'col', style: { borderTop: "var(--neutral-main-border)" } },
353
- react_2.default.createElement("div", { className: 'row', style: { gap: 4, padding: "1.2rem 1.6rem" } },
354
- react_2.default.createElement(text_1.Text, { className: 'heading-8', style: { flex: 1 } }, "L\u1EB7p l\u1EA1i"),
355
- react_2.default.createElement(button_1.Button, { style: { padding: 0 }, label: (() => {
356
- switch (repeatData.type) {
357
- case 1:
358
- return t("daily");
359
- case 2:
360
- return t("weekly");
361
- case 3:
362
- return t("monthly");
363
- default:
364
- return "";
365
- }
366
- })(), suffix: react_2.default.createElement(winicon_1.Winicon, { src: 'outline/arrows/down-arrow', size: "1.4rem", style: { padding: "0.2rem" } }), onClick: (ev) => {
367
- const rect = ev.target.closest("button").getBoundingClientRect();
368
- (0, popup_1.showPopup)({
369
- ref: popupRef,
370
- clickOverlayClosePopup: true,
371
- style: { position: "absolute", top: rect.bottom + 2, left: rect.x + 8 },
372
- body: react_2.default.createElement("div", { className: "col popup-actions" }, Array.from({ length: 3 }).map((_, num) => {
373
- let label = "";
374
- switch (num) {
375
- case 0:
376
- label = t("daily");
377
- break;
378
- case 1:
379
- label = t("weekly");
380
- break;
381
- case 2:
382
- label = t("monthly");
383
- break;
384
- default:
385
- break;
386
- }
387
- return react_2.default.createElement("button", { key: "tStatus-" + num, type: "button", className: "row", onClick: () => {
388
- let newValue = ["everyday"];
389
- switch (num) {
390
- case 0:
391
- newValue = ["everyday"];
392
- break;
393
- case 1:
394
- newValue = today.getDay();
395
- break;
396
- case 2:
397
- newValue = today.getDate();
398
- break;
399
- default:
400
- break;
401
- }
402
- setRepeatData({ type: (num + 1), value: [newValue] });
403
- (0, popup_1.closePopup)(popupRef);
404
- } },
405
- react_2.default.createElement(text_1.Text, { className: "button-text-3" }, label));
406
- }))
407
- });
408
- } })),
409
- (() => {
410
- switch (repeatData.type) {
411
- case 2:
412
- return react_2.default.createElement(react_2.default.Fragment, null,
413
- react_2.default.createElement(text_1.Text, { className: 'heading-8', style: { padding: "0 1.6rem" } }, t("on") + " " + t("date").toLowerCase()),
414
- react_2.default.createElement("div", { className: 'row', style: { justifyContent: "space-between", padding: "0.4rem 1.6rem" } }, Array.from({ length: 7 }).map((_, i) => {
415
- switch (i) {
416
- case 0:
417
- var weekdayTitle = t("su");
418
- break;
419
- case 1:
420
- weekdayTitle = t("mo");
421
- break;
422
- case 2:
423
- weekdayTitle = t("tu");
424
- break;
425
- case 3:
426
- weekdayTitle = t("we");
427
- break;
428
- case 4:
429
- weekdayTitle = t("th");
430
- break;
431
- case 5:
432
- weekdayTitle = t("fr");
433
- break;
434
- case 6:
435
- weekdayTitle = t("sa");
436
- break;
437
- default:
438
- weekdayTitle = '';
439
- break;
440
- }
441
- return react_2.default.createElement("div", { key: "weekday-" + i, className: 'col', style: { gap: 4, alignItems: "center" } },
442
- react_2.default.createElement(checkbox_1.Checkbox, { size: "1.8rem", value: repeatData.value.includes(i), disabled: repeatData.value.includes(i) && repeatData.value.length === 1, onChange: (v) => {
443
- if (v)
444
- setRepeatData({ type: 2, value: [...repeatData.value, i] });
445
- else
446
- setRepeatData({ type: 2, value: repeatData.value.filter(id => id !== i) });
447
- } }),
448
- react_2.default.createElement(text_1.Text, { className: 'placeholder-2' }, weekdayTitle));
449
- })));
450
- case 3:
451
- return react_2.default.createElement("div", { className: 'row', style: { justifyContent: "space-between", padding: "0.4rem 1.6rem", gap: "1.2rem" } },
452
- react_2.default.createElement(text_1.Text, { className: 'heading-8', style: { flex: 1 } }, t("on") + " " + t("date").toLowerCase()),
453
- react_2.default.createElement(button_1.Button, { style: { padding: 0 }, label: repeatData.value[0] === "last" ? t("Last") : `${repeatData.value[0]}`, suffix: react_2.default.createElement(winicon_1.Winicon, { src: 'outline/arrows/down-arrow', size: "1.4rem", style: { padding: "0.2rem" } }), onClick: (ev) => {
454
- const rect = ev.target.closest("button").getBoundingClientRect();
455
- (0, popup_1.showPopup)({
456
- ref: popupRef,
457
- clickOverlayClosePopup: true,
458
- style: { top: rect.bottom + 2, right: document.body.offsetWidth - rect.right, maxHeight: "30.4rem" },
459
- body: react_2.default.createElement("div", { className: "col popup-actions", style: { flex: 1, overflow: "hidden auto" } }, Array.from({ length: 29 }).map((_, num) => {
460
- switch (num) {
461
- case 28:
462
- var label = t("Last");
463
- break;
464
- default:
465
- label = `${num + 1}`;
466
- break;
467
- }
468
- return react_2.default.createElement("button", { key: "date-" + num, type: "button", className: "row", onClick: () => {
469
- setRepeatData({ type: 3, value: [num === 28 ? "last" : (num + 1)] });
470
- (0, popup_1.closePopup)(popupRef);
471
- } },
472
- react_2.default.createElement(text_1.Text, { className: "button-text-3" }, label));
473
- }))
474
- });
475
- } }));
476
- default:
477
- return null;
478
- }
479
- })()),
480
- onApply && react_2.default.createElement("div", { className: 'row', style: { gap: "0.8rem", padding: "1.2rem 1.6rem", borderTop: "var(--neutral-main-border)" } },
481
- pickerType === "auto" && react_2.default.createElement("div", { className: 'row', style: { gap: 4 } },
482
- react_2.default.createElement(winicon_1.Winicon, { src: 'outline/user interface/time-alarm', size: "1.6rem", style: { padding: "0.7rem", borderRadius: "50%", backgroundColor: selectTime ? "var(--neutral-disable-background-color)" : undefined }, onClick: () => { setSelectTime(!selectTime); } }),
483
- (enableRepeat || pickerType === "auto") && react_2.default.createElement(winicon_1.Winicon, { src: 'outline/arrows/loop-2', size: "1.6rem", style: { padding: "0.7rem", borderRadius: "50%", backgroundColor: isRepeat ? "var(--neutral-disable-background-color)" : undefined }, onClick: () => { setIsRepeat(!isRepeat); } })),
484
- react_2.default.createElement("div", { style: { flex: 1 } }),
485
- react_2.default.createElement(button_1.Button, { label: t("reset"), onClick: () => {
486
- methods.setValue("date-start", null);
487
- methods.setValue("date-end", null);
488
- methods.setValue("time-start", null);
489
- methods.setValue("time-end", null);
490
- initStartValue();
491
- initEndValue();
492
- } }),
493
- react_2.default.createElement(button_1.Button, { label: t("apply"), disabled: !methods.watch("date-start") || (!methods.watch("date-end") && (pickerType.includes("range") || pickerType === "auto")), className: `button-text-3 button-primary`, onClick: () => {
494
- var _a, _b;
495
- let dateStartValue = methods.getValues("date-start");
496
- let timeStartValue = selectTime ? (((_a = methods.getValues("time-start")) === null || _a === void 0 ? void 0 : _a.length) ? methods.getValues("time-start") : "00:00") : "00:00";
497
- dateStartValue.setHours(parseInt(timeStartValue.split(':')[0]), parseInt(timeStartValue.split(':')[1]), selectTime ? 1 : 0, 0);
498
- if (pickerType.includes("range") || pickerType === "auto") {
499
- var dateEndValue = methods.getValues("date-end");
500
- let timeEndValue = selectTime ? (((_b = methods.getValues("time-end")) === null || _b === void 0 ? void 0 : _b.length) ? methods.getValues("time-end") : "23:59") : "23:59";
501
- dateEndValue.setHours(parseInt(timeEndValue.split(':')[0]), parseInt(timeEndValue.split(':')[1]), selectTime ? 59 : 0, 0);
502
- }
503
- onApply(!pickerType.includes("range") && pickerType !== "auto" ? dateStartValue : { start: dateStartValue, end: dateEndValue, repeatData: isRepeat ? repeatData : undefined });
504
- (0, popup_1.closePopup)(ref);
505
- } }))), onSelect: (ev) => {
506
- if (pickerType !== "date") {
507
- if (ev instanceof Date) {
508
- methods.setValue('date-start', ev);
509
- if (inputStartRef.current)
510
- inputStartRef.current.getInput().value = dateToString(ev);
511
- }
512
- else {
513
- methods.setValue('date-start', ev.sTime);
514
- if (inputStartRef.current)
515
- inputStartRef.current.getInput().value = dateToString(ev.sTime);
516
- if (pickerType.includes("range") || pickerType === "auto") {
517
- methods.setValue('date-end', ev.eTime);
518
- if (inputEndRef.current)
519
- inputEndRef.current.getInput().value = dateToString(ev.eTime);
520
- }
521
- }
522
- }
523
- else if (onApply) {
524
- onApply(ev);
525
- (0, popup_1.closePopup)(ref);
526
- }
527
- } }));
528
- });
@@ -1,18 +0,0 @@
1
- import React from 'react';
2
- import { ComponentStatus } from '../../index';
3
- export declare enum DialogAlignment {
4
- start = "start",
5
- center = "center",
6
- end = "end"
7
- }
8
- export declare const Dialog: () => React.JSX.Element;
9
- export declare const showDialog: (props: {
10
- title?: string;
11
- status?: ComponentStatus;
12
- content?: string;
13
- onSubmit?: Function;
14
- onCancel?: Function;
15
- submitTitle?: string;
16
- cancelTitle?: string;
17
- alignment?: DialogAlignment;
18
- }) => void;