@trilogy-ds/react 4.12.0 → 4.13.0-datepicker

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 (59) hide show
  1. package/lib/components/alert/AlertPropsDefaults.js +2 -0
  2. package/lib/components/alert/ToasterStatusPropsDefaults.js +2 -0
  3. package/lib/components/alert/context/ToastPropsDefaults.js +2 -0
  4. package/lib/components/autocomplete/AutoCompletePropsNativeDefaults.js +4 -0
  5. package/lib/components/autocomplete/AutoCompletePropsWebDefaults.js +4 -0
  6. package/lib/components/button/ButtonPropsDefaults.js +2 -0
  7. package/lib/components/calendar/Calendar.d.ts +12 -5
  8. package/lib/components/calendar/Calendar.js +66 -16
  9. package/lib/components/calendar/Calendar.native.d.ts +3 -0
  10. package/lib/components/calendar/Calendar.native.js +6 -0
  11. package/lib/components/calendar/index.d.ts +1 -0
  12. package/lib/components/calendar/index.js +2 -1
  13. package/lib/components/checkbox/tiles/tile/CheckboxTilePropsDefaults.js +2 -0
  14. package/lib/components/datepicker/DatePicker.d.ts +21 -0
  15. package/lib/components/datepicker/DatePicker.js +371 -0
  16. package/lib/components/datepicker/DatePicker.native.d.ts +3 -0
  17. package/lib/components/datepicker/DatePicker.native.js +6 -0
  18. package/lib/components/datepicker/DatePickerEnum.d.ts +7 -0
  19. package/lib/components/datepicker/DatePickerEnum.js +8 -0
  20. package/lib/components/datepicker/DatePickerProps.d.ts +36 -0
  21. package/lib/components/datepicker/DatePickerProps.js +2 -0
  22. package/lib/components/datepicker/DatePickerPropsDefaults.js +102 -0
  23. package/lib/components/datepicker/HandleKeyPressDefaults.js +14 -0
  24. package/lib/components/datepicker/SegmentDefaults.js +33 -0
  25. package/lib/components/datepicker/SegmentsDefaults.js +14 -0
  26. package/lib/components/datepicker/index.d.ts +2 -0
  27. package/lib/components/datepicker/index.js +3 -0
  28. package/lib/components/divider/DividerPropsDefaults.js +2 -0
  29. package/lib/components/enumsComponentsName.d.ts +2 -1
  30. package/lib/components/enumsComponentsName.js +2 -1
  31. package/lib/components/fab/FabPropsDefaults.js +2 -0
  32. package/lib/components/icon/IconNameEnum.d.ts +1 -0
  33. package/lib/components/icon/IconNameEnum.js +2 -1
  34. package/lib/components/icon/IconPropsDefaults.js +2 -0
  35. package/lib/components/index.d.ts +1 -0
  36. package/lib/components/index.js +2 -1
  37. package/lib/components/input/InputPropsDefaults.js +4 -0
  38. package/lib/components/link/LinkDefaults.js +2 -0
  39. package/lib/components/link/LinkPropsDefaults.js +2 -0
  40. package/lib/components/link/LinkPropsNativeDefaults.js +2 -0
  41. package/lib/components/list/item/ListItemPropsDefaults.js +2 -0
  42. package/lib/components/radio/tiles/tile/RadioTilePropsDefaults.js +2 -0
  43. package/lib/components/select/PropsDefaults.js +2 -0
  44. package/lib/components/select/SelectNativePropsDefaults.js +2 -0
  45. package/lib/components/select/SelectPropsDefaults.js +2 -0
  46. package/lib/components/select/option/SelectOptionPropsDefaults.js +2 -0
  47. package/lib/components/stepper/step/StepPropsDefaults.js +2 -0
  48. package/lib/components/sticker/StickerPropsDefaults.js +2 -0
  49. package/lib/components/tabs/tab-list/TabList.native.js +5 -2
  50. package/lib/components/tabs/tab-list/tab/Tab.native.js +8 -6
  51. package/lib/components/tabs/tab-list/tab/TabPropsDefaults.js +2 -0
  52. package/lib/components/tag/TagPropsDefaults.js +1 -0
  53. package/lib/components/timeline/marker/TimelineMarkerPropsDefaults.js +2 -0
  54. package/lib/components/timeline/marker/TimelineMarkerWebPropsDefaults.js +2 -0
  55. package/lib/helpers/clickOustide.d.ts +1 -0
  56. package/lib/helpers/clickOustide.js +15 -0
  57. package/lib/version.d.ts +1 -1
  58. package/lib/version.js +2 -2
  59. package/package.json +1 -1
