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
|
@@ -1,19 +1,19 @@
|
|
|
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, { useState,
|
|
4
|
+
import React, { useState, useCallback } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import pick from 'lodash/pick';
|
|
7
7
|
import omit from 'lodash/omit';
|
|
8
8
|
import isFunction from 'lodash/isFunction';
|
|
9
9
|
import isNil from 'lodash/isNil';
|
|
10
|
-
import
|
|
10
|
+
import TreeView from './TreeView';
|
|
11
11
|
import Checkbox from '../Checkbox';
|
|
12
12
|
import { useCascadeValue, useColumnData, useFlattenData, isSomeChildChecked } from './utils';
|
|
13
13
|
import { getNodeParents, findNodeOfTree } from '../utils/treeUtils';
|
|
14
14
|
import { getColumnsAndPaths } from '../Cascader/utils';
|
|
15
|
-
import { createChainedFunction, mergeRefs, getSafeRegExpString, useClassNames, useCustom, useUpdateEffect, useControlled } from '../utils';
|
|
16
|
-
import { PickerToggle,
|
|
15
|
+
import { createChainedFunction, mergeRefs, getSafeRegExpString, useClassNames, useCustom, useUpdateEffect, useControlled, useEventCallback } from '../utils';
|
|
16
|
+
import { PickerToggle, PickerPopup, SearchBar, SelectedElement, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
17
17
|
var emptyArray = [];
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -114,15 +114,12 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
114
114
|
var _useState2 = useState(),
|
|
115
115
|
selectedPaths = _useState2[0],
|
|
116
116
|
setSelectedPaths = _useState2[1];
|
|
117
|
-
var
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
overlayRef: overlayRef,
|
|
124
|
-
targetRef: targetRef
|
|
125
|
-
});
|
|
117
|
+
var _usePickerRef = usePickerRef(ref),
|
|
118
|
+
trigger = _usePickerRef.trigger,
|
|
119
|
+
root = _usePickerRef.root,
|
|
120
|
+
target = _usePickerRef.target,
|
|
121
|
+
overlay = _usePickerRef.overlay,
|
|
122
|
+
searchInput = _usePickerRef.searchInput;
|
|
126
123
|
var _useCustom = useCustom('Picker', overrideLocale),
|
|
127
124
|
locale = _useCustom.locale,
|
|
128
125
|
rtl = _useCustom.rtl;
|
|
@@ -139,7 +136,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
139
136
|
valueKey: valueKey,
|
|
140
137
|
defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,
|
|
141
138
|
target: function target() {
|
|
142
|
-
return
|
|
139
|
+
return overlay.current;
|
|
143
140
|
},
|
|
144
141
|
callback: useCallback(function (value) {
|
|
145
142
|
var _getColumnsAndPaths = getColumnsAndPaths(data, flattenData.find(function (item) {
|
|
@@ -173,16 +170,16 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
173
170
|
var _useState3 = useState(''),
|
|
174
171
|
searchKeyword = _useState3[0],
|
|
175
172
|
setSearchKeyword = _useState3[1];
|
|
176
|
-
var handleEntered =
|
|
173
|
+
var handleEntered = useEventCallback(function () {
|
|
177
174
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
178
175
|
setActive(true);
|
|
179
|
-
}
|
|
180
|
-
var handleExited =
|
|
176
|
+
});
|
|
177
|
+
var handleExited = useEventCallback(function () {
|
|
181
178
|
setActive(false);
|
|
182
179
|
setSearchKeyword('');
|
|
183
|
-
}
|
|
184
|
-
var handleSelect =
|
|
185
|
-
var _node$childrenKey, _node$childrenKey2,
|
|
180
|
+
});
|
|
181
|
+
var handleSelect = useEventCallback(function (node, cascadePaths, event) {
|
|
182
|
+
var _node$childrenKey, _node$childrenKey2, _trigger$current, _trigger$current$upda;
|
|
186
183
|
setSelectedPaths(cascadePaths);
|
|
187
184
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
188
185
|
var columnIndex = cascadePaths.length;
|
|
@@ -195,7 +192,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
195
192
|
children.then(function (data) {
|
|
196
193
|
node.loading = false;
|
|
197
194
|
node[childrenKey] = data;
|
|
198
|
-
if (
|
|
195
|
+
if (target.current || inline) {
|
|
199
196
|
addFlattenData(data, node);
|
|
200
197
|
addColumn(data, columnIndex);
|
|
201
198
|
}
|
|
@@ -212,9 +209,9 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
212
209
|
// Removes subsequent columns of the current column when the clicked node is a leaf node.
|
|
213
210
|
removeColumnByIndex(columnIndex);
|
|
214
211
|
}
|
|
215
|
-
(
|
|
216
|
-
}
|
|
217
|
-
var handleCheck =
|
|
212
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 ? void 0 : _trigger$current$upda.call(_trigger$current);
|
|
213
|
+
});
|
|
214
|
+
var handleCheck = useEventCallback(function (node, event, checked) {
|
|
218
215
|
var nodeValue = node[valueKey];
|
|
219
216
|
var nextValue = [];
|
|
220
217
|
if (cascade) {
|
|
@@ -232,38 +229,38 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
232
229
|
setValue(nextValue);
|
|
233
230
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
234
231
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);
|
|
235
|
-
}
|
|
236
|
-
var handleClean =
|
|
237
|
-
if (disabled || !
|
|
232
|
+
});
|
|
233
|
+
var handleClean = useEventCallback(function (event) {
|
|
234
|
+
if (disabled || !target.current) {
|
|
238
235
|
return;
|
|
239
236
|
}
|
|
240
237
|
setSelectedPaths([]);
|
|
241
238
|
setValue([]);
|
|
242
239
|
setColumnData([data]);
|
|
243
240
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
244
|
-
}
|
|
245
|
-
var handleMenuPressEnter =
|
|
246
|
-
var
|
|
241
|
+
});
|
|
242
|
+
var handleMenuPressEnter = useEventCallback(function (event) {
|
|
243
|
+
var _overlay$current;
|
|
247
244
|
var focusItem = findNodeOfTree(data, function (item) {
|
|
248
245
|
return item[valueKey] === focusItemValue;
|
|
249
246
|
});
|
|
250
|
-
var checkbox = (
|
|
247
|
+
var checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
|
|
251
248
|
if (checkbox) {
|
|
252
249
|
handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');
|
|
253
250
|
}
|
|
254
|
-
}
|
|
251
|
+
});
|
|
255
252
|
var onPickerKeyDown = useToggleKeyDownEvent(_extends({
|
|
256
253
|
toggle: !focusItemValue || !active,
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
254
|
+
trigger: trigger,
|
|
255
|
+
target: target,
|
|
256
|
+
overlay: overlay,
|
|
257
|
+
searchInput: searchInput,
|
|
261
258
|
active: active,
|
|
262
259
|
onExit: handleClean,
|
|
263
260
|
onMenuKeyDown: onFocusItem,
|
|
264
261
|
onMenuPressEnter: handleMenuPressEnter
|
|
265
262
|
}, rest));
|
|
266
|
-
var handleSearch =
|
|
263
|
+
var handleSearch = useEventCallback(function (value, event) {
|
|
267
264
|
setSearchKeyword(value);
|
|
268
265
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
|
|
269
266
|
if (value) {
|
|
@@ -272,8 +269,8 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
272
269
|
setLayer(selectedPaths.length - 1);
|
|
273
270
|
}
|
|
274
271
|
setKeys([]);
|
|
275
|
-
}
|
|
276
|
-
var getSearchResult =
|
|
272
|
+
});
|
|
273
|
+
var getSearchResult = function getSearchResult() {
|
|
277
274
|
var items = [];
|
|
278
275
|
var result = flattenData.filter(function (item) {
|
|
279
276
|
if (uncheckableItemValues.some(function (value) {
|
|
@@ -295,7 +292,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
295
292
|
}
|
|
296
293
|
}
|
|
297
294
|
return items;
|
|
298
|
-
}
|
|
295
|
+
};
|
|
299
296
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
300
297
|
var _extends2;
|
|
301
298
|
var nodes = getNodeParents(item);
|
|
@@ -331,9 +328,10 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
331
328
|
'cascader-row-focus': item[valueKey] === focusItemValue
|
|
332
329
|
});
|
|
333
330
|
return /*#__PURE__*/React.createElement("div", {
|
|
331
|
+
role: "treeitem",
|
|
332
|
+
"aria-disabled": disabled,
|
|
334
333
|
key: key,
|
|
335
334
|
className: itemClasses,
|
|
336
|
-
"aria-disabled": disabled,
|
|
337
335
|
"data-key": item[valueKey]
|
|
338
336
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
339
337
|
disabled: disabled,
|
|
@@ -362,12 +360,13 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
362
360
|
var items = getSearchResult();
|
|
363
361
|
return /*#__PURE__*/React.createElement("div", {
|
|
364
362
|
className: prefix('cascader-search-panel'),
|
|
365
|
-
"data-layer": 0
|
|
363
|
+
"data-layer": 0,
|
|
364
|
+
role: "tree"
|
|
366
365
|
}, items.length ? items.map(renderSearchRow) : /*#__PURE__*/React.createElement("div", {
|
|
367
366
|
className: prefix('none')
|
|
368
367
|
}, locale.noResultsText));
|
|
369
368
|
};
|
|
370
|
-
var
|
|
369
|
+
var renderTreeView = function renderTreeView(positionProps, speakerRef) {
|
|
371
370
|
var _ref = positionProps || {},
|
|
372
371
|
left = _ref.left,
|
|
373
372
|
top = _ref.top,
|
|
@@ -379,19 +378,18 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
379
378
|
var classes = merge(className, menuClassName, prefix('cascader-menu', 'multi-cascader-menu', {
|
|
380
379
|
inline: inline
|
|
381
380
|
}));
|
|
382
|
-
return /*#__PURE__*/React.createElement(
|
|
383
|
-
ref: mergeRefs(
|
|
381
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
382
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
384
383
|
className: classes,
|
|
385
384
|
style: styles,
|
|
386
|
-
target:
|
|
385
|
+
target: trigger,
|
|
387
386
|
onKeyDown: onPickerKeyDown
|
|
388
387
|
}, searchable && /*#__PURE__*/React.createElement(SearchBar, {
|
|
389
388
|
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
390
389
|
onChange: handleSearch,
|
|
391
390
|
value: searchKeyword,
|
|
392
|
-
inputRef:
|
|
393
|
-
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(
|
|
394
|
-
id: id ? id + "-listbox" : undefined,
|
|
391
|
+
inputRef: searchInput
|
|
392
|
+
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(TreeView, {
|
|
395
393
|
cascade: cascade,
|
|
396
394
|
menuWidth: menuWidth,
|
|
397
395
|
menuHeight: menuHeight,
|
|
@@ -441,25 +439,28 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
441
439
|
classes = _usePickerClassName[0],
|
|
442
440
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
443
441
|
if (inline) {
|
|
444
|
-
return
|
|
442
|
+
return renderTreeView();
|
|
445
443
|
}
|
|
446
444
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
445
|
+
id: id,
|
|
446
|
+
popupType: "tree",
|
|
447
|
+
multiple: true,
|
|
447
448
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
448
|
-
ref:
|
|
449
|
+
ref: trigger,
|
|
449
450
|
placement: placement,
|
|
450
451
|
onEnter: createChainedFunction(handleEntered, onEnter),
|
|
451
452
|
onExited: createChainedFunction(handleExited, onExited),
|
|
452
453
|
onExit: createChainedFunction(onClose, onExit),
|
|
453
|
-
speaker:
|
|
454
|
+
speaker: renderTreeView
|
|
454
455
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
455
456
|
className: classes,
|
|
456
|
-
style: style
|
|
457
|
+
style: style,
|
|
458
|
+
ref: root
|
|
457
459
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
458
|
-
id: id,
|
|
459
460
|
as: toggleAs,
|
|
460
461
|
appearance: appearance,
|
|
461
462
|
disabled: disabled,
|
|
462
|
-
ref:
|
|
463
|
+
ref: target,
|
|
463
464
|
onClean: createChainedFunction(handleClean, onClean),
|
|
464
465
|
onKeyDown: onPickerKeyDown,
|
|
465
466
|
cleanable: cleanable && !disabled,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
3
|
import { ValueType } from './MultiCascader';
|
|
4
|
-
export interface
|
|
4
|
+
export interface TreeViewProps extends WithAsProps {
|
|
5
5
|
disabledItemValues: ValueType;
|
|
6
6
|
value: ValueType;
|
|
7
7
|
childrenKey: string;
|
|
@@ -21,5 +21,5 @@ export interface DropdownMenuProps extends WithAsProps {
|
|
|
21
21
|
/**
|
|
22
22
|
* TODO: reuse Menu from Cascader for consistent behavior
|
|
23
23
|
*/
|
|
24
|
-
declare const
|
|
25
|
-
export default
|
|
24
|
+
declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
|
|
25
|
+
export default TreeView;
|
|
@@ -1,20 +1,19 @@
|
|
|
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 from 'react';
|
|
6
5
|
import SpinnerIcon from '@rsuite/icons/legacy/Spinner';
|
|
7
6
|
import AngleLeftIcon from '@rsuite/icons/legacy/AngleLeft';
|
|
8
7
|
import AngleRightIcon from '@rsuite/icons/legacy/AngleRight';
|
|
9
|
-
import { useClassNames, shallowEqual, useCustom } from '../utils';
|
|
10
|
-
import {
|
|
8
|
+
import { useClassNames, shallowEqual, useCustom, useEventCallback } from '../utils';
|
|
9
|
+
import { ListCheckItem, useCombobox } from '../Picker';
|
|
11
10
|
import { isSomeParentChecked, isSomeChildChecked } from './utils';
|
|
12
11
|
var emptyArray = [];
|
|
13
12
|
|
|
14
13
|
/**
|
|
15
14
|
* TODO: reuse Menu from Cascader for consistent behavior
|
|
16
15
|
*/
|
|
17
|
-
var
|
|
16
|
+
var TreeView = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
18
17
|
var _props$as = props.as,
|
|
19
18
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
20
19
|
_props$classPrefix = props.classPrefix,
|
|
@@ -40,18 +39,24 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
40
39
|
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
41
40
|
_props$labelKey = props.labelKey,
|
|
42
41
|
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
42
|
+
style = props.style,
|
|
43
43
|
renderMenuItem = props.renderMenuItem,
|
|
44
44
|
renderMenu = props.renderMenu,
|
|
45
45
|
_onCheck = props.onCheck,
|
|
46
46
|
onSelect = props.onSelect,
|
|
47
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "renderMenuItem", "renderMenu", "onCheck", "onSelect"]);
|
|
47
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "cascade", "cascadeData", "cascadePaths", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "uncheckableItemValues", "value", "valueKey", "labelKey", "style", "renderMenuItem", "renderMenu", "onCheck", "onSelect"]);
|
|
48
48
|
var _useClassNames = useClassNames(classPrefix),
|
|
49
49
|
merge = _useClassNames.merge,
|
|
50
50
|
prefix = _useClassNames.prefix;
|
|
51
51
|
var classes = merge(className, prefix('items'));
|
|
52
|
-
var _useCustom = useCustom(
|
|
52
|
+
var _useCustom = useCustom(),
|
|
53
53
|
rtl = _useCustom.rtl;
|
|
54
|
-
var
|
|
54
|
+
var _useCombobox = useCombobox(),
|
|
55
|
+
id = _useCombobox.id,
|
|
56
|
+
labelId = _useCombobox.labelId,
|
|
57
|
+
popupType = _useCombobox.popupType,
|
|
58
|
+
multiple = _useCombobox.multiple;
|
|
59
|
+
var getCascadePaths = function getCascadePaths(layer, node) {
|
|
55
60
|
var paths = [];
|
|
56
61
|
for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
|
|
57
62
|
if (i < layer - 1 && cascadePaths) {
|
|
@@ -60,15 +65,21 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
60
65
|
}
|
|
61
66
|
paths.push(node);
|
|
62
67
|
return paths;
|
|
63
|
-
}
|
|
64
|
-
var handleSelect =
|
|
68
|
+
};
|
|
69
|
+
var handleSelect = useEventCallback(function (layer, node, event) {
|
|
65
70
|
var cascadePaths = getCascadePaths(layer + 1, node);
|
|
66
71
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
67
|
-
}
|
|
68
|
-
var renderCascadeNode = function renderCascadeNode(
|
|
72
|
+
});
|
|
73
|
+
var renderCascadeNode = function renderCascadeNode(nodeProps) {
|
|
74
|
+
var node = nodeProps.node,
|
|
75
|
+
index = nodeProps.index,
|
|
76
|
+
layer = nodeProps.layer,
|
|
77
|
+
focus = nodeProps.focus,
|
|
78
|
+
uncheckable = nodeProps.uncheckable,
|
|
79
|
+
size = nodeProps.size;
|
|
69
80
|
var children = node[childrenKey];
|
|
70
81
|
var nodeValue = node[valueKey];
|
|
71
|
-
var
|
|
82
|
+
var label = node[labelKey];
|
|
72
83
|
var disabled = disabledItemValues.some(function (disabledValue) {
|
|
73
84
|
return shallowEqual(disabledValue, nodeValue);
|
|
74
85
|
});
|
|
@@ -84,8 +95,13 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
84
95
|
valueKey: valueKey
|
|
85
96
|
});
|
|
86
97
|
}
|
|
87
|
-
return /*#__PURE__*/React.createElement(
|
|
98
|
+
return /*#__PURE__*/React.createElement(ListCheckItem, {
|
|
88
99
|
as: "li",
|
|
100
|
+
role: "treeitem",
|
|
101
|
+
"aria-level": layer + 1,
|
|
102
|
+
"aria-setsize": size,
|
|
103
|
+
"aria-posinset": index + 1,
|
|
104
|
+
"aria-label": typeof label === 'string' ? label : undefined,
|
|
89
105
|
key: layer + "-" + onlyKey,
|
|
90
106
|
disabled: disabled,
|
|
91
107
|
active: active,
|
|
@@ -105,72 +121,60 @@ var DropdownMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
105
121
|
return _onCheck === null || _onCheck === void 0 ? void 0 : _onCheck(node, event, checked);
|
|
106
122
|
},
|
|
107
123
|
checkable: !uncheckable
|
|
108
|
-
}, renderMenuItem ? renderMenuItem(
|
|
124
|
+
}, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/React.createElement(Icon, {
|
|
109
125
|
className: prefix('caret'),
|
|
110
126
|
spin: node.loading
|
|
111
127
|
}) : null);
|
|
112
128
|
};
|
|
113
|
-
var
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
var onlyKey = layer + "_" + children.length;
|
|
124
|
-
var menu = /*#__PURE__*/React.createElement("ul", {
|
|
125
|
-
role: "listbox"
|
|
126
|
-
}, children.map(function (item, index) {
|
|
127
|
-
var uncheckable = uncheckableItemValues.some(function (uncheckableValue) {
|
|
128
|
-
return shallowEqual(uncheckableValue, item[valueKey]);
|
|
129
|
-
});
|
|
130
|
-
if (uncheckable) {
|
|
131
|
-
uncheckableCount++;
|
|
132
|
-
}
|
|
133
|
-
return renderCascadeNode(item, index, layer, cascadePaths[layer] && shallowEqual(cascadePaths[layer][valueKey], item[valueKey]), uncheckable);
|
|
134
|
-
}));
|
|
135
|
-
var parentNode = cascadePaths[layer - 1];
|
|
136
|
-
var columnClasses = prefix('column', {
|
|
137
|
-
'column-uncheckable': uncheckableCount === children.length
|
|
129
|
+
var columnStyles = {
|
|
130
|
+
height: menuHeight,
|
|
131
|
+
width: menuWidth
|
|
132
|
+
};
|
|
133
|
+
var cascadeNodes = cascadeData.map(function (children, layer) {
|
|
134
|
+
var uncheckableCount = 0;
|
|
135
|
+
var onlyKey = layer + "_" + children.length;
|
|
136
|
+
var menu = /*#__PURE__*/React.createElement(React.Fragment, null, children.map(function (item, index) {
|
|
137
|
+
var uncheckable = uncheckableItemValues.some(function (uncheckableValue) {
|
|
138
|
+
return shallowEqual(uncheckableValue, item[valueKey]);
|
|
138
139
|
});
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
140
|
+
if (uncheckable) {
|
|
141
|
+
uncheckableCount++;
|
|
142
|
+
}
|
|
143
|
+
var focus = cascadePaths[layer] && shallowEqual(cascadePaths[layer][valueKey], item[valueKey]);
|
|
144
|
+
return renderCascadeNode({
|
|
145
|
+
node: item,
|
|
146
|
+
index: index,
|
|
147
|
+
layer: layer,
|
|
148
|
+
focus: focus,
|
|
149
|
+
uncheckable: uncheckable,
|
|
150
|
+
size: children.length
|
|
151
|
+
});
|
|
152
|
+
}));
|
|
153
|
+
var parentNode = cascadePaths[layer - 1];
|
|
154
|
+
var columnClasses = prefix('column', {
|
|
155
|
+
'column-uncheckable': uncheckableCount === children.length
|
|
145
156
|
});
|
|
146
|
-
return /*#__PURE__*/React.createElement("
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
157
|
+
return /*#__PURE__*/React.createElement("ul", {
|
|
158
|
+
role: "group",
|
|
159
|
+
key: onlyKey,
|
|
160
|
+
className: columnClasses,
|
|
161
|
+
"data-layer": layer,
|
|
162
|
+
style: columnStyles
|
|
163
|
+
}, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
|
|
164
|
+
});
|
|
165
|
+
var styles = _extends({}, style, {
|
|
166
|
+
width: cascadeData.length * menuWidth
|
|
167
|
+
});
|
|
168
|
+
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
169
|
+
role: "tree",
|
|
170
|
+
id: id + "-" + popupType,
|
|
171
|
+
"aria-labelledby": labelId,
|
|
172
|
+
"aria-multiselectable": multiple
|
|
173
|
+
}, rest, {
|
|
151
174
|
ref: ref,
|
|
152
|
-
className: classes
|
|
153
|
-
|
|
175
|
+
className: classes,
|
|
176
|
+
style: styles
|
|
177
|
+
}), cascadeNodes);
|
|
154
178
|
});
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
classPrefix: PropTypes.string,
|
|
158
|
-
data: PropTypes.array,
|
|
159
|
-
disabledItemValues: PropTypes.array,
|
|
160
|
-
value: PropTypes.array,
|
|
161
|
-
childrenKey: PropTypes.string,
|
|
162
|
-
valueKey: PropTypes.string,
|
|
163
|
-
labelKey: PropTypes.string,
|
|
164
|
-
menuWidth: PropTypes.number,
|
|
165
|
-
menuHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
166
|
-
className: PropTypes.string,
|
|
167
|
-
cascade: PropTypes.bool,
|
|
168
|
-
cascadeData: PropTypes.array,
|
|
169
|
-
cascadePaths: PropTypes.array,
|
|
170
|
-
uncheckableItemValues: PropTypes.array,
|
|
171
|
-
renderMenuItem: PropTypes.func,
|
|
172
|
-
renderMenu: PropTypes.func,
|
|
173
|
-
onSelect: PropTypes.func,
|
|
174
|
-
onCheck: PropTypes.func
|
|
175
|
-
};
|
|
176
|
-
export default DropdownMenu;
|
|
179
|
+
TreeView.displayName = 'TreeView';
|
|
180
|
+
export default TreeView;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CheckboxProps } from '../Checkbox';
|
|
3
3
|
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
4
|
-
export interface
|
|
4
|
+
export interface ListCheckItemProps extends WithAsProps {
|
|
5
5
|
active?: boolean;
|
|
6
6
|
checkboxAs?: React.ElementType | string;
|
|
7
7
|
classPrefix?: string;
|
|
@@ -19,5 +19,5 @@ export interface DropdownMenuCheckItemProps extends WithAsProps {
|
|
|
19
19
|
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
20
20
|
renderMenuItemCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
|
|
21
21
|
}
|
|
22
|
-
declare const
|
|
23
|
-
export default
|
|
22
|
+
declare const ListCheckItem: RsRefForwardingComponent<'div', ListCheckItemProps>;
|
|
23
|
+
export default ListCheckItem;
|
|
@@ -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
|
|
5
|
-
import
|
|
6
|
-
import { useClassNames } from '../utils';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useClassNames, useEventCallback } from '../utils';
|
|
7
6
|
import Checkbox from '../Checkbox';
|
|
8
|
-
|
|
7
|
+
import useCombobox from './hooks/useCombobox';
|
|
8
|
+
var ListCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
9
9
|
var _props$active = props.active,
|
|
10
10
|
active = _props$active === void 0 ? false : _props$active,
|
|
11
11
|
_props$as = props.as,
|
|
@@ -28,19 +28,21 @@ var DropdownMenuCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref)
|
|
|
28
28
|
onSelectItem = props.onSelectItem,
|
|
29
29
|
renderMenuItemCheckbox = props.renderMenuItemCheckbox,
|
|
30
30
|
rest = _objectWithoutPropertiesLoose(props, ["active", "as", "checkboxAs", "classPrefix", "checkable", "disabled", "value", "focus", "children", "className", "indeterminate", "onKeyDown", "onSelect", "onCheck", "onSelectItem", "renderMenuItemCheckbox"]);
|
|
31
|
-
var handleChange =
|
|
31
|
+
var handleChange = useEventCallback(function (value, checked, event) {
|
|
32
32
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, event, checked);
|
|
33
|
-
}
|
|
34
|
-
var handleCheck =
|
|
33
|
+
});
|
|
34
|
+
var handleCheck = useEventCallback(function (event) {
|
|
35
35
|
if (!disabled) {
|
|
36
36
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(value, event, !active);
|
|
37
37
|
}
|
|
38
|
-
}
|
|
39
|
-
var handleSelectItem =
|
|
38
|
+
});
|
|
39
|
+
var handleSelectItem = useEventCallback(function (event) {
|
|
40
40
|
if (!disabled) {
|
|
41
41
|
onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(value, event, !active);
|
|
42
42
|
}
|
|
43
|
-
}
|
|
43
|
+
});
|
|
44
|
+
var _useCombobox = useCombobox(),
|
|
45
|
+
id = _useCombobox.id;
|
|
44
46
|
var _useClassNames = useClassNames(classPrefix),
|
|
45
47
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
46
48
|
var checkboxItemClasses = withClassPrefix({
|
|
@@ -63,6 +65,7 @@ var DropdownMenuCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref)
|
|
|
63
65
|
role: "option",
|
|
64
66
|
"aria-selected": active,
|
|
65
67
|
"aria-disabled": disabled,
|
|
68
|
+
id: id ? id + "-opt-" + value : undefined,
|
|
66
69
|
"data-key": value
|
|
67
70
|
}, rest, {
|
|
68
71
|
ref: ref,
|
|
@@ -72,23 +75,5 @@ var DropdownMenuCheckItem = /*#__PURE__*/React.forwardRef(function (props, ref)
|
|
|
72
75
|
role: "checkbox"
|
|
73
76
|
}, checkboxProps)));
|
|
74
77
|
});
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
classPrefix: PropTypes.string,
|
|
78
|
-
active: PropTypes.bool,
|
|
79
|
-
disabled: PropTypes.bool,
|
|
80
|
-
checkable: PropTypes.bool,
|
|
81
|
-
indeterminate: PropTypes.bool,
|
|
82
|
-
value: PropTypes.any,
|
|
83
|
-
onSelect: PropTypes.func,
|
|
84
|
-
onCheck: PropTypes.func,
|
|
85
|
-
onSelectItem: PropTypes.func,
|
|
86
|
-
onKeyDown: PropTypes.func,
|
|
87
|
-
focus: PropTypes.bool,
|
|
88
|
-
title: PropTypes.string,
|
|
89
|
-
className: PropTypes.string,
|
|
90
|
-
children: PropTypes.node,
|
|
91
|
-
as: PropTypes.elementType,
|
|
92
|
-
checkboxAs: PropTypes.elementType
|
|
93
|
-
};
|
|
94
|
-
export default DropdownMenuCheckItem;
|
|
78
|
+
ListCheckItem.displayName = 'ListCheckItem';
|
|
79
|
+
export default ListCheckItem;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
-
export interface
|
|
3
|
+
export interface ListItemProps extends WithAsProps, Omit<React.HTMLAttributes<HTMLElement>, 'onSelect'> {
|
|
4
4
|
active?: boolean;
|
|
5
5
|
disabled?: boolean;
|
|
6
|
-
value?:
|
|
6
|
+
value?: string | number;
|
|
7
7
|
focus?: boolean;
|
|
8
8
|
title?: string;
|
|
9
9
|
onSelect?: (value: any, event: React.MouseEvent) => void;
|
|
10
10
|
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
11
11
|
renderItem?: (value: any) => React.ReactNode;
|
|
12
12
|
}
|
|
13
|
-
declare const
|
|
14
|
-
export default
|
|
13
|
+
declare const ListItem: RsRefForwardingComponent<'div', ListItemProps>;
|
|
14
|
+
export default ListItem;
|