@servicetitan/design-system 12.10.0 → 13.0.0
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/AnvilSelect/AnvilSelect.js +1 -1
- package/dist/components/AnvilSelect/AnvilSelect.js.map +1 -1
- package/dist/components/AnvilSelect/utils/focus-utils.js +3 -3
- package/dist/components/ButtonToggle/ButtonToggleItem.js +1 -1
- package/dist/components/ButtonToggle/ButtonToggleItem.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +6 -6
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.test.js +16 -6
- package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.css +9 -9
- package/dist/components/DatePicker/DatePicker.css.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +22 -8
- package/dist/components/DatePicker/DatePicker.js +111 -133
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DatePicker/InputDateMask.d.ts +9 -6
- package/dist/components/DatePicker/InputDateMask.js +100 -150
- package/dist/components/DatePicker/InputDateMask.js.map +1 -1
- package/dist/components/DatePicker/index.css +9 -9
- package/dist/components/DatePicker/index.css.map +1 -1
- package/dist/{utilities/maskUtils.d.ts → components/DatePicker/utils/expandMaskUtils.d.ts} +1 -0
- package/dist/{utilities/maskUtils.js → components/DatePicker/utils/expandMaskUtils.js} +34 -1
- package/dist/components/DatePicker/utils/expandMaskUtils.js.map +1 -0
- package/dist/{utilities/maskUtils.test.d.ts → components/DatePicker/utils/expandMaskUtils.test.d.ts} +0 -0
- package/dist/{utilities/maskUtils.test.js → components/DatePicker/utils/expandMaskUtils.test.js} +2 -2
- package/dist/components/DatePicker/utils/expandMaskUtils.test.js.map +1 -0
- package/dist/components/DatePicker/utils/maskUtils.d.ts +12 -0
- package/dist/components/DatePicker/utils/maskUtils.js +74 -0
- package/dist/components/DatePicker/utils/maskUtils.js.map +1 -0
- package/dist/components/DatePicker/utils/utils.d.ts +27 -0
- package/dist/components/DatePicker/utils/utils.js +98 -0
- package/dist/components/DatePicker/utils/utils.js.map +1 -0
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +84 -37
- package/dist/components/DateRangePicker/DateRangePicker.js +46 -30
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.test.js +30 -22
- package/dist/components/DateRangePicker/DateRangePicker.test.js.map +1 -1
- package/dist/components/DateRangePicker/components/DateRangeInput.d.ts +3 -3
- package/dist/components/DateRangePicker/components/DateRangeInput.js +6 -6
- package/dist/components/DateRangePicker/components/DateRangeInput.js.map +1 -1
- package/dist/components/Drawer/Drawer.js +1 -1
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/FormField/FormField.js +5 -6
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormField/FormField.test.js +19 -8
- package/dist/components/FormField/FormField.test.js.map +1 -1
- package/dist/components/Input/Input.test.js +21 -11
- package/dist/components/Input/Input.test.js.map +1 -1
- package/dist/components/OptionList/OptionList.js +0 -1
- package/dist/components/OptionList/OptionList.js.map +1 -1
- package/dist/components/Popover/Popover.test.js +7 -6
- package/dist/components/Popover/Popover.test.js.map +1 -1
- package/dist/components/Radio/Radio.test.js +16 -6
- package/dist/components/Radio/Radio.test.js.map +1 -1
- package/dist/components/SideNav/SideNavItem.d.ts +3 -3
- package/dist/components/SideNav/SideNavItem.js +10 -2
- package/dist/components/SideNav/SideNavItem.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.css +4 -1
- package/dist/components/Sidebar/Sidebar.css.map +1 -1
- package/dist/components/Sidebar/Sidebar.js +1 -1
- package/dist/components/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/Sidebar/SidebarSection.css +4 -1
- package/dist/components/Sidebar/SidebarSection.css.map +1 -1
- package/dist/components/Sidebar/index.css +4 -1
- package/dist/components/Sidebar/index.css.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts +6 -2
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.test.js +18 -6
- package/dist/components/Snackbar/Snackbar.test.js.map +1 -1
- package/dist/components/TimePicker/TimePicker.d.ts +5 -1
- package/dist/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/components/ToggleSwitch/ToggleSwitch.test.js +16 -6
- package/dist/components/ToggleSwitch/ToggleSwitch.test.js.map +1 -1
- package/dist/components/index.css +13 -10
- package/dist/components/index.css.map +1 -1
- package/dist/global/index.css +1 -1
- package/dist/global/version.css +1 -1
- package/dist/hooks/useFocusVisible.test.js +25 -15
- package/dist/hooks/useFocusVisible.test.js.map +1 -1
- package/dist/internal/Portal/Portal.js +1 -1
- package/dist/system-light.css +1 -1
- package/dist/system-light.min.css +1 -1
- package/dist/system.css +14 -11
- package/dist/system.css.map +1 -1
- package/dist/system.min.css +2 -2
- package/dist/utilities/KeyboardAccessTests/KeyboardAccess.test.d.ts +1 -0
- package/dist/utilities/KeyboardAccessTests/KeyboardAccess.test.js +372 -0
- package/dist/utilities/KeyboardAccessTests/KeyboardAccess.test.js.map +1 -0
- package/dist/utilities/KeyboardAccessTests/components/KeyboardTester.d.ts +2 -0
- package/dist/utilities/KeyboardAccessTests/components/KeyboardTester.js +22 -0
- package/dist/utilities/KeyboardAccessTests/components/KeyboardTester.js.map +1 -0
- package/dist/utilities/KeyboardAccessTests/components/components.d.ts +15 -0
- package/dist/utilities/KeyboardAccessTests/components/components.js +166 -0
- package/dist/utilities/KeyboardAccessTests/components/components.js.map +1 -0
- package/dist/utilities/KeyboardAccessTests/components/index.d.ts +2 -0
- package/dist/utilities/KeyboardAccessTests/components/index.js +3 -0
- package/dist/utilities/KeyboardAccessTests/components/index.js.map +1 -0
- package/dist/utilities/KeyboardAccessTests/utils/index.d.ts +2 -0
- package/dist/utilities/KeyboardAccessTests/utils/index.js +3 -0
- package/dist/utilities/KeyboardAccessTests/utils/index.js.map +1 -0
- package/dist/utilities/KeyboardAccessTests/utils/jestUtils.d.ts +12 -0
- package/dist/utilities/KeyboardAccessTests/utils/jestUtils.js +52 -0
- package/dist/utilities/KeyboardAccessTests/utils/jestUtils.js.map +1 -0
- package/dist/utilities/KeyboardAccessTests/utils/utils.d.ts +2 -0
- package/dist/utilities/KeyboardAccessTests/utils/utils.js +132 -0
- package/dist/utilities/KeyboardAccessTests/utils/utils.js.map +1 -0
- package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js +8 -6
- package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js.map +1 -1
- package/package.json +12 -11
- package/dist/components/Drawer/DrawerFooter.d.ts +0 -8
- package/dist/components/Drawer/DrawerFooter.js +0 -24
- package/dist/components/Drawer/DrawerFooter.js.map +0 -1
- package/dist/components/Drawer/DrawerHeader.d.ts +0 -9
- package/dist/components/Drawer/DrawerHeader.js +0 -24
- package/dist/components/Drawer/DrawerHeader.js.map +0 -1
- package/dist/components/Drawer/DrawerWindow.d.ts +0 -6
- package/dist/components/Drawer/DrawerWindow.js +0 -18
- package/dist/components/Drawer/DrawerWindow.js.map +0 -1
- package/dist/components/Page/components/Footer.d.ts +0 -8
- package/dist/components/Page/components/Footer.js +0 -7
- package/dist/components/Page/components/Footer.js.map +0 -1
- package/dist/utilities/maskUtils.js.map +0 -1
- package/dist/utilities/maskUtils.test.js.map +0 -1
|
@@ -9,175 +9,125 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React from 'react';
|
|
13
|
-
import { Input } from '../Input';
|
|
14
|
-
import moment from 'moment';
|
|
15
|
-
import InputMask from 'react-input-mask';
|
|
12
|
+
import React, { useEffect, useState } from 'react';
|
|
16
13
|
import classnames from 'classnames';
|
|
14
|
+
import InputMask from 'react-input-mask';
|
|
15
|
+
import { Input } from '../Input';
|
|
17
16
|
import { keys } from '../../utilities/keyCodes';
|
|
18
|
-
import {
|
|
19
|
-
|
|
17
|
+
import { compareObj, isInvalidDate } from './utils/utils';
|
|
18
|
+
import { formatDate, isFocusInsideDatePicker, parseEntry, } from './utils/maskUtils';
|
|
19
|
+
import { expandMaskValue, findMaskFieldBoundariesAtPosition, } from './utils/expandMaskUtils';
|
|
20
|
+
export const defaultFormat = 'MM/DD/YYYY';
|
|
21
|
+
export const defaultMaskChar = '_';
|
|
20
22
|
export const InputDateMask = (_a) => {
|
|
21
|
-
var { alwaysShowMask, className, dateFormat =
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const [
|
|
26
|
-
const [
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (evt.key === keys.slash) {
|
|
36
|
-
setExpandValueAtCursor(true);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
const expandMaskValue = (mask, cursorPosition) => {
|
|
40
|
-
let value = mask;
|
|
41
|
-
const parsedValue = parseInt(getValueAtIndex(mask, cursorPosition), 10);
|
|
42
|
-
if (!parsedValue)
|
|
43
|
-
return value;
|
|
44
|
-
const [startIndex, endIndex] = findMaskFieldBoundariesAtPosition(mask, cursorPosition);
|
|
45
|
-
const desiredMaskLength = endIndex - startIndex;
|
|
46
|
-
if (desiredMaskLength === 4) {
|
|
47
|
-
// End early if full year already exists
|
|
48
|
-
if (parsedValue.toString().length === 4)
|
|
49
|
-
return value;
|
|
50
|
-
/**
|
|
51
|
-
* auto fills year if value is between the beginning of century
|
|
52
|
-
* and 5 years ahead
|
|
53
|
-
*
|
|
54
|
-
* @todo: Change year calculations to use current year for all non-existant values
|
|
55
|
-
* E.g. 7 -> 2027, 20 -> 2020, 181 -> 2181, assuming current year is 2021
|
|
56
|
-
*/
|
|
57
|
-
const currentYear = new Date().getFullYear();
|
|
58
|
-
const beginningOfCentury = round(currentYear, 100);
|
|
59
|
-
const yearsFromBeginningOfCentury = currentYear - beginningOfCentury + 5;
|
|
60
|
-
let year = parsedValue + beginningOfCentury;
|
|
61
|
-
if (parsedValue > yearsFromBeginningOfCentury) {
|
|
62
|
-
year -= parsedValue >= 100 ? 1000 : 100;
|
|
63
|
-
}
|
|
64
|
-
value = setValueAtIndex(mask, cursorPosition, year);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
value = expandValueAtIndex(mask, cursorPosition);
|
|
68
|
-
}
|
|
69
|
-
return value;
|
|
70
|
-
};
|
|
71
|
-
const updateMaskValue = (value) => {
|
|
72
|
-
setMask(value);
|
|
73
|
-
if (isMaskValid(value)) {
|
|
74
|
-
onChange(parseDate(value));
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
onChange(undefined);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
const handleBeforeMaskedValueChange = (newState, oldState) => {
|
|
81
|
-
var _a, _b, _c;
|
|
82
|
-
falseEmptyChange =
|
|
83
|
-
!/\d/.test(newState.value) && !/\d/.test(oldState.value);
|
|
84
|
-
if (((_a = newState === null || newState === void 0 ? void 0 : newState.selection) === null || _a === void 0 ? void 0 : _a.start) === ((_b = newState === null || newState === void 0 ? void 0 : newState.selection) === null || _b === void 0 ? void 0 : _b.end)) {
|
|
85
|
-
setCursorPosition((_c = newState === null || newState === void 0 ? void 0 : newState.selection) === null || _c === void 0 ? void 0 : _c.start);
|
|
86
|
-
}
|
|
87
|
-
if (expandValueAtCursor) {
|
|
88
|
-
setExpandValueAtCursor(false);
|
|
89
|
-
const value = expandMaskValue(newState.value, newState.selection.start);
|
|
90
|
-
if (value === maskValue) {
|
|
91
|
-
return newState;
|
|
23
|
+
var { alwaysShowMask, className, dateFormat = defaultFormat, disabled, error, maskChar = defaultMaskChar, maxDate: max, minDate: min, onChange, onBlur, placeholder, required, shortLabel, size, value, tabIndex, inputRef, calendarRef, input } = _a, rest = __rest(_a, ["alwaysShowMask", "className", "dateFormat", "disabled", "error", "maskChar", "maxDate", "minDate", "onChange", "onBlur", "placeholder", "required", "shortLabel", "size", "value", "tabIndex", "inputRef", "calendarRef", "input"]);
|
|
24
|
+
const [entry, setEntry] = useState(''); // Input's text entry, e.g. mask value
|
|
25
|
+
const [rangeError, setRangeError] = useState(false);
|
|
26
|
+
const [requiredError, setRequiredError] = useState(false);
|
|
27
|
+
const [invalidEntryError, setInvalidEntryError] = useState(false);
|
|
28
|
+
const [expandMaskAtCursor, setExpandMaskAtCursor] = React.useState(false);
|
|
29
|
+
const isChangeFromMask = React.useRef(false);
|
|
30
|
+
const parse = (str = entry) => parseEntry(str, dateFormat, maskChar, min, max, required);
|
|
31
|
+
// Effects
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (isInvalidDate(value) || typeof value === 'undefined') {
|
|
34
|
+
if (isChangeFromMask.current) {
|
|
35
|
+
isChangeFromMask.current = false; // In case value came from InputDateMask...
|
|
36
|
+
return; // ...keep user's entry as is
|
|
92
37
|
}
|
|
93
|
-
updateMaskValue(value);
|
|
94
|
-
// reposition cursor
|
|
95
|
-
const [, endIndex] = findMaskFieldBoundariesAtPosition(newState.value, newState.selection.start);
|
|
96
|
-
newState.selection = { start: endIndex, end: endIndex };
|
|
97
|
-
newState.value = value;
|
|
98
38
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
39
|
+
const nextEntry = formatDate(value, dateFormat);
|
|
40
|
+
setRangeError(parse(nextEntry).isOutRange);
|
|
41
|
+
setRequiredError(false);
|
|
42
|
+
setInvalidEntryError(false);
|
|
43
|
+
setEntry(nextEntry);
|
|
44
|
+
}, [compareObj(value)]); // eslint-disable-line
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (!isChangeFromMask.current)
|
|
47
|
+
return; // Prevent double onChange if value changed from outside of InputDateMask
|
|
48
|
+
const { date, isEmpty, isFull, isOutRange, isValid, invalidReason } = parse(); // New entry
|
|
49
|
+
setInvalidEntryError(isFull && !isValid);
|
|
50
|
+
if (!isValid && !isFull && !isEmpty) {
|
|
51
|
+
if ((value && !isInvalidDate(value)) || // `12/12/2023` → `12/12/202_`
|
|
52
|
+
(typeof value === 'undefined' && !isEmpty) // `__/__/____` → `1_/__/____`
|
|
53
|
+
) {
|
|
54
|
+
isChangeFromMask.current = true;
|
|
55
|
+
onChange(date, { invalidReason });
|
|
108
56
|
}
|
|
57
|
+
return; // Suppress onChange if entry not full
|
|
109
58
|
}
|
|
110
|
-
if (
|
|
59
|
+
if (isOutRange || (isFull && !isValid)) {
|
|
60
|
+
isChangeFromMask.current = true;
|
|
61
|
+
setRangeError(true);
|
|
62
|
+
onChange(date, { invalidReason });
|
|
111
63
|
return;
|
|
112
64
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur(undefined);
|
|
118
|
-
};
|
|
119
|
-
const handleChange = (event) => {
|
|
120
|
-
const value = event.target.value;
|
|
121
|
-
setRawValue(value.length ? value : undefined);
|
|
122
|
-
setMask(value);
|
|
123
|
-
if (falseEmptyChange) {
|
|
124
|
-
return;
|
|
65
|
+
// Suppress firing onChange for same values
|
|
66
|
+
if (compareObj(value) !== compareObj(date)) {
|
|
67
|
+
isChangeFromMask.current = true;
|
|
68
|
+
onChange(date, { invalidReason }); // Finally
|
|
125
69
|
}
|
|
126
|
-
|
|
127
|
-
|
|
70
|
+
}, [entry]); // eslint-disable-line
|
|
71
|
+
// Handlers
|
|
72
|
+
const handleMaskKeyDown = (e) => {
|
|
73
|
+
if (e.key === keys.delete) {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
setRequiredError(required && !parse().isEmpty);
|
|
76
|
+
setEntry(''); // Clear user's entry
|
|
128
77
|
}
|
|
129
|
-
|
|
130
|
-
|
|
78
|
+
if (e.key === keys.slash) {
|
|
79
|
+
e.preventDefault();
|
|
80
|
+
setExpandMaskAtCursor(true); // Performs `1_/__/____` → `01/__/____`, etc.
|
|
131
81
|
}
|
|
132
82
|
};
|
|
133
|
-
const
|
|
134
|
-
|
|
83
|
+
const handleMaskBlur = (e) => {
|
|
84
|
+
if (isFocusInsideDatePicker(inputRef, calendarRef, e))
|
|
85
|
+
return; // Suppress if focus is still inside DatePicker
|
|
86
|
+
const { date, isEmpty, isFull, isOutRange, isValid, invalidReason } = parse();
|
|
87
|
+
setRequiredError(required && !isFull);
|
|
88
|
+
setRangeError(isOutRange);
|
|
89
|
+
setInvalidEntryError(!isEmpty && !isValid);
|
|
90
|
+
onBlur(date, { invalidReason });
|
|
91
|
+
isChangeFromMask.current = false;
|
|
135
92
|
};
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
93
|
+
const handleMaskChange = (e) => {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
if (e.type !== 'change')
|
|
96
|
+
return; // Other possible types: focus, blur
|
|
97
|
+
isChangeFromMask.current = true;
|
|
98
|
+
const nextEntry = (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.value;
|
|
99
|
+
if (nextEntry === entry)
|
|
100
|
+
return;
|
|
101
|
+
(_b = input === null || input === void 0 ? void 0 : input.onChange) === null || _b === void 0 ? void 0 : _b.call(input, e, nextEntry);
|
|
102
|
+
const { isEmpty, isFull, isOutRange, isValid } = parse(nextEntry);
|
|
103
|
+
setRangeError(isOutRange);
|
|
104
|
+
setRequiredError(required && isEmpty);
|
|
105
|
+
setInvalidEntryError(isFull && !isValid);
|
|
106
|
+
setEntry(nextEntry); // Runs effect on state change later to handle onChange
|
|
142
107
|
};
|
|
143
|
-
const
|
|
144
|
-
|
|
108
|
+
const handleBeforeMaskChange = (next) => {
|
|
109
|
+
if (expandMaskAtCursor) {
|
|
110
|
+
setExpandMaskAtCursor(false);
|
|
111
|
+
const expanded = expandMaskValue(next.value, next.selection.start);
|
|
112
|
+
if (expanded === entry || parse(expanded).isEmpty)
|
|
113
|
+
return next;
|
|
114
|
+
setEntry(expanded);
|
|
115
|
+
const nextIndex = findMaskFieldBoundariesAtPosition(next.value, next.selection.start)[1];
|
|
116
|
+
next.selection = { start: nextIndex + 1, end: nextIndex + 1 }; // Reposition cursor to next boundary
|
|
117
|
+
next.value = expanded;
|
|
118
|
+
}
|
|
119
|
+
if (entry === '' && parse(next.value).isEmpty)
|
|
120
|
+
next.selection = { start: 0, end: 0 }; // Send cursor to start on clearing mask
|
|
121
|
+
return next;
|
|
145
122
|
};
|
|
146
|
-
const isDateInRange = React.useCallback((date) => {
|
|
147
|
-
if (minDate && maxDate) {
|
|
148
|
-
return date >= minDate && date <= maxDate;
|
|
149
|
-
}
|
|
150
|
-
else if (minDate) {
|
|
151
|
-
return date >= minDate;
|
|
152
|
-
}
|
|
153
|
-
else if (maxDate) {
|
|
154
|
-
return date <= maxDate;
|
|
155
|
-
}
|
|
156
|
-
return true;
|
|
157
|
-
}, [minDate, maxDate]);
|
|
158
|
-
const isDateStringValid = React.useCallback((date) => moment(date, dateFormat).isValid() &&
|
|
159
|
-
isDateInRange(parseDate(date)), [dateFormat, isDateInRange, parseDate]);
|
|
160
|
-
const isMaskValid = React.useCallback((mask) => !(mask === null || mask === void 0 ? void 0 : mask.includes(maskChar)) && isDateStringValid(mask), [maskChar, isDateStringValid]);
|
|
161
|
-
React.useEffect(() => {
|
|
162
|
-
if (value === undefined && isMaskValid(maskValue)) {
|
|
163
|
-
setMask('');
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
setMask(formatDate(value));
|
|
167
|
-
}
|
|
168
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
169
|
-
}, [value]);
|
|
170
123
|
/*
|
|
171
|
-
*
|
|
172
|
-
* This gets turned back to `maskChar` a few lines below.
|
|
173
|
-
* I don't know why we're doing this.
|
|
124
|
+
* InputMask mask prop format: https://github.com/sanniassin/react-input-mask
|
|
174
125
|
*/
|
|
175
126
|
const mask = dateFormat.replace(/[MmDdYyo]/g, '9');
|
|
176
|
-
const realError = error || getMaskError() || getValueError();
|
|
177
127
|
const realPlaceholder = placeholder || mask.replace(/9/g, maskChar);
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
128
|
+
return (React.createElement(InputMask, Object.assign({}, rest, { mask: mask, disabled: disabled, maskChar: maskChar, onChange: handleMaskChange, onKeyDown: handleMaskKeyDown, onBlur: handleMaskBlur, beforeMaskedValueChange: handleBeforeMaskChange, alwaysShowMask: alwaysShowMask, value: entry }), (props) => (React.createElement(Input, Object.assign({}, props, { inputRef: inputRef, shortLabel: shortLabel, className: classnames('InputDateMask', className), size: size, fluid: true, error: error ||
|
|
129
|
+
(required && requiredError) ||
|
|
130
|
+
invalidEntryError ||
|
|
131
|
+
((min || max) && rangeError), disabled: disabled, placeholder: realPlaceholder, tabIndex: tabIndex })))));
|
|
182
132
|
};
|
|
183
133
|
//# sourceMappingURL=InputDateMask.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputDateMask.js","sourceRoot":"","sources":["../../../src/components/DatePicker/InputDateMask.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"InputDateMask.js","sourceRoot":"","sources":["../../../src/components/DatePicker/InputDateMask.tsx"],"names":[],"mappings":"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"}
|
|
@@ -437,15 +437,6 @@ span.Popover {
|
|
|
437
437
|
cursor: pointer;
|
|
438
438
|
}
|
|
439
439
|
|
|
440
|
-
.DatePicker--open .InputDateMask:not(:focus) > .Input__InnerWrapper {
|
|
441
|
-
background-color: var(--colorsSurfaceDefault, #ffffff);
|
|
442
|
-
border-color: var(--colorsBorderPrimary, #2270ee);
|
|
443
|
-
}
|
|
444
|
-
.DatePicker--open .InputDateMask--error:not(:focus) > .Input__InnerWrapper {
|
|
445
|
-
background-color: var(--colorsSurfaceCriticalSubdued, #ffece9);
|
|
446
|
-
border-color: var(--colorsBorderCritical, #e13212);
|
|
447
|
-
}
|
|
448
|
-
|
|
449
440
|
.DatePicker--disabled {
|
|
450
441
|
opacity: 0.6;
|
|
451
442
|
pointer-events: none;
|
|
@@ -454,6 +445,15 @@ span.Popover {
|
|
|
454
445
|
opacity: 1;
|
|
455
446
|
}
|
|
456
447
|
|
|
448
|
+
.DatePicker--open .Input:not(:focus) > .Input__InnerWrapper {
|
|
449
|
+
background-color: var(--colorsSurfaceDefault, #ffffff);
|
|
450
|
+
border-color: var(--colorsBorderPrimary, #2270ee);
|
|
451
|
+
}
|
|
452
|
+
.DatePicker--open .Input.Input--error:not(:focus) > .Input__InnerWrapper {
|
|
453
|
+
background-color: var(--colorsSurfaceCriticalSubdued, #ffece9);
|
|
454
|
+
border-color: var(--colorsBorderCritical, #e13212);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
457
|
/* Kendo calendar styles */
|
|
458
458
|
.DatePicker__calendar {
|
|
459
459
|
/* Set color on root of component. It can be overridden after the @include */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Form/Form.scss","../../../src/components/Checkbox/Checkbox.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/Popover/Popover.scss","../../../src/themes/kendo/_kendo-variables.scss","../../../src/components/DatePicker/DatePicker.scss"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Form/Form.scss","../../../src/components/Checkbox/Checkbox.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss","../../../src/components/Popover/Popover.scss","../../../src/themes/kendo/_kendo-variables.scss","../../../src/components/DatePicker/DatePicker.scss"],"names":[],"mappings":"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","file":"index.css"}
|
|
@@ -18,3 +18,4 @@ export declare const findMaskFieldBoundariesAtPosition: (mask: string, cursorPos
|
|
|
18
18
|
export declare const getValueAtIndex: (mask: string, index: number, config?: Partial<IMaskPartConfig>) => string | null;
|
|
19
19
|
export declare function setValueAtIndex(mask: string, index: number, value: string | number, config?: Partial<IMaskPartConfig>): string;
|
|
20
20
|
export declare function expandValueAtIndex(mask: string, index: number, config?: Partial<IMaskPartConfig>): string;
|
|
21
|
+
export declare const expandMaskValue: (mask: string, cursorPosition: number) => string;
|
|
@@ -2,6 +2,7 @@ const defaultConfig = {
|
|
|
2
2
|
maskChar: '_',
|
|
3
3
|
allowedChars: /^[\d]$/,
|
|
4
4
|
};
|
|
5
|
+
const round = (year, to = 100) => year - (year % to);
|
|
5
6
|
/**
|
|
6
7
|
* Find boundaries of mask field in specified cursor position.
|
|
7
8
|
*
|
|
@@ -60,4 +61,36 @@ export function setValueAtIndex(mask, index, value, config = {}) {
|
|
|
60
61
|
export function expandValueAtIndex(mask, index, config = {}) {
|
|
61
62
|
return setValueAtIndex(mask, index, getValueAtIndex(mask, index, config), config);
|
|
62
63
|
}
|
|
63
|
-
|
|
64
|
+
export const expandMaskValue = (mask, cursorPosition) => {
|
|
65
|
+
let value = mask;
|
|
66
|
+
const parsedValue = parseInt(getValueAtIndex(mask, cursorPosition), 10);
|
|
67
|
+
if (!parsedValue)
|
|
68
|
+
return value;
|
|
69
|
+
const [startIndex, endIndex] = findMaskFieldBoundariesAtPosition(mask, cursorPosition);
|
|
70
|
+
const desiredMaskLength = endIndex - startIndex;
|
|
71
|
+
if (desiredMaskLength === 4) {
|
|
72
|
+
// End early if full year already exists
|
|
73
|
+
if (parsedValue.toString().length === 4)
|
|
74
|
+
return value;
|
|
75
|
+
/**
|
|
76
|
+
* auto fills year if value is between the beginning of century
|
|
77
|
+
* and 5 years ahead
|
|
78
|
+
*
|
|
79
|
+
* @todo: Change year calculations to use current year for all non-existant values
|
|
80
|
+
* E.g. 7 -> 2027, 20 -> 2020, 181 -> 2181, assuming current year is 2021
|
|
81
|
+
*/
|
|
82
|
+
const currentYear = new Date().getFullYear();
|
|
83
|
+
const beginningOfCentury = round(currentYear, 100);
|
|
84
|
+
const yearsFromBeginningOfCentury = currentYear - beginningOfCentury + 5;
|
|
85
|
+
let year = parsedValue + beginningOfCentury;
|
|
86
|
+
if (parsedValue > yearsFromBeginningOfCentury) {
|
|
87
|
+
year -= parsedValue >= 100 ? 1000 : 100;
|
|
88
|
+
}
|
|
89
|
+
value = setValueAtIndex(mask, cursorPosition, year);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
value = expandValueAtIndex(mask, cursorPosition);
|
|
93
|
+
}
|
|
94
|
+
return value;
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=expandMaskUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expandMaskUtils.js","sourceRoot":"","sources":["../../../../src/components/DatePicker/utils/expandMaskUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/{utilities/maskUtils.test.d.ts → components/DatePicker/utils/expandMaskUtils.test.d.ts}
RENAMED
|
File without changes
|
package/dist/{utilities/maskUtils.test.js → components/DatePicker/utils/expandMaskUtils.test.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { findMaskFieldBoundariesAtPosition, getValueAtIndex, setValueAtIndex, expandValueAtIndex, } from './
|
|
1
|
+
import { findMaskFieldBoundariesAtPosition, getValueAtIndex, setValueAtIndex, expandValueAtIndex, } from './expandMaskUtils';
|
|
2
2
|
describe('findMaskFieldBoundariesAtPosition', () => {
|
|
3
3
|
describe('on empty mask', function () {
|
|
4
4
|
const mask = '__/__//____'; // note: second slash is here intentionally
|
|
@@ -209,4 +209,4 @@ describe('expandValueAtIndex', function () {
|
|
|
209
209
|
});
|
|
210
210
|
});
|
|
211
211
|
});
|
|
212
|
-
//# sourceMappingURL=
|
|
212
|
+
//# sourceMappingURL=expandMaskUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expandMaskUtils.test.js","sourceRoot":"","sources":["../../../../src/components/DatePicker/utils/expandMaskUtils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iCAAiC,EACjC,eAAe,EACf,eAAe,EACf,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAClD,QAAQ,CAAC,eAAe,EAAE;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,2CAA2C;QAEvE,EAAE,CAAC,6CAA6C,EAAE;YACjD,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3D,CAAC,EAAE,EAAE;aACL,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE;YAChE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE;QAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,2CAA2C;QAEvE,EAAE,CAAC,6CAA6C,EAAE;YACjD,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC3D,CAAC,EAAE,EAAE;aACL,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE;YAChE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE;IACpC,QAAQ,CAAC,gBAAgB,EAAE;QAC1B,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,8CAA8C,EAAE;YAClD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE;YAC7D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE;QAC9B,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,8CAA8C,EAAE;YAClD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE;YAC7D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE;QACxC,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,8CAA8C,EAAE;YAClD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE9C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE9C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE;YAC7D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE;IAC3B,QAAQ,CAAC,gBAAgB,EAAE;QAC1B,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,wEAAwE,EAAE;YAC5E,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE;QAC9B,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,wEAAwE,EAAE;YAC5E,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE;QACxC,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,wEAAwE,EAAE;YAC5E,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE;IAC9B,QAAQ,CAAC,gBAAgB,EAAE;QAC1B,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,2CAA2C,EAAE;YAC/C,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE;YACrE,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE;QAC1B,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,2CAA2C,EAAE;YAC/C,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE3D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE;YACrE,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE;QAC9B,MAAM,IAAI,GAAG,aAAa,CAAC;QAE3B,EAAE,CAAC,2CAA2C,EAAE;YAC/C,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE;YACrE,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const formatDate: (date?: Date, dateFormat?: string) => string;
|
|
2
|
+
export declare const parseEntry: (str: string, dateFormat: string, maskChar: string, min: Date, max: Date, required: boolean) => {
|
|
3
|
+
date: Date;
|
|
4
|
+
isValid: boolean;
|
|
5
|
+
isEmpty: boolean;
|
|
6
|
+
isFull: boolean;
|
|
7
|
+
isOutRange: boolean;
|
|
8
|
+
invalidReason: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const isDateInRange: (date: Date, minDate: Date, maxDate: Date) => boolean;
|
|
11
|
+
export declare const getNode: (ref: any) => any;
|
|
12
|
+
export declare const isFocusInsideDatePicker: (inputRef: any, calendareRef: any, e: React.FocusEvent<any>) => any;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import moment from 'moment';
|
|
2
|
+
import { defaultFormat, defaultMaskChar } from '../InputDateMask';
|
|
3
|
+
import { invalidDate } from './utils';
|
|
4
|
+
export const formatDate = (date, dateFormat = defaultFormat) => {
|
|
5
|
+
return date ? moment(date).format(dateFormat) : '';
|
|
6
|
+
};
|
|
7
|
+
const hasDigits = (str) => str ? /\d/.test(str === null || str === void 0 ? void 0 : str.toString()) : false;
|
|
8
|
+
const isFull = (mask, maskChar = defaultMaskChar) => {
|
|
9
|
+
if (!mask || (mask === null || mask === void 0 ? void 0 : mask.length) < 1 || isEmpty(mask))
|
|
10
|
+
return false;
|
|
11
|
+
return !mask.includes(maskChar);
|
|
12
|
+
};
|
|
13
|
+
const isEmpty = (mask) => !hasDigits(mask);
|
|
14
|
+
export const parseEntry = (str, dateFormat, maskChar, min, max, required) => {
|
|
15
|
+
const empty = isEmpty(str);
|
|
16
|
+
const full = isFull(str, maskChar);
|
|
17
|
+
const parsed = moment(str, dateFormat);
|
|
18
|
+
const valid = full && parsed.isValid();
|
|
19
|
+
let invalidReason;
|
|
20
|
+
let date = empty
|
|
21
|
+
? undefined
|
|
22
|
+
: full && valid
|
|
23
|
+
? parsed.toDate()
|
|
24
|
+
: invalidDate;
|
|
25
|
+
const outRange = valid && !isDateInRange(date, min, max);
|
|
26
|
+
if (empty)
|
|
27
|
+
invalidReason = `no entry${required ? ' (required)' : ''}`;
|
|
28
|
+
if (!valid && !empty)
|
|
29
|
+
invalidReason = `unable to parse entry: ${str}`;
|
|
30
|
+
if (outRange) {
|
|
31
|
+
date = invalidDate;
|
|
32
|
+
invalidReason = `date ${str} is out of min-max range: ${min ? formatDate(min, dateFormat) : '...'} - ${max ? formatDate(max, dateFormat) : '...'}`;
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
date,
|
|
36
|
+
isValid: valid,
|
|
37
|
+
isEmpty: empty,
|
|
38
|
+
isFull: full,
|
|
39
|
+
isOutRange: outRange,
|
|
40
|
+
invalidReason,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export const isDateInRange = (date, minDate, maxDate) => {
|
|
44
|
+
const sameDay = (d1, d2) => d1.toDateString() === d2.toDateString();
|
|
45
|
+
if (!date)
|
|
46
|
+
return true; // undefined and Invalid Date are in range
|
|
47
|
+
if (minDate && maxDate) {
|
|
48
|
+
return ((date >= minDate || sameDay(date, minDate)) &&
|
|
49
|
+
(date <= maxDate || sameDay(date, maxDate)));
|
|
50
|
+
}
|
|
51
|
+
else if (minDate) {
|
|
52
|
+
return date >= minDate || sameDay(date, minDate);
|
|
53
|
+
}
|
|
54
|
+
else if (maxDate) {
|
|
55
|
+
return date <= maxDate || sameDay(date, maxDate);
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
};
|
|
59
|
+
export const getNode = (ref) => {
|
|
60
|
+
var _a, _b, _c;
|
|
61
|
+
if ((_b = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.inputRef) === null || _b === void 0 ? void 0 : _b.current)
|
|
62
|
+
return ref.current.inputRef.current; // Input component
|
|
63
|
+
if ((_c = ref.current) === null || _c === void 0 ? void 0 : _c._element)
|
|
64
|
+
return ref.current._element; // Kendo calrndar
|
|
65
|
+
return ref.current; // Something else
|
|
66
|
+
};
|
|
67
|
+
export const isFocusInsideDatePicker = (inputRef, calendareRef, e) => {
|
|
68
|
+
var _a;
|
|
69
|
+
const input = (_a = getNode(inputRef)) === null || _a === void 0 ? void 0 : _a.closest('[data-anvil-component=DatePicker]');
|
|
70
|
+
const cal = getNode(calendareRef);
|
|
71
|
+
const active = e.relatedTarget || (document === null || document === void 0 ? void 0 : document.activeElement);
|
|
72
|
+
return (input === null || input === void 0 ? void 0 : input.contains(active)) || (cal === null || cal === void 0 ? void 0 : cal.contains(active));
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=maskUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maskUtils.js","sourceRoot":"","sources":["../../../../src/components/DatePicker/utils/maskUtils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAW,EAAE,UAAU,GAAG,aAAa,EAAE,EAAE;IACrE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAE,EAAE,CAC1C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAE1C,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,QAAQ,GAAG,eAAe,EAAE,EAAE;IAC5D,IAAI,CAAC,IAAI,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,IAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,CACzB,GAAW,EACX,UAAkB,EAClB,QAAgB,EAChB,GAAS,EACT,GAAS,EACT,QAAiB,EAChB,EAAE;IACH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IAEvC,IAAI,aAAa,CAAC;IAClB,IAAI,IAAI,GAAG,KAAK;QACf,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,IAAI,KAAK;YACf,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;YACjB,CAAC,CAAC,WAAW,CAAC;IAEf,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzD,IAAI,KAAK;QAAE,aAAa,GAAG,WAAW,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACtE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;QAAE,aAAa,GAAG,0BAA0B,GAAG,EAAE,CAAC;IACtE,IAAI,QAAQ,EAAE;QACb,IAAI,GAAG,WAAW,CAAC;QACnB,aAAa,GAAG,QAAQ,GAAG,6BAC1B,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KACrC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;KAClD;IAED,OAAO;QACN,IAAI;QACJ,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,QAAQ;QACpB,aAAa;KACb,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAU,EAAE,OAAa,EAAE,OAAa,EAAE,EAAE;IACzE,MAAM,OAAO,GAAG,CAAC,EAAQ,EAAE,EAAQ,EAAE,EAAE,CACtC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,CAAC;IAEzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,0CAA0C;IAClE,IAAI,OAAO,IAAI,OAAO,EAAE;QACvB,OAAO,CACN,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAC3C,CAAC;KACF;SAAM,IAAI,OAAO,EAAE;QACnB,OAAO,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACjD;SAAM,IAAI,OAAO,EAAE;QACnB,OAAO,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACjD;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE;;IACnC,IAAI,MAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,QAAQ,0CAAE,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,kBAAkB;IAC3F,IAAI,MAAA,GAAG,CAAC,OAAO,0CAAE,QAAQ;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,iBAAiB;IACzE,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,iBAAiB;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,QAAa,EACb,YAAiB,EACjB,CAAwB,EACvB,EAAE;;IACH,MAAM,KAAK,GAAG,MAAA,OAAO,CAAC,QAAQ,CAAC,0CAAE,OAAO,CACvC,mCAAmC,CACnC,CAAC;IACF,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,CAAA,CAAC;IAE1D,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,MAAM,CAAC,MAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAC;AACzD,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DateTime } from 'luxon';
|
|
2
|
+
export declare const invalidDate: Date;
|
|
3
|
+
export declare const isInvalidDate: (d: Date | undefined) => boolean;
|
|
4
|
+
export declare const isValidDate: (date: Date) => boolean;
|
|
5
|
+
export interface DateObj {
|
|
6
|
+
dateTime: DateTime | undefined;
|
|
7
|
+
timezone: string;
|
|
8
|
+
isValid: boolean;
|
|
9
|
+
invalidReason?: string;
|
|
10
|
+
toISO?: () => string;
|
|
11
|
+
toJSDate?: () => Date;
|
|
12
|
+
isEqualDate?: (obj: DateObj) => boolean;
|
|
13
|
+
isEqual?: (obj: DateObj) => boolean;
|
|
14
|
+
}
|
|
15
|
+
interface ToDateObj {
|
|
16
|
+
date: Date | DateTime | string | undefined;
|
|
17
|
+
tz?: string;
|
|
18
|
+
isValid?: boolean;
|
|
19
|
+
invalidReason?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const toDateObj: ({ date, tz, isValid, invalidReason, ...rest }: ToDateObj) => DateObj;
|
|
22
|
+
export declare const toDateTime: (value: Date | DateTime | string | undefined, tz?: string) => DateTime | null;
|
|
23
|
+
export declare const toFormat: (date: any, format?: string) => any;
|
|
24
|
+
export declare const toTimeZone: (date: Date, tz?: string, opts?: any) => Date;
|
|
25
|
+
export declare const fromTimeZone: (date: Date, tz: string) => Date;
|
|
26
|
+
export declare const compareObj: (value?: Date | string) => string | number;
|
|
27
|
+
export {};
|