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
package/esm/Cascader/Cascader.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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, {
|
|
4
|
+
import React, { useState, useCallback, useMemo } from 'react';
|
|
5
5
|
import { useSet } from 'react-use-set';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import omit from 'lodash/omit';
|
|
@@ -9,11 +9,11 @@ import pick from 'lodash/pick';
|
|
|
9
9
|
import isNil from 'lodash/isNil';
|
|
10
10
|
import isFunction from 'lodash/isFunction';
|
|
11
11
|
import shallowEqual from '../utils/shallowEqual';
|
|
12
|
-
import
|
|
12
|
+
import TreeView from './TreeView';
|
|
13
13
|
import { getParentMap, getPathTowardsItem, findNodeOfTree, flattenTree } from '../utils/treeUtils';
|
|
14
14
|
import { usePaths } from './utils';
|
|
15
|
-
import { getSafeRegExpString, createChainedFunction, mergeRefs, useControlled, useCustom, useClassNames, useIsMounted } from '../utils';
|
|
16
|
-
import { PickerToggle,
|
|
15
|
+
import { getSafeRegExpString, createChainedFunction, mergeRefs, useControlled, useCustom, useClassNames, useIsMounted, useEventCallback } from '../utils';
|
|
16
|
+
import { PickerToggle, PickerPopup, SearchBar, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
17
17
|
import { useMap } from '../utils/useMap';
|
|
18
18
|
var emptyArray = [];
|
|
19
19
|
|
|
@@ -76,10 +76,12 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
76
76
|
var _useState = useState(false),
|
|
77
77
|
active = _useState[0],
|
|
78
78
|
setActive = _useState[1];
|
|
79
|
-
var
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
var _usePickerRef = usePickerRef(ref),
|
|
80
|
+
trigger = _usePickerRef.trigger,
|
|
81
|
+
root = _usePickerRef.root,
|
|
82
|
+
target = _usePickerRef.target,
|
|
83
|
+
overlay = _usePickerRef.overlay,
|
|
84
|
+
searchInput = _usePickerRef.searchInput;
|
|
83
85
|
var _ref = useControlled(valueProp, defaultValue),
|
|
84
86
|
value = _ref[0],
|
|
85
87
|
setValue = _ref[1];
|
|
@@ -120,11 +122,6 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
120
122
|
columnsToDisplay = _usePaths.columnsToDisplay,
|
|
121
123
|
pathTowardsActiveItem = _usePaths.pathTowardsActiveItem,
|
|
122
124
|
pathTowardsSelectedItem = _usePaths.pathTowardsSelectedItem;
|
|
123
|
-
usePublicMethods(ref, {
|
|
124
|
-
triggerRef: triggerRef,
|
|
125
|
-
overlayRef: overlayRef,
|
|
126
|
-
targetRef: targetRef
|
|
127
|
-
});
|
|
128
125
|
var _useCustom = useCustom('Picker', overrideLocale),
|
|
129
126
|
locale = _useCustom.locale,
|
|
130
127
|
rtl = _useCustom.rtl;
|
|
@@ -139,7 +136,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
139
136
|
var _useState3 = useState(''),
|
|
140
137
|
searchKeyword = _useState3[0],
|
|
141
138
|
setSearchKeyword = _useState3[1];
|
|
142
|
-
var someKeyword =
|
|
139
|
+
var someKeyword = function someKeyword(item, keyword) {
|
|
143
140
|
if (item[labelKey].match(new RegExp(getSafeRegExpString(keyword || searchKeyword), 'i'))) {
|
|
144
141
|
return true;
|
|
145
142
|
}
|
|
@@ -148,8 +145,8 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
148
145
|
return true;
|
|
149
146
|
}
|
|
150
147
|
return false;
|
|
151
|
-
}
|
|
152
|
-
var getSearchResult =
|
|
148
|
+
};
|
|
149
|
+
var getSearchResult = function getSearchResult(keyword) {
|
|
153
150
|
var items = [];
|
|
154
151
|
var result = flattenedData.filter(function (item) {
|
|
155
152
|
if (!parentSelectable && item[childrenKey]) {
|
|
@@ -166,7 +163,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
166
163
|
}
|
|
167
164
|
}
|
|
168
165
|
return items;
|
|
169
|
-
}
|
|
166
|
+
};
|
|
170
167
|
|
|
171
168
|
// Used to hover the focuse item when trigger `onKeydown`
|
|
172
169
|
var _useFocusItemValue = useFocusItemValue(value, {
|
|
@@ -175,7 +172,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
175
172
|
valueKey: valueKey,
|
|
176
173
|
defaultLayer: pathTowardsSelectedItem !== null && pathTowardsSelectedItem !== void 0 && pathTowardsSelectedItem.length ? pathTowardsSelectedItem.length - 1 : 0,
|
|
177
174
|
target: function target() {
|
|
178
|
-
return
|
|
175
|
+
return overlay.current;
|
|
179
176
|
},
|
|
180
177
|
getParent: function getParent(item) {
|
|
181
178
|
return parentMap.get(item);
|
|
@@ -191,7 +188,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
191
188
|
setLayer = _useFocusItemValue.setLayer,
|
|
192
189
|
setKeys = _useFocusItemValue.setKeys,
|
|
193
190
|
onFocusItem = _useFocusItemValue.onKeyDown;
|
|
194
|
-
var handleSearch =
|
|
191
|
+
var handleSearch = useEventCallback(function (value, event) {
|
|
195
192
|
var items = getSearchResult(value);
|
|
196
193
|
setSearchKeyword(value);
|
|
197
194
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
|
|
@@ -204,37 +201,37 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
204
201
|
setLayer(0);
|
|
205
202
|
setKeys([]);
|
|
206
203
|
}
|
|
207
|
-
}
|
|
208
|
-
var handleEntered =
|
|
209
|
-
if (!
|
|
204
|
+
});
|
|
205
|
+
var handleEntered = useEventCallback(function () {
|
|
206
|
+
if (!target.current) {
|
|
210
207
|
return;
|
|
211
208
|
}
|
|
212
209
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
213
210
|
setActive(true);
|
|
214
|
-
}
|
|
215
|
-
var handleExited =
|
|
216
|
-
if (!
|
|
211
|
+
});
|
|
212
|
+
var handleExited = useEventCallback(function () {
|
|
213
|
+
if (!target.current) {
|
|
217
214
|
return;
|
|
218
215
|
}
|
|
219
216
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
220
217
|
setActive(false);
|
|
221
218
|
setSearchKeyword('');
|
|
222
|
-
}
|
|
223
|
-
var handleClose =
|
|
224
|
-
var
|
|
225
|
-
(
|
|
219
|
+
});
|
|
220
|
+
var handleClose = useEventCallback(function () {
|
|
221
|
+
var _trigger$current, _target$current, _target$current$focus;
|
|
222
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.close();
|
|
226
223
|
|
|
227
224
|
// The focus is on the trigger button after closing
|
|
228
|
-
(
|
|
229
|
-
}
|
|
230
|
-
var handleClean =
|
|
231
|
-
if (disabled || !
|
|
225
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 ? void 0 : _target$current$focus.call(_target$current);
|
|
226
|
+
});
|
|
227
|
+
var handleClean = useEventCallback(function (event) {
|
|
228
|
+
if (disabled || !target.current) {
|
|
232
229
|
return;
|
|
233
230
|
}
|
|
234
231
|
setValue(null);
|
|
235
232
|
onChange === null || onChange === void 0 ? void 0 : onChange(null, event);
|
|
236
|
-
}
|
|
237
|
-
var handleMenuPressEnter =
|
|
233
|
+
});
|
|
234
|
+
var handleMenuPressEnter = useEventCallback(function (event) {
|
|
238
235
|
var focusItem = findNodeOfTree(data, function (item) {
|
|
239
236
|
return item[valueKey] === focusItemValue;
|
|
240
237
|
});
|
|
@@ -250,20 +247,20 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
250
247
|
}
|
|
251
248
|
handleClose();
|
|
252
249
|
}
|
|
253
|
-
}
|
|
250
|
+
});
|
|
254
251
|
var onPickerKeyDown = useToggleKeyDownEvent(_extends({
|
|
255
252
|
toggle: !focusItemValue || !active,
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
253
|
+
trigger: trigger,
|
|
254
|
+
target: target,
|
|
255
|
+
overlay: overlay,
|
|
256
|
+
searchInput: searchInput,
|
|
260
257
|
active: active,
|
|
261
258
|
onExit: handleClean,
|
|
262
259
|
onMenuKeyDown: onFocusItem,
|
|
263
260
|
onMenuPressEnter: handleMenuPressEnter
|
|
264
261
|
}, rest));
|
|
265
|
-
var handleSelect = function
|
|
266
|
-
var _node$childrenKey,
|
|
262
|
+
var handleSelect = useEventCallback(function (node, cascadePaths, isLeafNode, event) {
|
|
263
|
+
var _node$childrenKey, _trigger$current2;
|
|
267
264
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
268
265
|
setActiveItem(node);
|
|
269
266
|
var nextValue = node[valueKey];
|
|
@@ -301,20 +298,20 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
301
298
|
}
|
|
302
299
|
|
|
303
300
|
// Update menu position
|
|
304
|
-
(
|
|
305
|
-
};
|
|
301
|
+
(_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.updatePosition();
|
|
302
|
+
});
|
|
306
303
|
|
|
307
304
|
/**
|
|
308
305
|
* The search structure option is processed after being selected.
|
|
309
306
|
*/
|
|
310
|
-
var handleSearchRowSelect = function
|
|
307
|
+
var handleSearchRowSelect = useEventCallback(function (node, nodes, event) {
|
|
311
308
|
var nextValue = node[valueKey];
|
|
312
309
|
handleClose();
|
|
313
310
|
setSearchKeyword('');
|
|
314
311
|
setValue(nextValue);
|
|
315
312
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);
|
|
316
313
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
317
|
-
};
|
|
314
|
+
});
|
|
318
315
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
319
316
|
var regx = new RegExp(getSafeRegExpString(searchKeyword), 'ig');
|
|
320
317
|
var nodes = getPathTowardsItem(item, function (item) {
|
|
@@ -352,12 +349,12 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
352
349
|
}, node[labelKey]);
|
|
353
350
|
});
|
|
354
351
|
return /*#__PURE__*/React.createElement("div", {
|
|
352
|
+
role: "treeitem",
|
|
355
353
|
key: key,
|
|
356
354
|
"aria-disabled": disabled,
|
|
357
355
|
"data-key": item[valueKey],
|
|
358
356
|
className: itemClasses,
|
|
359
357
|
tabIndex: -1,
|
|
360
|
-
role: "option",
|
|
361
358
|
onClick: function onClick(event) {
|
|
362
359
|
if (!disabled) {
|
|
363
360
|
handleSearchRowSelect(item, nodes, event);
|
|
@@ -373,12 +370,12 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
373
370
|
return /*#__PURE__*/React.createElement("div", {
|
|
374
371
|
className: prefix('cascader-search-panel'),
|
|
375
372
|
"data-layer": 0,
|
|
376
|
-
role: "
|
|
373
|
+
role: "tree"
|
|
377
374
|
}, items.length ? items.map(renderSearchRow) : /*#__PURE__*/React.createElement("div", {
|
|
378
375
|
className: prefix('none')
|
|
379
376
|
}, locale.noResultsText));
|
|
380
377
|
};
|
|
381
|
-
var
|
|
378
|
+
var renderTreeView = function renderTreeView(positionProps, speakerRef) {
|
|
382
379
|
var _ref2 = positionProps || {},
|
|
383
380
|
left = _ref2.left,
|
|
384
381
|
top = _ref2.top,
|
|
@@ -390,19 +387,18 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
390
387
|
var classes = merge(className, menuClassName, prefix('cascader-menu', {
|
|
391
388
|
inline: inline
|
|
392
389
|
}));
|
|
393
|
-
return /*#__PURE__*/React.createElement(
|
|
394
|
-
ref: mergeRefs(
|
|
390
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
391
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
395
392
|
className: classes,
|
|
396
393
|
style: styles,
|
|
397
|
-
target:
|
|
394
|
+
target: trigger,
|
|
398
395
|
onKeyDown: onPickerKeyDown
|
|
399
396
|
}, searchable && /*#__PURE__*/React.createElement(SearchBar, {
|
|
400
397
|
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
401
398
|
onChange: handleSearch,
|
|
402
399
|
value: searchKeyword,
|
|
403
|
-
inputRef:
|
|
404
|
-
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(
|
|
405
|
-
id: id ? id + "-listbox" : undefined,
|
|
400
|
+
inputRef: searchInput
|
|
401
|
+
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(TreeView, {
|
|
406
402
|
menuWidth: menuWidth,
|
|
407
403
|
menuHeight: menuHeight,
|
|
408
404
|
disabledItemValues: disabledItemValues,
|
|
@@ -455,21 +451,23 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
455
451
|
usedClassNamePropKeys = _usePickerClassName[1]; // TODO: bad api design
|
|
456
452
|
// consider an isolated Menu component
|
|
457
453
|
if (inline) {
|
|
458
|
-
return
|
|
454
|
+
return renderTreeView();
|
|
459
455
|
}
|
|
460
456
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
457
|
+
id: id,
|
|
458
|
+
popupType: "tree",
|
|
461
459
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
462
|
-
ref:
|
|
460
|
+
ref: trigger,
|
|
463
461
|
placement: placement,
|
|
464
462
|
onEntered: createChainedFunction(handleEntered, onEnter),
|
|
465
463
|
onExited: createChainedFunction(handleExited, onExited),
|
|
466
|
-
speaker:
|
|
464
|
+
speaker: renderTreeView
|
|
467
465
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
468
466
|
className: classes,
|
|
469
|
-
style: style
|
|
467
|
+
style: style,
|
|
468
|
+
ref: root
|
|
470
469
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
471
|
-
|
|
472
|
-
ref: targetRef,
|
|
470
|
+
ref: target,
|
|
473
471
|
as: toggleAs,
|
|
474
472
|
appearance: appearance,
|
|
475
473
|
disabled: disabled,
|
|
@@ -479,7 +477,8 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
479
477
|
hasValue: hasValue,
|
|
480
478
|
active: active,
|
|
481
479
|
placement: placement,
|
|
482
|
-
inputValue: value !== null && value !== void 0 ? value : ''
|
|
480
|
+
inputValue: value !== null && value !== void 0 ? value : '',
|
|
481
|
+
focusItemValue: focusItemValue
|
|
483
482
|
}), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
|
|
484
483
|
});
|
|
485
484
|
Cascader.displayName = 'Cascader';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
4
3
|
import { ValueType } from './Cascader';
|
|
5
4
|
declare type SetLike<T = unknown> = {
|
|
6
5
|
has(value: T): boolean;
|
|
7
6
|
};
|
|
8
|
-
export interface
|
|
7
|
+
export interface TreeViewProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
9
8
|
classPrefix: string;
|
|
10
9
|
disabledItemValues: ValueType[];
|
|
11
10
|
activeItemValue?: ValueType | null;
|
|
@@ -21,21 +20,5 @@ export interface DropdownMenuProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
|
21
20
|
renderMenu?: (items: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
|
|
22
21
|
onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
|
|
23
22
|
}
|
|
24
|
-
declare const
|
|
25
|
-
export
|
|
26
|
-
classPrefix: PropTypes.Requireable<string>;
|
|
27
|
-
disabledItemValues: PropTypes.Requireable<any[]>;
|
|
28
|
-
activeItemValue: PropTypes.Requireable<any>;
|
|
29
|
-
childrenKey: PropTypes.Requireable<string>;
|
|
30
|
-
valueKey: PropTypes.Requireable<string>;
|
|
31
|
-
labelKey: PropTypes.Requireable<string>;
|
|
32
|
-
menuWidth: PropTypes.Requireable<number>;
|
|
33
|
-
menuHeight: PropTypes.Requireable<string | number>;
|
|
34
|
-
className: PropTypes.Requireable<string>;
|
|
35
|
-
renderMenuItem: PropTypes.Requireable<(...args: any[]) => any>;
|
|
36
|
-
renderMenu: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
|
-
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
38
|
-
cascadeData: PropTypes.Requireable<any[]>;
|
|
39
|
-
cascadePaths: PropTypes.Requireable<any[]>;
|
|
40
|
-
};
|
|
41
|
-
export default DropdownMenu;
|
|
23
|
+
declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
|
|
24
|
+
export default TreeView;
|
|
@@ -1,19 +1,18 @@
|
|
|
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, {
|
|
5
|
-
import PropTypes from 'prop-types';
|
|
4
|
+
import React, { useEffect, useRef } from 'react';
|
|
6
5
|
import SpinnerIcon from '@rsuite/icons/legacy/Spinner';
|
|
7
6
|
import isUndefined from 'lodash/isUndefined';
|
|
8
7
|
import isNil from 'lodash/isNil';
|
|
9
|
-
import { shallowEqual, useClassNames, mergeRefs, useCustom } from '../utils';
|
|
10
|
-
import {
|
|
8
|
+
import { shallowEqual, useClassNames, mergeRefs, useCustom, useEventCallback } from '../utils';
|
|
9
|
+
import { ListItem, useCombobox } from '../Picker';
|
|
11
10
|
import AngleLeftIcon from '@rsuite/icons/legacy/AngleLeft';
|
|
12
11
|
import AngleRightIcon from '@rsuite/icons/legacy/AngleRight';
|
|
13
12
|
import getPosition from 'dom-lib/getPosition';
|
|
14
13
|
import scrollTop from 'dom-lib/scrollTop';
|
|
15
14
|
var emptyArray = [];
|
|
16
|
-
var
|
|
15
|
+
var TreeView = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
17
16
|
var _props$as = props.as,
|
|
18
17
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
19
18
|
activeItemValue = props.activeItemValue,
|
|
@@ -36,17 +35,22 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
36
35
|
loadingItemsSet = props.loadingItemsSet,
|
|
37
36
|
_props$labelKey = props.labelKey,
|
|
38
37
|
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
38
|
+
style = props.style,
|
|
39
39
|
renderMenu = props.renderMenu,
|
|
40
40
|
renderMenuItem = props.renderMenuItem,
|
|
41
41
|
onSelect = props.onSelect,
|
|
42
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "renderMenu", "renderMenuItem", "onSelect"]);
|
|
42
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
|
|
43
43
|
var _useClassNames = useClassNames(classPrefix),
|
|
44
44
|
merge = _useClassNames.merge,
|
|
45
45
|
prefix = _useClassNames.prefix;
|
|
46
46
|
var classes = merge(className, prefix('items'));
|
|
47
47
|
var rootRef = useRef();
|
|
48
|
-
var _useCustom = useCustom(
|
|
48
|
+
var _useCustom = useCustom(),
|
|
49
49
|
rtl = _useCustom.rtl;
|
|
50
|
+
var _useCombobox = useCombobox(),
|
|
51
|
+
id = _useCombobox.id,
|
|
52
|
+
labelId = _useCombobox.labelId,
|
|
53
|
+
popupType = _useCombobox.popupType;
|
|
50
54
|
useEffect(function () {
|
|
51
55
|
var _rootRef$current;
|
|
52
56
|
var columns = ((_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelectorAll('[data-type="column"]')) || [];
|
|
@@ -65,7 +69,7 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
65
69
|
}
|
|
66
70
|
});
|
|
67
71
|
}, [prefix]);
|
|
68
|
-
var getCascadePaths =
|
|
72
|
+
var getCascadePaths = function getCascadePaths(layer, node) {
|
|
69
73
|
var paths = [];
|
|
70
74
|
for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
|
|
71
75
|
if (i < layer - 1 && cascadePaths) {
|
|
@@ -74,14 +78,19 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
74
78
|
}
|
|
75
79
|
paths.push(node);
|
|
76
80
|
return paths;
|
|
77
|
-
}
|
|
78
|
-
var handleSelect = function
|
|
81
|
+
};
|
|
82
|
+
var handleSelect = useEventCallback(function (layer, node, event) {
|
|
79
83
|
var isLeafNode = isNil(node[childrenKey]);
|
|
80
84
|
var cascadePaths = getCascadePaths(layer + 1, node);
|
|
81
85
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
|
|
82
|
-
};
|
|
83
|
-
var renderCascadeNode = function renderCascadeNode(
|
|
86
|
+
});
|
|
87
|
+
var renderCascadeNode = function renderCascadeNode(nodeProps) {
|
|
84
88
|
var _loadingItemsSet$has;
|
|
89
|
+
var node = nodeProps.node,
|
|
90
|
+
index = nodeProps.index,
|
|
91
|
+
layer = nodeProps.layer,
|
|
92
|
+
focus = nodeProps.focus,
|
|
93
|
+
size = nodeProps.size;
|
|
85
94
|
var children = node[childrenKey];
|
|
86
95
|
var value = node[valueKey];
|
|
87
96
|
var label = node[labelKey];
|
|
@@ -93,16 +102,19 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
93
102
|
// Use `value` in keys when If `value` is string or number
|
|
94
103
|
var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
|
|
95
104
|
var Icon = loading ? SpinnerIcon : rtl ? AngleLeftIcon : AngleRightIcon;
|
|
96
|
-
return /*#__PURE__*/React.createElement(
|
|
97
|
-
classPrefix: "picker-cascader-menu-item",
|
|
105
|
+
return /*#__PURE__*/React.createElement(ListItem, {
|
|
98
106
|
as: 'li',
|
|
99
107
|
role: "treeitem",
|
|
108
|
+
"aria-level": layer + 1,
|
|
109
|
+
"aria-setsize": size,
|
|
110
|
+
"aria-posinset": index + 1,
|
|
111
|
+
"aria-label": typeof label === 'string' ? label : undefined,
|
|
112
|
+
classPrefix: "picker-cascader-menu-item",
|
|
100
113
|
key: layer + "-" + onlyKey,
|
|
101
114
|
disabled: disabled,
|
|
102
115
|
active: !isUndefined(activeItemValue) && shallowEqual(activeItemValue, value),
|
|
103
116
|
focus: focus,
|
|
104
117
|
value: value,
|
|
105
|
-
"aria-owns": node.children ? 'treeitem-' + value + '-children' : undefined,
|
|
106
118
|
className: children ? prefix('has-children') : undefined,
|
|
107
119
|
onSelect: function onSelect(_value, event) {
|
|
108
120
|
return handleSelect(layer, node, event);
|
|
@@ -112,54 +124,43 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
112
124
|
spin: loading
|
|
113
125
|
}) : null);
|
|
114
126
|
};
|
|
115
|
-
var styles = {
|
|
116
|
-
width: cascadeData.length * menuWidth
|
|
117
|
-
};
|
|
118
127
|
var cascadeNodes = cascadeData.map(function (children, layer) {
|
|
119
128
|
var onlyKey = layer + "_" + children.length;
|
|
120
129
|
var parentNode = cascadePaths[layer - 1];
|
|
121
|
-
var menu = /*#__PURE__*/React.createElement(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
130
|
+
var menu = /*#__PURE__*/React.createElement(React.Fragment, null, children.map(function (item, index) {
|
|
131
|
+
var focus = cascadePaths[layer] && shallowEqual(cascadePaths[layer][valueKey], item[valueKey]);
|
|
132
|
+
return renderCascadeNode({
|
|
133
|
+
node: item,
|
|
134
|
+
index: index,
|
|
135
|
+
layer: layer,
|
|
136
|
+
focus: focus,
|
|
137
|
+
size: children.length
|
|
138
|
+
});
|
|
126
139
|
}));
|
|
127
|
-
return /*#__PURE__*/React.createElement("
|
|
128
|
-
|
|
129
|
-
className: prefix('column'),
|
|
140
|
+
return /*#__PURE__*/React.createElement("ul", {
|
|
141
|
+
role: "group",
|
|
130
142
|
"data-layer": layer,
|
|
131
143
|
"data-type": 'column',
|
|
144
|
+
key: onlyKey,
|
|
145
|
+
className: prefix('column'),
|
|
132
146
|
style: {
|
|
133
147
|
height: menuHeight,
|
|
134
148
|
width: menuWidth
|
|
135
149
|
}
|
|
136
150
|
}, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
|
|
137
151
|
});
|
|
152
|
+
var styles = _extends({}, style, {
|
|
153
|
+
width: cascadeData.length * menuWidth
|
|
154
|
+
});
|
|
138
155
|
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
139
|
-
role: "tree"
|
|
156
|
+
role: "tree",
|
|
157
|
+
id: id + "-" + popupType,
|
|
158
|
+
"aria-labelledby": labelId
|
|
140
159
|
}, rest, {
|
|
141
160
|
ref: mergeRefs(rootRef, ref),
|
|
142
|
-
className: classes
|
|
143
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
161
|
+
className: classes,
|
|
144
162
|
style: styles
|
|
145
|
-
}, cascadeNodes)
|
|
163
|
+
}), cascadeNodes);
|
|
146
164
|
});
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
disabledItemValues: PropTypes.array,
|
|
150
|
-
activeItemValue: PropTypes.any,
|
|
151
|
-
childrenKey: PropTypes.string,
|
|
152
|
-
valueKey: PropTypes.string,
|
|
153
|
-
labelKey: PropTypes.string,
|
|
154
|
-
menuWidth: PropTypes.number,
|
|
155
|
-
menuHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
156
|
-
className: PropTypes.string,
|
|
157
|
-
renderMenuItem: PropTypes.func,
|
|
158
|
-
renderMenu: PropTypes.func,
|
|
159
|
-
onSelect: PropTypes.func,
|
|
160
|
-
cascadeData: PropTypes.array,
|
|
161
|
-
cascadePaths: PropTypes.array
|
|
162
|
-
};
|
|
163
|
-
DropdownMenu.displayName = 'DropdownMenu';
|
|
164
|
-
DropdownMenu.propTypes = dropdownMenuPropTypes;
|
|
165
|
-
export default DropdownMenu;
|
|
165
|
+
TreeView.displayName = 'TreeView';
|
|
166
|
+
export default TreeView;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
+
import { ValueType } from './Cascader';
|
|
4
|
+
declare type SetLike<T = unknown> = {
|
|
5
|
+
has(value: T): boolean;
|
|
6
|
+
};
|
|
7
|
+
export interface TreeViewProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
8
|
+
classPrefix: string;
|
|
9
|
+
disabledItemValues: ValueType[];
|
|
10
|
+
activeItemValue?: ValueType | null;
|
|
11
|
+
childrenKey: string;
|
|
12
|
+
cascadeData: (readonly ItemDataType[])[];
|
|
13
|
+
loadingItemsSet?: SetLike<ItemDataType>;
|
|
14
|
+
cascadePaths: ItemDataType[];
|
|
15
|
+
valueKey: string;
|
|
16
|
+
labelKey: string;
|
|
17
|
+
menuWidth?: number;
|
|
18
|
+
menuHeight?: number | string;
|
|
19
|
+
renderMenuItem?: (itemLabel: React.ReactNode, item: ItemDataType) => React.ReactNode;
|
|
20
|
+
renderMenu?: (items: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
|
|
21
|
+
onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
|
|
22
|
+
}
|
|
23
|
+
declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
|
|
24
|
+
export default TreeView;
|