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
|
@@ -111,12 +111,16 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
111
111
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuMaxHeight", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onSelectItem", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
|
|
112
112
|
var _useContext = (0, _react.useContext)(_TreeContext.default),
|
|
113
113
|
inline = _useContext.inline;
|
|
114
|
-
var
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
114
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref, {
|
|
115
|
+
inline: inline
|
|
116
|
+
}),
|
|
117
|
+
trigger = _usePickerRef.trigger,
|
|
118
|
+
root = _usePickerRef.root,
|
|
119
|
+
target = _usePickerRef.target,
|
|
120
|
+
overlay = _usePickerRef.overlay,
|
|
121
|
+
list = _usePickerRef.list,
|
|
122
|
+
searchInput = _usePickerRef.searchInput,
|
|
123
|
+
treeView = _usePickerRef.treeView;
|
|
120
124
|
var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
|
|
121
125
|
rtl = _useCustom.rtl,
|
|
122
126
|
locale = _useCustom.locale;
|
|
@@ -197,7 +201,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
197
201
|
* get formatted nodes for render tree
|
|
198
202
|
* @params render - renderNode function. only used when virtualized setting false
|
|
199
203
|
*/
|
|
200
|
-
var getFormattedNodes =
|
|
204
|
+
var getFormattedNodes = function getFormattedNodes(render) {
|
|
201
205
|
if (virtualized) {
|
|
202
206
|
return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
|
|
203
207
|
cascade: cascade,
|
|
@@ -212,7 +216,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
212
216
|
}).map(function (node) {
|
|
213
217
|
return render === null || render === void 0 ? void 0 : render(node, 1);
|
|
214
218
|
});
|
|
215
|
-
}
|
|
219
|
+
};
|
|
216
220
|
var getTreeNodeProps = function getTreeNodeProps(node, layer) {
|
|
217
221
|
return {
|
|
218
222
|
as: Component,
|
|
@@ -243,19 +247,19 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
243
247
|
onRenderTreeIcon: renderTreeIcon
|
|
244
248
|
};
|
|
245
249
|
};
|
|
246
|
-
var focusActiveNode =
|
|
247
|
-
if (
|
|
250
|
+
var focusActiveNode = function focusActiveNode() {
|
|
251
|
+
if (list.current) {
|
|
248
252
|
(0, _treeUtils.focusToActiveTreeNode)({
|
|
249
|
-
list:
|
|
253
|
+
list: list.current,
|
|
250
254
|
valueKey: valueKey,
|
|
251
255
|
selector: "." + checkTreePrefix('node-active'),
|
|
252
256
|
activeNode: activeNode,
|
|
253
257
|
virtualized: virtualized,
|
|
254
|
-
container:
|
|
258
|
+
container: treeView.current,
|
|
255
259
|
formattedNodes: getFormattedNodes()
|
|
256
260
|
});
|
|
257
261
|
}
|
|
258
|
-
}
|
|
262
|
+
};
|
|
259
263
|
(0, _react.useEffect)(function () {
|
|
260
264
|
setValue((0, _utils2.getCheckTreePickerDefaultValue)(value, uncheckableItemValues));
|
|
261
265
|
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
@@ -285,7 +289,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
285
289
|
});
|
|
286
290
|
forceUpdate();
|
|
287
291
|
}, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);
|
|
288
|
-
var toggleUpChecked = (0,
|
|
292
|
+
var toggleUpChecked = (0, _utils.useEventCallback)(function (nodes, node, checked) {
|
|
289
293
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
290
294
|
if (cascade && currentNode) {
|
|
291
295
|
if (!checked) {
|
|
@@ -304,8 +308,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
304
308
|
toggleUpChecked(nodes, currentNode.parent, checked);
|
|
305
309
|
}
|
|
306
310
|
}
|
|
307
|
-
}
|
|
308
|
-
var toggleDownChecked = (0,
|
|
311
|
+
});
|
|
312
|
+
var toggleDownChecked = (0, _utils.useEventCallback)(function (nodes, node, isChecked) {
|
|
309
313
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
310
314
|
if (!currentNode) {
|
|
311
315
|
return;
|
|
@@ -319,8 +323,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
319
323
|
toggleDownChecked(nodes, child, isChecked);
|
|
320
324
|
});
|
|
321
325
|
}
|
|
322
|
-
}
|
|
323
|
-
var toggleChecked = (0,
|
|
326
|
+
});
|
|
327
|
+
var toggleChecked = (0, _utils.useEventCallback)(function (node, isChecked) {
|
|
324
328
|
var nodes = (0, _cloneDeep2.default)(flattenNodes);
|
|
325
329
|
toggleDownChecked(nodes, node, isChecked);
|
|
326
330
|
node.parent && toggleUpChecked(nodes, node.parent, isChecked);
|
|
@@ -329,7 +333,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
329
333
|
return values.filter(function (v) {
|
|
330
334
|
return !uncheckableItemValues.includes(v);
|
|
331
335
|
});
|
|
332
|
-
}
|
|
336
|
+
});
|
|
333
337
|
|
|
334
338
|
// TODO-Doma
|
|
335
339
|
// Replace `getKeyParentMap` with `getParentMap`
|
|
@@ -340,7 +344,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
340
344
|
return node[childrenKey];
|
|
341
345
|
});
|
|
342
346
|
}, [childrenKey, data, valueKey]);
|
|
343
|
-
var handleSelect = (0,
|
|
347
|
+
var handleSelect = (0, _utils.useEventCallback)(function (node, event) {
|
|
344
348
|
var currentNode = node.refKey ? flattenNodes[node.refKey] : null;
|
|
345
349
|
if (!node || !currentNode) {
|
|
346
350
|
return;
|
|
@@ -363,18 +367,18 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
363
367
|
onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(node, (0, _treeUtils.getPathTowardsItem)(node, function (item) {
|
|
364
368
|
return itemParentMap.get(item[valueKey]);
|
|
365
369
|
}));
|
|
366
|
-
}
|
|
367
|
-
var handleOpen = (0,
|
|
368
|
-
var
|
|
369
|
-
(
|
|
370
|
+
});
|
|
371
|
+
var handleOpen = (0, _utils.useEventCallback)(function () {
|
|
372
|
+
var _trigger$current, _trigger$current$open;
|
|
373
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$open = _trigger$current.open) === null || _trigger$current$open === void 0 ? void 0 : _trigger$current$open.call(_trigger$current);
|
|
370
374
|
setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);
|
|
371
375
|
focusActiveNode();
|
|
372
376
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
373
377
|
setActive(true);
|
|
374
|
-
}
|
|
375
|
-
var handleClose = (0,
|
|
376
|
-
var
|
|
377
|
-
(
|
|
378
|
+
});
|
|
379
|
+
var handleClose = (0, _utils.useEventCallback)(function () {
|
|
380
|
+
var _trigger$current2, _trigger$current2$clo, _target$current;
|
|
381
|
+
(_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$clo = _trigger$current2.close) === null || _trigger$current2$clo === void 0 ? void 0 : _trigger$current2$clo.call(_trigger$current2);
|
|
378
382
|
setSearchKeyword('');
|
|
379
383
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
380
384
|
setFocusItemValue(null);
|
|
@@ -383,9 +387,9 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
383
387
|
/**
|
|
384
388
|
* when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu
|
|
385
389
|
*/
|
|
386
|
-
(
|
|
387
|
-
}
|
|
388
|
-
var handleExpand = (0,
|
|
390
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
391
|
+
});
|
|
392
|
+
var handleExpand = (0, _utils.useEventCallback)(function (node) {
|
|
389
393
|
var nextExpandItemValues = (0, _treeUtils.toggleExpand)({
|
|
390
394
|
node: node,
|
|
391
395
|
isExpand: !node.expand,
|
|
@@ -400,16 +404,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
400
404
|
if ((0, _isFunction2.default)(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {
|
|
401
405
|
loadChildren(node, getChildren);
|
|
402
406
|
}
|
|
403
|
-
}, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);
|
|
404
|
-
(0, _Picker.usePublicMethods)(ref, {
|
|
405
|
-
rootRef: inline ? treeViewRef : undefined,
|
|
406
|
-
triggerRef: triggerRef,
|
|
407
|
-
overlayRef: overlayRef,
|
|
408
|
-
targetRef: targetRef,
|
|
409
|
-
listRef: listRef,
|
|
410
|
-
inline: inline
|
|
411
407
|
});
|
|
412
|
-
var handleClean = (0,
|
|
408
|
+
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
413
409
|
var target = event.target;
|
|
414
410
|
// exclude searchBar
|
|
415
411
|
if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
|
|
@@ -428,8 +424,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
428
424
|
});
|
|
429
425
|
}
|
|
430
426
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
431
|
-
}
|
|
432
|
-
var handleFocusItem = (0,
|
|
427
|
+
});
|
|
428
|
+
var handleFocusItem = (0, _utils.useEventCallback)(function (key) {
|
|
433
429
|
var focusableItems = (0, _treeUtils.getFocusableItems)(filteredData, {
|
|
434
430
|
disabledItemValues: disabledItemValues,
|
|
435
431
|
valueKey: valueKey,
|
|
@@ -454,8 +450,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
454
450
|
if (key === _utils.KEY_VALUES.UP) {
|
|
455
451
|
(0, _treeUtils.focusPreviousItem)(focusProps);
|
|
456
452
|
}
|
|
457
|
-
}
|
|
458
|
-
var handleLeftArrow = (0,
|
|
453
|
+
});
|
|
454
|
+
var handleLeftArrow = (0, _utils.useEventCallback)(function () {
|
|
459
455
|
if ((0, _isNil2.default)(focusItemValue)) return;
|
|
460
456
|
var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
|
|
461
457
|
(0, _treeUtils.leftArrowHandler)({
|
|
@@ -469,8 +465,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
469
465
|
(0, _treeUtils.focusTreeNode)(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, "." + checkTreePrefix('node-label'));
|
|
470
466
|
}
|
|
471
467
|
});
|
|
472
|
-
}
|
|
473
|
-
var handleRightArrow = (0,
|
|
468
|
+
});
|
|
469
|
+
var handleRightArrow = (0, _utils.useEventCallback)(function () {
|
|
474
470
|
if ((0, _isNil2.default)(focusItemValue)) return;
|
|
475
471
|
var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
|
|
476
472
|
(0, _treeUtils.rightArrowHandler)({
|
|
@@ -482,8 +478,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
482
478
|
handleFocusItem(_utils.KEY_VALUES.DOWN);
|
|
483
479
|
}
|
|
484
480
|
});
|
|
485
|
-
}
|
|
486
|
-
var selectActiveItem =
|
|
481
|
+
});
|
|
482
|
+
var selectActiveItem = function selectActiveItem(event) {
|
|
487
483
|
if ((0, _isNil2.default)(focusItemValue)) return;
|
|
488
484
|
var activeItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
|
|
489
485
|
if (!(0, _utils2.isNodeUncheckable)(activeItem, {
|
|
@@ -492,13 +488,13 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
492
488
|
}) && activeItem !== null) {
|
|
493
489
|
handleSelect(activeItem, event);
|
|
494
490
|
}
|
|
495
|
-
}
|
|
491
|
+
};
|
|
496
492
|
var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
|
|
497
493
|
toggle: !focusItemValue || !active,
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
494
|
+
trigger: trigger,
|
|
495
|
+
target: target,
|
|
496
|
+
overlay: overlay,
|
|
497
|
+
searchInput: searchInput,
|
|
502
498
|
active: active,
|
|
503
499
|
onExit: handleClean,
|
|
504
500
|
onClose: handleClose,
|
|
@@ -517,8 +513,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
517
513
|
});
|
|
518
514
|
}
|
|
519
515
|
}, rest));
|
|
520
|
-
var handleTreeKeydown = (0,
|
|
521
|
-
if (!
|
|
516
|
+
var handleTreeKeydown = (0, _utils.useEventCallback)(function (event) {
|
|
517
|
+
if (!treeView.current) {
|
|
522
518
|
return;
|
|
523
519
|
}
|
|
524
520
|
(0, _Picker.onMenuKeyDown)(event, {
|
|
@@ -532,7 +528,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
532
528
|
right: rtl ? handleLeftArrow : handleRightArrow,
|
|
533
529
|
enter: selectActiveItem
|
|
534
530
|
});
|
|
535
|
-
}
|
|
531
|
+
});
|
|
536
532
|
var renderNode = function renderNode(node, layer) {
|
|
537
533
|
var visible = node.visible,
|
|
538
534
|
refKey = node.refKey; // when searching, all nodes should be expand
|
|
@@ -624,7 +620,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
624
620
|
}, style) : {};
|
|
625
621
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
626
622
|
id: id ? id + "-listbox" : undefined,
|
|
627
|
-
ref:
|
|
623
|
+
ref: inline ? root : treeView,
|
|
628
624
|
role: "tree",
|
|
629
625
|
"aria-multiselectable": true,
|
|
630
626
|
className: classes,
|
|
@@ -642,7 +638,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
642
638
|
}, function (_ref5) {
|
|
643
639
|
var height = _ref5.height;
|
|
644
640
|
return /*#__PURE__*/_react.default.createElement(_Windowing.List, (0, _extends2.default)({
|
|
645
|
-
ref:
|
|
641
|
+
ref: list,
|
|
646
642
|
height: height,
|
|
647
643
|
itemSize: itemSize,
|
|
648
644
|
itemCount: formattedNodes.length,
|
|
@@ -663,14 +659,14 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
663
659
|
autoWidth: menuAutoWidth,
|
|
664
660
|
className: classes,
|
|
665
661
|
style: mergedMenuStyle,
|
|
666
|
-
ref: (0, _utils.mergeRefs)(
|
|
662
|
+
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
667
663
|
onKeyDown: onPickerKeydown,
|
|
668
|
-
target:
|
|
664
|
+
target: trigger
|
|
669
665
|
}, searchable ? /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
|
|
670
666
|
placeholder: locale.searchPlaceholder,
|
|
671
667
|
onChange: handleSearch,
|
|
672
668
|
value: searchKeywordState,
|
|
673
|
-
inputRef:
|
|
669
|
+
inputRef: searchInput
|
|
674
670
|
}) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
675
671
|
};
|
|
676
672
|
var selectedItems = (0, _react.useMemo)(function () {
|
|
@@ -716,7 +712,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
716
712
|
}
|
|
717
713
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
718
714
|
pickerProps: (0, _pick2.default)(props, _Picker.pickTriggerPropKeys),
|
|
719
|
-
ref:
|
|
715
|
+
ref: trigger,
|
|
720
716
|
placement: placement,
|
|
721
717
|
onEnter: handleOpen,
|
|
722
718
|
onEntered: onEntered,
|
|
@@ -724,10 +720,11 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
724
720
|
speaker: renderDropdownMenu
|
|
725
721
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
726
722
|
className: classes,
|
|
727
|
-
style: style
|
|
723
|
+
style: style,
|
|
724
|
+
ref: root
|
|
728
725
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit2.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
729
726
|
id: id,
|
|
730
|
-
ref:
|
|
727
|
+
ref: target,
|
|
731
728
|
appearance: appearance,
|
|
732
729
|
onKeyDown: onPickerKeydown,
|
|
733
730
|
onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
|
|
@@ -67,6 +67,19 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
67
67
|
more: string;
|
|
68
68
|
prev: string;
|
|
69
69
|
next: string;
|
|
70
|
+
/**
|
|
71
|
+
* Return the date parsed from string using the given format string.
|
|
72
|
+
*
|
|
73
|
+
* Example:
|
|
74
|
+
*
|
|
75
|
+
* import parse from 'date-fns/parse';
|
|
76
|
+
* import eo from 'date-fns/locale/eo'
|
|
77
|
+
*
|
|
78
|
+
* function parseDate(date, formatStr) {
|
|
79
|
+
* return parse(date, formatStr, new Date(), { locale: eo });
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* */
|
|
70
83
|
first: string;
|
|
71
84
|
last: string;
|
|
72
85
|
limit: string;
|
|
@@ -7,7 +7,7 @@ exports.__esModule = true;
|
|
|
7
7
|
exports.default = exports.CustomContext = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _prefix = require("../utils/prefix");
|
|
12
12
|
var _DOMHelper = require("../DOMHelper");
|
|
13
13
|
var _ToastContainer = _interopRequireWildcard(require("../toaster/ToastContainer"));
|
|
@@ -43,7 +43,7 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
43
43
|
disableRipple: disableRipple
|
|
44
44
|
}, rest);
|
|
45
45
|
}, [classPrefix, theme, disableRipple, rest]);
|
|
46
|
-
(0,
|
|
46
|
+
(0, _utils.useIsomorphicLayoutEffect)(function () {
|
|
47
47
|
if (_DOMHelper.canUseDOM && theme) {
|
|
48
48
|
(0, _DOMHelper.addClass)(document.body, (0, _prefix.prefix)(classPrefix, "theme-" + theme));
|
|
49
49
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import type { Locale } from 'date-fns';
|
|
3
3
|
export declare const patternMap: {
|
|
4
4
|
y: string;
|
|
5
5
|
M: string;
|
|
@@ -22,9 +22,12 @@ export declare class DateField extends Object {
|
|
|
22
22
|
hour: number | null;
|
|
23
23
|
minute: number | null;
|
|
24
24
|
second: number | null;
|
|
25
|
-
meridian: 'AM' | 'PM' | null;
|
|
26
25
|
constructor(format: string, value?: Date | null);
|
|
27
26
|
}
|
|
27
|
+
interface Action {
|
|
28
|
+
type: string;
|
|
29
|
+
value: any;
|
|
30
|
+
}
|
|
28
31
|
export declare const useDateField: (format: string, localize: Locale['localize'], date?: Date | null) => {
|
|
29
32
|
dateField: {
|
|
30
33
|
year: any;
|
|
@@ -38,7 +41,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
38
41
|
hour: number | null;
|
|
39
42
|
minute: number | null;
|
|
40
43
|
second: number | null;
|
|
41
|
-
meridian: 'AM' | 'PM' | null;
|
|
42
44
|
constructor: Function;
|
|
43
45
|
toString(): string;
|
|
44
46
|
toLocaleString(): string;
|
|
@@ -59,7 +61,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
59
61
|
hour: number | null;
|
|
60
62
|
minute: number | null;
|
|
61
63
|
second: number | null;
|
|
62
|
-
meridian: 'AM' | 'PM' | null;
|
|
63
64
|
constructor: Function;
|
|
64
65
|
toString(): string;
|
|
65
66
|
toLocaleString(): string;
|
|
@@ -80,7 +81,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
80
81
|
hour: number | null;
|
|
81
82
|
minute: number | null;
|
|
82
83
|
second: number | null;
|
|
83
|
-
meridian: 'AM' | 'PM' | null;
|
|
84
84
|
constructor: Function;
|
|
85
85
|
toString(): string;
|
|
86
86
|
toLocaleString(): string;
|
|
@@ -101,7 +101,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
101
101
|
day: number | null;
|
|
102
102
|
minute: number | null;
|
|
103
103
|
second: number | null;
|
|
104
|
-
meridian: 'AM' | 'PM' | null;
|
|
105
104
|
constructor: Function;
|
|
106
105
|
toString(): string;
|
|
107
106
|
toLocaleString(): string;
|
|
@@ -122,7 +121,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
122
121
|
day: number | null;
|
|
123
122
|
hour: number | null;
|
|
124
123
|
second: number | null;
|
|
125
|
-
meridian: 'AM' | 'PM' | null;
|
|
126
124
|
constructor: Function;
|
|
127
125
|
toString(): string;
|
|
128
126
|
toLocaleString(): string;
|
|
@@ -143,28 +141,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
143
141
|
day: number | null;
|
|
144
142
|
hour: number | null;
|
|
145
143
|
minute: number | null;
|
|
146
|
-
meridian: 'AM' | 'PM' | null;
|
|
147
|
-
constructor: Function;
|
|
148
|
-
toString(): string;
|
|
149
|
-
toLocaleString(): string;
|
|
150
|
-
valueOf(): Object;
|
|
151
|
-
hasOwnProperty(v: PropertyKey): boolean;
|
|
152
|
-
isPrototypeOf(v: Object): boolean;
|
|
153
|
-
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
154
|
-
should: Chai.Assertion;
|
|
155
|
-
} | {
|
|
156
|
-
meridian: any;
|
|
157
|
-
format: string;
|
|
158
|
-
patternArray: {
|
|
159
|
-
pattern: string;
|
|
160
|
-
key: string;
|
|
161
|
-
}[];
|
|
162
|
-
year: number | null;
|
|
163
|
-
month: number | null;
|
|
164
|
-
day: number | null;
|
|
165
|
-
hour: number | null;
|
|
166
|
-
minute: number | null;
|
|
167
|
-
second: number | null;
|
|
168
144
|
constructor: Function;
|
|
169
145
|
toString(): string;
|
|
170
146
|
toLocaleString(): string;
|
|
@@ -174,7 +150,9 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
174
150
|
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
175
151
|
should: Chai.Assertion;
|
|
176
152
|
};
|
|
177
|
-
dispatch: import("react").Dispatch<
|
|
178
|
-
toDate: (type
|
|
153
|
+
dispatch: import("react").Dispatch<Action>;
|
|
154
|
+
toDate: (type?: string, value?: number | null) => Date | null;
|
|
179
155
|
toDateString: () => string;
|
|
156
|
+
isEmptyValue: (type?: string, value?: number | null) => boolean | undefined;
|
|
180
157
|
};
|
|
158
|
+
export {};
|
|
@@ -8,6 +8,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
8
8
|
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
9
9
|
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
10
10
|
var _react = require("react");
|
|
11
|
+
var _isValid = _interopRequireDefault(require("date-fns/isValid"));
|
|
11
12
|
var _utils = require("./utils");
|
|
12
13
|
var patternMap = {
|
|
13
14
|
y: 'year',
|
|
@@ -33,7 +34,6 @@ var DateField = /*#__PURE__*/function (_Object) {
|
|
|
33
34
|
_this.hour = null;
|
|
34
35
|
_this.minute = null;
|
|
35
36
|
_this.second = null;
|
|
36
|
-
_this.meridian = null;
|
|
37
37
|
_this.format = format;
|
|
38
38
|
var formatArray = format.match(new RegExp('([y|d|M|H|h|m|s|a])+', 'ig')) || [];
|
|
39
39
|
_this.patternArray = formatArray.map(function (pattern) {
|
|
@@ -42,14 +42,13 @@ var DateField = /*#__PURE__*/function (_Object) {
|
|
|
42
42
|
key: patternMap[pattern[0]]
|
|
43
43
|
};
|
|
44
44
|
});
|
|
45
|
-
if (value) {
|
|
45
|
+
if (value && (0, _isValid.default)(value)) {
|
|
46
46
|
_this.year = value.getFullYear();
|
|
47
47
|
_this.month = value.getMonth() + 1;
|
|
48
48
|
_this.day = value.getDate();
|
|
49
49
|
_this.hour = value.getHours();
|
|
50
50
|
_this.minute = value.getMinutes();
|
|
51
51
|
_this.second = value.getSeconds();
|
|
52
|
-
_this.meridian = value.getHours() > 12 ? 'PM' : 'AM';
|
|
53
52
|
}
|
|
54
53
|
return _this;
|
|
55
54
|
}
|
|
@@ -97,10 +96,8 @@ var useDateField = function useDateField(format, localize, date) {
|
|
|
97
96
|
return (0, _extends2.default)({}, state, {
|
|
98
97
|
second: action.value
|
|
99
98
|
});
|
|
100
|
-
case '
|
|
101
|
-
return (
|
|
102
|
-
meridian: action.value
|
|
103
|
-
});
|
|
99
|
+
case 'setNewDate':
|
|
100
|
+
return new DateField(format, action.value);
|
|
104
101
|
default:
|
|
105
102
|
return state;
|
|
106
103
|
}
|
|
@@ -112,6 +109,7 @@ var useDateField = function useDateField(format, localize, date) {
|
|
|
112
109
|
dateField.patternArray.forEach(function (item) {
|
|
113
110
|
var key = item.key,
|
|
114
111
|
pattern = item.pattern;
|
|
112
|
+
var hour = dateField.hour;
|
|
115
113
|
var value = dateField[key];
|
|
116
114
|
if (value !== null) {
|
|
117
115
|
if (pattern === 'MMM' && typeof value === 'number') {
|
|
@@ -122,8 +120,12 @@ var useDateField = function useDateField(format, localize, date) {
|
|
|
122
120
|
value = localize === null || localize === void 0 ? void 0 : localize.month(value - 1, {
|
|
123
121
|
width: 'wide'
|
|
124
122
|
});
|
|
125
|
-
} else if (pattern === 'aa'
|
|
126
|
-
|
|
123
|
+
} else if (pattern === 'aa') {
|
|
124
|
+
if (typeof hour === 'number') {
|
|
125
|
+
value = hour > 12 ? 'PM' : 'AM';
|
|
126
|
+
} else {
|
|
127
|
+
value = 'aa';
|
|
128
|
+
}
|
|
127
129
|
} else if (pattern === 'hh' && typeof value === 'number') {
|
|
128
130
|
value = value === 0 ? 12 : value > 12 ? value - 12 : value;
|
|
129
131
|
}
|
|
@@ -135,17 +137,64 @@ var useDateField = function useDateField(format, localize, date) {
|
|
|
135
137
|
});
|
|
136
138
|
return str;
|
|
137
139
|
};
|
|
140
|
+
|
|
141
|
+
// Check if the field value is valid.
|
|
142
|
+
var validFieldValue = function validFieldValue(type, value) {
|
|
143
|
+
var _format$match;
|
|
144
|
+
var isValid = true;
|
|
145
|
+
(_format$match = format.match(new RegExp('([y|d|M|H|h|m|s])+', 'ig'))) === null || _format$match === void 0 ? void 0 : _format$match.forEach(function (pattern) {
|
|
146
|
+
var key = patternMap[pattern[0]];
|
|
147
|
+
var fieldValue = type === key ? value : dateField[key];
|
|
148
|
+
if (fieldValue === null) {
|
|
149
|
+
isValid = false;
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
return isValid;
|
|
154
|
+
};
|
|
155
|
+
var isEmptyValue = function isEmptyValue(type, value) {
|
|
156
|
+
var _format$match2;
|
|
157
|
+
var checkValueArray = (_format$match2 = format.match(new RegExp('([y|d|M|H|h|m|s])+', 'ig'))) === null || _format$match2 === void 0 ? void 0 : _format$match2.map(function (pattern) {
|
|
158
|
+
var key = patternMap[pattern[0]];
|
|
159
|
+
var fieldValue = type === key ? value : dateField[key];
|
|
160
|
+
return fieldValue !== null;
|
|
161
|
+
});
|
|
162
|
+
return checkValueArray === null || checkValueArray === void 0 ? void 0 : checkValueArray.every(function (item) {
|
|
163
|
+
return item === false;
|
|
164
|
+
});
|
|
165
|
+
};
|
|
138
166
|
var toDate = function toDate(type, value) {
|
|
139
|
-
|
|
167
|
+
var year = dateField.year,
|
|
168
|
+
month = dateField.month,
|
|
169
|
+
day = dateField.day,
|
|
170
|
+
hour = dateField.hour,
|
|
171
|
+
minute = dateField.minute,
|
|
172
|
+
second = dateField.second;
|
|
173
|
+
var date = new Date(year || 0, typeof month === 'number' ? month - 1 : 0,
|
|
174
|
+
// The default day is 1 when the value is null, otherwise it becomes the last day of the month.
|
|
175
|
+
day || 1, hour || 0, minute || 0, second || 0);
|
|
176
|
+
if (typeof type === 'undefined' || typeof value === 'undefined') {
|
|
177
|
+
return date;
|
|
178
|
+
}
|
|
179
|
+
if (value === null || !validFieldValue(type, value)) {
|
|
180
|
+
if (isEmptyValue(type, value)) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
140
183
|
return new Date('');
|
|
141
184
|
}
|
|
142
|
-
|
|
185
|
+
if (type === 'meridian' && typeof hour === 'number') {
|
|
186
|
+
var newHour = hour > 12 ? hour - 12 : hour + 12;
|
|
187
|
+
type = 'hour';
|
|
188
|
+
value = newHour;
|
|
189
|
+
}
|
|
190
|
+
return (0, _utils.modifyDate)(date, type, value);
|
|
143
191
|
};
|
|
144
192
|
return {
|
|
145
193
|
dateField: dateField,
|
|
146
194
|
dispatch: dispatch,
|
|
147
195
|
toDate: toDate,
|
|
148
|
-
toDateString: toDateString
|
|
196
|
+
toDateString: toDateString,
|
|
197
|
+
isEmptyValue: isEmptyValue
|
|
149
198
|
};
|
|
150
199
|
};
|
|
151
200
|
exports.useDateField = useDateField;
|
|
@@ -3,11 +3,16 @@ import { InputProps } from '../Input';
|
|
|
3
3
|
import { FormControlBaseProps } from '../@types/common';
|
|
4
4
|
export interface DateInputProps extends Omit<InputProps, 'value' | 'onChange' | 'defaultValue'>, FormControlBaseProps<Date | null> {
|
|
5
5
|
/**
|
|
6
|
-
* Format of the date when rendered in the input.
|
|
7
|
-
*
|
|
6
|
+
* Format of the date when rendered in the input. Format of the string is based on Unicode Technical Standard.
|
|
7
|
+
*
|
|
8
|
+
* @see https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
|
|
8
9
|
* @default 'yyyy-MM-dd'
|
|
9
10
|
**/
|
|
10
11
|
format?: string;
|
|
12
|
+
/**
|
|
13
|
+
* The `placeholder` prop defines the text displayed in a form control when the control has no value.
|
|
14
|
+
*/
|
|
15
|
+
placeholder?: string;
|
|
11
16
|
}
|
|
12
17
|
/**
|
|
13
18
|
* The DateInput component lets users select a date with the keyboard.
|