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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
4
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
+
var _templateObject;
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import TagList from './TagList';
|
|
8
|
+
import { useClassNames } from '../utils';
|
|
9
|
+
import InputSearch from './InputSearch';
|
|
10
|
+
var TextBox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
|
+
var tags = props.tags,
|
|
12
|
+
inputProps = props.inputProps,
|
|
13
|
+
readOnly = props.readOnly,
|
|
14
|
+
disabled = props.disabled,
|
|
15
|
+
multiple = props.multiple,
|
|
16
|
+
onBlur = props.onBlur,
|
|
17
|
+
onFocus = props.onFocus,
|
|
18
|
+
onChange = props.onChange,
|
|
19
|
+
inputValue = props.inputValue,
|
|
20
|
+
inputRef = props.inputRef,
|
|
21
|
+
editable = props.editable,
|
|
22
|
+
showTagList = props.showTagList,
|
|
23
|
+
rest = _objectWithoutPropertiesLoose(props, ["tags", "inputProps", "readOnly", "disabled", "multiple", "onBlur", "onFocus", "onChange", "inputValue", "inputRef", "editable", "showTagList"]);
|
|
24
|
+
var _useClassNames = useClassNames('picker'),
|
|
25
|
+
prefix = _useClassNames.prefix;
|
|
26
|
+
if (!multiple && disabled) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
30
|
+
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["textbox"]))),
|
|
31
|
+
ref: ref
|
|
32
|
+
}, rest), showTagList ? /*#__PURE__*/React.createElement(TagList, null, tags) : null, editable && /*#__PURE__*/React.createElement(InputSearch, _extends({}, inputProps, {
|
|
33
|
+
tabIndex: -1,
|
|
34
|
+
readOnly: readOnly,
|
|
35
|
+
onBlur: onBlur,
|
|
36
|
+
onFocus: onFocus,
|
|
37
|
+
inputRef: inputRef,
|
|
38
|
+
onChange: onChange,
|
|
39
|
+
value: inputValue
|
|
40
|
+
})));
|
|
41
|
+
});
|
|
42
|
+
export default TextBox;
|
|
@@ -7,13 +7,13 @@ 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
15
|
import { createChainedFunction, mergeRefs, getSafeRegExpString, useClassNames, useCustom, useUpdateEffect, useControlled, useEventCallback } from '../utils';
|
|
16
|
-
import { PickerToggle,
|
|
16
|
+
import { PickerToggle, PickerPopup, SearchBar, SelectedElement, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
17
17
|
var emptyArray = [];
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -328,9 +328,10 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
328
328
|
'cascader-row-focus': item[valueKey] === focusItemValue
|
|
329
329
|
});
|
|
330
330
|
return /*#__PURE__*/React.createElement("div", {
|
|
331
|
+
role: "treeitem",
|
|
332
|
+
"aria-disabled": disabled,
|
|
331
333
|
key: key,
|
|
332
334
|
className: itemClasses,
|
|
333
|
-
"aria-disabled": disabled,
|
|
334
335
|
"data-key": item[valueKey]
|
|
335
336
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
336
337
|
disabled: disabled,
|
|
@@ -359,12 +360,13 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
359
360
|
var items = getSearchResult();
|
|
360
361
|
return /*#__PURE__*/React.createElement("div", {
|
|
361
362
|
className: prefix('cascader-search-panel'),
|
|
362
|
-
"data-layer": 0
|
|
363
|
+
"data-layer": 0,
|
|
364
|
+
role: "tree"
|
|
363
365
|
}, items.length ? items.map(renderSearchRow) : /*#__PURE__*/React.createElement("div", {
|
|
364
366
|
className: prefix('none')
|
|
365
367
|
}, locale.noResultsText));
|
|
366
368
|
};
|
|
367
|
-
var
|
|
369
|
+
var renderTreeView = function renderTreeView(positionProps, speakerRef) {
|
|
368
370
|
var _ref = positionProps || {},
|
|
369
371
|
left = _ref.left,
|
|
370
372
|
top = _ref.top,
|
|
@@ -376,7 +378,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
376
378
|
var classes = merge(className, menuClassName, prefix('cascader-menu', 'multi-cascader-menu', {
|
|
377
379
|
inline: inline
|
|
378
380
|
}));
|
|
379
|
-
return /*#__PURE__*/React.createElement(
|
|
381
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
380
382
|
ref: mergeRefs(overlay, speakerRef),
|
|
381
383
|
className: classes,
|
|
382
384
|
style: styles,
|
|
@@ -387,8 +389,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
387
389
|
onChange: handleSearch,
|
|
388
390
|
value: searchKeyword,
|
|
389
391
|
inputRef: searchInput
|
|
390
|
-
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(
|
|
391
|
-
id: id ? id + "-listbox" : undefined,
|
|
392
|
+
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(TreeView, {
|
|
392
393
|
cascade: cascade,
|
|
393
394
|
menuWidth: menuWidth,
|
|
394
395
|
menuHeight: menuHeight,
|
|
@@ -438,22 +439,24 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
438
439
|
classes = _usePickerClassName[0],
|
|
439
440
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
440
441
|
if (inline) {
|
|
441
|
-
return
|
|
442
|
+
return renderTreeView();
|
|
442
443
|
}
|
|
443
444
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
445
|
+
id: id,
|
|
446
|
+
popupType: "tree",
|
|
447
|
+
multiple: true,
|
|
444
448
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
445
449
|
ref: trigger,
|
|
446
450
|
placement: placement,
|
|
447
451
|
onEnter: createChainedFunction(handleEntered, onEnter),
|
|
448
452
|
onExited: createChainedFunction(handleExited, onExited),
|
|
449
453
|
onExit: createChainedFunction(onClose, onExit),
|
|
450
|
-
speaker:
|
|
454
|
+
speaker: renderTreeView
|
|
451
455
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
452
456
|
className: classes,
|
|
453
457
|
style: style,
|
|
454
458
|
ref: root
|
|
455
459
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
456
|
-
id: id,
|
|
457
460
|
as: toggleAs,
|
|
458
461
|
appearance: appearance,
|
|
459
462
|
disabled: 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;
|
|
@@ -1,15 +1,17 @@
|
|
|
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
|
|
7
|
-
var
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useClassNames, useEventCallback } from '../utils';
|
|
6
|
+
import useCombobox from './hooks/useCombobox';
|
|
7
|
+
var ListItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
8
8
|
var _props$as = props.as,
|
|
9
9
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
10
|
-
|
|
10
|
+
_props$role = props.role,
|
|
11
|
+
role = _props$role === void 0 ? 'option' : _props$role,
|
|
11
12
|
_props$classPrefix = props.classPrefix,
|
|
12
13
|
classPrefix = _props$classPrefix === void 0 ? 'dropdown-menu-item' : _props$classPrefix,
|
|
14
|
+
active = props.active,
|
|
13
15
|
children = props.children,
|
|
14
16
|
className = props.className,
|
|
15
17
|
disabled = props.disabled,
|
|
@@ -18,13 +20,15 @@ var DropdownMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
18
20
|
onKeyDown = props.onKeyDown,
|
|
19
21
|
onSelect = props.onSelect,
|
|
20
22
|
renderItem = props.renderItem,
|
|
21
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "
|
|
22
|
-
var
|
|
23
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "role", "classPrefix", "active", "children", "className", "disabled", "focus", "value", "onKeyDown", "onSelect", "renderItem"]);
|
|
24
|
+
var _useCombobox = useCombobox(),
|
|
25
|
+
id = _useCombobox.id;
|
|
26
|
+
var handleClick = useEventCallback(function (event) {
|
|
23
27
|
event.preventDefault();
|
|
24
28
|
if (!disabled) {
|
|
25
29
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, event);
|
|
26
30
|
}
|
|
27
|
-
}
|
|
31
|
+
});
|
|
28
32
|
var _useClassNames = useClassNames(classPrefix),
|
|
29
33
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
30
34
|
var classes = withClassPrefix({
|
|
@@ -33,9 +37,10 @@ var DropdownMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
33
37
|
disabled: disabled
|
|
34
38
|
});
|
|
35
39
|
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
36
|
-
role:
|
|
40
|
+
role: role,
|
|
37
41
|
"aria-selected": active,
|
|
38
42
|
"aria-disabled": disabled,
|
|
43
|
+
id: id ? id + "-opt-" + value : undefined,
|
|
39
44
|
"data-key": value
|
|
40
45
|
}, rest, {
|
|
41
46
|
ref: ref,
|
|
@@ -47,18 +52,5 @@ var DropdownMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
47
52
|
className: classes
|
|
48
53
|
}, renderItem ? renderItem(value) : children));
|
|
49
54
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
classPrefix: PropTypes.string,
|
|
53
|
-
active: PropTypes.bool,
|
|
54
|
-
disabled: PropTypes.bool,
|
|
55
|
-
value: PropTypes.any,
|
|
56
|
-
onSelect: PropTypes.func,
|
|
57
|
-
onKeyDown: PropTypes.func,
|
|
58
|
-
focus: PropTypes.bool,
|
|
59
|
-
title: PropTypes.string,
|
|
60
|
-
className: PropTypes.string,
|
|
61
|
-
children: PropTypes.node,
|
|
62
|
-
as: PropTypes.elementType
|
|
63
|
-
};
|
|
64
|
-
export default DropdownMenuItem;
|
|
55
|
+
ListItem.displayName = 'ListItem';
|
|
56
|
+
export default ListItem;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WithAsProps } from '../@types/common';
|
|
3
|
+
export interface ListItemGroupProps extends WithAsProps, React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
}
|
|
5
|
+
declare const ListItemGroup: React.ForwardRefExoticComponent<ListItemGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
export default ListItemGroup;
|
|
@@ -4,10 +4,9 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
|
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
5
|
var _templateObject, _templateObject2;
|
|
6
6
|
import React from 'react';
|
|
7
|
-
import PropTypes from 'prop-types';
|
|
8
7
|
import { useClassNames } from '../utils';
|
|
9
8
|
import ArrowDown from '@rsuite/icons/legacy/ArrowDown';
|
|
10
|
-
var
|
|
9
|
+
var ListItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
10
|
var _props$as = props.as,
|
|
12
11
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
13
12
|
_props$classPrefix = props.classPrefix,
|
|
@@ -33,10 +32,5 @@ var DropdownMenuGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
33
32
|
className: prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["caret"])))
|
|
34
33
|
})));
|
|
35
34
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
classPrefix: PropTypes.string,
|
|
39
|
-
className: PropTypes.string,
|
|
40
|
-
children: PropTypes.node
|
|
41
|
-
};
|
|
42
|
-
export default DropdownMenuGroup;
|
|
35
|
+
ListItemGroup.displayName = 'ListItemGroup';
|
|
36
|
+
export default ListItemGroup;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ListProps, ListHandle } from '../Windowing';
|
|
3
|
+
import { StandardProps, ItemDataType } from '../@types/common';
|
|
4
|
+
export interface ListboxProps<Multiple = false> extends StandardProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
5
|
+
classPrefix: string;
|
|
6
|
+
data?: ItemDataType[];
|
|
7
|
+
group?: boolean;
|
|
8
|
+
groupBy?: string;
|
|
9
|
+
disabledItemValues?: any[];
|
|
10
|
+
activeItemValues?: any[];
|
|
11
|
+
focusItemValue?: any;
|
|
12
|
+
maxHeight?: number;
|
|
13
|
+
valueKey?: string;
|
|
14
|
+
labelKey?: string;
|
|
15
|
+
className?: string;
|
|
16
|
+
style?: React.CSSProperties;
|
|
17
|
+
listItemAs: React.ElementType | string;
|
|
18
|
+
listItemClassPrefix?: string;
|
|
19
|
+
listItemProps?: any;
|
|
20
|
+
rowHeight?: number;
|
|
21
|
+
rowGroupHeight?: number;
|
|
22
|
+
virtualized?: boolean;
|
|
23
|
+
listProps?: Partial<ListProps>;
|
|
24
|
+
listRef?: React.Ref<ListHandle>;
|
|
25
|
+
/** Custom selected option */
|
|
26
|
+
renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
|
|
27
|
+
renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
|
|
28
|
+
onSelect?: Multiple extends true ? (value: any, item: any, event: React.MouseEvent, checked: boolean) => void : Multiple extends false ? (value: any, item: any, event: React.MouseEvent) => void : any;
|
|
29
|
+
onGroupTitleClick?: (event: React.MouseEvent) => void;
|
|
30
|
+
}
|
|
31
|
+
export declare type ListboxComponent = React.ForwardRefExoticComponent<ListboxProps> & {
|
|
32
|
+
<Multiple = false>(props: ListboxProps<Multiple>): React.ReactElement | null;
|
|
33
|
+
};
|
|
34
|
+
declare const Listbox: ListboxComponent;
|
|
35
|
+
export default Listbox;
|