rsuite 5.48.1 → 5.50.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/CHANGELOG.md +27 -0
- package/Cascader/styles/index.less +5 -4
- package/DatePicker/styles/index.less +18 -11
- package/DateRangeInput/package.json +7 -0
- package/DateRangePicker/styles/index.less +20 -0
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/InputGroup/styles/index.less +1 -0
- package/Picker/styles/index.less +51 -24
- package/Picker/styles/mixin.less +17 -13
- package/README.md +34 -24
- package/Sidenav/styles/index.less +2 -0
- package/TagInput/styles/index.less +1 -1
- package/cjs/AutoComplete/AutoComplete.js +25 -26
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +7 -1
- package/cjs/Calendar/CalendarContainer.js +11 -4
- package/cjs/Calendar/CalendarHeader.js +2 -0
- package/cjs/Calendar/MonthDropdown.js +7 -2
- package/cjs/Calendar/MonthDropdownItem.js +2 -2
- package/cjs/Calendar/Table.js +6 -1
- package/cjs/Calendar/TimeDropdown.js +17 -10
- package/cjs/Calendar/types.d.ts +1 -0
- package/cjs/Cascader/Cascader.js +46 -48
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +33 -36
- package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
- package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
- package/cjs/CustomProvider/CustomProvider.js +2 -2
- package/cjs/DateInput/DateField.d.ts +9 -31
- package/cjs/DateInput/DateField.js +61 -12
- package/cjs/DateInput/DateInput.d.ts +7 -2
- package/cjs/DateInput/DateInput.js +74 -92
- package/cjs/DateInput/index.d.ts +4 -0
- package/cjs/DateInput/index.js +19 -1
- package/cjs/DateInput/useDateInputState.d.ts +7 -31
- package/cjs/DateInput/useDateInputState.js +39 -15
- package/cjs/DateInput/useIsFocused.d.ts +7 -0
- package/cjs/DateInput/useIsFocused.js +28 -0
- package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
- package/cjs/DateInput/utils.d.ts +23 -1
- package/cjs/DateInput/utils.js +155 -51
- package/cjs/DatePicker/DatePicker.d.ts +25 -8
- package/cjs/DatePicker/DatePicker.js +208 -241
- package/cjs/DatePicker/Toolbar.js +5 -22
- package/cjs/DatePicker/utils.d.ts +5 -1
- package/cjs/DatePicker/utils.js +17 -1
- package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/cjs/DateRangeInput/DateRangeInput.js +244 -0
- package/cjs/DateRangeInput/index.d.ts +3 -0
- package/cjs/DateRangeInput/index.js +9 -0
- package/cjs/DateRangeInput/utils.d.ts +61 -0
- package/cjs/DateRangeInput/utils.js +146 -0
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +251 -203
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +6 -5
- package/cjs/Input/Input.d.ts +11 -0
- package/cjs/Input/Input.js +11 -8
- package/cjs/InputPicker/InputPicker.js +62 -63
- package/cjs/MultiCascader/MultiCascader.js +40 -42
- package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
- package/cjs/Overlay/OverlayTrigger.js +5 -0
- package/cjs/Picker/PickerIndicator.d.ts +10 -0
- package/cjs/Picker/PickerIndicator.js +49 -0
- package/cjs/Picker/PickerLabel.d.ts +9 -0
- package/cjs/Picker/PickerLabel.js +23 -0
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +52 -177
- package/cjs/Picker/index.d.ts +3 -0
- package/cjs/Picker/index.js +10 -1
- package/cjs/Picker/usePickerRef.d.ts +19 -0
- package/cjs/Picker/usePickerRef.js +88 -0
- package/cjs/Picker/utils.d.ts +5 -9
- package/cjs/Picker/utils.js +22 -89
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +39 -42
- package/cjs/TreePicker/TreePicker.js +72 -75
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/locales/index.d.ts +2 -2
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +3 -0
- package/cjs/utils/index.js +11 -2
- package/cjs/utils/useCustom.js +1 -1
- package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
- package/dist/rsuite-no-reset-rtl.css +140 -207
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +140 -207
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +140 -75
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +140 -75
- package/dist/rsuite.js +4833 -258
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/AutoComplete/AutoComplete.js +28 -29
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +7 -1
- package/esm/Calendar/CalendarContainer.js +12 -5
- package/esm/Calendar/CalendarHeader.js +2 -0
- package/esm/Calendar/MonthDropdown.js +7 -2
- package/esm/Calendar/MonthDropdownItem.js +2 -2
- package/esm/Calendar/Table.js +6 -1
- package/esm/Calendar/TimeDropdown.js +17 -10
- package/esm/Calendar/types.d.ts +1 -0
- package/esm/Cascader/Cascader.js +49 -51
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +36 -39
- package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
- package/esm/CustomProvider/CustomProvider.d.ts +13 -0
- package/esm/CustomProvider/CustomProvider.js +3 -3
- package/esm/DateInput/DateField.d.ts +9 -31
- package/esm/DateInput/DateField.js +61 -12
- package/esm/DateInput/DateInput.d.ts +7 -2
- package/esm/DateInput/DateInput.js +77 -95
- package/esm/DateInput/index.d.ts +4 -0
- package/esm/DateInput/index.js +4 -0
- package/esm/DateInput/useDateInputState.d.ts +7 -31
- package/esm/DateInput/useDateInputState.js +41 -18
- package/esm/DateInput/useIsFocused.d.ts +7 -0
- package/esm/DateInput/useIsFocused.js +22 -0
- package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/esm/DateInput/useKeyboardInputEvent.js +38 -0
- package/esm/DateInput/utils.d.ts +23 -1
- package/esm/DateInput/utils.js +150 -51
- package/esm/DatePicker/DatePicker.d.ts +25 -8
- package/esm/DatePicker/DatePicker.js +211 -244
- package/esm/DatePicker/Toolbar.js +5 -22
- package/esm/DatePicker/utils.d.ts +5 -1
- package/esm/DatePicker/utils.js +16 -1
- package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/esm/DateRangeInput/DateRangeInput.js +237 -0
- package/esm/DateRangeInput/index.d.ts +3 -0
- package/esm/DateRangeInput/index.js +3 -0
- package/esm/DateRangeInput/utils.d.ts +61 -0
- package/esm/DateRangeInput/utils.js +137 -0
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +253 -205
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +4 -3
- package/esm/Input/Input.d.ts +11 -0
- package/esm/Input/Input.js +12 -9
- package/esm/InputPicker/InputPicker.js +64 -65
- package/esm/MultiCascader/MultiCascader.js +43 -45
- package/esm/Overlay/OverlayTrigger.d.ts +3 -0
- package/esm/Overlay/OverlayTrigger.js +5 -0
- package/esm/Picker/PickerIndicator.d.ts +10 -0
- package/esm/Picker/PickerIndicator.js +43 -0
- package/esm/Picker/PickerLabel.d.ts +9 -0
- package/esm/Picker/PickerLabel.js +17 -0
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +54 -179
- package/esm/Picker/index.d.ts +3 -0
- package/esm/Picker/index.js +3 -0
- package/esm/Picker/usePickerRef.d.ts +19 -0
- package/esm/Picker/usePickerRef.js +82 -0
- package/esm/Picker/utils.d.ts +5 -9
- package/esm/Picker/utils.js +24 -90
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +42 -45
- package/esm/TreePicker/TreePicker.js +75 -78
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/locales/index.d.ts +2 -2
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +3 -0
- package/esm/utils/index.js +4 -1
- package/esm/utils/useCustom.js +2 -2
- package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
- package/package.json +1 -1
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +1 -0
- package/styles/mixins/combobox.less +10 -0
- package/styles/normalize.less +230 -231
|
@@ -8,11 +8,13 @@ exports.default = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
12
|
var _Input = _interopRequireDefault(require("../Input"));
|
|
12
13
|
var _utils = require("../utils");
|
|
13
14
|
var _utils2 = require("./utils");
|
|
14
15
|
var _useDateInputState2 = _interopRequireDefault(require("./useDateInputState"));
|
|
15
|
-
var
|
|
16
|
+
var _useKeyboardInputEvent = _interopRequireDefault(require("./useKeyboardInputEvent"));
|
|
17
|
+
var _useIsFocused2 = _interopRequireDefault(require("./useIsFocused"));
|
|
16
18
|
/**
|
|
17
19
|
* The DateInput component lets users select a date with the keyboard.
|
|
18
20
|
* @version 5.58.0
|
|
@@ -23,9 +25,12 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
23
25
|
formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
|
|
24
26
|
valueProp = props.value,
|
|
25
27
|
defaultValue = props.defaultValue,
|
|
28
|
+
placeholder = props.placeholder,
|
|
26
29
|
onChange = props.onChange,
|
|
27
30
|
onKeyDown = props.onKeyDown,
|
|
28
|
-
|
|
31
|
+
onBlur = props.onBlur,
|
|
32
|
+
onFocus = props.onFocus,
|
|
33
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["format", "value", "defaultValue", "placeholder", "onChange", "onKeyDown", "onBlur", "onFocus"]);
|
|
29
34
|
var inputRef = (0, _react.useRef)();
|
|
30
35
|
var _useState = (0, _react.useState)({
|
|
31
36
|
selectedPattern: 'y',
|
|
@@ -36,14 +41,14 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
36
41
|
setSelectedState = _useState[1];
|
|
37
42
|
var _useCustom = (0, _utils.useCustom)('Calendar'),
|
|
38
43
|
locale = _useCustom.locale;
|
|
39
|
-
var
|
|
44
|
+
var dateLocale = locale.dateLocale;
|
|
40
45
|
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
|
|
41
46
|
value = _useControlled[0],
|
|
42
47
|
setValue = _useControlled[1],
|
|
43
48
|
isControlled = _useControlled[2];
|
|
44
49
|
var _useDateInputState = (0, _useDateInputState2.default)({
|
|
45
50
|
formatStr: formatStr,
|
|
46
|
-
|
|
51
|
+
locale: dateLocale,
|
|
47
52
|
date: value,
|
|
48
53
|
isControlledDate: isControlled
|
|
49
54
|
}),
|
|
@@ -51,49 +56,36 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
51
56
|
setDateOffset = _useDateInputState.setDateOffset,
|
|
52
57
|
setDateField = _useDateInputState.setDateField,
|
|
53
58
|
getDateField = _useDateInputState.getDateField,
|
|
54
|
-
toDateString = _useDateInputState.toDateString
|
|
59
|
+
toDateString = _useDateInputState.toDateString,
|
|
60
|
+
isEmptyValue = _useDateInputState.isEmptyValue;
|
|
55
61
|
var dateString = toDateString();
|
|
56
62
|
var keyPressOptions = (0, _react.useMemo)(function () {
|
|
57
63
|
return {
|
|
58
64
|
formatStr: formatStr,
|
|
59
|
-
localize: localize,
|
|
65
|
+
localize: dateLocale.localize,
|
|
60
66
|
selectedMonth: dateField.month,
|
|
61
67
|
dateString: dateString
|
|
62
68
|
};
|
|
63
|
-
}, [dateField, dateString, formatStr,
|
|
64
|
-
var
|
|
65
|
-
if (selectionStart === void 0) {
|
|
66
|
-
selectionStart = selectedState.selectionStart;
|
|
67
|
-
}
|
|
68
|
-
if (selectionEnd === void 0) {
|
|
69
|
-
selectionEnd = selectedState.selectionEnd;
|
|
70
|
-
}
|
|
71
|
-
var input = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current;
|
|
72
|
-
if (isTestEnvironment) {
|
|
73
|
-
(0, _utils.safeSetSelection)(input, selectionStart, selectionEnd);
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
requestAnimationFrame(function () {
|
|
77
|
-
(0, _utils.safeSetSelection)(input, selectionStart, selectionEnd);
|
|
78
|
-
});
|
|
79
|
-
}, [selectedState]);
|
|
80
|
-
var handleChange = (0, _react.useCallback)(function (value, event) {
|
|
81
|
-
setValue(value);
|
|
69
|
+
}, [dateField, dateString, formatStr, dateLocale]);
|
|
70
|
+
var handleChange = (0, _utils.useEventCallback)(function (value, event) {
|
|
82
71
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
83
|
-
|
|
84
|
-
|
|
72
|
+
setValue(value);
|
|
73
|
+
});
|
|
74
|
+
var setSelectionRange = (0, _utils2.useInputSelection)(inputRef);
|
|
75
|
+
var onSegmentChange = (0, _utils.useEventCallback)(function (event, nextDirection) {
|
|
85
76
|
var input = event.target;
|
|
86
|
-
var
|
|
77
|
+
var key = event.key;
|
|
78
|
+
var direction = nextDirection || (key === 'ArrowRight' ? 'right' : 'left');
|
|
87
79
|
var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {
|
|
88
80
|
input: input,
|
|
89
81
|
direction: direction
|
|
90
82
|
}));
|
|
91
83
|
setSelectionRange(state.selectionStart, state.selectionEnd);
|
|
92
84
|
setSelectedState(state);
|
|
93
|
-
}
|
|
94
|
-
var
|
|
95
|
-
var key = event.key;
|
|
85
|
+
});
|
|
86
|
+
var onSegmentValueChange = (0, _utils.useEventCallback)(function (event) {
|
|
96
87
|
var input = event.target;
|
|
88
|
+
var key = event.key;
|
|
97
89
|
var offset = key === 'ArrowUp' ? 1 : -1;
|
|
98
90
|
var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {
|
|
99
91
|
input: input,
|
|
@@ -104,31 +96,10 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
104
96
|
return handleChange(date, event);
|
|
105
97
|
});
|
|
106
98
|
setSelectionRange(state.selectionStart, state.selectionEnd);
|
|
107
|
-
}
|
|
108
|
-
var
|
|
109
|
-
var patternGroup = (0, _utils2.getPatternGroups)(formatStr, pattern);
|
|
110
|
-
if (value.toString().length === patternGroup.length) {
|
|
111
|
-
return true;
|
|
112
|
-
}
|
|
113
|
-
switch (pattern) {
|
|
114
|
-
case 'M':
|
|
115
|
-
return parseInt(value + "0") > 12;
|
|
116
|
-
case 'd':
|
|
117
|
-
return parseInt(value + "0") > 31;
|
|
118
|
-
case 'H':
|
|
119
|
-
return parseInt(value + "0") > 23;
|
|
120
|
-
case 'h':
|
|
121
|
-
return parseInt(value + "0") > 12;
|
|
122
|
-
case 'm':
|
|
123
|
-
case 's':
|
|
124
|
-
return parseInt(value + "0") > 59;
|
|
125
|
-
default:
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
}, [formatStr]);
|
|
129
|
-
var handleChangeFieldValueWithNumericKeys = (0, _react.useCallback)(function (event) {
|
|
130
|
-
var key = event.key;
|
|
99
|
+
});
|
|
100
|
+
var onSegmentValueChangeWithNumericKeys = (0, _utils.useEventCallback)(function (event) {
|
|
131
101
|
var input = event.target;
|
|
102
|
+
var key = event.key;
|
|
132
103
|
var pattern = selectedState.selectedPattern;
|
|
133
104
|
if (!pattern) {
|
|
134
105
|
return;
|
|
@@ -161,62 +132,73 @@ var DateInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
161
132
|
setSelectionRange(nextState.selectionStart, nextState.selectionEnd);
|
|
162
133
|
|
|
163
134
|
// If the field is full value, move the cursor to the next field
|
|
164
|
-
if (isFieldFullValue(newValue, pattern) && input.selectionEnd !== input.value.length) {
|
|
165
|
-
|
|
135
|
+
if ((0, _utils2.isFieldFullValue)(formatStr, newValue, pattern) && input.selectionEnd !== input.value.length) {
|
|
136
|
+
onSegmentChange(event, 'right');
|
|
166
137
|
}
|
|
167
|
-
}
|
|
168
|
-
var
|
|
138
|
+
});
|
|
139
|
+
var onSegmentValueRemove = (0, _utils.useEventCallback)(function (event) {
|
|
140
|
+
var input = event.target;
|
|
169
141
|
if (selectedState.selectedPattern) {
|
|
142
|
+
var nextState = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {
|
|
143
|
+
input: input,
|
|
144
|
+
valueOffset: null
|
|
145
|
+
}));
|
|
146
|
+
setSelectedState(nextState);
|
|
147
|
+
setSelectionRange(nextState.selectionStart, nextState.selectionEnd);
|
|
170
148
|
setDateField(selectedState.selectedPattern, null, function (date) {
|
|
171
149
|
return handleChange(date, event);
|
|
172
150
|
});
|
|
173
|
-
setSelectionRange();
|
|
174
151
|
}
|
|
175
|
-
}
|
|
176
|
-
var
|
|
177
|
-
var _key$match;
|
|
178
|
-
var key = event.key;
|
|
179
|
-
switch (key) {
|
|
180
|
-
case 'ArrowRight':
|
|
181
|
-
case 'ArrowLeft':
|
|
182
|
-
handleChangeField(event);
|
|
183
|
-
event.preventDefault();
|
|
184
|
-
break;
|
|
185
|
-
case 'ArrowUp':
|
|
186
|
-
case 'ArrowDown':
|
|
187
|
-
handleChangeFieldValue(event);
|
|
188
|
-
event.preventDefault();
|
|
189
|
-
break;
|
|
190
|
-
case 'Backspace':
|
|
191
|
-
handleRemoveFieldValue(event);
|
|
192
|
-
event.preventDefault();
|
|
193
|
-
break;
|
|
194
|
-
case (_key$match = key.match(/\d/)) === null || _key$match === void 0 ? void 0 : _key$match.input:
|
|
195
|
-
handleChangeFieldValueWithNumericKeys(event);
|
|
196
|
-
event.preventDefault();
|
|
197
|
-
break;
|
|
198
|
-
}
|
|
199
|
-
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
|
|
200
|
-
};
|
|
201
|
-
var handleClick = (0, _react.useCallback)(function (event) {
|
|
152
|
+
});
|
|
153
|
+
var handleClick = (0, _utils.useEventCallback)(function (event) {
|
|
202
154
|
var input = event.target;
|
|
203
155
|
var state = (0, _utils2.getInputSelectedState)((0, _extends2.default)({}, keyPressOptions, {
|
|
204
156
|
input: input
|
|
205
157
|
}));
|
|
206
158
|
setSelectedState(state);
|
|
207
159
|
setSelectionRange(state.selectionStart, state.selectionEnd);
|
|
208
|
-
}
|
|
160
|
+
});
|
|
161
|
+
var onKeyboardInput = (0, _useKeyboardInputEvent.default)({
|
|
162
|
+
onSegmentChange: onSegmentChange,
|
|
163
|
+
onSegmentValueChange: onSegmentValueChange,
|
|
164
|
+
onSegmentValueChangeWithNumericKeys: onSegmentValueChangeWithNumericKeys,
|
|
165
|
+
onSegmentValueRemove: onSegmentValueRemove,
|
|
166
|
+
onKeyDown: onKeyDown
|
|
167
|
+
});
|
|
168
|
+
var _useIsFocused = (0, _useIsFocused2.default)({
|
|
169
|
+
onBlur: onBlur,
|
|
170
|
+
onFocus: onFocus
|
|
171
|
+
}),
|
|
172
|
+
focused = _useIsFocused[0],
|
|
173
|
+
focusEventProps = _useIsFocused[1];
|
|
174
|
+
var renderedValue = (0, _react.useMemo)(function () {
|
|
175
|
+
if (!isEmptyValue()) {
|
|
176
|
+
return dateString;
|
|
177
|
+
}
|
|
178
|
+
return !focused ? '' : dateString;
|
|
179
|
+
}, [dateString, focused, isEmptyValue]);
|
|
209
180
|
return /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({
|
|
210
|
-
inputMode:
|
|
181
|
+
inputMode: focused ? 'numeric' : 'text',
|
|
211
182
|
autoComplete: "off",
|
|
212
183
|
autoCorrect: "off",
|
|
213
184
|
spellCheck: false,
|
|
214
185
|
ref: (0, _utils.mergeRefs)(inputRef, ref),
|
|
215
|
-
onKeyDown:
|
|
186
|
+
onKeyDown: onKeyboardInput,
|
|
216
187
|
onClick: handleClick,
|
|
217
|
-
value:
|
|
218
|
-
|
|
188
|
+
value: renderedValue,
|
|
189
|
+
placeholder: placeholder || formatStr
|
|
190
|
+
}, focusEventProps, rest));
|
|
219
191
|
});
|
|
220
192
|
DateInput.displayName = 'DateInput';
|
|
193
|
+
DateInput.propTypes = {
|
|
194
|
+
defaultValue: _propTypes.default.instanceOf(Date),
|
|
195
|
+
format: _propTypes.default.string,
|
|
196
|
+
value: _propTypes.default.instanceOf(Date),
|
|
197
|
+
placeholder: _propTypes.default.string,
|
|
198
|
+
onChange: _propTypes.default.func,
|
|
199
|
+
onKeyDown: _propTypes.default.func,
|
|
200
|
+
onBlur: _propTypes.default.func,
|
|
201
|
+
onFocus: _propTypes.default.func
|
|
202
|
+
};
|
|
221
203
|
var _default = DateInput;
|
|
222
204
|
exports.default = _default;
|
package/cjs/DateInput/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import DateInput from './DateInput';
|
|
2
|
+
export { useDateInputState } from './useDateInputState';
|
|
3
|
+
export { useKeyboardInputEvent } from './useKeyboardInputEvent';
|
|
4
|
+
export { useIsFocused } from './useIsFocused';
|
|
5
|
+
export * from './utils';
|
|
2
6
|
export type { DateInputProps } from './DateInput';
|
|
3
7
|
export default DateInput;
|
package/cjs/DateInput/index.js
CHANGED
|
@@ -3,7 +3,25 @@
|
|
|
3
3
|
|
|
4
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
useDateInputState: true,
|
|
8
|
+
useKeyboardInputEvent: true,
|
|
9
|
+
useIsFocused: true
|
|
10
|
+
};
|
|
11
|
+
exports.default = exports.useIsFocused = exports.useKeyboardInputEvent = exports.useDateInputState = void 0;
|
|
7
12
|
var _DateInput = _interopRequireDefault(require("./DateInput"));
|
|
13
|
+
var _useDateInputState = require("./useDateInputState");
|
|
14
|
+
exports.useDateInputState = _useDateInputState.useDateInputState;
|
|
15
|
+
var _useKeyboardInputEvent = require("./useKeyboardInputEvent");
|
|
16
|
+
exports.useKeyboardInputEvent = _useKeyboardInputEvent.useKeyboardInputEvent;
|
|
17
|
+
var _useIsFocused = require("./useIsFocused");
|
|
18
|
+
exports.useIsFocused = _useIsFocused.useIsFocused;
|
|
19
|
+
var _utils = require("./utils");
|
|
20
|
+
Object.keys(_utils).forEach(function (key) {
|
|
21
|
+
if (key === "default" || key === "__esModule") return;
|
|
22
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
23
|
+
if (key in exports && exports[key] === _utils[key]) return;
|
|
24
|
+
exports[key] = _utils[key];
|
|
25
|
+
});
|
|
8
26
|
var _default = _DateInput.default;
|
|
9
27
|
exports.default = _default;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { format } from '../utils/dateUtils';
|
|
1
2
|
import type { Locale } from 'date-fns';
|
|
2
3
|
interface DateInputState {
|
|
3
4
|
formatStr: string;
|
|
4
|
-
|
|
5
|
+
formatDate?: typeof format;
|
|
6
|
+
locale: Locale;
|
|
5
7
|
date?: Date | null;
|
|
6
8
|
isControlledDate?: boolean;
|
|
7
9
|
}
|
|
8
|
-
declare function useDateInputState({ formatStr,
|
|
10
|
+
export declare function useDateInputState({ formatStr, locale, date, isControlledDate }: DateInputState): {
|
|
9
11
|
dateField: {
|
|
10
12
|
year: any;
|
|
11
13
|
format: string;
|
|
@@ -18,7 +20,6 @@ declare function useDateInputState({ formatStr, localize, date, isControlledDate
|
|
|
18
20
|
hour: number | null;
|
|
19
21
|
minute: number | null;
|
|
20
22
|
second: number | null;
|
|
21
|
-
meridian: "AM" | "PM" | null;
|
|
22
23
|
constructor: Function;
|
|
23
24
|
toString(): string;
|
|
24
25
|
toLocaleString(): string;
|
|
@@ -39,7 +40,6 @@ declare function useDateInputState({ formatStr, localize, date, isControlledDate
|
|
|
39
40
|
hour: number | null;
|
|
40
41
|
minute: number | null;
|
|
41
42
|
second: number | null;
|
|
42
|
-
meridian: "AM" | "PM" | null;
|
|
43
43
|
constructor: Function;
|
|
44
44
|
toString(): string;
|
|
45
45
|
toLocaleString(): string;
|
|
@@ -60,7 +60,6 @@ declare function useDateInputState({ formatStr, localize, date, isControlledDate
|
|
|
60
60
|
hour: number | null;
|
|
61
61
|
minute: number | null;
|
|
62
62
|
second: number | null;
|
|
63
|
-
meridian: "AM" | "PM" | null;
|
|
64
63
|
constructor: Function;
|
|
65
64
|
toString(): string;
|
|
66
65
|
toLocaleString(): string;
|
|
@@ -81,7 +80,6 @@ declare function useDateInputState({ formatStr, localize, date, isControlledDate
|
|
|
81
80
|
day: number | null;
|
|
82
81
|
minute: number | null;
|
|
83
82
|
second: number | null;
|
|
84
|
-
meridian: "AM" | "PM" | null;
|
|
85
83
|
constructor: Function;
|
|
86
84
|
toString(): string;
|
|
87
85
|
toLocaleString(): string;
|
|
@@ -102,7 +100,6 @@ declare function useDateInputState({ formatStr, localize, date, isControlledDate
|
|
|
102
100
|
day: number | null;
|
|
103
101
|
hour: number | null;
|
|
104
102
|
second: number | null;
|
|
105
|
-
meridian: "AM" | "PM" | null;
|
|
106
103
|
constructor: Function;
|
|
107
104
|
toString(): string;
|
|
108
105
|
toLocaleString(): string;
|
|
@@ -123,28 +120,6 @@ declare function useDateInputState({ formatStr, localize, date, isControlledDate
|
|
|
123
120
|
day: number | null;
|
|
124
121
|
hour: number | null;
|
|
125
122
|
minute: number | null;
|
|
126
|
-
meridian: "AM" | "PM" | null;
|
|
127
|
-
constructor: Function;
|
|
128
|
-
toString(): string;
|
|
129
|
-
toLocaleString(): string;
|
|
130
|
-
valueOf(): Object;
|
|
131
|
-
hasOwnProperty(v: PropertyKey): boolean;
|
|
132
|
-
isPrototypeOf(v: Object): boolean;
|
|
133
|
-
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
134
|
-
should: Chai.Assertion;
|
|
135
|
-
} | {
|
|
136
|
-
meridian: any;
|
|
137
|
-
format: string;
|
|
138
|
-
patternArray: {
|
|
139
|
-
pattern: string;
|
|
140
|
-
key: string;
|
|
141
|
-
}[];
|
|
142
|
-
year: number | null;
|
|
143
|
-
month: number | null;
|
|
144
|
-
day: number | null;
|
|
145
|
-
hour: number | null;
|
|
146
|
-
minute: number | null;
|
|
147
|
-
second: number | null;
|
|
148
123
|
constructor: Function;
|
|
149
124
|
toString(): string;
|
|
150
125
|
toLocaleString(): string;
|
|
@@ -154,12 +129,13 @@ declare function useDateInputState({ formatStr, localize, date, isControlledDate
|
|
|
154
129
|
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
155
130
|
should: Chai.Assertion;
|
|
156
131
|
};
|
|
157
|
-
setDateOffset: (pattern: string, offset: number, callback?: ((newDate: Date) => void) | undefined) => void;
|
|
158
|
-
setDateField: (pattern: string, value: number | null, callback?: ((newDate: Date) => void) | undefined) => void;
|
|
132
|
+
setDateOffset: (pattern: string, offset: number, callback?: ((newDate: Date | null) => void) | undefined) => void;
|
|
133
|
+
setDateField: (pattern: string, value: number | null, callback?: ((newDate: Date | null) => void) | undefined) => void;
|
|
159
134
|
getDateField: (pattern: string) => {
|
|
160
135
|
name: any;
|
|
161
136
|
value: any;
|
|
162
137
|
};
|
|
163
138
|
toDateString: () => string;
|
|
139
|
+
isEmptyValue: (type?: string | undefined, value?: number | null | undefined) => boolean | undefined;
|
|
164
140
|
};
|
|
165
141
|
export default useDateInputState;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
+
exports.useDateInputState = useDateInputState;
|
|
6
7
|
exports.default = void 0;
|
|
7
8
|
var _react = require("react");
|
|
8
9
|
var _startCase = _interopRequireDefault(require("lodash/startCase"));
|
|
@@ -10,15 +11,16 @@ var _dateUtils = require("../utils/dateUtils");
|
|
|
10
11
|
var _DateField = require("./DateField");
|
|
11
12
|
function useDateInputState(_ref) {
|
|
12
13
|
var formatStr = _ref.formatStr,
|
|
13
|
-
|
|
14
|
+
locale = _ref.locale,
|
|
14
15
|
date = _ref.date,
|
|
15
16
|
isControlledDate = _ref.isControlledDate;
|
|
16
|
-
var _useDateField = (0, _DateField.useDateField)(formatStr, localize, date),
|
|
17
|
+
var _useDateField = (0, _DateField.useDateField)(formatStr, locale.localize, date),
|
|
17
18
|
dateField = _useDateField.dateField,
|
|
18
19
|
dispatch = _useDateField.dispatch,
|
|
19
20
|
toDateString = _useDateField.toDateString,
|
|
20
|
-
toDate = _useDateField.toDate
|
|
21
|
-
|
|
21
|
+
toDate = _useDateField.toDate,
|
|
22
|
+
isEmptyValue = _useDateField.isEmptyValue;
|
|
23
|
+
var setDateOffset = function setDateOffset(pattern, offset, callback) {
|
|
22
24
|
var currentDate = new Date();
|
|
23
25
|
var year = dateField.year || currentDate.getFullYear();
|
|
24
26
|
var month = dateField.month ? dateField.month - 1 : currentDate.getMonth();
|
|
@@ -61,8 +63,8 @@ function useDateInputState(_ref) {
|
|
|
61
63
|
value = (0, _dateUtils.addSeconds)(new Date(year, month, day, hour, minute, second), offset).getSeconds();
|
|
62
64
|
break;
|
|
63
65
|
case 'a':
|
|
64
|
-
actionName = '
|
|
65
|
-
value =
|
|
66
|
+
actionName = 'setHour';
|
|
67
|
+
value = hour >= 12 ? hour - 12 : hour + 12;
|
|
66
68
|
break;
|
|
67
69
|
}
|
|
68
70
|
if (actionName && value) {
|
|
@@ -73,8 +75,8 @@ function useDateInputState(_ref) {
|
|
|
73
75
|
var field = _DateField.patternMap[pattern];
|
|
74
76
|
callback === null || callback === void 0 ? void 0 : callback(toDate(field, value));
|
|
75
77
|
}
|
|
76
|
-
}
|
|
77
|
-
var setDateField =
|
|
78
|
+
};
|
|
79
|
+
var setDateField = function setDateField(pattern, value, callback) {
|
|
78
80
|
var field = _DateField.patternMap[pattern];
|
|
79
81
|
var actionName = "set" + (0, _startCase.default)(field);
|
|
80
82
|
dispatch({
|
|
@@ -82,23 +84,45 @@ function useDateInputState(_ref) {
|
|
|
82
84
|
value: value
|
|
83
85
|
});
|
|
84
86
|
callback === null || callback === void 0 ? void 0 : callback(toDate(field, value));
|
|
85
|
-
}
|
|
86
|
-
var getDateField =
|
|
87
|
+
};
|
|
88
|
+
var getDateField = function getDateField(pattern) {
|
|
87
89
|
var fieldName = _DateField.patternMap[pattern];
|
|
88
90
|
return {
|
|
89
91
|
name: fieldName,
|
|
90
92
|
value: dateField[fieldName]
|
|
91
93
|
};
|
|
92
|
-
}
|
|
93
|
-
var toControlledDateString =
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
};
|
|
95
|
+
var toControlledDateString = function toControlledDateString() {
|
|
96
|
+
if (date && (0, _dateUtils.isValid)(date)) {
|
|
97
|
+
return (0, _dateUtils.format)(date, formatStr, {
|
|
98
|
+
locale: locale
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
// if date is not valid, return uncontrolled date string
|
|
102
|
+
return toDateString();
|
|
103
|
+
};
|
|
104
|
+
(0, _react.useEffect)(function () {
|
|
105
|
+
if (isControlledDate) {
|
|
106
|
+
if (date && (0, _dateUtils.isValid)(date)) {
|
|
107
|
+
dispatch({
|
|
108
|
+
type: 'setNewDate',
|
|
109
|
+
value: date
|
|
110
|
+
});
|
|
111
|
+
} else if (date === null) {
|
|
112
|
+
dispatch({
|
|
113
|
+
type: 'setNewDate',
|
|
114
|
+
value: null
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}, [date, dispatch, isControlledDate]);
|
|
96
119
|
return {
|
|
97
120
|
dateField: dateField,
|
|
98
121
|
setDateOffset: setDateOffset,
|
|
99
122
|
setDateField: setDateField,
|
|
100
123
|
getDateField: getDateField,
|
|
101
|
-
toDateString: isControlledDate ? toControlledDateString : toDateString
|
|
124
|
+
toDateString: isControlledDate ? toControlledDateString : toDateString,
|
|
125
|
+
isEmptyValue: isEmptyValue
|
|
102
126
|
};
|
|
103
127
|
}
|
|
104
128
|
var _default = useDateInputState;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface FocusEventOptions {
|
|
3
|
+
onFocus?: React.FocusEventHandler<HTMLInputElement>;
|
|
4
|
+
onBlur?: React.FocusEventHandler<HTMLInputElement>;
|
|
5
|
+
}
|
|
6
|
+
export declare function useIsFocused({ onFocus: onFocusProp, onBlur: onBlurProp }: FocusEventOptions): [boolean, FocusEventOptions];
|
|
7
|
+
export default useIsFocused;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.useIsFocused = useIsFocused;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
function useIsFocused(_ref) {
|
|
9
|
+
var onFocusProp = _ref.onFocus,
|
|
10
|
+
onBlurProp = _ref.onBlur;
|
|
11
|
+
var _useState = (0, _react.useState)(false),
|
|
12
|
+
isFocused = _useState[0],
|
|
13
|
+
setIsFocused = _useState[1];
|
|
14
|
+
var onFocus = (0, _react.useCallback)(function (event) {
|
|
15
|
+
setIsFocused(true);
|
|
16
|
+
onFocusProp === null || onFocusProp === void 0 ? void 0 : onFocusProp(event);
|
|
17
|
+
}, [onFocusProp]);
|
|
18
|
+
var onBlur = (0, _react.useCallback)(function (event) {
|
|
19
|
+
setIsFocused(false);
|
|
20
|
+
onBlurProp === null || onBlurProp === void 0 ? void 0 : onBlurProp(event);
|
|
21
|
+
}, [onBlurProp]);
|
|
22
|
+
return [isFocused, {
|
|
23
|
+
onFocus: onFocus,
|
|
24
|
+
onBlur: onBlur
|
|
25
|
+
}];
|
|
26
|
+
}
|
|
27
|
+
var _default = useIsFocused;
|
|
28
|
+
exports.default = _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface KeyboardEventOptions {
|
|
3
|
+
onSegmentChange?: (kevent: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
4
|
+
onSegmentValueChange?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
5
|
+
onSegmentValueChangeWithNumericKeys?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
6
|
+
onSegmentValueRemove?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
7
|
+
onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function useKeyboardInputEvent({ onSegmentChange, onSegmentValueChange, onSegmentValueChangeWithNumericKeys, onSegmentValueRemove, onKeyDown }: KeyboardEventOptions): (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
10
|
+
export default useKeyboardInputEvent;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.useKeyboardInputEvent = useKeyboardInputEvent;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
function useKeyboardInputEvent(_ref) {
|
|
8
|
+
var onSegmentChange = _ref.onSegmentChange,
|
|
9
|
+
onSegmentValueChange = _ref.onSegmentValueChange,
|
|
10
|
+
onSegmentValueChangeWithNumericKeys = _ref.onSegmentValueChangeWithNumericKeys,
|
|
11
|
+
onSegmentValueRemove = _ref.onSegmentValueRemove,
|
|
12
|
+
onKeyDown = _ref.onKeyDown;
|
|
13
|
+
return function (event) {
|
|
14
|
+
var _key$match, _key$match2;
|
|
15
|
+
var key = event.key;
|
|
16
|
+
switch (key) {
|
|
17
|
+
case 'ArrowRight':
|
|
18
|
+
case 'ArrowLeft':
|
|
19
|
+
onSegmentChange === null || onSegmentChange === void 0 ? void 0 : onSegmentChange(event);
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
break;
|
|
22
|
+
case 'ArrowUp':
|
|
23
|
+
case 'ArrowDown':
|
|
24
|
+
onSegmentValueChange === null || onSegmentValueChange === void 0 ? void 0 : onSegmentValueChange(event);
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
break;
|
|
27
|
+
case 'Backspace':
|
|
28
|
+
onSegmentValueRemove === null || onSegmentValueRemove === void 0 ? void 0 : onSegmentValueRemove(event);
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
break;
|
|
31
|
+
case (_key$match = key.match(/\d/)) === null || _key$match === void 0 ? void 0 : _key$match.input:
|
|
32
|
+
// Allow numeric keys to be entered
|
|
33
|
+
onSegmentValueChangeWithNumericKeys === null || onSegmentValueChangeWithNumericKeys === void 0 ? void 0 : onSegmentValueChangeWithNumericKeys(event);
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
case (_key$match2 = key.match(/[a-z]/)) === null || _key$match2 === void 0 ? void 0 : _key$match2[0]:
|
|
36
|
+
// Prevent letters from being entered
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
var _default = useKeyboardInputEvent;
|
|
44
|
+
exports.default = _default;
|
package/cjs/DateInput/utils.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { type Locale } from 'date-fns';
|
|
2
3
|
interface SelectedStateOptions {
|
|
3
4
|
/**
|
|
@@ -24,13 +25,32 @@ interface SelectedStateOptions {
|
|
|
24
25
|
* The offset of the value, which is used to calculate the month.
|
|
25
26
|
* This value will be changed when pressing the up and down arrow keys.
|
|
26
27
|
*/
|
|
27
|
-
valueOffset?: number;
|
|
28
|
+
valueOffset?: number | null;
|
|
28
29
|
/**
|
|
29
30
|
* The date is rendered in string format according to format
|
|
30
31
|
*/
|
|
31
32
|
dateString: string;
|
|
32
33
|
}
|
|
33
34
|
export declare function getPatternGroups(format: string, pattern: string): string;
|
|
35
|
+
interface SelectIndexGapOptions {
|
|
36
|
+
pattern: string;
|
|
37
|
+
formatStr: string;
|
|
38
|
+
valueOffset: number | null;
|
|
39
|
+
selectedMonth: number | null;
|
|
40
|
+
localize: Locale['localize'];
|
|
41
|
+
}
|
|
42
|
+
export declare function getSelectIndexGap(options: SelectIndexGapOptions): number;
|
|
43
|
+
interface DatePatternOptions {
|
|
44
|
+
selectionIndex: number;
|
|
45
|
+
positionOffset?: number;
|
|
46
|
+
formatStr: string;
|
|
47
|
+
dateString: string;
|
|
48
|
+
valueOffset: number | null;
|
|
49
|
+
selectedMonth: number | null;
|
|
50
|
+
localize: Locale['localize'];
|
|
51
|
+
}
|
|
52
|
+
export declare function getDatePattern(options: DatePatternOptions): string;
|
|
53
|
+
export declare function isCursorAfterMonth(cursorIndex: number, formatStr: string): boolean;
|
|
34
54
|
export declare function getInputSelectedState(options: SelectedStateOptions): {
|
|
35
55
|
selectionStart: number;
|
|
36
56
|
selectionEnd: number;
|
|
@@ -38,4 +58,6 @@ export declare function getInputSelectedState(options: SelectedStateOptions): {
|
|
|
38
58
|
};
|
|
39
59
|
export declare function validateDateTime(type: string, value: number): boolean;
|
|
40
60
|
export declare function modifyDate(date: Date, type: string, value: number): Date;
|
|
61
|
+
export declare function isFieldFullValue(formatStr: string, value: number, pattern: string): boolean;
|
|
62
|
+
export declare function useInputSelection(input: React.RefObject<any>): (selectionStart: number, selectionEnd: number) => void;
|
|
41
63
|
export {};
|