rsuite 5.50.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 +11 -0
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- 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 +2 -2
- package/Picker/styles/mixin.less +3 -3
- package/TagInput/styles/index.less +1 -1
- 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 +14 -11
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +12 -11
- 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.js +9 -8
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +20 -20
- package/cjs/DatePicker/DatePicker.js +5 -6
- package/cjs/DateRangePicker/DateRangePicker.js +3 -4
- 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.js +40 -18
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +46 -29
- 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 +13 -10
- 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/{esm/Picker/DropdownMenuItem.d.ts → cjs/Picker/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/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +1 -1
- package/cjs/Picker/PickerToggle.js +16 -9
- 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} +2 -2
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- 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 +7 -6
- package/cjs/Picker/index.js +26 -19
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -96
- package/cjs/Picker/utils.js +1 -406
- package/cjs/SelectPicker/SelectPicker.js +8 -8
- 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 +19 -20
- package/dist/rsuite-no-reset-rtl.css +109 -117
- 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 +109 -117
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +109 -117
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +109 -117
- package/dist/rsuite.js +184 -74
- 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 +15 -12
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +13 -12
- 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.js +10 -9
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +21 -21
- package/esm/DatePicker/DatePicker.js +5 -6
- package/esm/DateRangePicker/DateRangePicker.js +3 -4
- 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.js +39 -17
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +47 -30
- 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 +14 -11
- 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/{cjs/Picker/DropdownMenuItem.d.ts → esm/Picker/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/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +1 -1
- package/esm/Picker/PickerToggle.js +16 -9
- 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} +2 -2
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- 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 +7 -6
- package/esm/Picker/index.js +7 -6
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -96
- package/esm/Picker/utils.js +2 -401
- package/esm/SelectPicker/SelectPicker.js +9 -9
- 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 +20 -21
- package/package.json +1 -1
- 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/Picker/utils.js
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
5
|
exports.__esModule = true;
|
|
7
6
|
exports.createConcatChildrenFunction = createConcatChildrenFunction;
|
|
8
7
|
exports.shouldDisplay = shouldDisplay;
|
|
9
|
-
exports.usePickerClassName = usePickerClassName;
|
|
10
8
|
exports.onMenuKeyDown = onMenuKeyDown;
|
|
11
|
-
|
|
12
|
-
exports.useToggleKeyDownEvent = exports.useFocusItemValue = void 0;
|
|
13
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
14
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
-
var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
10
|
var _trim = _interopRequireDefault(require("lodash/trim"));
|
|
17
|
-
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
18
|
-
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
19
|
-
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
20
|
-
var _find = _interopRequireDefault(require("lodash/find"));
|
|
21
11
|
var _treeUtils = require("../utils/treeUtils");
|
|
22
12
|
var _utils = require("../utils");
|
|
23
|
-
var _domLib = require("dom-lib");
|
|
24
13
|
var defaultNodeKeys = {
|
|
25
14
|
valueKey: 'value',
|
|
26
15
|
childrenKey: 'children'
|
|
@@ -55,33 +44,6 @@ function shouldDisplay(label, searchKeyword) {
|
|
|
55
44
|
}
|
|
56
45
|
return false;
|
|
57
46
|
}
|
|
58
|
-
/**
|
|
59
|
-
* The className of the assembled Toggle is on the Picker.
|
|
60
|
-
*/
|
|
61
|
-
function usePickerClassName(props) {
|
|
62
|
-
var _withClassPrefix;
|
|
63
|
-
var name = props.name,
|
|
64
|
-
classPrefix = props.classPrefix,
|
|
65
|
-
className = props.className,
|
|
66
|
-
placement = props.placement,
|
|
67
|
-
appearance = props.appearance,
|
|
68
|
-
cleanable = props.cleanable,
|
|
69
|
-
block = props.block,
|
|
70
|
-
disabled = props.disabled,
|
|
71
|
-
countable = props.countable,
|
|
72
|
-
readOnly = props.readOnly,
|
|
73
|
-
plaintext = props.plaintext,
|
|
74
|
-
hasValue = props.hasValue,
|
|
75
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["name", "classPrefix", "className", "placement", "appearance", "cleanable", "block", "disabled", "countable", "readOnly", "plaintext", "hasValue"]);
|
|
76
|
-
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
77
|
-
withClassPrefix = _useClassNames.withClassPrefix,
|
|
78
|
-
merge = _useClassNames.merge;
|
|
79
|
-
var classes = merge(className, withClassPrefix(name, appearance, 'toggle-wrapper', (_withClassPrefix = {}, _withClassPrefix["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = placement, _withClassPrefix['read-only'] = readOnly, _withClassPrefix['has-value'] = hasValue, _withClassPrefix.cleanable = cleanable, _withClassPrefix.block = block, _withClassPrefix.disabled = disabled, _withClassPrefix.countable = countable, _withClassPrefix.plaintext = plaintext, _withClassPrefix)));
|
|
80
|
-
|
|
81
|
-
// Those props that're used for composing the className
|
|
82
|
-
var usedClassNamePropKeys = Object.keys((0, _omit.default)(props, [].concat(Object.keys(rest || {}), ['disabled', 'readOnly', 'plaintext', 'name'])));
|
|
83
|
-
return [classes, usedClassNamePropKeys];
|
|
84
|
-
}
|
|
85
47
|
/**
|
|
86
48
|
* Handling keyboard events...
|
|
87
49
|
* @param event Keyboard event object
|
|
@@ -130,371 +92,4 @@ function onMenuKeyDown(event, events) {
|
|
|
130
92
|
break;
|
|
131
93
|
default:
|
|
132
94
|
}
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Checks if the element has a vertical scrollbar.
|
|
136
|
-
*/
|
|
137
|
-
function hasVerticalScroll(element) {
|
|
138
|
-
var scrollHeight = element.scrollHeight,
|
|
139
|
-
clientHeight = element.clientHeight;
|
|
140
|
-
return scrollHeight > clientHeight;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Checks if the element is within the visible area of the container
|
|
145
|
-
*/
|
|
146
|
-
function isVisible(element, container, direction) {
|
|
147
|
-
if (!hasVerticalScroll(container)) {
|
|
148
|
-
return true;
|
|
149
|
-
}
|
|
150
|
-
var _element$getBoundingC = element.getBoundingClientRect(),
|
|
151
|
-
top = _element$getBoundingC.top,
|
|
152
|
-
bottom = _element$getBoundingC.bottom,
|
|
153
|
-
height = _element$getBoundingC.height;
|
|
154
|
-
var _container$getBoundin = container.getBoundingClientRect(),
|
|
155
|
-
containerTop = _container$getBoundin.top,
|
|
156
|
-
containerBottom = _container$getBoundin.bottom;
|
|
157
|
-
if (direction === 'top') {
|
|
158
|
-
return top + height > containerTop;
|
|
159
|
-
}
|
|
160
|
-
return bottom - height < containerBottom;
|
|
161
|
-
}
|
|
162
|
-
function scrollTo(container, direction, step) {
|
|
163
|
-
var scrollTop = container.scrollTop;
|
|
164
|
-
container.scrollTop = direction === 'top' ? scrollTop - step : scrollTop + step;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* A hook that manages the focus state of the option.
|
|
169
|
-
* @param defaultFocusItemValue
|
|
170
|
-
* @param props
|
|
171
|
-
*/
|
|
172
|
-
var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue, props) {
|
|
173
|
-
var _props$valueKey = props.valueKey,
|
|
174
|
-
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
175
|
-
_props$focusableQuery = props.focusableQueryKey,
|
|
176
|
-
focusableQueryKey = _props$focusableQuery === void 0 ? '[data-key][aria-disabled="false"]' : _props$focusableQuery,
|
|
177
|
-
_props$defaultLayer = props.defaultLayer,
|
|
178
|
-
defaultLayer = _props$defaultLayer === void 0 ? 0 : _props$defaultLayer,
|
|
179
|
-
data = props.data,
|
|
180
|
-
target = props.target,
|
|
181
|
-
rtl = props.rtl,
|
|
182
|
-
callback = props.callback,
|
|
183
|
-
_props$getParent = props.getParent,
|
|
184
|
-
getParent = _props$getParent === void 0 ? function (item) {
|
|
185
|
-
return item === null || item === void 0 ? void 0 : item.parent;
|
|
186
|
-
} : _props$getParent;
|
|
187
|
-
var _useState = (0, _react.useState)(defaultFocusItemValue),
|
|
188
|
-
focusItemValue = _useState[0],
|
|
189
|
-
setFocusItemValue = _useState[1];
|
|
190
|
-
var _useState2 = (0, _react.useState)(defaultLayer),
|
|
191
|
-
layer = _useState2[0],
|
|
192
|
-
setLayer = _useState2[1];
|
|
193
|
-
var _useState3 = (0, _react.useState)([]),
|
|
194
|
-
keys = _useState3[0],
|
|
195
|
-
setKeys = _useState3[1];
|
|
196
|
-
var focusCallback = (0, _react.useCallback)(function (value, event) {
|
|
197
|
-
var menu = (0, _isFunction.default)(target) ? target() : target;
|
|
198
|
-
var focusElement = menu === null || menu === void 0 ? void 0 : menu.querySelector("[data-key=\"" + value + "\"]");
|
|
199
|
-
focusElement === null || focusElement === void 0 ? void 0 : focusElement.focus();
|
|
200
|
-
callback === null || callback === void 0 ? void 0 : callback(value, event);
|
|
201
|
-
}, [callback, target]);
|
|
202
|
-
var getScrollContainer = (0, _react.useCallback)(function () {
|
|
203
|
-
var menu = (0, _isFunction.default)(target) ? target() : target;
|
|
204
|
-
|
|
205
|
-
// For Cascader and MutiCascader
|
|
206
|
-
var subMenu = menu === null || menu === void 0 ? void 0 : menu.querySelector("[data-layer=\"" + layer + "\"]");
|
|
207
|
-
if (subMenu) {
|
|
208
|
-
return subMenu;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// For SelectPicker、CheckPicker、Autocomplete、InputPicker、TagPicker
|
|
212
|
-
return menu === null || menu === void 0 ? void 0 : menu.querySelector('[role="listbox"]');
|
|
213
|
-
}, [layer, target]);
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Get the elements visible in all options.
|
|
217
|
-
*/
|
|
218
|
-
var getFocusableMenuItems = (0, _react.useCallback)(function () {
|
|
219
|
-
if (!target) {
|
|
220
|
-
return [];
|
|
221
|
-
}
|
|
222
|
-
var currentKeys = keys;
|
|
223
|
-
if (layer < 1) {
|
|
224
|
-
var popup = (0, _isFunction.default)(target) ? target() : target;
|
|
225
|
-
var rootMenu = popup === null || popup === void 0 ? void 0 : popup.querySelector('[data-layer="0"]');
|
|
226
|
-
if (rootMenu) {
|
|
227
|
-
var _rootMenu$querySelect;
|
|
228
|
-
currentKeys = Array.from((_rootMenu$querySelect = rootMenu.querySelectorAll(focusableQueryKey)) !== null && _rootMenu$querySelect !== void 0 ? _rootMenu$querySelect : []).map(function (item) {
|
|
229
|
-
var _item$dataset;
|
|
230
|
-
return (_item$dataset = item.dataset) === null || _item$dataset === void 0 ? void 0 : _item$dataset.key;
|
|
231
|
-
});
|
|
232
|
-
} else {
|
|
233
|
-
var _popup$querySelectorA;
|
|
234
|
-
currentKeys = Array.from((_popup$querySelectorA = popup === null || popup === void 0 ? void 0 : popup.querySelectorAll(focusableQueryKey)) !== null && _popup$querySelectorA !== void 0 ? _popup$querySelectorA : []).map(function (item) {
|
|
235
|
-
var _item$dataset2;
|
|
236
|
-
return (_item$dataset2 = item.dataset) === null || _item$dataset2 === void 0 ? void 0 : _item$dataset2.key;
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
// 1. It is necessary to traverse the `keys` instead of `data` here to preserve the order of the array.
|
|
242
|
-
// 2. The values in `keys` are all string, so the corresponding value of `data` should also be converted to string
|
|
243
|
-
return currentKeys.map(function (key) {
|
|
244
|
-
return (0, _find.default)(data, function (i) {
|
|
245
|
-
return "" + i[valueKey] === key;
|
|
246
|
-
});
|
|
247
|
-
});
|
|
248
|
-
}, [data, focusableQueryKey, keys, target, valueKey, layer]);
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* Get the index of the focus item.
|
|
252
|
-
*/
|
|
253
|
-
var findFocusItemIndex = (0, _react.useCallback)(function (callback) {
|
|
254
|
-
var items = getFocusableMenuItems();
|
|
255
|
-
for (var i = 0; i < items.length; i += 1) {
|
|
256
|
-
var _items$i;
|
|
257
|
-
if ((0, _utils.shallowEqual)(focusItemValue, (_items$i = items[i]) === null || _items$i === void 0 ? void 0 : _items$i[valueKey])) {
|
|
258
|
-
callback(items, i);
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
callback(items, -1);
|
|
263
|
-
}, [focusItemValue, getFocusableMenuItems, valueKey]);
|
|
264
|
-
var scrollListItem = (0, _react.useCallback)(function (direction, itemValue, willOverflow) {
|
|
265
|
-
var container = getScrollContainer();
|
|
266
|
-
var item = container === null || container === void 0 ? void 0 : container.querySelector("[data-key=\"" + itemValue + "\"]");
|
|
267
|
-
if (willOverflow && container) {
|
|
268
|
-
var scrollHeight = container.scrollHeight,
|
|
269
|
-
clientHeight = container.clientHeight;
|
|
270
|
-
container.scrollTop = direction === 'top' ? scrollHeight - clientHeight : 0;
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
if (item && container) {
|
|
274
|
-
if (!isVisible(item, container, direction)) {
|
|
275
|
-
var height = (0, _domLib.getHeight)(item);
|
|
276
|
-
scrollTo(container, direction, height);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}, [getScrollContainer]);
|
|
280
|
-
var focusNextMenuItem = (0, _react.useCallback)(function (event) {
|
|
281
|
-
findFocusItemIndex(function (items, index) {
|
|
282
|
-
var willOverflow = index + 2 > items.length;
|
|
283
|
-
var nextIndex = willOverflow ? 0 : index + 1;
|
|
284
|
-
var focusItem = items[nextIndex];
|
|
285
|
-
if (!(0, _isUndefined.default)(focusItem)) {
|
|
286
|
-
setFocusItemValue(focusItem[valueKey]);
|
|
287
|
-
focusCallback(focusItem[valueKey], event);
|
|
288
|
-
scrollListItem('bottom', focusItem[valueKey], willOverflow);
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
}, [focusCallback, findFocusItemIndex, scrollListItem, valueKey]);
|
|
292
|
-
var focusPrevMenuItem = (0, _react.useCallback)(function (event) {
|
|
293
|
-
findFocusItemIndex(function (items, index) {
|
|
294
|
-
var willOverflow = index === 0;
|
|
295
|
-
var nextIndex = willOverflow ? items.length - 1 : index - 1;
|
|
296
|
-
var focusItem = items[nextIndex];
|
|
297
|
-
if (!(0, _isUndefined.default)(focusItem)) {
|
|
298
|
-
setFocusItemValue(focusItem[valueKey]);
|
|
299
|
-
focusCallback(focusItem[valueKey], event);
|
|
300
|
-
scrollListItem('top', focusItem[valueKey], willOverflow);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
}, [focusCallback, findFocusItemIndex, scrollListItem, valueKey]);
|
|
304
|
-
var getSubMenuKeys = (0, _react.useCallback)(function (nextLayer) {
|
|
305
|
-
var menu = (0, _isFunction.default)(target) ? target() : target;
|
|
306
|
-
var subMenu = menu === null || menu === void 0 ? void 0 : menu.querySelector("[data-layer=\"" + nextLayer + "\"]");
|
|
307
|
-
if (subMenu) {
|
|
308
|
-
var _Array$from;
|
|
309
|
-
return (_Array$from = Array.from(subMenu.querySelectorAll(focusableQueryKey))) === null || _Array$from === void 0 ? void 0 : _Array$from.map(function (item) {
|
|
310
|
-
var _item$dataset3;
|
|
311
|
-
return (_item$dataset3 = item.dataset) === null || _item$dataset3 === void 0 ? void 0 : _item$dataset3.key;
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
return null;
|
|
315
|
-
}, [focusableQueryKey, target]);
|
|
316
|
-
var focusNextLevelMenu = (0, _react.useCallback)(function (event) {
|
|
317
|
-
var nextLayer = layer + 1;
|
|
318
|
-
var nextKeys = getSubMenuKeys(nextLayer);
|
|
319
|
-
if (nextKeys) {
|
|
320
|
-
setKeys(nextKeys);
|
|
321
|
-
setLayer(nextLayer);
|
|
322
|
-
setFocusItemValue(nextKeys[0]);
|
|
323
|
-
focusCallback(nextKeys[0], event);
|
|
324
|
-
}
|
|
325
|
-
}, [focusCallback, getSubMenuKeys, layer]);
|
|
326
|
-
var focusPrevLevelMenu = (0, _react.useCallback)(function (event) {
|
|
327
|
-
var nextLayer = layer - 1;
|
|
328
|
-
var nextKeys = getSubMenuKeys(nextLayer);
|
|
329
|
-
if (nextKeys) {
|
|
330
|
-
var _getParent;
|
|
331
|
-
setKeys(nextKeys);
|
|
332
|
-
setLayer(nextLayer);
|
|
333
|
-
var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
|
|
334
|
-
return item[valueKey] === focusItemValue;
|
|
335
|
-
});
|
|
336
|
-
var parentItemValue = (_getParent = getParent(focusItem)) === null || _getParent === void 0 ? void 0 : _getParent[valueKey];
|
|
337
|
-
if (parentItemValue) {
|
|
338
|
-
setFocusItemValue(parentItemValue);
|
|
339
|
-
focusCallback(parentItemValue, event);
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
}, [focusCallback, data, focusItemValue, getParent, getSubMenuKeys, layer, valueKey]);
|
|
343
|
-
var handleKeyDown = (0, _react.useCallback)(function (event) {
|
|
344
|
-
var _onMenuKeyDown;
|
|
345
|
-
onMenuKeyDown(event, (_onMenuKeyDown = {
|
|
346
|
-
down: focusNextMenuItem,
|
|
347
|
-
up: focusPrevMenuItem
|
|
348
|
-
}, _onMenuKeyDown[rtl ? 'left' : 'right'] = focusNextLevelMenu, _onMenuKeyDown[rtl ? 'right' : 'left'] = focusPrevLevelMenu, _onMenuKeyDown));
|
|
349
|
-
}, [focusNextLevelMenu, focusNextMenuItem, focusPrevLevelMenu, focusPrevMenuItem, rtl]);
|
|
350
|
-
return {
|
|
351
|
-
focusItemValue: focusItemValue,
|
|
352
|
-
setFocusItemValue: setFocusItemValue,
|
|
353
|
-
layer: layer,
|
|
354
|
-
setLayer: setLayer,
|
|
355
|
-
keys: keys,
|
|
356
|
-
setKeys: setKeys,
|
|
357
|
-
onKeyDown: handleKeyDown
|
|
358
|
-
};
|
|
359
|
-
};
|
|
360
|
-
exports.useFocusItemValue = useFocusItemValue;
|
|
361
|
-
/**
|
|
362
|
-
* A hook to control the toggle keyboard operation
|
|
363
|
-
* @param props
|
|
364
|
-
*/
|
|
365
|
-
var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
366
|
-
var _props$toggle = props.toggle,
|
|
367
|
-
toggle = _props$toggle === void 0 ? true : _props$toggle,
|
|
368
|
-
trigger = props.trigger,
|
|
369
|
-
target = props.target,
|
|
370
|
-
overlay = props.overlay,
|
|
371
|
-
searchInput = props.searchInput,
|
|
372
|
-
active = props.active,
|
|
373
|
-
readOnly = props.readOnly,
|
|
374
|
-
disabled = props.disabled,
|
|
375
|
-
loading = props.loading,
|
|
376
|
-
onExit = props.onExit,
|
|
377
|
-
onOpen = props.onOpen,
|
|
378
|
-
onClose = props.onClose,
|
|
379
|
-
onKeyDown = props.onKeyDown,
|
|
380
|
-
onMenuKeyDown = props.onMenuKeyDown,
|
|
381
|
-
onMenuPressEnter = props.onMenuPressEnter,
|
|
382
|
-
onMenuPressBackspace = props.onMenuPressBackspace;
|
|
383
|
-
var handleClose = (0, _utils.useEventCallback)(function () {
|
|
384
|
-
var _trigger$current, _trigger$current$clos, _trigger$current2, _trigger$current2$foc;
|
|
385
|
-
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 ? void 0 : _trigger$current$clos.call(_trigger$current);
|
|
386
|
-
|
|
387
|
-
// The focus is on the trigger button after closing
|
|
388
|
-
(_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$foc = _trigger$current2.focus) === null || _trigger$current2$foc === void 0 ? void 0 : _trigger$current2$foc.call(_trigger$current2);
|
|
389
|
-
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
390
|
-
});
|
|
391
|
-
var handleOpen = (0, _utils.useEventCallback)(function () {
|
|
392
|
-
var _trigger$current3, _trigger$current3$ope;
|
|
393
|
-
(_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : (_trigger$current3$ope = _trigger$current3.open) === null || _trigger$current3$ope === void 0 ? void 0 : _trigger$current3$ope.call(_trigger$current3);
|
|
394
|
-
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
395
|
-
});
|
|
396
|
-
var handleToggleDropdown = (0, _utils.useEventCallback)(function () {
|
|
397
|
-
if (active) {
|
|
398
|
-
handleClose();
|
|
399
|
-
return;
|
|
400
|
-
}
|
|
401
|
-
handleOpen();
|
|
402
|
-
});
|
|
403
|
-
var onToggle = (0, _utils.useEventCallback)(function (event) {
|
|
404
|
-
// Keyboard events should not be processed when readOnly and disabled are set.
|
|
405
|
-
if (readOnly || disabled || loading) {
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
|
-
if (event.target === (target === null || target === void 0 ? void 0 : target.current)) {
|
|
409
|
-
// enter
|
|
410
|
-
if (toggle && event.key === _utils.KEY_VALUES.ENTER) {
|
|
411
|
-
handleToggleDropdown();
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
// delete
|
|
415
|
-
if (event.key === _utils.KEY_VALUES.BACKSPACE) {
|
|
416
|
-
onExit === null || onExit === void 0 ? void 0 : onExit(event);
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
if (overlay !== null && overlay !== void 0 && overlay.current) {
|
|
420
|
-
// The keyboard operation callback on the menu.
|
|
421
|
-
onMenuKeyDown === null || onMenuKeyDown === void 0 ? void 0 : onMenuKeyDown(event);
|
|
422
|
-
if (event.key === _utils.KEY_VALUES.ENTER) {
|
|
423
|
-
onMenuPressEnter === null || onMenuPressEnter === void 0 ? void 0 : onMenuPressEnter(event);
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
/**
|
|
427
|
-
* There is no callback when typing the Backspace key in the search box.
|
|
428
|
-
* The default is to remove search keywords
|
|
429
|
-
*/
|
|
430
|
-
if (event.key === _utils.KEY_VALUES.BACKSPACE && event.target !== (searchInput === null || searchInput === void 0 ? void 0 : searchInput.current)) {
|
|
431
|
-
onMenuPressBackspace === null || onMenuPressBackspace === void 0 ? void 0 : onMenuPressBackspace(event);
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
// The search box gets focus when typing characters and numbers.
|
|
435
|
-
if (event.key.length === 1 && /\w/.test(event.key)) {
|
|
436
|
-
var _event$target;
|
|
437
|
-
// Exclude Input
|
|
438
|
-
// eg: <SelectPicker renderExtraFooter={() => <Input />} />
|
|
439
|
-
if (((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.tagName) !== 'INPUT') {
|
|
440
|
-
var _searchInput$current;
|
|
441
|
-
searchInput === null || searchInput === void 0 ? void 0 : (_searchInput$current = searchInput.current) === null || _searchInput$current === void 0 ? void 0 : _searchInput$current.focus();
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
if (event.key === _utils.KEY_VALUES.ESC || event.key === _utils.KEY_VALUES.TAB) {
|
|
446
|
-
handleClose();
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
// Native event callback
|
|
450
|
-
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
|
|
451
|
-
});
|
|
452
|
-
return onToggle;
|
|
453
|
-
};
|
|
454
|
-
exports.useToggleKeyDownEvent = useToggleKeyDownEvent;
|
|
455
|
-
/**
|
|
456
|
-
* A hook that handles search filter options
|
|
457
|
-
*/
|
|
458
|
-
function useSearch(data, props) {
|
|
459
|
-
var labelKey = props.labelKey,
|
|
460
|
-
searchBy = props.searchBy,
|
|
461
|
-
callback = props.callback; // Use search keywords to filter options.
|
|
462
|
-
var _useState4 = (0, _react.useState)(''),
|
|
463
|
-
searchKeyword = _useState4[0],
|
|
464
|
-
setSearchKeyword = _useState4[1];
|
|
465
|
-
var resetSearch = (0, _react.useCallback)(function () {
|
|
466
|
-
setSearchKeyword('');
|
|
467
|
-
}, []);
|
|
468
|
-
|
|
469
|
-
/**
|
|
470
|
-
* Index of keyword in `label`
|
|
471
|
-
* @param {node} label
|
|
472
|
-
*/
|
|
473
|
-
var checkShouldDisplay = (0, _react.useCallback)(function (item, keyword) {
|
|
474
|
-
var checkValue = typeof item === 'object' ? item === null || item === void 0 ? void 0 : item[labelKey] : String(item);
|
|
475
|
-
var _keyword = (0, _isUndefined.default)(keyword) ? searchKeyword : keyword;
|
|
476
|
-
if (typeof searchBy === 'function') {
|
|
477
|
-
return searchBy(_keyword, checkValue, item);
|
|
478
|
-
}
|
|
479
|
-
return shouldDisplay(checkValue, _keyword);
|
|
480
|
-
}, [labelKey, searchBy, searchKeyword]);
|
|
481
|
-
var filteredData = (0, _react.useMemo)(function () {
|
|
482
|
-
return data.filter(function (item) {
|
|
483
|
-
return checkShouldDisplay(item, searchKeyword);
|
|
484
|
-
});
|
|
485
|
-
}, [checkShouldDisplay, data, searchKeyword]);
|
|
486
|
-
var handleSearch = function handleSearch(searchKeyword, event) {
|
|
487
|
-
var filteredData = data.filter(function (item) {
|
|
488
|
-
return checkShouldDisplay(item, searchKeyword);
|
|
489
|
-
});
|
|
490
|
-
setSearchKeyword(searchKeyword);
|
|
491
|
-
callback === null || callback === void 0 ? void 0 : callback(searchKeyword, filteredData, event);
|
|
492
|
-
};
|
|
493
|
-
return {
|
|
494
|
-
searchKeyword: searchKeyword,
|
|
495
|
-
filteredData: filteredData,
|
|
496
|
-
checkShouldDisplay: checkShouldDisplay,
|
|
497
|
-
handleSearch: handleSearch,
|
|
498
|
-
resetSearch: resetSearch
|
|
499
|
-
};
|
|
500
95
|
}
|
|
@@ -209,7 +209,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
209
209
|
hasValue = false;
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
|
-
var
|
|
212
|
+
var renderPopup = function renderPopup(positionProps, speakerRef) {
|
|
213
213
|
var left = positionProps.left,
|
|
214
214
|
top = positionProps.top,
|
|
215
215
|
className = positionProps.className;
|
|
@@ -226,8 +226,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
226
226
|
} else if (typeof sort === 'function') {
|
|
227
227
|
items = items.sort(sort(false));
|
|
228
228
|
}
|
|
229
|
-
var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.
|
|
230
|
-
id: id ? id + "-listbox" : undefined,
|
|
229
|
+
var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {
|
|
231
230
|
listProps: listProps,
|
|
232
231
|
listRef: list,
|
|
233
232
|
disabledItemValues: disabledItemValues,
|
|
@@ -237,8 +236,8 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
237
236
|
renderMenuItem: renderMenuItem,
|
|
238
237
|
maxHeight: menuMaxHeight,
|
|
239
238
|
classPrefix: 'picker-select-menu',
|
|
240
|
-
|
|
241
|
-
|
|
239
|
+
listItemClassPrefix: 'picker-select-menu-item',
|
|
240
|
+
listItemAs: _Picker.ListItem,
|
|
242
241
|
activeItemValues: [value],
|
|
243
242
|
focusItemValue: focusItemValue,
|
|
244
243
|
data: items
|
|
@@ -253,7 +252,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
253
252
|
}) : /*#__PURE__*/_react.default.createElement("div", {
|
|
254
253
|
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
|
|
255
254
|
}, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
|
|
256
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
255
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
257
256
|
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
258
257
|
autoWidth: menuAutoWidth,
|
|
259
258
|
className: classes,
|
|
@@ -277,18 +276,18 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
277
276
|
classes = _usePickerClassName[0],
|
|
278
277
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
279
278
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
279
|
+
id: id,
|
|
280
280
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
281
281
|
ref: trigger,
|
|
282
282
|
placement: placement,
|
|
283
283
|
onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
|
|
284
284
|
onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
|
|
285
|
-
speaker:
|
|
285
|
+
speaker: renderPopup
|
|
286
286
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
287
287
|
className: classes,
|
|
288
288
|
style: style,
|
|
289
289
|
ref: root
|
|
290
290
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
291
|
-
id: id,
|
|
292
291
|
ref: target,
|
|
293
292
|
appearance: appearance,
|
|
294
293
|
onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
|
|
@@ -298,6 +297,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
298
297
|
cleanable: cleanable && !disabled,
|
|
299
298
|
hasValue: hasValue,
|
|
300
299
|
inputValue: value !== null && value !== void 0 ? value : '',
|
|
300
|
+
focusItemValue: focusItemValue,
|
|
301
301
|
active: active,
|
|
302
302
|
placement: placement
|
|
303
303
|
}), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
|
package/cjs/TagInput/index.js
CHANGED
|
@@ -44,6 +44,10 @@ var TagInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
44
44
|
return /*#__PURE__*/_react.default.createElement(_InputPickerContext.default.Provider, {
|
|
45
45
|
value: contextValue
|
|
46
46
|
}, /*#__PURE__*/_react.default.createElement(_InputPicker.default, (0, _extends2.default)({}, rest, {
|
|
47
|
+
"aria-haspopup": false,
|
|
48
|
+
"aria-expanded": undefined,
|
|
49
|
+
"aria-controls": undefined,
|
|
50
|
+
"aria-keyshortcuts": trigger,
|
|
47
51
|
value: value,
|
|
48
52
|
defaultValue: defaultValue,
|
|
49
53
|
data: data,
|
|
@@ -23,8 +23,8 @@ export interface TreeNodeProps extends WithAsProps {
|
|
|
23
23
|
style?: React.CSSProperties;
|
|
24
24
|
onExpand?: (nodeData: any) => void;
|
|
25
25
|
onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
renderTreeIcon?: (nodeData: any) => React.ReactNode;
|
|
27
|
+
renderTreeNode?: (nodeData: any) => React.ReactNode;
|
|
28
28
|
onDragStart?: (data: any, event: React.DragEvent<any>) => void;
|
|
29
29
|
onDragEnter?: (data: any, event: React.DragEvent<any>) => void;
|
|
30
30
|
onDragOver?: (data: any, event: React.DragEvent<any>) => void;
|
|
@@ -8,7 +8,6 @@ exports.default = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
11
|
var _hasClass = _interopRequireDefault(require("dom-lib/hasClass"));
|
|
13
12
|
var _ArrowDown = _interopRequireDefault(require("@rsuite/icons/legacy/ArrowDown"));
|
|
14
13
|
var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
|
|
@@ -46,20 +45,20 @@ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
46
45
|
onDragEnd = _ref.onDragEnd,
|
|
47
46
|
onDrop = _ref.onDrop,
|
|
48
47
|
onExpand = _ref.onExpand,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["as", "rtl", "label", "layer", "style", "active", "loading", "nodeData", "className", "classPrefix", "disabled", "visible", "draggable", "expand", "focus", "hasChildren", "dragging", "dragOver", "dragOverTop", "dragOverBottom", "onSelect", "onDragStart", "onDragOver", "onDragEnter", "onDragLeave", "onDragEnd", "onDrop", "onExpand", "
|
|
48
|
+
renderTreeIcon = _ref.renderTreeIcon,
|
|
49
|
+
renderTreeNode = _ref.renderTreeNode,
|
|
50
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["as", "rtl", "label", "layer", "style", "active", "loading", "nodeData", "className", "classPrefix", "disabled", "visible", "draggable", "expand", "focus", "hasChildren", "dragging", "dragOver", "dragOverTop", "dragOverBottom", "onSelect", "onDragStart", "onDragOver", "onDragEnter", "onDragLeave", "onDragEnd", "onDrop", "onExpand", "renderTreeIcon", "renderTreeNode"]);
|
|
52
51
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
53
52
|
prefix = _useClassNames.prefix,
|
|
54
53
|
merge = _useClassNames.merge,
|
|
55
54
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
56
|
-
var handleExpand = (0,
|
|
55
|
+
var handleExpand = (0, _utils.useEventCallback)(function (event) {
|
|
57
56
|
var _event$nativeEvent, _event$nativeEvent$st;
|
|
58
57
|
// stop propagation when using custom loading icon
|
|
59
58
|
event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);
|
|
60
59
|
onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData);
|
|
61
|
-
}
|
|
62
|
-
var handleSelect = (0,
|
|
60
|
+
});
|
|
61
|
+
var handleSelect = (0, _utils.useEventCallback)(function (event) {
|
|
63
62
|
if (disabled) {
|
|
64
63
|
return;
|
|
65
64
|
}
|
|
@@ -69,33 +68,33 @@ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
69
68
|
}
|
|
70
69
|
}
|
|
71
70
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);
|
|
72
|
-
}
|
|
73
|
-
var handleDragStart = (0,
|
|
71
|
+
});
|
|
72
|
+
var handleDragStart = (0, _utils.useEventCallback)(function (event) {
|
|
74
73
|
onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
|
|
75
|
-
}
|
|
76
|
-
var handleDragEnter = (0,
|
|
74
|
+
});
|
|
75
|
+
var handleDragEnter = (0, _utils.useEventCallback)(function (event) {
|
|
77
76
|
event.preventDefault();
|
|
78
77
|
event.stopPropagation();
|
|
79
78
|
onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);
|
|
80
|
-
}
|
|
81
|
-
var handleDragOver = (0,
|
|
79
|
+
});
|
|
80
|
+
var handleDragOver = (0, _utils.useEventCallback)(function (event) {
|
|
82
81
|
event.preventDefault();
|
|
83
82
|
event.stopPropagation();
|
|
84
83
|
onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);
|
|
85
|
-
}
|
|
86
|
-
var handleDragLeave = (0,
|
|
84
|
+
});
|
|
85
|
+
var handleDragLeave = (0, _utils.useEventCallback)(function (event) {
|
|
87
86
|
event.stopPropagation();
|
|
88
87
|
onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);
|
|
89
|
-
}
|
|
90
|
-
var handleDragEnd = (0,
|
|
88
|
+
});
|
|
89
|
+
var handleDragEnd = (0, _utils.useEventCallback)(function (event) {
|
|
91
90
|
event.stopPropagation();
|
|
92
91
|
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);
|
|
93
|
-
}
|
|
94
|
-
var handleDrop = (0,
|
|
92
|
+
});
|
|
93
|
+
var handleDrop = (0, _utils.useEventCallback)(function (event) {
|
|
95
94
|
event.preventDefault();
|
|
96
95
|
event.stopPropagation();
|
|
97
96
|
onDrop === null || onDrop === void 0 ? void 0 : onDrop(nodeData, event);
|
|
98
|
-
}
|
|
97
|
+
});
|
|
99
98
|
var renderIcon = function renderIcon() {
|
|
100
99
|
var classes = prefix('expand-icon', 'icon', {
|
|
101
100
|
expanded: expand
|
|
@@ -110,8 +109,8 @@ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
110
109
|
spin: true
|
|
111
110
|
}));
|
|
112
111
|
}
|
|
113
|
-
if (nodeData !== undefined && typeof
|
|
114
|
-
var customIcon =
|
|
112
|
+
if (nodeData !== undefined && typeof renderTreeIcon === 'function') {
|
|
113
|
+
var customIcon = renderTreeIcon(nodeData);
|
|
115
114
|
expandIcon = customIcon !== null ? /*#__PURE__*/_react.default.createElement("div", {
|
|
116
115
|
className: prefix('custom-icon')
|
|
117
116
|
}, customIcon) : expandIcon;
|
|
@@ -141,7 +140,7 @@ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
141
140
|
onClick: handleSelect
|
|
142
141
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
143
142
|
className: contentClasses
|
|
144
|
-
},
|
|
143
|
+
}, renderTreeNode ? renderTreeNode(nodeData) : label));
|
|
145
144
|
};
|
|
146
145
|
var classes = merge(className, withClassPrefix({
|
|
147
146
|
disabled: disabled,
|
|
@@ -171,38 +170,5 @@ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
171
170
|
}), renderIcon(), renderLabel()) : null;
|
|
172
171
|
});
|
|
173
172
|
TreeNode.displayName = 'TreePickerNode';
|
|
174
|
-
TreeNode.propTypes = {
|
|
175
|
-
as: _propTypes.default.elementType,
|
|
176
|
-
rtl: _propTypes.default.bool,
|
|
177
|
-
focus: _propTypes.default.bool,
|
|
178
|
-
layer: _propTypes.default.number,
|
|
179
|
-
value: _propTypes.default.any,
|
|
180
|
-
label: _propTypes.default.any,
|
|
181
|
-
expand: _propTypes.default.bool,
|
|
182
|
-
active: _propTypes.default.bool,
|
|
183
|
-
loading: _propTypes.default.bool,
|
|
184
|
-
visible: _propTypes.default.bool,
|
|
185
|
-
nodeData: _propTypes.default.any,
|
|
186
|
-
disabled: _propTypes.default.bool,
|
|
187
|
-
draggable: _propTypes.default.bool,
|
|
188
|
-
dragging: _propTypes.default.bool,
|
|
189
|
-
dragOver: _propTypes.default.bool,
|
|
190
|
-
dragOverTop: _propTypes.default.bool,
|
|
191
|
-
dragOverBottom: _propTypes.default.bool,
|
|
192
|
-
hasChildren: _propTypes.default.bool,
|
|
193
|
-
className: _propTypes.default.string,
|
|
194
|
-
classPrefix: _propTypes.default.string,
|
|
195
|
-
style: _propTypes.default.object,
|
|
196
|
-
onExpand: _propTypes.default.func,
|
|
197
|
-
onSelect: _propTypes.default.func,
|
|
198
|
-
onRenderTreeIcon: _propTypes.default.func,
|
|
199
|
-
onRenderTreeNode: _propTypes.default.func,
|
|
200
|
-
onDragStart: _propTypes.default.func,
|
|
201
|
-
onDragEnter: _propTypes.default.func,
|
|
202
|
-
onDragOver: _propTypes.default.func,
|
|
203
|
-
onDragLeave: _propTypes.default.func,
|
|
204
|
-
onDragEnd: _propTypes.default.func,
|
|
205
|
-
onDrop: _propTypes.default.func
|
|
206
|
-
};
|
|
207
173
|
var _default = TreeNode;
|
|
208
174
|
exports.default = _default;
|