@lemon-fe/components 1.4.12 → 1.4.13-alpha.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/es/sider-tree/index.d.ts +4 -0
- package/es/sider-tree/index.js +39 -28
- package/package.json +2 -2
package/es/sider-tree/index.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ interface Props<KeyType> extends Omit<TreeProps, 'onSelect' | 'selectedKeys' | '
|
|
|
16
16
|
defaultExpandedKeys?: KeyType[];
|
|
17
17
|
active?: boolean;
|
|
18
18
|
height?: number | 'auto';
|
|
19
|
+
/**
|
|
20
|
+
* @description 是否在搜索时保留父节点
|
|
21
|
+
*/
|
|
22
|
+
filterKeepParents?: boolean;
|
|
19
23
|
}
|
|
20
24
|
declare function SiderTreeTabs(props: {
|
|
21
25
|
tabs: {
|
package/es/sider-tree/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var _excluded = ["tabs", "children"],
|
|
2
|
-
_excluded2 = ["data", "showSearch", "placeholder", "onSelect", "filterNode", "operation", "header", "footer", "height"];
|
|
2
|
+
_excluded2 = ["data", "showSearch", "placeholder", "onSelect", "filterNode", "operation", "header", "footer", "height", "filterKeepParents"];
|
|
3
3
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
4
4
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
5
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
@@ -73,6 +73,7 @@ export default function SiderTree(props) {
|
|
|
73
73
|
header = props.header,
|
|
74
74
|
footer = props.footer,
|
|
75
75
|
heightProp = props.height,
|
|
76
|
+
filterKeepParents = props.filterKeepParents,
|
|
76
77
|
restProps = _objectWithoutProperties(props, _excluded2);
|
|
77
78
|
var _useState = useState(''),
|
|
78
79
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -87,14 +88,13 @@ export default function SiderTree(props) {
|
|
|
87
88
|
SiderTreeLocale = _useLocaleReceiver2[0];
|
|
88
89
|
var tree = useMemo(function () {
|
|
89
90
|
var list = mData;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
});
|
|
91
|
+
var items = new Set();
|
|
92
|
+
var addedNodes = new Set();
|
|
93
|
+
var shouldInclude = function shouldInclude(item) {
|
|
94
|
+
return filterNode ? filterNode(keywords, item) : item.title.toString().includes(keywords);
|
|
95
|
+
};
|
|
96
|
+
if (keywords && !filterKeepParents) {
|
|
97
|
+
list = list.filter(shouldInclude);
|
|
98
98
|
}
|
|
99
99
|
var map = new Map(list.map(function (item) {
|
|
100
100
|
return [item.key, {
|
|
@@ -102,30 +102,32 @@ export default function SiderTree(props) {
|
|
|
102
102
|
parent: item.parent,
|
|
103
103
|
icon: item.icon,
|
|
104
104
|
data: item,
|
|
105
|
-
title:
|
|
106
|
-
operation: operation,
|
|
107
|
-
node: item,
|
|
108
|
-
prefixCls: prefix()
|
|
109
|
-
})
|
|
105
|
+
title: item.title
|
|
110
106
|
}];
|
|
111
107
|
}));
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (item.parent !== undefined) {
|
|
116
|
-
parent = map.get(item.parent);
|
|
108
|
+
list.forEach(function (item) {
|
|
109
|
+
if (keywords && !shouldInclude(item)) {
|
|
110
|
+
return;
|
|
117
111
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if (
|
|
122
|
-
|
|
112
|
+
var parent;
|
|
113
|
+
var node = map.get(item.key);
|
|
114
|
+
while (node) {
|
|
115
|
+
if (addedNodes.has(node)) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
parent = node.parent ? map.get(node.parent) : undefined;
|
|
119
|
+
if (parent) {
|
|
120
|
+
parent.children = parent.children || [];
|
|
121
|
+
parent.children.push(node);
|
|
122
|
+
} else {
|
|
123
|
+
items.add(node);
|
|
123
124
|
}
|
|
124
|
-
|
|
125
|
+
addedNodes.add(node);
|
|
126
|
+
node = parent;
|
|
125
127
|
}
|
|
126
128
|
});
|
|
127
|
-
return items;
|
|
128
|
-
}, [mData, keywords]);
|
|
129
|
+
return _toConsumableArray(items);
|
|
130
|
+
}, [mData, keywords, filterKeepParents]);
|
|
129
131
|
var handleChange = useDebounce(function (value) {
|
|
130
132
|
setKeywords(value);
|
|
131
133
|
}, 300);
|
|
@@ -141,14 +143,23 @@ export default function SiderTree(props) {
|
|
|
141
143
|
prefix: /*#__PURE__*/React.createElement(Icons.Search, null)
|
|
142
144
|
});
|
|
143
145
|
}
|
|
146
|
+
var prefixCls = prefix();
|
|
144
147
|
var bodyContent = tree.length <= 0 ? /*#__PURE__*/React.createElement("div", {
|
|
145
148
|
className: prefix('empty')
|
|
146
149
|
}, /*#__PURE__*/React.createElement(EmptyImage, null), /*#__PURE__*/React.createElement("div", null, SiderTreeLocale.noDataText)) : /*#__PURE__*/React.createElement(Tree, _extends({
|
|
150
|
+
// @ts-ignore antd Tree type error
|
|
147
151
|
treeData: tree,
|
|
148
152
|
itemHeight: 28,
|
|
149
153
|
showLine: true,
|
|
150
154
|
height: height,
|
|
151
|
-
|
|
155
|
+
titleRender: function titleRender(node) {
|
|
156
|
+
return /*#__PURE__*/React.createElement(TreeNodeTitle, {
|
|
157
|
+
operation: operation,
|
|
158
|
+
node: node.data,
|
|
159
|
+
prefixCls: prefixCls
|
|
160
|
+
});
|
|
161
|
+
},
|
|
162
|
+
onSelect: function onSelect(keys, info) {
|
|
152
163
|
if (_onSelect) {
|
|
153
164
|
_onSelect(info.node.data, info);
|
|
154
165
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemon-fe/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.13-alpha.0",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"registry": "https://registry.npmjs.org"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "00899f57f0b55f7f3a06850c2d264a47ba675a44"
|
|
62
62
|
}
|