rsuite 5.2.0 → 5.2.1
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 +8 -0
- package/README.md +3 -44
- package/Sidenav/styles/index.less +4 -0
- package/cjs/CheckTreePicker/utils.d.ts +1 -1
- package/cjs/CheckTreePicker/utils.js +7 -6
- package/cjs/Dropdown/DropdownItem.js +14 -18
- package/cjs/Dropdown/useRenderDropdownItem.d.ts +2 -0
- package/cjs/Dropdown/useRenderDropdownItem.js +26 -0
- package/cjs/Sidenav/SidenavDropdownItem.js +17 -10
- package/dist/rsuite-rtl.css +3 -0
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +3 -0
- package/dist/rsuite.js +14 -3
- 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/CheckTreePicker/utils.d.ts +1 -1
- package/esm/CheckTreePicker/utils.js +7 -6
- package/esm/Dropdown/DropdownItem.js +13 -18
- package/esm/Dropdown/useRenderDropdownItem.d.ts +2 -0
- package/esm/Dropdown/useRenderDropdownItem.js +18 -0
- package/esm/Sidenav/SidenavDropdownItem.js +16 -10
- package/package.json +1 -1
|
@@ -19,7 +19,7 @@ export interface TreeNodesType {
|
|
|
19
19
|
[key: string]: TreeNodeType;
|
|
20
20
|
}
|
|
21
21
|
export declare function isEveryChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
|
|
22
|
-
export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType): boolean;
|
|
22
|
+
export declare function isSomeChildChecked(nodes: TreeNodesType, parent: TreeNodeType, childrenKey: string): boolean;
|
|
23
23
|
export declare function isSomeNodeHasChildren(data: any[], childrenKey: string): boolean;
|
|
24
24
|
/**
|
|
25
25
|
* is all siblings nodes is uncheckable
|
|
@@ -18,18 +18,19 @@ export function isEveryChildChecked(nodes, parent) {
|
|
|
18
18
|
return nodes[child.refKey].check;
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
export function isSomeChildChecked(nodes, parent) {
|
|
21
|
+
export function isSomeChildChecked(nodes, parent, childrenKey) {
|
|
22
22
|
if (_isNil(nodes[parent.refKey])) {
|
|
23
23
|
return false;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
var children = getChildrenByFlattenNodes(nodes, parent);
|
|
27
|
+
return children.some(function (child) {
|
|
28
|
+
var _child$childrenKey;
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
if ((child === null || child === void 0 ? void 0 : (_child$childrenKey = child[childrenKey]) === null || _child$childrenKey === void 0 ? void 0 : _child$childrenKey.length) > 0) {
|
|
31
|
+
return isSomeChildChecked(nodes, child, childrenKey);
|
|
32
|
+
}
|
|
31
33
|
|
|
32
|
-
return children.some(function (child) {
|
|
33
34
|
return nodes[child.refKey].check;
|
|
34
35
|
});
|
|
35
36
|
}
|
|
@@ -184,7 +185,7 @@ export function getNodeCheckState(_ref) {
|
|
|
184
185
|
return CHECK_STATE.CHECK;
|
|
185
186
|
}
|
|
186
187
|
|
|
187
|
-
if (isSomeChildChecked(nodes, node)) {
|
|
188
|
+
if (isSomeChildChecked(nodes, node, childrenKey)) {
|
|
188
189
|
nodes[node.refKey].checkAll = false;
|
|
189
190
|
return CHECK_STATE.INDETERMINATE;
|
|
190
191
|
}
|
|
@@ -15,6 +15,7 @@ import SafeAnchor from '../SafeAnchor';
|
|
|
15
15
|
import NavContext from '../Nav/NavContext';
|
|
16
16
|
import useInternalId from '../utils/useInternalId';
|
|
17
17
|
import { DropdownActionType } from './DropdownState';
|
|
18
|
+
import { useRenderDropdownItem } from './useRenderDropdownItem';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* The <Dropdown.Item> API
|
|
@@ -88,15 +89,7 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
88
89
|
};
|
|
89
90
|
}
|
|
90
91
|
}, [internalId, selected, dispatch]);
|
|
91
|
-
var renderDropdownItem =
|
|
92
|
-
if (Component === 'li') {
|
|
93
|
-
return ui;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
return /*#__PURE__*/React.createElement("li", {
|
|
97
|
-
role: "none presentation"
|
|
98
|
-
}, ui);
|
|
99
|
-
}, [Component]);
|
|
92
|
+
var renderDropdownItem = useRenderDropdownItem(Component);
|
|
100
93
|
|
|
101
94
|
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
102
95
|
return /*#__PURE__*/React.createElement(SidenavDropdownItem, _extends({
|
|
@@ -105,18 +98,18 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
105
98
|
}
|
|
106
99
|
|
|
107
100
|
if (divider) {
|
|
108
|
-
return renderDropdownItem(
|
|
101
|
+
return renderDropdownItem(_extends({
|
|
109
102
|
ref: ref,
|
|
110
|
-
role:
|
|
103
|
+
role: 'separator',
|
|
111
104
|
className: merge(prefix('divider'), className)
|
|
112
|
-
}, restProps))
|
|
105
|
+
}, restProps));
|
|
113
106
|
}
|
|
114
107
|
|
|
115
108
|
if (panel) {
|
|
116
|
-
return renderDropdownItem(
|
|
109
|
+
return renderDropdownItem(_extends({
|
|
117
110
|
ref: ref,
|
|
118
111
|
className: merge(prefix('panel'), className)
|
|
119
|
-
}, restProps)
|
|
112
|
+
}, restProps));
|
|
120
113
|
}
|
|
121
114
|
|
|
122
115
|
if (navbar) {
|
|
@@ -172,12 +165,14 @@ var DropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
172
165
|
dataAttributes['data-event-key-type'] = typeof eventKey;
|
|
173
166
|
}
|
|
174
167
|
|
|
175
|
-
return renderDropdownItem(
|
|
168
|
+
return renderDropdownItem(_extends({
|
|
176
169
|
ref: mergeRefs(ref, menuitemRef),
|
|
177
170
|
className: classes
|
|
178
|
-
}, menuitem, dataAttributes, restProps
|
|
179
|
-
|
|
180
|
-
|
|
171
|
+
}, menuitem, dataAttributes, restProps, {
|
|
172
|
+
children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
173
|
+
className: prefix('menu-icon')
|
|
174
|
+
}), children)
|
|
175
|
+
}));
|
|
181
176
|
});
|
|
182
177
|
});
|
|
183
178
|
DropdownItem.displayName = 'Dropdown.Item';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
export function useRenderDropdownItem(Component) {
|
|
3
|
+
return useCallback(function (props, OverrideComponent) {
|
|
4
|
+
if (Component === 'li') {
|
|
5
|
+
if (OverrideComponent) {
|
|
6
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
7
|
+
role: "none presentation"
|
|
8
|
+
}, /*#__PURE__*/React.createElement(OverrideComponent, props));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return /*#__PURE__*/React.createElement(Component, props);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
15
|
+
role: "none presentation"
|
|
16
|
+
}, /*#__PURE__*/React.createElement(Component, props));
|
|
17
|
+
}, [Component]);
|
|
18
|
+
}
|
|
@@ -9,6 +9,7 @@ import Ripple from '../Ripple';
|
|
|
9
9
|
import SafeAnchor from '../SafeAnchor';
|
|
10
10
|
import NavContext from '../Nav/NavContext';
|
|
11
11
|
import DropdownContext from '../Dropdown/DropdownContext';
|
|
12
|
+
import { useRenderDropdownItem } from '../Dropdown/useRenderDropdownItem';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Tree View Node
|
|
@@ -59,34 +60,39 @@ var SidenavDropdownItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
59
60
|
var menuitemEventHandlers = {
|
|
60
61
|
onClick: createChainedFunction(handleClick, onClick)
|
|
61
62
|
};
|
|
63
|
+
var renderDropdownItem = useRenderDropdownItem(Component);
|
|
62
64
|
|
|
63
65
|
if (divider) {
|
|
64
|
-
return
|
|
66
|
+
return renderDropdownItem(_extends({
|
|
65
67
|
ref: ref,
|
|
66
|
-
role:
|
|
68
|
+
role: 'separator',
|
|
67
69
|
style: style,
|
|
68
70
|
className: merge(prefix('divider'), className)
|
|
69
71
|
}, rest));
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
if (panel) {
|
|
73
|
-
return
|
|
75
|
+
return renderDropdownItem(_extends({
|
|
74
76
|
ref: ref,
|
|
75
|
-
role:
|
|
77
|
+
role: 'none presentation',
|
|
76
78
|
style: style,
|
|
77
79
|
className: merge(prefix('panel'), className)
|
|
78
|
-
}, rest
|
|
80
|
+
}, rest, {
|
|
81
|
+
children: children
|
|
82
|
+
}));
|
|
79
83
|
}
|
|
80
84
|
|
|
81
|
-
return
|
|
85
|
+
return renderDropdownItem(_extends({
|
|
82
86
|
ref: ref
|
|
83
87
|
}, rest, {
|
|
84
88
|
style: style,
|
|
85
89
|
className: classes,
|
|
86
|
-
|
|
87
|
-
}, menuitemEventHandlers
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
'aria-current': selected || undefined
|
|
91
|
+
}, menuitemEventHandlers, {
|
|
92
|
+
children: /*#__PURE__*/React.createElement(React.Fragment, null, icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
93
|
+
className: prefix('menu-icon')
|
|
94
|
+
}), children, /*#__PURE__*/React.createElement(Ripple, null))
|
|
95
|
+
}), SafeAnchor);
|
|
90
96
|
});
|
|
91
97
|
SidenavDropdownItem.displayName = 'Sidenav.Dropdown.Item';
|
|
92
98
|
SidenavDropdownItem.propTypes = {
|