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
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## [5.2.1](https://github.com/rsuite/rsuite/compare/v5.2.0...v5.2.1) (2021-11-12)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **CheckTree:** root node indeterminate state error ([#2124](https://github.com/rsuite/rsuite/issues/2124)) ([9dac0bc](https://github.com/rsuite/rsuite/commit/9dac0bc0e51b58b46aa85dac8a0348a9d73b2503))
|
|
6
|
+
- **Sidenav:** remove underline on hovered SidenavItem ([#2118](https://github.com/rsuite/rsuite/issues/2118)) ([56f7c3a](https://github.com/rsuite/rsuite/commit/56f7c3ad0f7ab31c7d5aef2fe2cde1661024f034))
|
|
7
|
+
- **Sidenav:** sidenav dropdown item accept as prop ([#2120](https://github.com/rsuite/rsuite/issues/2120)) ([5386999](https://github.com/rsuite/rsuite/commit/538699962dfd46faf41bb377833b0dcd06112039))
|
|
8
|
+
|
|
1
9
|
# [5.2.0](https://github.com/rsuite/rsuite/compare/v5.1.0...v5.2.0) (2021-11-05)
|
|
2
10
|
|
|
3
11
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -78,7 +78,8 @@ You can go through [full documentation][rsuite-doc-guide] or start with followin
|
|
|
78
78
|
- [Right-to-left][rsuite-doc-guide-rtl]
|
|
79
79
|
- [Components][rsuite-components-overview]
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
<details>
|
|
82
|
+
<summary>More examples</summary>
|
|
82
83
|
|
|
83
84
|
- [Management system][demo-admin]
|
|
84
85
|
- [Use modularized][demo-modular-import]
|
|
@@ -96,6 +97,7 @@ You can go through [full documentation][rsuite-doc-guide] or start with followin
|
|
|
96
97
|
- [Use in UmiJS][demo-umi-app]
|
|
97
98
|
- [Use in Snowpack][demo-snowpack]
|
|
98
99
|
- [Use in Vite][demo-vite]
|
|
100
|
+
</details>
|
|
99
101
|
|
|
100
102
|
## Previous major versions
|
|
101
103
|
|
|
@@ -113,53 +115,10 @@ and security fixes are supported until 6.x is in progress.
|
|
|
113
115
|
|
|
114
116
|
Detailed changes for each release are documented in the [release notes][release-notes].
|
|
115
117
|
|
|
116
|
-
## Development
|
|
117
|
-
|
|
118
|
-
### Test-Driven Development(TDD)
|
|
119
|
-
|
|
120
|
-
1. Fork `https://github.com/rsuite/rsuite` this repo.
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
$ git clone git@github.com:<YOUR NAME>/rsuite.git
|
|
124
|
-
$ cd rsuite
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
2. Install it and run
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
$ npm i
|
|
131
|
-
$ npm run tdd
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
3. Run a single component test case.
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
$ M=Button npm run tdd
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### UI-Driven Development
|
|
141
|
-
|
|
142
|
-
1. Fork `https://github.com/rsuite/rsuite` this repo.
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
$ git clone git@github.com:<YOUR NAME>/rsuite.git
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
2. Install it and run
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
$ npm i
|
|
152
|
-
$ npm run dev
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
3. Your show time. Open url http://127.0.0.1:3000/ in browser.
|
|
156
|
-
|
|
157
118
|
## Contribution
|
|
158
119
|
|
|
159
120
|
Make sure you've read the [guidelines][contributing] before you start contributing.
|
|
160
121
|
|
|
161
|
-
Editor preferences are available in the [.prettierrc][prettierrc] for easy use in common code editors. Read more and download plugins at https://prettier.io/.
|
|
162
|
-
|
|
163
122
|
## Supporting React Suite
|
|
164
123
|
|
|
165
124
|
If you like React Suite, you can show your support by either
|
|
@@ -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
|
|
@@ -41,18 +41,19 @@ function isEveryChildChecked(nodes, parent) {
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
function isSomeChildChecked(nodes, parent) {
|
|
44
|
+
function isSomeChildChecked(nodes, parent, childrenKey) {
|
|
45
45
|
if ((0, _isNil2.default)(nodes[parent.refKey])) {
|
|
46
46
|
return false;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
var children = (0, _treeUtils.getChildrenByFlattenNodes)(nodes, parent);
|
|
50
|
+
return children.some(function (child) {
|
|
51
|
+
var _child$childrenKey;
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
if ((child === null || child === void 0 ? void 0 : (_child$childrenKey = child[childrenKey]) === null || _child$childrenKey === void 0 ? void 0 : _child$childrenKey.length) > 0) {
|
|
54
|
+
return isSomeChildChecked(nodes, child, childrenKey);
|
|
55
|
+
}
|
|
54
56
|
|
|
55
|
-
return children.some(function (child) {
|
|
56
57
|
return nodes[child.refKey].check;
|
|
57
58
|
});
|
|
58
59
|
}
|
|
@@ -215,7 +216,7 @@ function getNodeCheckState(_ref) {
|
|
|
215
216
|
return _utils.CHECK_STATE.CHECK;
|
|
216
217
|
}
|
|
217
218
|
|
|
218
|
-
if (isSomeChildChecked(nodes, node)) {
|
|
219
|
+
if (isSomeChildChecked(nodes, node, childrenKey)) {
|
|
219
220
|
nodes[node.refKey].checkAll = false;
|
|
220
221
|
return _utils.CHECK_STATE.INDETERMINATE;
|
|
221
222
|
}
|
|
@@ -41,6 +41,8 @@ var _useInternalId = _interopRequireDefault(require("../utils/useInternalId"));
|
|
|
41
41
|
|
|
42
42
|
var _DropdownState = require("./DropdownState");
|
|
43
43
|
|
|
44
|
+
var _useRenderDropdownItem = require("./useRenderDropdownItem");
|
|
45
|
+
|
|
44
46
|
/**
|
|
45
47
|
* The <Dropdown.Item> API
|
|
46
48
|
* When used inside <Sidenav>, renders a <TreeviewItem>
|
|
@@ -112,15 +114,7 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
112
114
|
};
|
|
113
115
|
}
|
|
114
116
|
}, [internalId, selected, dispatch]);
|
|
115
|
-
var renderDropdownItem = (0,
|
|
116
|
-
if (Component === 'li') {
|
|
117
|
-
return ui;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return /*#__PURE__*/_react.default.createElement("li", {
|
|
121
|
-
role: "none presentation"
|
|
122
|
-
}, ui);
|
|
123
|
-
}, [Component]);
|
|
117
|
+
var renderDropdownItem = (0, _useRenderDropdownItem.useRenderDropdownItem)(Component);
|
|
124
118
|
|
|
125
119
|
if (sidenav !== null && sidenav !== void 0 && sidenav.expanded) {
|
|
126
120
|
return /*#__PURE__*/_react.default.createElement(_SidenavDropdownItem.default, (0, _extends2.default)({
|
|
@@ -129,18 +123,18 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
129
123
|
}
|
|
130
124
|
|
|
131
125
|
if (divider) {
|
|
132
|
-
return renderDropdownItem(
|
|
126
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
133
127
|
ref: ref,
|
|
134
|
-
role:
|
|
128
|
+
role: 'separator',
|
|
135
129
|
className: merge(prefix('divider'), className)
|
|
136
|
-
}, restProps))
|
|
130
|
+
}, restProps));
|
|
137
131
|
}
|
|
138
132
|
|
|
139
133
|
if (panel) {
|
|
140
|
-
return renderDropdownItem(
|
|
134
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
141
135
|
ref: ref,
|
|
142
136
|
className: merge(prefix('panel'), className)
|
|
143
|
-
}, restProps)
|
|
137
|
+
}, restProps));
|
|
144
138
|
}
|
|
145
139
|
|
|
146
140
|
if (navbar) {
|
|
@@ -195,12 +189,14 @@ var DropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
195
189
|
dataAttributes['data-event-key-type'] = typeof eventKey;
|
|
196
190
|
}
|
|
197
191
|
|
|
198
|
-
return renderDropdownItem(
|
|
192
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
199
193
|
ref: (0, _utils.mergeRefs)(ref, menuitemRef),
|
|
200
194
|
className: classes
|
|
201
|
-
}, menuitem, dataAttributes, restProps
|
|
202
|
-
|
|
203
|
-
|
|
195
|
+
}, menuitem, dataAttributes, restProps, {
|
|
196
|
+
children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
197
|
+
className: prefix('menu-icon')
|
|
198
|
+
}), children)
|
|
199
|
+
}));
|
|
204
200
|
});
|
|
205
201
|
});
|
|
206
202
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.useRenderDropdownItem = useRenderDropdownItem;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
function useRenderDropdownItem(Component) {
|
|
11
|
+
return (0, _react.useCallback)(function (props, OverrideComponent) {
|
|
12
|
+
if (Component === 'li') {
|
|
13
|
+
if (OverrideComponent) {
|
|
14
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
15
|
+
role: "none presentation"
|
|
16
|
+
}, /*#__PURE__*/_react.default.createElement(OverrideComponent, props));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(Component, props);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
23
|
+
role: "none presentation"
|
|
24
|
+
}, /*#__PURE__*/_react.default.createElement(Component, props));
|
|
25
|
+
}, [Component]);
|
|
26
|
+
}
|
|
@@ -29,6 +29,8 @@ var _NavContext = _interopRequireDefault(require("../Nav/NavContext"));
|
|
|
29
29
|
|
|
30
30
|
var _DropdownContext = _interopRequireDefault(require("../Dropdown/DropdownContext"));
|
|
31
31
|
|
|
32
|
+
var _useRenderDropdownItem = require("../Dropdown/useRenderDropdownItem");
|
|
33
|
+
|
|
32
34
|
/**
|
|
33
35
|
* Tree View Node
|
|
34
36
|
* @see https://www.w3.org/TR/wai-aria-practices-1.2/#TreeView
|
|
@@ -78,34 +80,39 @@ var SidenavDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props
|
|
|
78
80
|
var menuitemEventHandlers = {
|
|
79
81
|
onClick: (0, _utils.createChainedFunction)(handleClick, onClick)
|
|
80
82
|
};
|
|
83
|
+
var renderDropdownItem = (0, _useRenderDropdownItem.useRenderDropdownItem)(Component);
|
|
81
84
|
|
|
82
85
|
if (divider) {
|
|
83
|
-
return
|
|
86
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
84
87
|
ref: ref,
|
|
85
|
-
role:
|
|
88
|
+
role: 'separator',
|
|
86
89
|
style: style,
|
|
87
90
|
className: merge(prefix('divider'), className)
|
|
88
91
|
}, rest));
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
if (panel) {
|
|
92
|
-
return
|
|
95
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
93
96
|
ref: ref,
|
|
94
|
-
role:
|
|
97
|
+
role: 'none presentation',
|
|
95
98
|
style: style,
|
|
96
99
|
className: merge(prefix('panel'), className)
|
|
97
|
-
}, rest
|
|
100
|
+
}, rest, {
|
|
101
|
+
children: children
|
|
102
|
+
}));
|
|
98
103
|
}
|
|
99
104
|
|
|
100
|
-
return
|
|
105
|
+
return renderDropdownItem((0, _extends2.default)({
|
|
101
106
|
ref: ref
|
|
102
107
|
}, rest, {
|
|
103
108
|
style: style,
|
|
104
109
|
className: classes,
|
|
105
|
-
|
|
106
|
-
}, menuitemEventHandlers
|
|
107
|
-
|
|
108
|
-
|
|
110
|
+
'aria-current': selected || undefined
|
|
111
|
+
}, menuitemEventHandlers, {
|
|
112
|
+
children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, icon && /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
113
|
+
className: prefix('menu-icon')
|
|
114
|
+
}), children, /*#__PURE__*/_react.default.createElement(_Ripple.default, null))
|
|
115
|
+
}), _SafeAnchor.default);
|
|
109
116
|
});
|
|
110
117
|
|
|
111
118
|
SidenavDropdownItem.displayName = 'Sidenav.Dropdown.Item';
|
package/dist/rsuite-rtl.css
CHANGED
|
@@ -12565,6 +12565,9 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
|
|
|
12565
12565
|
outline: 0;
|
|
12566
12566
|
overflow: hidden;
|
|
12567
12567
|
}
|
|
12568
|
+
.rs-sidenav-item:hover {
|
|
12569
|
+
text-decoration: none;
|
|
12570
|
+
}
|
|
12568
12571
|
.rs-sidenav-item:focus-visible,
|
|
12569
12572
|
.rs-sidenav-item.rs-sidenav-item-focus {
|
|
12570
12573
|
-webkit-box-shadow: inset var(--rs-state-focus-shadow-slim);
|