@@ -0,0 +1,371 @@
1
+ import { __read } from "tslib";
2
+ import { Calendar } from '../../components/calendar';
3
+ import { ComponentName } from '../../components/enumsComponentsName';
4
+ import { Icon } from '../../components/icon';
5
+ import { useTrilogyContext } from '../../context';
6
+ import { useClickOutside } from '../../helpers/clickOustide';
7
+ import { hashClass } from '../../helpers/hashClassesHelpers';
8
+ import { TypographyColor } from '../../objects';
9
+ import { has, is } from '../../services';
10
+ import clsx from 'clsx';
11
+ import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
12
+ import { Modal, ModalBody } from '../modal';
13
+ import { Text, TextLevels, TextMarkup } from '../text';
14
+ var APPROXIMATIVE_HEIGHT_CALENDAR = 420;
15
+ var checkIsValidDate = function (date, year, month, day) {
16
+ return date.getFullYear() === parseInt(year) &&
17
+ date.getMonth() === parseInt(month) - 1 &&
18
+ date.getDate() === parseInt(day) &&
19
+ !isNaN(date.getTime());
20
+ };
21
+ var getFirstDayFocusable = function () {
22
+ var _a;
23
+ var calendar = document.querySelector('[data-calendar-trilogy]');
24
+ var activeDate = calendar.querySelector("[data-active-date]");
25
+ var today = calendar.querySelector("[data-today]");
26
+ var firstOfMonth = calendar.querySelector("[data-calendar-trilogy] tbody button:not(:disabled)");
27
+ return ((_a = activeDate !== null && activeDate !== void 0 ? activeDate : today) !== null && _a !== void 0 ? _a : firstOfMonth);
28
+ };
29
+ /**
30
+ * DatePicker Component
31
+ * @param id
32
+ * @param value {Date | [Date, Date] | [Date] | []} Value for DatePicker
33
+ * @param minDate {Date} Min value for DatePicker
34
+ * @param maxDate {Date} Max value for DatePicker
35
+ * @param disabled {boolean} Disabled DatePicker
36
+ * @param readOnly {boolean} Read only DatePicker
37
+ * @param disabledDates {Date[]} Values disabled
38
+ * @param onChange {Function} DatePicker DatePicker Event
39
+ * @param className {string} Additional CSS Classes
40
+ * @param label {string} Label for DatePicker
41
+ * @param sample {string} Sample for DatePicker (below label)
42
+ * @param help {string} Help for DatePicker
43
+ * @param required {boolean} Required DatePicker
44
+ * @param status {InputStatus} DatePicker with status - (SUCCESS|WARNING|ERROR|DEFAULT)
45
+ */
46
+ var DatePicker = forwardRef(function (_a, ref) {
47
+ var onChange = _a.onChange, value = _a.value, minDate = _a.minDate, maxDate = _a.maxDate, className = _a.className, label = _a.label, sample = _a.sample, required = _a.required, help = _a.help, status = _a.status, disabled = _a.disabled, disabledDates = _a.disabledDates, _b = _a.id, id = _b === void 0 ? React.useId() : _b;
48
+ var styled = useTrilogyContext().styled;
49
+ var _c = __read(useState('jj'), 2), day = _c[0], setDay = _c[1];
50
+ var _d = __read(useState('mm'), 2), month = _d[0], setMonth = _d[1];
51
+ var _e = __read(useState('aaaa'), 2), year = _e[0], setYear = _e[1];
52
+ var _f = __read(useState(false), 2), isOpenCalendar = _f[0], setIsOpenCalendar = _f[1];
53
+ var _g = __read(useState(false), 2), canContinueTyping = _g[0], setCanContinueTyping = _g[1];
54
+ var _h = __read(useState(0), 2), yearPosition = _h[0], setYearPosition = _h[1];
55
+ var _j = __read(useState(false), 2), openUpward = _j[0], setOpenUpward = _j[1];
56
+ var _k = __read(useState(false), 2), focused = _k[0], setIsFocused = _k[1];
57
+ var _l = __read(useState(false), 2), isMobile = _l[0], setIsMobile = _l[1];
58
+ var refsSegment = useRef([]);
59
+ var refsFocusable = useRef([]);
60
+ var refContainer = useRef(null);
61
+ var refCalendar = useRef(null);
62
+ var currentFocusIndexRef = useRef(0);
63
+ var segmentFocused = useRef(null);
64
+ var refIcon = useRef(null);
65
+ var refInput = useRef(null);
66
+ var calendarContainerClasses = hashClass(styled, clsx('date-picker-calendar', openUpward && 'calendar-top'));
67
+ var datePickerClasses = hashClass(styled, clsx('field date-picker', className));
68
+ var controlClasses = hashClass(styled, clsx('control', has('icons-right')));
69
+ var inputClasses = hashClass(styled, clsx('input', status && is(status), focused && is('focused')));
70
+ var iconRightClasses = hashClass(styled, clsx('icon-right'));
71
+ var helpClasses = clsx('help', status && is(status));
72
+ var inputLabelClasses = hashClass(styled, 'input-label');
73
+ useImperativeHandle(ref, function () { return refContainer.current; });
74
+ useClickOutside(refCalendar, function () {
75
+ setTimeout(function () {
76
+ setIsOpenCalendar(false);
77
+ }, 0);
78
+ });
79
+ useClickOutside(refInput, function () {
80
+ setTimeout(function () {
81
+ setIsFocused(false);
82
+ }, 0);
83
+ });
84
+ var segments = {
85
+ day: {
86
+ sensitiveValue: 3,
87
+ maxValue: 31,
88
+ segment: day,
89
+ segmentPosition: 0,
90
+ segmentSetter: setDay,
91
+ label: 'jj',
92
+ initValue: '01',
93
+ },
94
+ month: {
95
+ sensitiveValue: 1,
96
+ maxValue: 12,
97
+ segment: month,
98
+ segmentPosition: 1,
99
+ segmentSetter: setMonth,
100
+ label: 'mm',
101
+ initValue: '01',
102
+ },
103
+ year: {
104
+ sensitiveValue: false,
105
+ maxValue: 9999,
106
+ segment: year,
107
+ segmentPosition: 2,
108
+ segmentSetter: setYear,
109
+ label: 'aaaa',
110
+ initValue: String(new Date().getFullYear()),
111
+ },
112
+ };
113
+ var calendarValue = useMemo(function () {
114
+ if (parseInt(day) && parseInt(month) && parseInt(year)) {
115
+ var newDate = new Date("".concat(year, "-").concat(month, "-").concat(day));
116
+ var isValidDate = checkIsValidDate(newDate, year, month, day);
117
+ if (isValidDate)
118
+ return newDate;
119
+ }
120
+ }, [day, month, year]);
121
+ var handleKeyPress = function (_a) {
122
+ var event = _a.event, type = _a.type;
123
+ if (disabled)
124
+ return;
125
+ var key = event.key;
126
+ event.preventDefault();
127
+ var allowedKeys = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
128
+ if (!allowedKeys.includes(key))
129
+ return;
130
+ var digit = parseInt(key);
131
+ var _b = segments[type], segmentPosition = _b.segmentPosition, segment = _b.segment, segmentSetter = _b.segmentSetter, sensitiveValue = _b.sensitiveValue, maxValue = _b.maxValue;
132
+ var isDay = type === 'day';
133
+ var isMonth = type === 'month';
134
+ var isYear = type === 'year';
135
+ var newValue = !canContinueTyping
136
+ ? isYear
137
+ ? "000".concat(key)
138
+ : "0".concat(key)
139
+ : isYear
140
+ ? segment + key
141
+ : segment[1] + key;
142
+ if (!canContinueTyping) {
143
+ segmentSetter(newValue);
144
+ if (sensitiveValue === false || digit <= sensitiveValue)
145
+ setCanContinueTyping(true);
146
+ if (sensitiveValue && digit > sensitiveValue)
147
+ setTimeout(function () {
148
+ if (segmentPosition < 2)
149
+ refsSegment.current[segmentPosition + 1].focus();
150
+ }, 0);
151
+ }
152
+ if (canContinueTyping) {
153
+ var num = parseInt(newValue);
154
+ if (num >= 1 && num <= maxValue)
155
+ segmentSetter(isYear ? newValue.slice(-4) : newValue);
156
+ if (!isYear || (isYear && yearPosition === 3)) {
157
+ setCanContinueTyping(false);
158
+ setTimeout(function () {
159
+ if (segmentPosition < 2)
160
+ refsSegment.current[segmentPosition + 1].focus();
161
+ }, 0);
162
+ }
163
+ }
164
+ if (isYear)
165
+ setYearPosition(function (prev) { return (prev === 3 ? 0 : prev + 1); });
166
+ var newDay = isDay ? newValue : day;
167
+ var newMonth = isMonth ? newValue : month;
168
+ var newYear = isYear ? newValue : year;
169
+ if (parseInt(newDay) && parseInt(newMonth) && parseInt(newYear)) {
170
+ var newDate = new Date("".concat(newYear, "-").concat(newMonth, "-").concat(newDay));
171
+ var isValidDate = checkIsValidDate(newDate, newYear, newMonth, newDay);
172
+ if (onChange)
173
+ onChange(isNaN(newDate === null || newDate === void 0 ? void 0 : newDate.getTime()) || !isValidDate ? null : newDate);
174
+ }
175
+ };
176
+ var handleKeyDownDay = function (e, type) {
177
+ if (disabled)
178
+ return;
179
+ var _a = segments[type], segmentSetter = _a.segmentSetter, label = _a.label, maxValue = _a.maxValue, initValue = _a.initValue, segmentPosition = _a.segmentPosition;
180
+ switch (e.key) {
181
+ case 'Backspace':
182
+ e.preventDefault();
183
+ segmentSetter(label);
184
+ break;
185
+ case ' ':
186
+ e.preventDefault();
187
+ setIsOpenCalendar(true);
188
+ segmentFocused.current = refsSegment.current[segmentPosition];
189
+ break;
190
+ case 'Escape':
191
+ e.preventDefault();
192
+ setIsOpenCalendar(false);
193
+ break;
194
+ case 'ArrowUp':
195
+ e.preventDefault();
196
+ segmentSetter(function (prev) {
197
+ if (type === 'year' && prev === 'aaaa')
198
+ return initValue;
199
+ var currentValue = parseInt(prev) || 0;
200
+ var nextValue = (currentValue % maxValue) + 1;
201
+ return String(nextValue).padStart(2, '0');
202
+ });
203
+ break;
204
+ case 'ArrowDown':
205
+ e.preventDefault();
206
+ segmentSetter(function (prev) {
207
+ if (type === 'year' && prev === 'aaaa')
208
+ return initValue;
209
+ var value = parseInt(prev);
210
+ if (!value)
211
+ return String(maxValue).padStart(2, '0');
212
+ var nextValue = value <= 1 ? maxValue : value - 1;
213
+ return String(nextValue).padStart(2, '0');
214
+ });
215
+ break;
216
+ default:
217
+ return;
218
+ }
219
+ };
220
+ var handleFocus = function () {
221
+ if (disabled)
222
+ return;
223
+ setIsFocused(true);
224
+ setCanContinueTyping(false);
225
+ };
226
+ var handlePressCalendar = function () {
227
+ if (disabled)
228
+ return;
229
+ if (refContainer.current) {
230
+ segmentFocused.current = refIcon.current;
231
+ var _a = refContainer.current.getBoundingClientRect(), top_1 = _a.top, bottom = _a.bottom;
232
+ var windowHeight = window.innerHeight;
233
+ var spaceBelow = windowHeight - bottom;
234
+ var padding = 10;
235
+ var maxHeightBelow = spaceBelow - padding;
236
+ var maxHeightAbove = top_1 - padding;
237
+ var openUpward_1 = maxHeightBelow < APPROXIMATIVE_HEIGHT_CALENDAR && maxHeightAbove > maxHeightBelow;
238
+ setOpenUpward(openUpward_1);
239
+ }
240
+ setIsOpenCalendar(true);
241
+ };
242
+ var handleChangeCalendar = function (e) {
243
+ var dateCalendar = e;
244
+ var dateDay = dateCalendar.getDate();
245
+ var dateMonth = dateCalendar.getMonth() + 1;
246
+ var dateYear = dateCalendar.getFullYear();
247
+ setDay(dateDay < 10 ? "0".concat(dateDay) : String(dateDay));
248
+ setMonth(dateMonth < 10 ? "0".concat(dateMonth) : String(dateMonth));
249
+ setYear(String(dateYear));
250
+ setIsOpenCalendar(false);
251
+ if (onChange)
252
+ onChange(dateCalendar);
253
+ };
254
+ var onKeyDown = function (e) {
255
+ var _a;
256
+ if (disabled)
257
+ return;
258
+ if (isOpenCalendar && e.key === 'Tab') {
259
+ e.preventDefault();
260
+ if (refsFocusable.current) {
261
+ var currentIndex = currentFocusIndexRef.current;
262
+ var offset = e.shiftKey ? -1 : 1;
263
+ var nextIndex = (currentIndex + offset + (refsFocusable === null || refsFocusable === void 0 ? void 0 : refsFocusable.current.length)) % (refsFocusable === null || refsFocusable === void 0 ? void 0 : refsFocusable.current.length);
264
+ currentFocusIndexRef.current = nextIndex;
265
+ refsFocusable.current[nextIndex].focus();
266
+ }
267
+ }
268
+ if (isOpenCalendar && ['Escape', 'Enter'].includes(e.key)) {
269
+ e.preventDefault();
270
+ setIsOpenCalendar(false);
271
+ (_a = segmentFocused.current) === null || _a === void 0 ? void 0 : _a.focus();
272
+ }
273
+ };
274
+ var calendar = useMemo(function () {
275
+ return (React.createElement(Calendar, { disabledDates: disabledDates, maxDate: maxDate, minDate: minDate, onChange: handleChangeCalendar, ref: refCalendar, value: calendarValue, onMonthChange: function () {
276
+ if (isOpenCalendar && refCalendar.current) {
277
+ var calendar_1 = refCalendar.current;
278
+ setTimeout(function () {
279
+ refsFocusable.current = [];
280
+ var elms = calendar_1.querySelectorAll("[data-focusable=true]");
281
+ var firstDayFocusable = getFirstDayFocusable();
282
+ refsFocusable.current[0] = firstDayFocusable;
283
+ elms.forEach(function (el, i) {
284
+ var htmlElement = el;
285
+ if (htmlElement)
286
+ refsFocusable.current[i + 1] = htmlElement;
287
+ });
288
+ }, 10);
289
+ }
290
+ } }));
291
+ }, [
292
+ disabledDates,
293
+ maxDate,
294
+ minDate,
295
+ handleChangeCalendar,
296
+ refCalendar,
297
+ calendarValue,
298
+ isOpenCalendar,
299
+ refsFocusable,
300
+ ]);
301
+ useEffect(function () {
302
+ if (!value)
303
+ return;
304
+ var dateDay = value.getDate();
305
+ var dateMonth = value.getMonth() + 1;
306
+ var dateYear = value.getFullYear();
307
+ setDay(dateDay < 10 ? "0".concat(dateDay) : String(dateDay));
308
+ setMonth(dateMonth < 10 ? "0".concat(dateMonth) : String(dateMonth));
309
+ setYear(String(dateYear));
310
+ }, [value]);
311
+ useEffect(function () {
312
+ if (isOpenCalendar && refCalendar.current) {
313
+ var elms = refCalendar.current.querySelectorAll("[data-focusable=true]");
314
+ var firstDayFocusable = getFirstDayFocusable();
315
+ refsFocusable.current[0] = firstDayFocusable;
316
+ firstDayFocusable.focus();
317
+ elms.forEach(function (el, i) {
318
+ var htmlElement = el;
319
+ if (htmlElement)
320
+ refsFocusable.current[i + 1] = htmlElement;
321
+ });
322
+ }
323
+ if (!isOpenCalendar && currentFocusIndexRef.current)
324
+ currentFocusIndexRef.current = 0;
325
+ }, [isOpenCalendar, refCalendar, currentFocusIndexRef]);
326
+ useEffect(function () {
327
+ var handleResize = function () { return setIsMobile(window.innerWidth <= 768); };
328
+ handleResize();
329
+ window.addEventListener('resize', handleResize);
330
+ return function () { return window.removeEventListener('resize', handleResize); };
331
+ }, []);
332
+ return (React.createElement("div", { ref: refContainer, className: datePickerClasses, onKeyDown: onKeyDown },
333
+ label && (React.createElement("label", { className: inputLabelClasses, htmlFor: id },
334
+ label,
335
+ ' ',
336
+ required && (React.createElement(Text, { markup: TextMarkup.SPAN, typo: TypographyColor.TEXT_ERROR }, "*")))),
337
+ sample && (React.createElement(Text, { className: 'input-sample', level: TextLevels.TWO }, sample)),
338
+ React.createElement("div", { className: controlClasses },
339
+ React.createElement("div", { "aria-disabled": disabled, ref: refInput, className: inputClasses, onMouseDown: function () {
340
+ if (disabled)
341
+ return;
342
+ setTimeout(function () {
343
+ refsSegment.current[0].focus();
344
+ }, 0);
345
+ } },
346
+ React.createElement("input", { disabled: disabled, id: id, name: 'day', type: 'text', value: day, onKeyUp: function (e) { return handleKeyPress({ event: e, type: 'day' }); }, onFocus: handleFocus, onKeyDown: function (e) { return handleKeyDownDay(e, 'day'); }, onMouseDown: function (e) { return e.stopPropagation(); }, placeholder: 'jj', maxLength: 2, readOnly: true, ref: function (el) {
347
+ if (el)
348
+ refsSegment.current[0] = el;
349
+ } }),
350
+ React.createElement("span", null, "/"),
351
+ React.createElement("input", { disabled: disabled, name: 'month', type: 'text', value: month, onKeyUp: function (e) { return handleKeyPress({ event: e, type: 'month' }); }, onFocus: handleFocus, onKeyDown: function (e) { return handleKeyDownDay(e, 'month'); }, onMouseDown: function (e) { return e.stopPropagation(); }, placeholder: 'mm', maxLength: 2, readOnly: true, ref: function (el) {
352
+ if (el)
353
+ refsSegment.current[1] = el;
354
+ } }),
355
+ React.createElement("span", null, "/"),
356
+ React.createElement("input", { disabled: disabled, name: 'year', type: 'text', value: year, onKeyUp: function (e) { return handleKeyPress({ event: e, type: 'year' }); }, onFocus: handleFocus, onKeyDown: function (e) { return handleKeyDownDay(e, 'year'); }, onMouseDown: function (e) { return e.stopPropagation(); }, placeholder: 'aaaa', maxLength: 4, readOnly: true, ref: function (el) {
357
+ if (el)
358
+ refsSegment.current[2] = el;
359
+ } })),
360
+ React.createElement("button", { tabIndex: disabled ? -1 : undefined, onClick: handlePressCalendar, ref: refIcon, "data-show-calendar": 'true', onFocus: function () {
361
+ setIsFocused(false);
362
+ } },
363
+ React.createElement(Icon, { name: 'tri-calendar', className: iconRightClasses }))),
364
+ help && React.createElement(Text, { className: helpClasses }, help),
365
+ isOpenCalendar && !isMobile && React.createElement("div", { className: calendarContainerClasses }, calendar),
366
+ isOpenCalendar && isMobile && (React.createElement(Modal, { active: isOpenCalendar, hideCloseButton: true },
367
+ React.createElement(ModalBody, null, calendar)))));
368
+ });
369
+ DatePicker.displayName = ComponentName.DatePicker;
370
+ export default DatePicker;
371
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9EYXRlUGlja2VyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSx1QkFBdUIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFpQixTQUFTLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFDbkgsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDM0MsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBR3RELElBQU0sNkJBQTZCLEdBQUcsR0FBRyxDQUFBO0FBRXpDLElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxJQUFVLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBRSxHQUFXO0lBQzVFLE9BQUEsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDckMsSUFBSSxDQUFD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
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const DatePicker: () => JSX.Element;
3
+ export default DatePicker;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ var DatePicker = function () {
3
+ return React.createElement(React.Fragment, null);
4
+ };
5
+ export default DatePicker;
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVBpY2tlci5uYXRpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL2RhdGVwaWNrZXIvRGF0ZVBpY2tlci5uYXRpdmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUV6QixJQUFNLFVBQVUsR0FBRztJQUNqQixPQUFPLHlDQUFLLENBQUE7QUFDZCxDQUFDLENBQUE7QUFFRCxlQUFlLFVBQVUsQ0FBQSJ9
@@ -0,0 +1,7 @@
1
+ export declare enum DatePickerStatus {
2
+ SUCCESS = "success",
3
+ WARNING = "warning",
4
+ ERROR = "error",
5
+ DEFAULT = "default"
6
+ }
7
+ export type DatePickerStatusValues = `${DatePickerStatus}`;
@@ -0,0 +1,8 @@
1
+ export var DatePickerStatus;
2
+ (function (DatePickerStatus) {
3
+ DatePickerStatus["SUCCESS"] = "success";
4
+ DatePickerStatus["WARNING"] = "warning";
5
+ DatePickerStatus["ERROR"] = "error";
6
+ DatePickerStatus["DEFAULT"] = "default";
7
+ })(DatePickerStatus || (DatePickerStatus = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVBpY2tlckVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL2RhdGVwaWNrZXIvRGF0ZVBpY2tlckVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUMxQix1Q0FBbUIsQ0FBQTtJQUNuQix1Q0FBbUIsQ0FBQTtJQUNuQixtQ0FBZSxDQUFBO0lBQ2YsdUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUxXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFLM0IifQ==
@@ -0,0 +1,36 @@
1
+ /// <reference types="react" />
2
+ import { DatePickerStatus, DatePickerStatusValues } from './DatePickerEnum';
3
+ export type SegmentType = 'day' | 'month' | 'year';
4
+ export interface HandleKeyPress {
5
+ event: React.KeyboardEvent<HTMLInputElement>;
6
+ type: 'day' | 'month' | 'year';
7
+ }
8
+ export interface DatePickerProps {
9
+ value?: Date;
10
+ onChange?: (date: Date | null) => void;
11
+ minDate?: Date;
12
+ maxDate?: Date;
13
+ className?: string;
14
+ label?: string;
15
+ sample?: string;
16
+ required?: boolean;
17
+ status?: DatePickerStatus | DatePickerStatusValues;
18
+ help?: string;
19
+ disabled?: boolean;
20
+ id?: string;
21
+ disabledDates?: Date[];
22
+ }
23
+ export interface Segment {
24
+ sensitiveValue: number | false;
25
+ maxValue: number;
26
+ segment: string;
27
+ segmentPosition: number;
28
+ segmentSetter: React.Dispatch<React.SetStateAction<string>>;
29
+ label: string;
30
+ initValue: string;
31
+ }
32
+ export interface Segments {
33
+ day: Segment;
34
+ month: Segment;
35
+ year: Segment;
36
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVBpY2tlclByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vY29tcG9uZW50cy9kYXRlcGlja2VyL0RhdGVQaWNrZXJQcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,102 @@
1
+ export default {
2
+ "value": {
3
+ "type": "string",
4
+ "values": [
5
+ "undefined",
6
+ "Date"
7
+ ]
8
+ },
9
+ "onChange": {
10
+ "type": "function",
11
+ "values": [
12
+ "undefined",
13
+ "(date: Date | null) => void"
14
+ ]
15
+ },
16
+ "minDate": {
17
+ "type": "string",
18
+ "values": [
19
+ "undefined",
20
+ "Date"
21
+ ]
22
+ },
23
+ "maxDate": {
24
+ "type": "string",
25
+ "values": [
26
+ "undefined",
27
+ "Date"
28
+ ]
29
+ },
30
+ "className": {
31
+ "type": "string",
32
+ "values": [
33
+ "undefined",
34
+ "string"
35
+ ]
36
+ },
37
+ "label": {
38
+ "type": "string",
39
+ "values": [
40
+ "undefined",
41
+ "string"
42
+ ]
43
+ },
44
+ "sample": {
45
+ "type": "string",
46
+ "values": [
47
+ "undefined",
48
+ "string"
49
+ ]
50
+ },
51
+ "required": {
52
+ "type": "boolean",
53
+ "values": [
54
+ "undefined",
55
+ "false",
56
+ "true"
57
+ ]
58
+ },
59
+ "status": {
60
+ "type": "enum",
61
+ "values": [
62
+ "undefined",
63
+ "success",
64
+ "warning",
65
+ "error",
66
+ "default",
67
+ "success",
68
+ "warning",
69
+ "error",
70
+ "default"
71
+ ]
72
+ },
73
+ "help": {
74
+ "type": "string",
75
+ "values": [
76
+ "undefined",
77
+ "string"
78
+ ]
79
+ },
80
+ "disabled": {
81
+ "type": "boolean",
82
+ "values": [
83
+ "undefined",
84
+ "false",
85
+ "true"
86
+ ]
87
+ },
88
+ "id": {
89
+ "type": "string",
90
+ "values": [
91
+ "undefined",
92
+ "string"
93
+ ]
94
+ },
95
+ "disabledDates": {
96
+ "type": "string",
97
+ "values": [
98
+ "undefined",
99
+ "Date[]"
100
+ ]
101
+ }
102
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ "event": {
3
+ "type": "string",
4
+ "values": []
5
+ },
6
+ "type": {
7
+ "type": "string",
8
+ "values": [
9
+ "month",
10
+ "day",
11
+ "year"
12
+ ]
13
+ }
14
+ };
@@ -0,0 +1,33 @@
1
+ export default {
2
+ "sensitiveValue": {
3
+ "type": "boolean",
4
+ "values": [
5
+ "number",
6
+ "false"
7
+ ]
8
+ },
9
+ "maxValue": {
10
+ "type": "string",
11
+ "values": []
12
+ },
13
+ "segment": {
14
+ "type": "string",
15
+ "values": []
16
+ },
17
+ "segmentPosition": {
18
+ "type": "string",
19
+ "values": []
20
+ },
21
+ "segmentSetter": {
22
+ "type": "string",
23
+ "values": []
24
+ },
25
+ "label": {
26
+ "type": "string",
27
+ "values": []
28
+ },
29
+ "initValue": {
30
+ "type": "string",
31
+ "values": []
32
+ }
33
+ };
@@ -0,0 +1,14 @@
1
+ export default {
2
+ "day": {
3
+ "type": "string",
4
+ "values": []
5
+ },
6
+ "month": {
7
+ "type": "string",
8
+ "values": []
9
+ },
10
+ "year": {
11
+ "type": "string",
12
+ "values": []
13
+ }
14
+ };
@@ -0,0 +1,2 @@
1
+ import DatePicker from './DatePicker';
2
+ export { DatePicker };
@@ -0,0 +1,3 @@
1
+ import DatePicker from './DatePicker';
2
+ export { DatePicker };
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL2RhdGVwaWNrZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFBO0FBRXJDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQSJ9