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
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
6
|
exports.__esModule = true;
|
|
7
|
-
exports.default =
|
|
7
|
+
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 _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
|
|
13
12
|
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
14
13
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
@@ -19,7 +18,7 @@ var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRigh
|
|
|
19
18
|
var _getPosition = _interopRequireDefault(require("dom-lib/getPosition"));
|
|
20
19
|
var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
|
|
21
20
|
var emptyArray = [];
|
|
22
|
-
var
|
|
21
|
+
var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
23
22
|
var _props$as = props.as,
|
|
24
23
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
25
24
|
activeItemValue = props.activeItemValue,
|
|
@@ -42,17 +41,22 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
42
41
|
loadingItemsSet = props.loadingItemsSet,
|
|
43
42
|
_props$labelKey = props.labelKey,
|
|
44
43
|
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
44
|
+
style = props.style,
|
|
45
45
|
renderMenu = props.renderMenu,
|
|
46
46
|
renderMenuItem = props.renderMenuItem,
|
|
47
47
|
onSelect = props.onSelect,
|
|
48
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "renderMenu", "renderMenuItem", "onSelect"]);
|
|
48
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
|
|
49
49
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
50
50
|
merge = _useClassNames.merge,
|
|
51
51
|
prefix = _useClassNames.prefix;
|
|
52
52
|
var classes = merge(className, prefix('items'));
|
|
53
53
|
var rootRef = (0, _react.useRef)();
|
|
54
|
-
var _useCustom = (0, _utils.useCustom)(
|
|
54
|
+
var _useCustom = (0, _utils.useCustom)(),
|
|
55
55
|
rtl = _useCustom.rtl;
|
|
56
|
+
var _useCombobox = (0, _Picker.useCombobox)(),
|
|
57
|
+
id = _useCombobox.id,
|
|
58
|
+
labelId = _useCombobox.labelId,
|
|
59
|
+
popupType = _useCombobox.popupType;
|
|
56
60
|
(0, _react.useEffect)(function () {
|
|
57
61
|
var _rootRef$current;
|
|
58
62
|
var columns = ((_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelectorAll('[data-type="column"]')) || [];
|
|
@@ -71,7 +75,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
71
75
|
}
|
|
72
76
|
});
|
|
73
77
|
}, [prefix]);
|
|
74
|
-
var getCascadePaths =
|
|
78
|
+
var getCascadePaths = function getCascadePaths(layer, node) {
|
|
75
79
|
var paths = [];
|
|
76
80
|
for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
|
|
77
81
|
if (i < layer - 1 && cascadePaths) {
|
|
@@ -80,14 +84,19 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
80
84
|
}
|
|
81
85
|
paths.push(node);
|
|
82
86
|
return paths;
|
|
83
|
-
}
|
|
84
|
-
var handleSelect = function
|
|
87
|
+
};
|
|
88
|
+
var handleSelect = (0, _utils.useEventCallback)(function (layer, node, event) {
|
|
85
89
|
var isLeafNode = (0, _isNil.default)(node[childrenKey]);
|
|
86
90
|
var cascadePaths = getCascadePaths(layer + 1, node);
|
|
87
91
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
|
|
88
|
-
};
|
|
89
|
-
var renderCascadeNode = function renderCascadeNode(
|
|
92
|
+
});
|
|
93
|
+
var renderCascadeNode = function renderCascadeNode(nodeProps) {
|
|
90
94
|
var _loadingItemsSet$has;
|
|
95
|
+
var node = nodeProps.node,
|
|
96
|
+
index = nodeProps.index,
|
|
97
|
+
layer = nodeProps.layer,
|
|
98
|
+
focus = nodeProps.focus,
|
|
99
|
+
size = nodeProps.size;
|
|
91
100
|
var children = node[childrenKey];
|
|
92
101
|
var value = node[valueKey];
|
|
93
102
|
var label = node[labelKey];
|
|
@@ -99,16 +108,19 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
99
108
|
// Use `value` in keys when If `value` is string or number
|
|
100
109
|
var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
|
|
101
110
|
var Icon = loading ? _Spinner.default : rtl ? _AngleLeft.default : _AngleRight.default;
|
|
102
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
103
|
-
classPrefix: "picker-cascader-menu-item",
|
|
111
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.ListItem, {
|
|
104
112
|
as: 'li',
|
|
105
113
|
role: "treeitem",
|
|
114
|
+
"aria-level": layer + 1,
|
|
115
|
+
"aria-setsize": size,
|
|
116
|
+
"aria-posinset": index + 1,
|
|
117
|
+
"aria-label": typeof label === 'string' ? label : undefined,
|
|
118
|
+
classPrefix: "picker-cascader-menu-item",
|
|
106
119
|
key: layer + "-" + onlyKey,
|
|
107
120
|
disabled: disabled,
|
|
108
121
|
active: !(0, _isUndefined.default)(activeItemValue) && (0, _utils.shallowEqual)(activeItemValue, value),
|
|
109
122
|
focus: focus,
|
|
110
123
|
value: value,
|
|
111
|
-
"aria-owns": node.children ? 'treeitem-' + value + '-children' : undefined,
|
|
112
124
|
className: children ? prefix('has-children') : undefined,
|
|
113
125
|
onSelect: function onSelect(_value, event) {
|
|
114
126
|
return handleSelect(layer, node, event);
|
|
@@ -118,56 +130,44 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
118
130
|
spin: loading
|
|
119
131
|
}) : null);
|
|
120
132
|
};
|
|
121
|
-
var styles = {
|
|
122
|
-
width: cascadeData.length * menuWidth
|
|
123
|
-
};
|
|
124
133
|
var cascadeNodes = cascadeData.map(function (children, layer) {
|
|
125
134
|
var onlyKey = layer + "_" + children.length;
|
|
126
135
|
var parentNode = cascadePaths[layer - 1];
|
|
127
|
-
var menu = /*#__PURE__*/_react.default.createElement(
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
136
|
+
var menu = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
|
|
137
|
+
var focus = cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]);
|
|
138
|
+
return renderCascadeNode({
|
|
139
|
+
node: item,
|
|
140
|
+
index: index,
|
|
141
|
+
layer: layer,
|
|
142
|
+
focus: focus,
|
|
143
|
+
size: children.length
|
|
144
|
+
});
|
|
132
145
|
}));
|
|
133
|
-
return /*#__PURE__*/_react.default.createElement("
|
|
134
|
-
|
|
135
|
-
className: prefix('column'),
|
|
146
|
+
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
147
|
+
role: "group",
|
|
136
148
|
"data-layer": layer,
|
|
137
149
|
"data-type": 'column',
|
|
150
|
+
key: onlyKey,
|
|
151
|
+
className: prefix('column'),
|
|
138
152
|
style: {
|
|
139
153
|
height: menuHeight,
|
|
140
154
|
width: menuWidth
|
|
141
155
|
}
|
|
142
156
|
}, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
|
|
143
157
|
});
|
|
158
|
+
var styles = (0, _extends2.default)({}, style, {
|
|
159
|
+
width: cascadeData.length * menuWidth
|
|
160
|
+
});
|
|
144
161
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
145
|
-
role: "tree"
|
|
162
|
+
role: "tree",
|
|
163
|
+
id: id + "-" + popupType,
|
|
164
|
+
"aria-labelledby": labelId
|
|
146
165
|
}, rest, {
|
|
147
166
|
ref: (0, _utils.mergeRefs)(rootRef, ref),
|
|
148
|
-
className: classes
|
|
149
|
-
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
167
|
+
className: classes,
|
|
150
168
|
style: styles
|
|
151
|
-
}, cascadeNodes)
|
|
169
|
+
}), cascadeNodes);
|
|
152
170
|
});
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
disabledItemValues: _propTypes.default.array,
|
|
156
|
-
activeItemValue: _propTypes.default.any,
|
|
157
|
-
childrenKey: _propTypes.default.string,
|
|
158
|
-
valueKey: _propTypes.default.string,
|
|
159
|
-
labelKey: _propTypes.default.string,
|
|
160
|
-
menuWidth: _propTypes.default.number,
|
|
161
|
-
menuHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
162
|
-
className: _propTypes.default.string,
|
|
163
|
-
renderMenuItem: _propTypes.default.func,
|
|
164
|
-
renderMenu: _propTypes.default.func,
|
|
165
|
-
onSelect: _propTypes.default.func,
|
|
166
|
-
cascadeData: _propTypes.default.array,
|
|
167
|
-
cascadePaths: _propTypes.default.array
|
|
168
|
-
};
|
|
169
|
-
exports.dropdownMenuPropTypes = dropdownMenuPropTypes;
|
|
170
|
-
DropdownMenu.displayName = 'DropdownMenu';
|
|
171
|
-
DropdownMenu.propTypes = dropdownMenuPropTypes;
|
|
172
|
-
var _default = DropdownMenu;
|
|
171
|
+
TreeView.displayName = 'TreeView';
|
|
172
|
+
var _default = TreeView;
|
|
173
173
|
exports.default = _default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
+
import { ValueType } from './Cascader';
|
|
4
|
+
declare type SetLike<T = unknown> = {
|
|
5
|
+
has(value: T): boolean;
|
|
6
|
+
};
|
|
7
|
+
export interface TreeViewProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
8
|
+
classPrefix: string;
|
|
9
|
+
disabledItemValues: ValueType[];
|
|
10
|
+
activeItemValue?: ValueType | null;
|
|
11
|
+
childrenKey: string;
|
|
12
|
+
cascadeData: (readonly ItemDataType[])[];
|
|
13
|
+
loadingItemsSet?: SetLike<ItemDataType>;
|
|
14
|
+
cascadePaths: ItemDataType[];
|
|
15
|
+
valueKey: string;
|
|
16
|
+
labelKey: string;
|
|
17
|
+
menuWidth?: number;
|
|
18
|
+
menuHeight?: number | string;
|
|
19
|
+
renderMenuItem?: (itemLabel: React.ReactNode, item: ItemDataType) => React.ReactNode;
|
|
20
|
+
renderMenu?: (items: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
|
|
21
|
+
onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
|
|
22
|
+
}
|
|
23
|
+
declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
|
|
24
|
+
export default TreeView;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
exports.__esModule = true;
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
|
|
12
|
+
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
13
|
+
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
14
|
+
var _utils = require("../utils");
|
|
15
|
+
var _Picker = require("../Picker");
|
|
16
|
+
var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"));
|
|
17
|
+
var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
|
|
18
|
+
var _getPosition = _interopRequireDefault(require("dom-lib/getPosition"));
|
|
19
|
+
var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
|
|
20
|
+
var emptyArray = [];
|
|
21
|
+
var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
22
|
+
var _props$as = props.as,
|
|
23
|
+
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
24
|
+
activeItemValue = props.activeItemValue,
|
|
25
|
+
classPrefix = props.classPrefix,
|
|
26
|
+
className = props.className,
|
|
27
|
+
_props$childrenKey = props.childrenKey,
|
|
28
|
+
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
|
29
|
+
_props$disabledItemVa = props.disabledItemValues,
|
|
30
|
+
disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
|
|
31
|
+
_props$menuWidth = props.menuWidth,
|
|
32
|
+
menuWidth = _props$menuWidth === void 0 ? 120 : _props$menuWidth,
|
|
33
|
+
_props$menuHeight = props.menuHeight,
|
|
34
|
+
menuHeight = _props$menuHeight === void 0 ? 200 : _props$menuHeight,
|
|
35
|
+
_props$valueKey = props.valueKey,
|
|
36
|
+
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
37
|
+
_props$cascadeData = props.cascadeData,
|
|
38
|
+
cascadeData = _props$cascadeData === void 0 ? emptyArray : _props$cascadeData,
|
|
39
|
+
_props$cascadePaths = props.cascadePaths,
|
|
40
|
+
cascadePaths = _props$cascadePaths === void 0 ? emptyArray : _props$cascadePaths,
|
|
41
|
+
loadingItemsSet = props.loadingItemsSet,
|
|
42
|
+
_props$labelKey = props.labelKey,
|
|
43
|
+
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
44
|
+
style = props.style,
|
|
45
|
+
renderMenu = props.renderMenu,
|
|
46
|
+
renderMenuItem = props.renderMenuItem,
|
|
47
|
+
onSelect = props.onSelect,
|
|
48
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
|
|
49
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
50
|
+
merge = _useClassNames.merge,
|
|
51
|
+
prefix = _useClassNames.prefix;
|
|
52
|
+
var classes = merge(className, prefix('items'));
|
|
53
|
+
var rootRef = (0, _react.useRef)();
|
|
54
|
+
var _useCustom = (0, _utils.useCustom)(),
|
|
55
|
+
rtl = _useCustom.rtl;
|
|
56
|
+
var _useCombobox = (0, _Picker.useCombobox)(),
|
|
57
|
+
id = _useCombobox.id,
|
|
58
|
+
labelId = _useCombobox.labelId,
|
|
59
|
+
popupType = _useCombobox.popupType;
|
|
60
|
+
(0, _react.useEffect)(function () {
|
|
61
|
+
var _rootRef$current;
|
|
62
|
+
var columns = ((_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelectorAll('[data-type="column"]')) || [];
|
|
63
|
+
columns.forEach(function (column) {
|
|
64
|
+
if (!column) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
var activeItem = column.querySelector("." + prefix('item-focus'));
|
|
68
|
+
if (!activeItem) {
|
|
69
|
+
activeItem = column.querySelector("." + prefix('item-active'));
|
|
70
|
+
}
|
|
71
|
+
if (activeItem) {
|
|
72
|
+
var position = (0, _getPosition.default)(activeItem, column);
|
|
73
|
+
// Let the active option scroll into view.
|
|
74
|
+
(0, _scrollTop.default)(column, position === null || position === void 0 ? void 0 : position.top);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}, [prefix]);
|
|
78
|
+
var getCascadePaths = function getCascadePaths(layer, node) {
|
|
79
|
+
var paths = [];
|
|
80
|
+
for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
|
|
81
|
+
if (i < layer - 1 && cascadePaths) {
|
|
82
|
+
paths.push(cascadePaths[i]);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
paths.push(node);
|
|
86
|
+
return paths;
|
|
87
|
+
};
|
|
88
|
+
var handleSelect = (0, _utils.useEventCallback)(function (layer, node, event) {
|
|
89
|
+
var isLeafNode = (0, _isNil.default)(node[childrenKey]);
|
|
90
|
+
var cascadePaths = getCascadePaths(layer + 1, node);
|
|
91
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
|
|
92
|
+
});
|
|
93
|
+
var renderCascadeNode = function renderCascadeNode(nodeProps) {
|
|
94
|
+
var _loadingItemsSet$has;
|
|
95
|
+
var node = nodeProps.node,
|
|
96
|
+
index = nodeProps.index,
|
|
97
|
+
layer = nodeProps.layer,
|
|
98
|
+
focus = nodeProps.focus,
|
|
99
|
+
size = nodeProps.size;
|
|
100
|
+
var children = node[childrenKey];
|
|
101
|
+
var value = node[valueKey];
|
|
102
|
+
var label = node[labelKey];
|
|
103
|
+
var disabled = disabledItemValues.some(function (disabledValue) {
|
|
104
|
+
return (0, _utils.shallowEqual)(disabledValue, value);
|
|
105
|
+
});
|
|
106
|
+
var loading = (_loadingItemsSet$has = loadingItemsSet === null || loadingItemsSet === void 0 ? void 0 : loadingItemsSet.has(node)) !== null && _loadingItemsSet$has !== void 0 ? _loadingItemsSet$has : false;
|
|
107
|
+
|
|
108
|
+
// Use `value` in keys when If `value` is string or number
|
|
109
|
+
var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
|
|
110
|
+
var Icon = loading ? _Spinner.default : rtl ? _AngleLeft.default : _AngleRight.default;
|
|
111
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.ListItem, {
|
|
112
|
+
as: 'li',
|
|
113
|
+
role: "treeitem",
|
|
114
|
+
"aria-level": layer + 1,
|
|
115
|
+
"aria-setsize": size,
|
|
116
|
+
"aria-posinset": index + 1,
|
|
117
|
+
"aria-label": typeof label === 'string' ? label : undefined,
|
|
118
|
+
classPrefix: "picker-cascader-menu-item",
|
|
119
|
+
key: layer + "-" + onlyKey,
|
|
120
|
+
disabled: disabled,
|
|
121
|
+
active: !(0, _isUndefined.default)(activeItemValue) && (0, _utils.shallowEqual)(activeItemValue, value),
|
|
122
|
+
focus: focus,
|
|
123
|
+
value: value,
|
|
124
|
+
className: children ? prefix('has-children') : undefined,
|
|
125
|
+
onSelect: function onSelect(_value, event) {
|
|
126
|
+
return handleSelect(layer, node, event);
|
|
127
|
+
}
|
|
128
|
+
}, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/_react.default.createElement(Icon, {
|
|
129
|
+
className: prefix('caret'),
|
|
130
|
+
spin: loading,
|
|
131
|
+
"data-testid": "spinner"
|
|
132
|
+
}) : null);
|
|
133
|
+
};
|
|
134
|
+
var cascadeNodes = cascadeData.map(function (children, layer) {
|
|
135
|
+
var onlyKey = layer + "_" + children.length;
|
|
136
|
+
var parentNode = cascadePaths[layer - 1];
|
|
137
|
+
var menu = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
|
|
138
|
+
var focus = cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]);
|
|
139
|
+
return renderCascadeNode({
|
|
140
|
+
node: item,
|
|
141
|
+
index: index,
|
|
142
|
+
layer: layer,
|
|
143
|
+
focus: focus,
|
|
144
|
+
size: children.length
|
|
145
|
+
});
|
|
146
|
+
}));
|
|
147
|
+
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
148
|
+
role: "group",
|
|
149
|
+
"data-layer": layer,
|
|
150
|
+
"data-type": 'column',
|
|
151
|
+
key: onlyKey,
|
|
152
|
+
className: prefix('column'),
|
|
153
|
+
style: {
|
|
154
|
+
height: menuHeight,
|
|
155
|
+
width: menuWidth
|
|
156
|
+
}
|
|
157
|
+
}, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
|
|
158
|
+
});
|
|
159
|
+
var styles = (0, _extends2.default)({}, style, {
|
|
160
|
+
width: cascadeData.length * menuWidth
|
|
161
|
+
});
|
|
162
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
163
|
+
role: "tree",
|
|
164
|
+
id: id + "-" + popupType,
|
|
165
|
+
"aria-labelledby": labelId
|
|
166
|
+
}, rest, {
|
|
167
|
+
ref: (0, _utils.mergeRefs)(rootRef, ref),
|
|
168
|
+
className: classes,
|
|
169
|
+
style: styles
|
|
170
|
+
}), cascadeNodes);
|
|
171
|
+
});
|
|
172
|
+
TreeView.displayName = 'TreeView';
|
|
173
|
+
var _default = TreeView;
|
|
174
|
+
exports.default = _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
3
|
import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
@@ -12,7 +12,7 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
|
|
|
12
12
|
}
|
|
13
13
|
export interface CheckPickerComponent {
|
|
14
14
|
<T>(props: CheckPickerProps<T> & {
|
|
15
|
-
ref?: Ref<PickerHandle>;
|
|
15
|
+
ref?: React.Ref<PickerHandle>;
|
|
16
16
|
}): JSX.Element | null;
|
|
17
17
|
displayName?: string;
|
|
18
18
|
propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
|
|
@@ -86,11 +86,13 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
86
86
|
onClose = props.onClose,
|
|
87
87
|
onOpen = props.onOpen,
|
|
88
88
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "appearance", "classPrefix", "countable", "data", "disabledItemValues", "valueKey", "labelKey", "searchable", "virtualized", "cleanable", "placement", "menuAutoWidth", "menuMaxHeight", "menuClassName", "menuStyle", "locale", "placeholder", "disabled", "toggleAs", "style", "sticky", "value", "defaultValue", "groupBy", "listProps", "id", "sort", "searchBy", "renderMenuItem", "renderMenuGroup", "renderValue", "renderExtraFooter", "renderMenu", "onGroupTitleClick", "onSearch", "onEnter", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onClose", "onOpen"]);
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
90
|
+
trigger = _usePickerRef.trigger,
|
|
91
|
+
root = _usePickerRef.root,
|
|
92
|
+
target = _usePickerRef.target,
|
|
93
|
+
overlay = _usePickerRef.overlay,
|
|
94
|
+
list = _usePickerRef.list,
|
|
95
|
+
searchInput = _usePickerRef.searchInput;
|
|
94
96
|
var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
|
|
95
97
|
locale = _useCustom.locale;
|
|
96
98
|
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue || []),
|
|
@@ -100,18 +102,18 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
100
102
|
data: data,
|
|
101
103
|
valueKey: valueKey,
|
|
102
104
|
target: function target() {
|
|
103
|
-
return
|
|
105
|
+
return overlay.current;
|
|
104
106
|
}
|
|
105
107
|
}),
|
|
106
108
|
focusItemValue = _useFocusItemValue.focusItemValue,
|
|
107
109
|
setFocusItemValue = _useFocusItemValue.setFocusItemValue,
|
|
108
110
|
onFocusItem = _useFocusItemValue.onKeyDown;
|
|
109
|
-
var handleSearchCallback = (0,
|
|
111
|
+
var handleSearchCallback = (0, _utils.useEventCallback)(function (searchKeyword, filteredData, event) {
|
|
110
112
|
var _filteredData$;
|
|
111
113
|
// The first option after filtering is the focus.
|
|
112
114
|
setFocusItemValue(filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);
|
|
113
115
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);
|
|
114
|
-
}
|
|
116
|
+
});
|
|
115
117
|
|
|
116
118
|
// Use search keywords to filter options.
|
|
117
119
|
var _useSearch = (0, _Picker.useSearch)(data, {
|
|
@@ -145,17 +147,17 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
145
147
|
}
|
|
146
148
|
setStickyItems(nextStickyItems);
|
|
147
149
|
};
|
|
148
|
-
var handleChangeValue = (0,
|
|
150
|
+
var handleChangeValue = (0, _utils.useEventCallback)(function (value, event) {
|
|
149
151
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
150
|
-
}
|
|
151
|
-
var handleClean = (0,
|
|
152
|
+
});
|
|
153
|
+
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
152
154
|
if (disabled || !cleanable) {
|
|
153
155
|
return;
|
|
154
156
|
}
|
|
155
157
|
setValue([]);
|
|
156
158
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
157
159
|
handleChangeValue([], event);
|
|
158
|
-
}
|
|
160
|
+
});
|
|
159
161
|
var handleMenuPressEnter = function handleMenuPressEnter(event) {
|
|
160
162
|
var nextValue = (0, _clone.default)(value);
|
|
161
163
|
if (!focusItemValue) {
|
|
@@ -179,10 +181,10 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
179
181
|
};
|
|
180
182
|
var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
|
|
181
183
|
toggle: !focusItemValue || !active,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
trigger: trigger,
|
|
185
|
+
target: target,
|
|
186
|
+
overlay: overlay,
|
|
187
|
+
searchInput: searchInput,
|
|
186
188
|
active: active,
|
|
187
189
|
onExit: handleClean,
|
|
188
190
|
onMenuKeyDown: onFocusItem,
|
|
@@ -192,10 +194,10 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
192
194
|
setFocusItemValue(null);
|
|
193
195
|
}
|
|
194
196
|
}, rest));
|
|
195
|
-
var handleSelect = (0,
|
|
197
|
+
var handleSelect = (0, _utils.useEventCallback)(function (nextItemValue, item, event) {
|
|
196
198
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextItemValue, item, event);
|
|
197
|
-
}
|
|
198
|
-
var handleItemSelect = (0,
|
|
199
|
+
});
|
|
200
|
+
var handleItemSelect = (0, _utils.useEventCallback)(function (nextItemValue, item, event, checked) {
|
|
199
201
|
var nextValue = (0, _clone.default)(value);
|
|
200
202
|
if (checked) {
|
|
201
203
|
nextValue.push(nextItemValue);
|
|
@@ -208,22 +210,16 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
208
210
|
setFocusItemValue(nextItemValue);
|
|
209
211
|
handleSelect(nextValue, item, event);
|
|
210
212
|
handleChangeValue(nextValue, event);
|
|
211
|
-
}
|
|
212
|
-
var handleEntered = (0,
|
|
213
|
+
});
|
|
214
|
+
var handleEntered = (0, _utils.useEventCallback)(function () {
|
|
213
215
|
setActive(true);
|
|
214
216
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
215
|
-
}
|
|
216
|
-
var handleExited = (0,
|
|
217
|
+
});
|
|
218
|
+
var handleExited = (0, _utils.useEventCallback)(function () {
|
|
217
219
|
resetSearch();
|
|
218
220
|
setFocusItemValue(null);
|
|
219
221
|
setActive(false);
|
|
220
222
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
221
|
-
}, [onClose, setFocusItemValue, resetSearch]);
|
|
222
|
-
(0, _Picker.usePublicMethods)(ref, {
|
|
223
|
-
triggerRef: triggerRef,
|
|
224
|
-
overlayRef: overlayRef,
|
|
225
|
-
targetRef: targetRef,
|
|
226
|
-
listRef: listRef
|
|
227
223
|
});
|
|
228
224
|
var selectedItems = data.filter(function (item) {
|
|
229
225
|
return value === null || value === void 0 ? void 0 : value.some(function (val) {
|
|
@@ -256,7 +252,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
256
252
|
hasValue = false;
|
|
257
253
|
}
|
|
258
254
|
}
|
|
259
|
-
var
|
|
255
|
+
var renderPopup = function renderPopup(positionProps, speakerRef) {
|
|
260
256
|
var left = positionProps.left,
|
|
261
257
|
top = positionProps.top,
|
|
262
258
|
className = positionProps.className;
|
|
@@ -284,10 +280,9 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
284
280
|
} else if (typeof sort === 'function') {
|
|
285
281
|
items = items.sort(sort(false));
|
|
286
282
|
}
|
|
287
|
-
var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.
|
|
288
|
-
id: id ? id + "-listbox" : undefined,
|
|
283
|
+
var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {
|
|
289
284
|
listProps: listProps,
|
|
290
|
-
listRef:
|
|
285
|
+
listRef: list,
|
|
291
286
|
disabledItemValues: disabledItemValues,
|
|
292
287
|
valueKey: valueKey,
|
|
293
288
|
labelKey: labelKey,
|
|
@@ -295,7 +290,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
295
290
|
renderMenuItem: renderMenuItem,
|
|
296
291
|
maxHeight: menuMaxHeight,
|
|
297
292
|
classPrefix: 'picker-check-menu',
|
|
298
|
-
|
|
293
|
+
listItemAs: _Picker.ListCheckItem,
|
|
299
294
|
activeItemValues: value,
|
|
300
295
|
focusItemValue: focusItemValue,
|
|
301
296
|
data: [].concat(filteredStickyItems, items)
|
|
@@ -309,18 +304,18 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
309
304
|
}) : /*#__PURE__*/_react.default.createElement("div", {
|
|
310
305
|
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
|
|
311
306
|
}, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
|
|
312
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
313
|
-
ref: (0, _utils.mergeRefs)(
|
|
307
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
308
|
+
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
314
309
|
autoWidth: menuAutoWidth,
|
|
315
310
|
className: classes,
|
|
316
311
|
style: styles,
|
|
317
312
|
onKeyDown: onPickerKeyDown,
|
|
318
|
-
target:
|
|
313
|
+
target: trigger
|
|
319
314
|
}, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
|
|
320
315
|
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
321
316
|
onChange: handleSearch,
|
|
322
317
|
value: searchKeyword,
|
|
323
|
-
inputRef:
|
|
318
|
+
inputRef: searchInput
|
|
324
319
|
}), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
325
320
|
};
|
|
326
321
|
var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {
|
|
@@ -334,19 +329,21 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
334
329
|
classes = _usePickerClassName[0],
|
|
335
330
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
336
331
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
332
|
+
id: id,
|
|
333
|
+
multiple: true,
|
|
337
334
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
338
|
-
ref:
|
|
335
|
+
ref: trigger,
|
|
339
336
|
placement: placement,
|
|
340
337
|
onEnter: (0, _utils.createChainedFunction)(initStickyItems, onEnter),
|
|
341
338
|
onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
|
|
342
339
|
onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
|
|
343
|
-
speaker:
|
|
340
|
+
speaker: renderPopup
|
|
344
341
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
345
342
|
className: classes,
|
|
346
|
-
style: style
|
|
343
|
+
style: style,
|
|
344
|
+
ref: root
|
|
347
345
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
348
|
-
|
|
349
|
-
ref: targetRef,
|
|
346
|
+
ref: target,
|
|
350
347
|
appearance: appearance,
|
|
351
348
|
disabled: disabled,
|
|
352
349
|
onClean: handleClean,
|
|
@@ -356,7 +353,8 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
356
353
|
hasValue: hasValue,
|
|
357
354
|
active: active,
|
|
358
355
|
placement: placement,
|
|
359
|
-
inputValue: value
|
|
356
|
+
inputValue: value,
|
|
357
|
+
focusItemValue: focusItemValue
|
|
360
358
|
}), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
|
|
361
359
|
});
|
|
362
360
|
CheckPicker.displayName = 'CheckPicker';
|
|
@@ -21,8 +21,8 @@ export interface CheckTreeNodeProps extends WithAsProps {
|
|
|
21
21
|
allUncheckable?: boolean;
|
|
22
22
|
onExpand?: (nodeData: any) => void;
|
|
23
23
|
onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
renderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
|
|
25
|
+
renderTreeNode?: (nodeData: any) => React.ReactNode;
|
|
26
26
|
}
|
|
27
27
|
declare const CheckTreeNode: RsRefForwardingComponent<'div', CheckTreeNodeProps>;
|
|
28
28
|
export default CheckTreeNode;
|