rsuite 5.49.0 → 5.51.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 +24 -0
- package/Cascader/styles/index.less +4 -4
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Form/styles/mixin.less +1 -2
- package/InputGroup/styles/index.less +0 -14
- package/InputPicker/styles/index.less +1 -1
- package/Picker/styles/index.less +33 -26
- package/Picker/styles/mixin.less +20 -16
- package/README.md +4 -4
- package/TagInput/styles/index.less +2 -2
- package/TagPicker/styles/index.less +5 -1
- package/TreePicker/styles/index.less +2 -2
- package/cjs/@types/common.d.ts +8 -0
- package/cjs/AutoComplete/AutoComplete.js +39 -37
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +58 -59
- package/cjs/Cascader/DropdownMenu.d.ts +3 -20
- package/cjs/Cascader/DropdownMenu.js +48 -48
- package/cjs/Cascader/TreeView.d.ts +24 -0
- package/cjs/Cascader/TreeView.js +174 -0
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +42 -44
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +81 -84
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +7 -10
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -202
- 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/Form/Form.d.ts +14 -0
- package/cjs/Form/Form.js +39 -30
- package/cjs/Form/FormContext.d.ts +1 -0
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +40 -17
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +108 -92
- package/cjs/InputPicker/InputSearch.js +3 -15
- package/cjs/InputPicker/TagList.d.ts +3 -0
- package/cjs/InputPicker/TagList.js +29 -0
- package/cjs/InputPicker/TextBox.d.ts +18 -0
- package/cjs/InputPicker/TextBox.js +48 -0
- package/cjs/MultiCascader/MultiCascader.js +53 -52
- package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
- package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
- package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
- package/cjs/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
- package/cjs/Picker/ListItemGroup.d.ts +6 -0
- package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/cjs/Picker/Listbox.d.ts +35 -0
- package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +63 -181
- package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
- package/cjs/Picker/PickerToggleTrigger.js +21 -5
- package/cjs/Picker/SearchBar.js +7 -9
- package/cjs/Picker/TreeView.d.ts +7 -0
- package/cjs/Picker/TreeView.js +31 -0
- package/cjs/Picker/hooks/index.d.ts +6 -0
- package/cjs/Picker/hooks/index.js +18 -0
- package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
- package/cjs/Picker/hooks/useCombobox.js +22 -0
- package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
- package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/cjs/Picker/hooks/usePickerClassName.js +39 -0
- package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -7
- package/cjs/Picker/hooks/useSearch.d.ts +18 -0
- package/cjs/Picker/hooks/useSearch.js +57 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
- package/cjs/Picker/index.d.ts +9 -5
- package/cjs/Picker/index.js +32 -16
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -100
- package/cjs/Picker/utils.js +1 -473
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +47 -50
- package/cjs/TagInput/index.js +4 -0
- package/cjs/TreePicker/TreeNode.d.ts +2 -2
- package/cjs/TreePicker/TreeNode.js +22 -56
- package/cjs/TreePicker/TreePicker.js +91 -95
- 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 +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +201 -186
- 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 +201 -186
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +201 -186
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +201 -186
- package/dist/rsuite.js +235 -104
- 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/@types/common.d.ts +8 -0
- package/esm/AutoComplete/AutoComplete.js +42 -40
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +61 -62
- package/esm/Cascader/DropdownMenu.d.ts +3 -20
- package/esm/Cascader/DropdownMenu.js +50 -49
- package/esm/Cascader/TreeView.d.ts +24 -0
- package/esm/Cascader/TreeView.js +167 -0
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +45 -47
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +84 -87
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +5 -8
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -204
- 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/Form/Form.d.ts +14 -0
- package/esm/Form/Form.js +41 -32
- package/esm/Form/FormContext.d.ts +1 -0
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +41 -18
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +110 -94
- package/esm/InputPicker/InputSearch.js +4 -15
- package/esm/InputPicker/TagList.d.ts +3 -0
- package/esm/InputPicker/TagList.js +23 -0
- package/esm/InputPicker/TextBox.d.ts +18 -0
- package/esm/InputPicker/TextBox.js +42 -0
- package/esm/MultiCascader/MultiCascader.js +56 -55
- package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
- package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
- package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
- package/esm/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
- package/esm/Picker/ListItemGroup.d.ts +6 -0
- package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/esm/Picker/Listbox.d.ts +35 -0
- package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +65 -183
- package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
- package/esm/Picker/PickerToggleTrigger.js +20 -5
- package/esm/Picker/SearchBar.js +8 -9
- package/esm/Picker/TreeView.d.ts +7 -0
- package/esm/Picker/TreeView.js +25 -0
- package/esm/Picker/hooks/index.d.ts +6 -0
- package/esm/Picker/hooks/index.js +7 -0
- package/esm/Picker/hooks/useCombobox.d.ts +7 -0
- package/esm/Picker/hooks/useCombobox.js +17 -0
- package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/esm/Picker/hooks/useFocusItemValue.js +240 -0
- package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/esm/Picker/hooks/usePickerClassName.js +33 -0
- package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -8
- package/esm/Picker/hooks/useSearch.d.ts +18 -0
- package/esm/Picker/hooks/useSearch.js +51 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
- package/esm/Picker/index.d.ts +9 -5
- package/esm/Picker/index.js +9 -5
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -100
- package/esm/Picker/utils.js +2 -467
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +50 -53
- package/esm/TagInput/index.js +4 -0
- package/esm/TreePicker/TreeNode.d.ts +2 -2
- package/esm/TreePicker/TreeNode.js +24 -58
- package/esm/TreePicker/TreePicker.js +94 -98
- 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 +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- package/styles/variables.less +1 -3
- package/cjs/Picker/DropdownMenu.d.ts +0 -59
- package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
- package/esm/Picker/DropdownMenu.d.ts +0 -59
- package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
|
@@ -7,15 +7,15 @@ import _omit from "lodash/omit";
|
|
|
7
7
|
import _isFunction from "lodash/isFunction";
|
|
8
8
|
import _pick from "lodash/pick";
|
|
9
9
|
import _isNil from "lodash/isNil";
|
|
10
|
-
import React, { useState,
|
|
10
|
+
import React, { useState, useEffect, useContext, useMemo } from 'react';
|
|
11
11
|
import PropTypes from 'prop-types';
|
|
12
12
|
import classNames from 'classnames';
|
|
13
13
|
import { List, AutoSizer } from '../Windowing';
|
|
14
14
|
import CheckTreeNode from './CheckTreeNode';
|
|
15
15
|
import TreeContext from '../Tree/TreeContext';
|
|
16
16
|
import { getKeyParentMap, getPathTowardsItem, getTreeNodeIndent } from '../utils/treeUtils';
|
|
17
|
-
import { createChainedFunction, useCustom, useClassNames, useControlled, KEY_VALUES, mergeRefs } from '../utils';
|
|
18
|
-
import { PickerToggle, onMenuKeyDown as _onMenuKeyDown,
|
|
17
|
+
import { createChainedFunction, useCustom, useClassNames, useControlled, useEventCallback, KEY_VALUES, mergeRefs } from '../utils';
|
|
18
|
+
import { PickerToggle, TreeView, onMenuKeyDown as _onMenuKeyDown, PickerPopup, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
19
19
|
import { isEveryChildChecked, isSomeNodeHasChildren, isAllSiblingNodeUncheckable, isEveryFirstLevelNodeUncheckable, getFormattedTree, getDisabledState, getCheckTreePickerDefaultValue, getSelectedItems, isNodeUncheckable } from './utils';
|
|
20
20
|
import { hasVisibleChildren, getExpandWhenSearching, useTreeSearch, useTreeNodeRefs, getDefaultExpandItemValues, useFlattenTreeData, focusNextItem, getFocusableItems, focusPreviousItem, toggleExpand, getActiveItem, useGetTreeNodeChildren, focusToActiveTreeNode, focusTreeNode, leftArrowHandler, rightArrowHandler, isSearching } from '../utils/treeUtils';
|
|
21
21
|
var emptyArray = [];
|
|
@@ -106,12 +106,16 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
106
106
|
rest = _objectWithoutPropertiesLoose(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"]);
|
|
107
107
|
var _useContext = useContext(TreeContext),
|
|
108
108
|
inline = _useContext.inline;
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
var _usePickerRef = usePickerRef(ref, {
|
|
110
|
+
inline: inline
|
|
111
|
+
}),
|
|
112
|
+
trigger = _usePickerRef.trigger,
|
|
113
|
+
root = _usePickerRef.root,
|
|
114
|
+
target = _usePickerRef.target,
|
|
115
|
+
overlay = _usePickerRef.overlay,
|
|
116
|
+
list = _usePickerRef.list,
|
|
117
|
+
searchInput = _usePickerRef.searchInput,
|
|
118
|
+
treeView = _usePickerRef.treeView;
|
|
115
119
|
var _useCustom = useCustom('Picker', overrideLocale),
|
|
116
120
|
rtl = _useCustom.rtl,
|
|
117
121
|
locale = _useCustom.locale;
|
|
@@ -192,7 +196,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
192
196
|
* get formatted nodes for render tree
|
|
193
197
|
* @params render - renderNode function. only used when virtualized setting false
|
|
194
198
|
*/
|
|
195
|
-
var getFormattedNodes =
|
|
199
|
+
var getFormattedNodes = function getFormattedNodes(render) {
|
|
196
200
|
if (virtualized) {
|
|
197
201
|
return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
|
|
198
202
|
cascade: cascade,
|
|
@@ -207,7 +211,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
207
211
|
}).map(function (node) {
|
|
208
212
|
return render === null || render === void 0 ? void 0 : render(node, 1);
|
|
209
213
|
});
|
|
210
|
-
}
|
|
214
|
+
};
|
|
211
215
|
var getTreeNodeProps = function getTreeNodeProps(node, layer) {
|
|
212
216
|
return {
|
|
213
217
|
as: Component,
|
|
@@ -234,23 +238,23 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
234
238
|
allUncheckable: isAllSiblingNodeUncheckable(node, flattenNodes, uncheckableItemValues, valueKey),
|
|
235
239
|
onSelect: handleSelect,
|
|
236
240
|
onExpand: handleExpand,
|
|
237
|
-
|
|
238
|
-
|
|
241
|
+
renderTreeNode: renderTreeNode,
|
|
242
|
+
renderTreeIcon: renderTreeIcon
|
|
239
243
|
};
|
|
240
244
|
};
|
|
241
|
-
var focusActiveNode =
|
|
242
|
-
if (
|
|
245
|
+
var focusActiveNode = function focusActiveNode() {
|
|
246
|
+
if (list.current) {
|
|
243
247
|
focusToActiveTreeNode({
|
|
244
|
-
list:
|
|
248
|
+
list: list.current,
|
|
245
249
|
valueKey: valueKey,
|
|
246
250
|
selector: "." + checkTreePrefix('node-active'),
|
|
247
251
|
activeNode: activeNode,
|
|
248
252
|
virtualized: virtualized,
|
|
249
|
-
container:
|
|
253
|
+
container: treeView.current,
|
|
250
254
|
formattedNodes: getFormattedNodes()
|
|
251
255
|
});
|
|
252
256
|
}
|
|
253
|
-
}
|
|
257
|
+
};
|
|
254
258
|
useEffect(function () {
|
|
255
259
|
setValue(getCheckTreePickerDefaultValue(value, uncheckableItemValues));
|
|
256
260
|
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
@@ -280,7 +284,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
280
284
|
});
|
|
281
285
|
forceUpdate();
|
|
282
286
|
}, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);
|
|
283
|
-
var toggleUpChecked =
|
|
287
|
+
var toggleUpChecked = useEventCallback(function (nodes, node, checked) {
|
|
284
288
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
285
289
|
if (cascade && currentNode) {
|
|
286
290
|
if (!checked) {
|
|
@@ -299,8 +303,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
299
303
|
toggleUpChecked(nodes, currentNode.parent, checked);
|
|
300
304
|
}
|
|
301
305
|
}
|
|
302
|
-
}
|
|
303
|
-
var toggleDownChecked =
|
|
306
|
+
});
|
|
307
|
+
var toggleDownChecked = useEventCallback(function (nodes, node, isChecked) {
|
|
304
308
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
305
309
|
if (!currentNode) {
|
|
306
310
|
return;
|
|
@@ -314,8 +318,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
314
318
|
toggleDownChecked(nodes, child, isChecked);
|
|
315
319
|
});
|
|
316
320
|
}
|
|
317
|
-
}
|
|
318
|
-
var toggleChecked =
|
|
321
|
+
});
|
|
322
|
+
var toggleChecked = useEventCallback(function (node, isChecked) {
|
|
319
323
|
var nodes = _cloneDeep(flattenNodes);
|
|
320
324
|
toggleDownChecked(nodes, node, isChecked);
|
|
321
325
|
node.parent && toggleUpChecked(nodes, node.parent, isChecked);
|
|
@@ -324,7 +328,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
324
328
|
return values.filter(function (v) {
|
|
325
329
|
return !uncheckableItemValues.includes(v);
|
|
326
330
|
});
|
|
327
|
-
}
|
|
331
|
+
});
|
|
328
332
|
|
|
329
333
|
// TODO-Doma
|
|
330
334
|
// Replace `getKeyParentMap` with `getParentMap`
|
|
@@ -335,7 +339,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
335
339
|
return node[childrenKey];
|
|
336
340
|
});
|
|
337
341
|
}, [childrenKey, data, valueKey]);
|
|
338
|
-
var handleSelect =
|
|
342
|
+
var handleSelect = useEventCallback(function (node, event) {
|
|
339
343
|
var currentNode = node.refKey ? flattenNodes[node.refKey] : null;
|
|
340
344
|
if (!node || !currentNode) {
|
|
341
345
|
return;
|
|
@@ -358,18 +362,18 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
358
362
|
onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(node, getPathTowardsItem(node, function (item) {
|
|
359
363
|
return itemParentMap.get(item[valueKey]);
|
|
360
364
|
}));
|
|
361
|
-
}
|
|
362
|
-
var handleOpen =
|
|
363
|
-
var
|
|
364
|
-
(
|
|
365
|
+
});
|
|
366
|
+
var handleOpen = useEventCallback(function () {
|
|
367
|
+
var _trigger$current, _trigger$current$open;
|
|
368
|
+
(_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);
|
|
365
369
|
setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);
|
|
366
370
|
focusActiveNode();
|
|
367
371
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
368
372
|
setActive(true);
|
|
369
|
-
}
|
|
370
|
-
var handleClose =
|
|
371
|
-
var
|
|
372
|
-
(
|
|
373
|
+
});
|
|
374
|
+
var handleClose = useEventCallback(function () {
|
|
375
|
+
var _trigger$current2, _trigger$current2$clo, _target$current;
|
|
376
|
+
(_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);
|
|
373
377
|
setSearchKeyword('');
|
|
374
378
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
375
379
|
setFocusItemValue(null);
|
|
@@ -378,9 +382,9 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
378
382
|
/**
|
|
379
383
|
* when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu
|
|
380
384
|
*/
|
|
381
|
-
(
|
|
382
|
-
}
|
|
383
|
-
var handleExpand =
|
|
385
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
386
|
+
});
|
|
387
|
+
var handleExpand = useEventCallback(function (node) {
|
|
384
388
|
var nextExpandItemValues = toggleExpand({
|
|
385
389
|
node: node,
|
|
386
390
|
isExpand: !node.expand,
|
|
@@ -395,19 +399,11 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
395
399
|
if (_isFunction(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {
|
|
396
400
|
loadChildren(node, getChildren);
|
|
397
401
|
}
|
|
398
|
-
}, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);
|
|
399
|
-
usePublicMethods(ref, {
|
|
400
|
-
rootRef: inline ? treeViewRef : undefined,
|
|
401
|
-
triggerRef: triggerRef,
|
|
402
|
-
overlayRef: overlayRef,
|
|
403
|
-
targetRef: targetRef,
|
|
404
|
-
listRef: listRef,
|
|
405
|
-
inline: inline
|
|
406
402
|
});
|
|
407
|
-
var handleClean =
|
|
403
|
+
var handleClean = useEventCallback(function (event) {
|
|
408
404
|
var target = event.target;
|
|
409
|
-
// exclude
|
|
410
|
-
if (target.matches('
|
|
405
|
+
// exclude searchbox
|
|
406
|
+
if (target.matches('input[role="searchbox"]') || disabled || !cleanable) {
|
|
411
407
|
return;
|
|
412
408
|
}
|
|
413
409
|
setActiveNode(null);
|
|
@@ -423,8 +419,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
423
419
|
});
|
|
424
420
|
}
|
|
425
421
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
426
|
-
}
|
|
427
|
-
var handleFocusItem =
|
|
422
|
+
});
|
|
423
|
+
var handleFocusItem = useEventCallback(function (key) {
|
|
428
424
|
var focusableItems = getFocusableItems(filteredData, {
|
|
429
425
|
disabledItemValues: disabledItemValues,
|
|
430
426
|
valueKey: valueKey,
|
|
@@ -449,8 +445,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
449
445
|
if (key === KEY_VALUES.UP) {
|
|
450
446
|
focusPreviousItem(focusProps);
|
|
451
447
|
}
|
|
452
|
-
}
|
|
453
|
-
var handleLeftArrow =
|
|
448
|
+
});
|
|
449
|
+
var handleLeftArrow = useEventCallback(function () {
|
|
454
450
|
if (_isNil(focusItemValue)) return;
|
|
455
451
|
var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
456
452
|
leftArrowHandler({
|
|
@@ -464,8 +460,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
464
460
|
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'));
|
|
465
461
|
}
|
|
466
462
|
});
|
|
467
|
-
}
|
|
468
|
-
var handleRightArrow =
|
|
463
|
+
});
|
|
464
|
+
var handleRightArrow = useEventCallback(function () {
|
|
469
465
|
if (_isNil(focusItemValue)) return;
|
|
470
466
|
var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
471
467
|
rightArrowHandler({
|
|
@@ -477,8 +473,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
477
473
|
handleFocusItem(KEY_VALUES.DOWN);
|
|
478
474
|
}
|
|
479
475
|
});
|
|
480
|
-
}
|
|
481
|
-
var selectActiveItem =
|
|
476
|
+
});
|
|
477
|
+
var selectActiveItem = function selectActiveItem(event) {
|
|
482
478
|
if (_isNil(focusItemValue)) return;
|
|
483
479
|
var activeItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
484
480
|
if (!isNodeUncheckable(activeItem, {
|
|
@@ -487,13 +483,13 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
487
483
|
}) && activeItem !== null) {
|
|
488
484
|
handleSelect(activeItem, event);
|
|
489
485
|
}
|
|
490
|
-
}
|
|
486
|
+
};
|
|
491
487
|
var onPickerKeydown = useToggleKeyDownEvent(_extends({
|
|
492
488
|
toggle: !focusItemValue || !active,
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
489
|
+
trigger: trigger,
|
|
490
|
+
target: target,
|
|
491
|
+
overlay: overlay,
|
|
492
|
+
searchInput: searchInput,
|
|
497
493
|
active: active,
|
|
498
494
|
onExit: handleClean,
|
|
499
495
|
onClose: handleClose,
|
|
@@ -512,8 +508,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
512
508
|
});
|
|
513
509
|
}
|
|
514
510
|
}, rest));
|
|
515
|
-
var handleTreeKeydown =
|
|
516
|
-
if (!
|
|
511
|
+
var handleTreeKeydown = useEventCallback(function (event) {
|
|
512
|
+
if (!treeView.current) {
|
|
517
513
|
return;
|
|
518
514
|
}
|
|
519
515
|
_onMenuKeyDown(event, {
|
|
@@ -527,7 +523,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
527
523
|
right: rtl ? handleLeftArrow : handleRightArrow,
|
|
528
524
|
enter: selectActiveItem
|
|
529
525
|
});
|
|
530
|
-
}
|
|
526
|
+
});
|
|
531
527
|
var renderNode = function renderNode(node, layer) {
|
|
532
528
|
var visible = node.visible,
|
|
533
529
|
refKey = node.refKey; // when searching, all nodes should be expand
|
|
@@ -561,7 +557,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
561
557
|
return saveTreeNodeRef(_ref, refKey);
|
|
562
558
|
}
|
|
563
559
|
})), /*#__PURE__*/React.createElement("div", {
|
|
564
|
-
className: checkTreePrefix('
|
|
560
|
+
className: checkTreePrefix('group'),
|
|
561
|
+
role: "group"
|
|
565
562
|
}, nodes.map(function (child) {
|
|
566
563
|
return renderNode(child, layer);
|
|
567
564
|
}), showIndentLine && /*#__PURE__*/React.createElement("span", {
|
|
@@ -613,21 +610,17 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
613
610
|
className: prefix('none')
|
|
614
611
|
}, locale.noResultsText);
|
|
615
612
|
}
|
|
616
|
-
var treeNodesClass = merge(checkTreePrefix('
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
id: id ? id + "-listbox" : undefined,
|
|
622
|
-
ref: treeViewRef,
|
|
623
|
-
role: "tree",
|
|
624
|
-
"aria-multiselectable": true,
|
|
613
|
+
var treeNodesClass = merge(checkTreePrefix('root'), (_merge2 = {}, _merge2[checkTreePrefix('all-uncheckable')] = isEveryFirstLevelNodeUncheckable(flattenNodes, uncheckableItemValues, valueKey), _merge2));
|
|
614
|
+
return /*#__PURE__*/React.createElement(TreeView, {
|
|
615
|
+
ref: inline ? root : treeView,
|
|
616
|
+
multiselectable: true,
|
|
617
|
+
treeRootClassName: treeNodesClass,
|
|
625
618
|
className: classes,
|
|
626
|
-
style:
|
|
619
|
+
style: inline ? _extends({
|
|
620
|
+
height: height
|
|
621
|
+
}, style) : {},
|
|
627
622
|
onScroll: onScroll,
|
|
628
623
|
onKeyDown: inline ? handleTreeKeydown : undefined
|
|
629
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
630
|
-
className: treeNodesClass
|
|
631
624
|
}, virtualized ? /*#__PURE__*/React.createElement(AutoSizer, {
|
|
632
625
|
defaultHeight: inline ? height : menuMaxHeight,
|
|
633
626
|
style: {
|
|
@@ -637,13 +630,13 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
637
630
|
}, function (_ref5) {
|
|
638
631
|
var height = _ref5.height;
|
|
639
632
|
return /*#__PURE__*/React.createElement(List, _extends({
|
|
640
|
-
ref:
|
|
633
|
+
ref: list,
|
|
641
634
|
height: height,
|
|
642
635
|
itemSize: itemSize,
|
|
643
636
|
itemCount: formattedNodes.length,
|
|
644
637
|
itemData: formattedNodes
|
|
645
638
|
}, listProps), renderVirtualListNode);
|
|
646
|
-
}) : formattedNodes)
|
|
639
|
+
}) : formattedNodes);
|
|
647
640
|
};
|
|
648
641
|
var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
|
|
649
642
|
var left = positionProps.left,
|
|
@@ -654,18 +647,18 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
654
647
|
left: left,
|
|
655
648
|
top: top
|
|
656
649
|
});
|
|
657
|
-
return /*#__PURE__*/React.createElement(
|
|
650
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
658
651
|
autoWidth: menuAutoWidth,
|
|
659
652
|
className: classes,
|
|
660
653
|
style: mergedMenuStyle,
|
|
661
|
-
ref: mergeRefs(
|
|
654
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
662
655
|
onKeyDown: onPickerKeydown,
|
|
663
|
-
target:
|
|
656
|
+
target: trigger
|
|
664
657
|
}, searchable ? /*#__PURE__*/React.createElement(SearchBar, {
|
|
665
658
|
placeholder: locale.searchPlaceholder,
|
|
666
659
|
onChange: handleSearch,
|
|
667
660
|
value: searchKeywordState,
|
|
668
|
-
inputRef:
|
|
661
|
+
inputRef: searchInput
|
|
669
662
|
}) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
670
663
|
};
|
|
671
664
|
var selectedItems = useMemo(function () {
|
|
@@ -710,8 +703,11 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
710
703
|
return renderCheckTree();
|
|
711
704
|
}
|
|
712
705
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
706
|
+
id: id,
|
|
707
|
+
popupType: "tree",
|
|
708
|
+
multiple: true,
|
|
713
709
|
pickerProps: _pick(props, pickTriggerPropKeys),
|
|
714
|
-
ref:
|
|
710
|
+
ref: trigger,
|
|
715
711
|
placement: placement,
|
|
716
712
|
onEnter: handleOpen,
|
|
717
713
|
onEntered: onEntered,
|
|
@@ -719,10 +715,10 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
719
715
|
speaker: renderDropdownMenu
|
|
720
716
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
721
717
|
className: classes,
|
|
722
|
-
style: style
|
|
718
|
+
style: style,
|
|
719
|
+
ref: root
|
|
723
720
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, _omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
724
|
-
|
|
725
|
-
ref: targetRef,
|
|
721
|
+
ref: target,
|
|
726
722
|
appearance: appearance,
|
|
727
723
|
onKeyDown: onPickerKeydown,
|
|
728
724
|
onClean: createChainedFunction(handleClean, onClean),
|
|
@@ -732,7 +728,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
732
728
|
hasValue: hasValidValue,
|
|
733
729
|
active: active,
|
|
734
730
|
placement: placement,
|
|
735
|
-
inputValue: value
|
|
731
|
+
inputValue: value,
|
|
732
|
+
focusItemValue: focusItemValue
|
|
736
733
|
}), selectedElement || locale.placeholder)));
|
|
737
734
|
});
|
|
738
735
|
CheckTreePicker.displayName = 'CheckTreePicker';
|
|
@@ -20,7 +20,11 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
20
20
|
* @deprecated use <Calendar> instead
|
|
21
21
|
**/
|
|
22
22
|
inline?: boolean;
|
|
23
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
25
|
+
*
|
|
26
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
27
|
+
*/
|
|
24
28
|
isoWeek?: boolean;
|
|
25
29
|
/** A label displayed at the beginning of toggle button */
|
|
26
30
|
label?: React.ReactNode;
|
|
@@ -19,12 +19,9 @@ import Stack from '../Stack';
|
|
|
19
19
|
import PredefinedRanges from './PredefinedRanges';
|
|
20
20
|
import { createChainedFunction, mergeRefs, useClassNames, useControlled, useCustom, useUniqueId, useEventCallback, partitionHTMLProps } from '../utils';
|
|
21
21
|
import { shouldRenderMonth, shouldRenderDate, shouldRenderTime, shouldOnlyRenderTime, setHours, getHours, addMonths, addDays, isValid, disabledTime, copyTime, calendarOnlyProps } from '../utils/dateUtils';
|
|
22
|
-
import {
|
|
23
|
-
import usePickerRef from '../Picker/usePickerRef';
|
|
22
|
+
import { PickerPopup, PickerLabel, PickerIndicator, PickerToggleTrigger, pickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, usePickerClassName, usePickerRef, onMenuKeyDown } from '../Picker';
|
|
24
23
|
import DateInput from '../DateInput';
|
|
25
24
|
import InputGroup from '../InputGroup';
|
|
26
|
-
import PickerLabel from './PickerLabel';
|
|
27
|
-
import PickerIndicator from './PickerIndicator';
|
|
28
25
|
import { OverlayCloseCause } from '../Overlay/OverlayTrigger';
|
|
29
26
|
import { deprecatePropTypeNew } from '../utils/deprecatePropType';
|
|
30
27
|
import { getAriaLabel } from '../Calendar/utils';
|
|
@@ -99,7 +96,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
99
96
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
100
97
|
onShortcutClick = props.onShortcutClick,
|
|
101
98
|
restProps = _objectWithoutPropertiesLoose(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick"]);
|
|
102
|
-
var id = useUniqueId(
|
|
99
|
+
var id = useUniqueId('rs-', idProp);
|
|
103
100
|
var _usePickerRef = usePickerRef(ref),
|
|
104
101
|
trigger = _usePickerRef.trigger,
|
|
105
102
|
root = _usePickerRef.root,
|
|
@@ -276,7 +273,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
276
273
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
277
274
|
event.stopPropagation();
|
|
278
275
|
});
|
|
279
|
-
var
|
|
276
|
+
var handlePickerPopupKeyDown = useEventCallback(function (event) {
|
|
280
277
|
var delta = 0;
|
|
281
278
|
var step = showMonth ? 6 : 7;
|
|
282
279
|
var changeDateFunc = showMonth ? addMonths : addDays;
|
|
@@ -420,7 +417,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
420
417
|
left: left,
|
|
421
418
|
top: top
|
|
422
419
|
});
|
|
423
|
-
return /*#__PURE__*/React.createElement(
|
|
420
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
424
421
|
role: "dialog",
|
|
425
422
|
"aria-labelledby": label ? id + "-label" : undefined,
|
|
426
423
|
tabIndex: -1,
|
|
@@ -428,7 +425,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
428
425
|
ref: mergeRefs(overlay, speakerRef),
|
|
429
426
|
style: styles,
|
|
430
427
|
target: trigger,
|
|
431
|
-
onKeyDown:
|
|
428
|
+
onKeyDown: handlePickerPopupKeyDown
|
|
432
429
|
}, /*#__PURE__*/React.createElement(Stack, {
|
|
433
430
|
alignItems: "flex-start"
|
|
434
431
|
}, sideRanges.length > 0 && /*#__PURE__*/React.createElement(PredefinedRanges, {
|
|
@@ -56,7 +56,8 @@ var Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(props, ref) {
|
|
|
56
56
|
calendarDate: calendarDate,
|
|
57
57
|
locale: locale,
|
|
58
58
|
disabledShortcut: disabledShortcut,
|
|
59
|
-
onShortcutClick: onShortcutClick
|
|
59
|
+
onShortcutClick: onShortcutClick,
|
|
60
|
+
"data-testid": "daterange-predefined-bottom"
|
|
60
61
|
}), /*#__PURE__*/React.createElement("div", {
|
|
61
62
|
className: prefix('right')
|
|
62
63
|
}, !hideOkBtn && /*#__PURE__*/React.createElement(SubmitButton, {
|
|
@@ -58,10 +58,10 @@ var DateRangeInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
58
58
|
isControlledDate: isControlled
|
|
59
59
|
};
|
|
60
60
|
var startDateState = useDateInputState(_extends({}, dateInputOptions, {
|
|
61
|
-
date: value === null || value === void 0 ? void 0 : value[0]
|
|
61
|
+
date: (value === null || value === void 0 ? void 0 : value[0]) || null
|
|
62
62
|
}));
|
|
63
63
|
var endDateState = useDateInputState(_extends({}, dateInputOptions, {
|
|
64
|
-
date: value === null || value === void 0 ? void 0 : value[1]
|
|
64
|
+
date: (value === null || value === void 0 ? void 0 : value[1]) || null
|
|
65
65
|
}));
|
|
66
66
|
var getActiveState = function getActiveState(type) {
|
|
67
67
|
if (type === void 0) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
+
import React from 'react';
|
|
4
5
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React, { useCallback } from 'react';
|
|
6
6
|
import { addMonths } from '../utils/dateUtils';
|
|
7
7
|
import CalendarCore from '../Calendar/CalendarContainer';
|
|
8
|
-
import { DATERANGE_DISABLED_TARGET } from '../utils';
|
|
8
|
+
import { DATERANGE_DISABLED_TARGET, useEventCallback } from '../utils';
|
|
9
9
|
var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
10
10
|
var _props$as = props.as,
|
|
11
11
|
Component = _props$as === void 0 ? CalendarCore : _props$as,
|
|
@@ -25,37 +25,39 @@ var Calendar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
25
25
|
_props$value = props.value,
|
|
26
26
|
value = _props$value === void 0 ? [] : _props$value,
|
|
27
27
|
rest = _objectWithoutPropertiesLoose(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "limitStartYear", "onChangeCalendarMonth", "onChangeCalendarTime", "onToggleMeridian", "onSelect", "value"]);
|
|
28
|
-
var onMoveForward =
|
|
28
|
+
var onMoveForward = useEventCallback(function (nextPageDate) {
|
|
29
29
|
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
30
|
-
}
|
|
31
|
-
var onMoveBackward =
|
|
30
|
+
});
|
|
31
|
+
var onMoveBackward = useEventCallback(function (nextPageDate) {
|
|
32
32
|
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
33
|
-
}
|
|
34
|
-
var handleSelect =
|
|
33
|
+
});
|
|
34
|
+
var handleSelect = useEventCallback(function (date, event) {
|
|
35
35
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(index, date, event);
|
|
36
|
-
}
|
|
37
|
-
var handleChangeMonth =
|
|
36
|
+
});
|
|
37
|
+
var handleChangeMonth = useEventCallback(function (nextPageDate) {
|
|
38
38
|
onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
|
|
39
|
-
}
|
|
40
|
-
var handleChangeTime =
|
|
39
|
+
});
|
|
40
|
+
var handleChangeTime = useEventCallback(function (nextPageDate) {
|
|
41
41
|
onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
|
|
42
|
-
}
|
|
43
|
-
var handleToggleMeridian =
|
|
42
|
+
});
|
|
43
|
+
var handleToggleMeridian = useEventCallback(function (event) {
|
|
44
44
|
onToggleMeridian(index, event);
|
|
45
|
-
}
|
|
46
|
-
var getCalendarDate =
|
|
45
|
+
});
|
|
46
|
+
var getCalendarDate = function getCalendarDate() {
|
|
47
47
|
return calendarDate[index];
|
|
48
|
-
}
|
|
49
|
-
var handleMoveForward =
|
|
48
|
+
};
|
|
49
|
+
var handleMoveForward = useEventCallback(function () {
|
|
50
50
|
onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward(addMonths(getCalendarDate(), 1));
|
|
51
|
-
}
|
|
52
|
-
var handleMoveBackward =
|
|
51
|
+
});
|
|
52
|
+
var handleMoveBackward = useEventCallback(function () {
|
|
53
53
|
onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward(addMonths(getCalendarDate(), -1));
|
|
54
|
-
}
|
|
55
|
-
var disabledMonth =
|
|
54
|
+
});
|
|
55
|
+
var disabledMonth = function disabledMonth(date) {
|
|
56
56
|
return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, value, DATERANGE_DISABLED_TARGET.CALENDAR);
|
|
57
|
-
}
|
|
58
|
-
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
57
|
+
};
|
|
58
|
+
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
59
|
+
"data-testid": "calendar-" + (index === 0 ? 'start' : 'end')
|
|
60
|
+
}, rest, {
|
|
59
61
|
format: format,
|
|
60
62
|
dateRange: value,
|
|
61
63
|
disabledDate: disabledMonth,
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
|
|
3
|
-
import {
|
|
3
|
+
import { DateRangePickerLocale } from '../locales';
|
|
4
|
+
import { PickerComponent } from '../Picker';
|
|
4
5
|
import { DisabledDateFunction, RangeType, DateRange } from './types';
|
|
5
|
-
export interface DateRangePickerProps extends PickerBaseProps
|
|
6
|
+
export interface DateRangePickerProps extends PickerBaseProps<DateRangePickerLocale>, FormControlBaseProps<DateRange | null> {
|
|
7
|
+
/** Custom caret component */
|
|
8
|
+
caretAs?: React.ElementType | null;
|
|
6
9
|
/** Predefined date ranges */
|
|
7
10
|
ranges?: RangeType[];
|
|
8
11
|
/** Format date */
|
|
@@ -13,12 +16,20 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
13
16
|
hoverRange?: 'week' | 'month' | ((date: Date) => DateRange);
|
|
14
17
|
/** Whether to click once on selected date range,Can be used with hoverRange */
|
|
15
18
|
oneTap?: boolean;
|
|
16
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
21
|
+
*
|
|
22
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
23
|
+
*/
|
|
17
24
|
isoWeek?: boolean;
|
|
25
|
+
/** A label displayed at the beginning of toggle button */
|
|
26
|
+
label?: React.ReactNode;
|
|
18
27
|
/** Set the upper limit of the available year relative to the current selection date */
|
|
19
28
|
limitEndYear?: number;
|
|
20
29
|
/** Set the lower limit of the available year relative to the current selection date */
|
|
21
30
|
limitStartYear?: number;
|
|
31
|
+
/** Whether to display a loading state indicator */
|
|
32
|
+
loading?: boolean;
|
|
22
33
|
/** Whether to show week numbers */
|
|
23
34
|
showWeekNumbers?: boolean;
|
|
24
35
|
/** Show only one calendar select */
|
|
@@ -47,7 +58,10 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
47
58
|
onShortcutClick?: (range: RangeType, event: React.MouseEvent) => void;
|
|
48
59
|
/** Called when clean */
|
|
49
60
|
onClean?: (event: React.MouseEvent) => void;
|
|
50
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Custom render value
|
|
63
|
+
* @deprecated
|
|
64
|
+
*/
|
|
51
65
|
renderValue?: (value: DateRange, format: string) => React.ReactNode;
|
|
52
66
|
/** Custom render for calendar title */
|
|
53
67
|
renderTitle?: (date: Date) => React.ReactNode;
|