@lemon-fe/components 1.4.12 → 1.4.13
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/data-grid/components/custom-panel/field-modal.d.ts +2 -0
- package/es/data-grid/components/custom-panel/field-modal.js +17 -3
- package/es/data-grid/components/custom-panel/index.js +81 -70
- package/es/data-grid/components/custom-panel/item.js +2 -2
- package/es/data-grid/components/custom-panel/typings.d.ts +1 -0
- package/es/data-grid/index.d.ts +1 -1
- package/es/data-grid/index.js +22 -3
- package/es/data-grid/locale/en_US.js +1 -0
- package/es/data-grid/locale/locale.d.ts +1 -0
- package/es/data-grid/locale/vi.js +1 -0
- package/es/data-grid/locale/zh_CN.js +1 -0
- package/es/data-grid/locale/zh_Hant_HK.js +1 -0
- package/es/sider-tree/index.d.ts +4 -0
- package/es/sider-tree/index.js +39 -28
- package/package.json +2 -2
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { FieldCol, Node } from './typings';
|
|
3
|
+
import type { ColGroupDef } from 'ag-grid-community';
|
|
3
4
|
interface Props {
|
|
4
5
|
enableSummary: boolean;
|
|
5
6
|
open?: boolean | FieldCol;
|
|
6
7
|
onCancel: () => void;
|
|
7
8
|
onOk: (field: FieldCol) => void;
|
|
8
9
|
nodes: Node[];
|
|
10
|
+
groups: ColGroupDef[];
|
|
9
11
|
}
|
|
10
12
|
export default function FieldModal(props: Props): JSX.Element;
|
|
11
13
|
export {};
|
|
@@ -26,7 +26,8 @@ export default function FieldModal(props) {
|
|
|
26
26
|
_onCancel = props.onCancel,
|
|
27
27
|
nodes = props.nodes,
|
|
28
28
|
onOk = props.onOk,
|
|
29
|
-
enableSummary = props.enableSummary
|
|
29
|
+
enableSummary = props.enableSummary,
|
|
30
|
+
groups = props.groups;
|
|
30
31
|
var _useState = useState(false),
|
|
31
32
|
_useState2 = _slicedToArray(_useState, 2),
|
|
32
33
|
open = _useState2[0],
|
|
@@ -113,7 +114,8 @@ export default function FieldModal(props) {
|
|
|
113
114
|
expression: '',
|
|
114
115
|
summary: false,
|
|
115
116
|
summaryType: 1,
|
|
116
|
-
decimalPlaces: 2
|
|
117
|
+
decimalPlaces: 2,
|
|
118
|
+
groupId: undefined
|
|
117
119
|
});
|
|
118
120
|
}
|
|
119
121
|
} else {
|
|
@@ -121,7 +123,8 @@ export default function FieldModal(props) {
|
|
|
121
123
|
setOpen(true);
|
|
122
124
|
form.setFieldsValue(_objectSpread(_objectSpread({}, openProp), {}, {
|
|
123
125
|
expression: formatExpression(openProp.expression),
|
|
124
|
-
decimalPlaces: (_openProp$decimalPlac = openProp.decimalPlaces) !== null && _openProp$decimalPlac !== void 0 ? _openProp$decimalPlac : 2
|
|
126
|
+
decimalPlaces: (_openProp$decimalPlac = openProp.decimalPlaces) !== null && _openProp$decimalPlac !== void 0 ? _openProp$decimalPlac : 2,
|
|
127
|
+
groupId: openProp.groupId
|
|
125
128
|
}));
|
|
126
129
|
}
|
|
127
130
|
} else {
|
|
@@ -181,6 +184,17 @@ export default function FieldModal(props) {
|
|
|
181
184
|
required: true
|
|
182
185
|
}]
|
|
183
186
|
}, /*#__PURE__*/React.createElement(Input, null)), /*#__PURE__*/React.createElement(Form.Item, {
|
|
187
|
+
label: fieldModal.customColumnParentHeaderText,
|
|
188
|
+
name: "groupId"
|
|
189
|
+
}, /*#__PURE__*/React.createElement(Select, {
|
|
190
|
+
options: groups.map(function (i) {
|
|
191
|
+
return {
|
|
192
|
+
label: i.headerName,
|
|
193
|
+
value: i.groupId
|
|
194
|
+
};
|
|
195
|
+
}),
|
|
196
|
+
allowClear: true
|
|
197
|
+
})), /*#__PURE__*/React.createElement(Form.Item, {
|
|
184
198
|
label: fieldModal.customColumnExpressionText,
|
|
185
199
|
name: 'expression',
|
|
186
200
|
rules: [{
|
|
@@ -66,82 +66,92 @@ export default function CustomColumnPanel(params) {
|
|
|
66
66
|
setState(columnApi.getColumnState());
|
|
67
67
|
}, 16);
|
|
68
68
|
var handleChangeKeywords = useDebounce(setKeywords, 200);
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
state.forEach(function (item, idx) {
|
|
79
|
-
var column = columnApi.getColumn(item.colId);
|
|
80
|
-
if (column === null) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
var def = column.getColDef();
|
|
84
|
-
if (def.suppressColumnsToolPanel) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
var title = def.headerName || def.field || '';
|
|
88
|
-
var originNode = {
|
|
89
|
-
index: idx,
|
|
90
|
-
key: item.colId,
|
|
91
|
-
id: item.colId,
|
|
92
|
-
column: column,
|
|
93
|
-
title: title,
|
|
94
|
-
children: [],
|
|
95
|
-
leaf: [],
|
|
96
|
-
disabled: def.lockVisible || false,
|
|
97
|
-
visible: column.isVisible() ? 1 : 0
|
|
69
|
+
var _useMemo = useMemo(function () {
|
|
70
|
+
var items = [];
|
|
71
|
+
var prevPath = [];
|
|
72
|
+
var groupMap = new Map();
|
|
73
|
+
var isUserColGroup = function isUserColGroup(colGroupDef) {
|
|
74
|
+
if (colGroupDef !== null && Object.keys(colGroupDef).length > 0) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
98
78
|
};
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
79
|
+
state.forEach(function (item, idx) {
|
|
80
|
+
var column = columnApi.getColumn(item.colId);
|
|
81
|
+
if (column === null) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
var def = column.getColDef();
|
|
85
|
+
if (def.suppressColumnsToolPanel) {
|
|
86
|
+
return;
|
|
107
87
|
}
|
|
108
|
-
var
|
|
109
|
-
var
|
|
88
|
+
var title = def.headerName || def.field || '';
|
|
89
|
+
var originNode = {
|
|
110
90
|
index: idx,
|
|
111
|
-
key:
|
|
112
|
-
id:
|
|
113
|
-
|
|
114
|
-
title:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
91
|
+
key: item.colId,
|
|
92
|
+
id: item.colId,
|
|
93
|
+
column: column,
|
|
94
|
+
title: title,
|
|
95
|
+
children: [],
|
|
96
|
+
leaf: [],
|
|
97
|
+
disabled: def.lockVisible || false,
|
|
98
|
+
visible: column.isVisible() ? 1 : 0
|
|
118
99
|
};
|
|
119
|
-
node =
|
|
120
|
-
path
|
|
121
|
-
parent =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (node1 !== undefined && node2 !== undefined && node1.id === node2.id) {
|
|
128
|
-
if (!mergeFlag) {
|
|
129
|
-
node1.children = [].concat(_toConsumableArray(node1.children), _toConsumableArray(node2.children));
|
|
130
|
-
mergeFlag = true;
|
|
100
|
+
var node = originNode;
|
|
101
|
+
var path = [node];
|
|
102
|
+
var parent = column.getOriginalParent();
|
|
103
|
+
while (parent) {
|
|
104
|
+
var groupDef = parent.getColGroupDef();
|
|
105
|
+
if (!isUserColGroup(groupDef)) {
|
|
106
|
+
parent = parent.getOriginalParent();
|
|
107
|
+
continue;
|
|
131
108
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
109
|
+
if (groupDef.groupId) {
|
|
110
|
+
var group = groupMap.get(groupDef.groupId);
|
|
111
|
+
if (!group) {
|
|
112
|
+
groupMap.set(groupDef.groupId, groupDef);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
var id = "$$group-".concat(parent.getGroupId());
|
|
116
|
+
var parentNode = {
|
|
117
|
+
index: idx,
|
|
118
|
+
key: "".concat(id, "-").concat(item.colId),
|
|
119
|
+
id: id,
|
|
120
|
+
children: [node],
|
|
121
|
+
title: groupDef.headerName,
|
|
122
|
+
leaf: [originNode],
|
|
123
|
+
disabled: originNode.disabled,
|
|
124
|
+
visible: originNode.visible
|
|
125
|
+
};
|
|
126
|
+
node = parentNode;
|
|
127
|
+
path.unshift(node);
|
|
128
|
+
parent = parent.getOriginalParent();
|
|
136
129
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
130
|
+
var mergeFlag = false;
|
|
131
|
+
for (var i = path.length - 1; i >= 0; i--) {
|
|
132
|
+
var node1 = prevPath[i];
|
|
133
|
+
var node2 = path[i];
|
|
134
|
+
if (node1 !== undefined && node2 !== undefined && node1.id === node2.id) {
|
|
135
|
+
if (!mergeFlag) {
|
|
136
|
+
node1.children = [].concat(_toConsumableArray(node1.children), _toConsumableArray(node2.children));
|
|
137
|
+
mergeFlag = true;
|
|
138
|
+
}
|
|
139
|
+
node1.leaf = [].concat(_toConsumableArray(node1.leaf), _toConsumableArray(node2.leaf));
|
|
140
|
+
node1.disabled = node1.disabled && node2.disabled;
|
|
141
|
+
node1.visible = node1.visible === 1 && node2.visible === 1 ? 1 : node1.visible === 1 || node2.visible === 1 ? 2 : 0;
|
|
142
|
+
path[i] = node1;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (!mergeFlag) {
|
|
146
|
+
items.push(path[0]);
|
|
147
|
+
}
|
|
148
|
+
prevPath = path;
|
|
149
|
+
});
|
|
150
|
+
return [items, groupMap];
|
|
151
|
+
}, [state, columnApi]),
|
|
152
|
+
_useMemo2 = _slicedToArray(_useMemo, 2),
|
|
153
|
+
list = _useMemo2[0],
|
|
154
|
+
groups = _useMemo2[1];
|
|
145
155
|
var handleSearch = function handleSearch() {
|
|
146
156
|
var index = -1;
|
|
147
157
|
var highlight = [];
|
|
@@ -399,6 +409,7 @@ export default function CustomColumnPanel(params) {
|
|
|
399
409
|
open: field,
|
|
400
410
|
enableSummary: enableSummary,
|
|
401
411
|
nodes: list,
|
|
412
|
+
groups: _toConsumableArray(groups.values()),
|
|
402
413
|
onCancel: function onCancel() {
|
|
403
414
|
setField(false);
|
|
404
415
|
},
|
|
@@ -24,7 +24,7 @@ var Item = /*#__PURE__*/memo(function (props) {
|
|
|
24
24
|
var column = node.column;
|
|
25
25
|
var colDef = (column === null || column === void 0 ? void 0 : column.getColDef()) || {};
|
|
26
26
|
var _useDraggable = useDraggable({
|
|
27
|
-
id: node.
|
|
27
|
+
id: node.key,
|
|
28
28
|
data: node,
|
|
29
29
|
disabled: colDef.lockPosition === true
|
|
30
30
|
}),
|
|
@@ -32,7 +32,7 @@ var Item = /*#__PURE__*/memo(function (props) {
|
|
|
32
32
|
listeners = _useDraggable.listeners,
|
|
33
33
|
setDragRef = _useDraggable.setNodeRef;
|
|
34
34
|
var _useDroppable = useDroppable({
|
|
35
|
-
id: node.
|
|
35
|
+
id: node.key,
|
|
36
36
|
data: node,
|
|
37
37
|
disabled: colDef.lockPosition === true
|
|
38
38
|
}),
|
package/es/data-grid/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ declare const Editors: {
|
|
|
17
17
|
Text: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & import("./typings").TextEditorParams<any> & React.RefAttributes<import("ag-grid-react").ICellEditorReactComp>>;
|
|
18
18
|
Date: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & import("./typings").DateEditorParams<any> & React.RefAttributes<import("ag-grid-react").ICellEditorReactComp>>;
|
|
19
19
|
Number: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & import("./typings").NumberEditorParams<any> & React.RefAttributes<import("ag-grid-react").ICellEditorReactComp>>;
|
|
20
|
-
Select: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & Pick<import("antd").SelectProps<any, import("antd/lib/select").BaseOptionType>, "disabled" | "
|
|
20
|
+
Select: React.ForwardRefExoticComponent<import("ag-grid-community").ICellEditorParams<any, any, any> & Pick<import("antd").SelectProps<any, import("antd/lib/select").BaseOptionType>, "disabled" | "mode" | "allowClear" | "showSearch" | "optionFilterProp" | "options" | "virtual" | "listHeight"> & {
|
|
21
21
|
fieldNames?: {
|
|
22
22
|
label: string;
|
|
23
23
|
value: string;
|
package/es/data-grid/index.js
CHANGED
|
@@ -590,11 +590,17 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
|
|
|
590
590
|
});
|
|
591
591
|
if (idx >= 0) {
|
|
592
592
|
newFields[idx] = field;
|
|
593
|
+
if (this.fields[idx].groupId !== field.groupId) {
|
|
594
|
+
newFields.splice(idx, 1);
|
|
595
|
+
newFields.push(_objectSpread(_objectSpread({}, field), {}, {
|
|
596
|
+
id: "$$field-".concat(Date.now())
|
|
597
|
+
}));
|
|
598
|
+
}
|
|
593
599
|
} else {
|
|
594
600
|
newFields.push(field);
|
|
595
601
|
}
|
|
596
602
|
this.fields = newFields;
|
|
597
|
-
this.updateColumnDefs(
|
|
603
|
+
this.updateColumnDefs();
|
|
598
604
|
}
|
|
599
605
|
}, {
|
|
600
606
|
key: "getField",
|
|
@@ -921,6 +927,7 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
|
|
|
921
927
|
rowSelection = _this$props8.rowSelection,
|
|
922
928
|
locale = _this$props8.locale;
|
|
923
929
|
var leafColIds = [];
|
|
930
|
+
var groups = new Map();
|
|
924
931
|
var map = function map(cols) {
|
|
925
932
|
return cols.map(function (item) {
|
|
926
933
|
if (isColumn(item)) {
|
|
@@ -1085,7 +1092,11 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
|
|
|
1085
1092
|
} else if (_title !== undefined) {
|
|
1086
1093
|
_opts.headerName = _title.toString();
|
|
1087
1094
|
}
|
|
1088
|
-
|
|
1095
|
+
var group = _objectSpread(_objectSpread({}, _opts), rest);
|
|
1096
|
+
if (group.groupId) {
|
|
1097
|
+
groups.set(group.groupId, group);
|
|
1098
|
+
}
|
|
1099
|
+
return group;
|
|
1089
1100
|
}
|
|
1090
1101
|
});
|
|
1091
1102
|
};
|
|
@@ -1230,7 +1241,15 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
|
|
|
1230
1241
|
}
|
|
1231
1242
|
return numericValueA - numericValueB;
|
|
1232
1243
|
};
|
|
1233
|
-
|
|
1244
|
+
if (field.groupId) {
|
|
1245
|
+
fieldCol.spanHeaderHeight = false;
|
|
1246
|
+
var group = groups.get(field.groupId);
|
|
1247
|
+
if (group) {
|
|
1248
|
+
group.children.push(fieldCol);
|
|
1249
|
+
}
|
|
1250
|
+
} else {
|
|
1251
|
+
result.push(fieldCol);
|
|
1252
|
+
}
|
|
1234
1253
|
});
|
|
1235
1254
|
if (rowSelection !== undefined) {
|
|
1236
1255
|
var checkboxSelection = rowSelection.checkboxSelection;
|
|
@@ -32,6 +32,7 @@ var locale = {
|
|
|
32
32
|
customColumnExpressionText: 'Expression',
|
|
33
33
|
customColumnExpressionPlaceholder: 'Custom Expression length limit of 300',
|
|
34
34
|
customColumnDecimalPlacesText: 'Decimal places',
|
|
35
|
+
customColumnParentHeaderText: 'The corresponding superior header',
|
|
35
36
|
summaryText: 'Summary or not',
|
|
36
37
|
summaryTypeText: 'Rule',
|
|
37
38
|
summaryTypeContentText: "\n <div>\n <p>1. The sum of custom column data values to get the total value</p>\n <p>\n 2. The total value is calculated based on the formula from the data source\n <br />\n Fields added in the formula are summed first, then the total is calculated based on the formula\n </p>\n </div>\n ",
|
|
@@ -11,6 +11,7 @@ export interface DataGridLocale {
|
|
|
11
11
|
customColumnExpressionText: string;
|
|
12
12
|
customColumnExpressionPlaceholder: string;
|
|
13
13
|
customColumnDecimalPlacesText: string;
|
|
14
|
+
customColumnParentHeaderText: string;
|
|
14
15
|
summaryText: string;
|
|
15
16
|
summaryTypeText: string;
|
|
16
17
|
summaryTypeContentText: string;
|
|
@@ -29,6 +29,7 @@ var locale = {
|
|
|
29
29
|
customColumnExpressionText: 'Công thức tùy chỉnh',
|
|
30
30
|
customColumnExpressionPlaceholder: 'Độ dài tối đa của công thức tùy chỉnh là 300',
|
|
31
31
|
customColumnDecimalPlacesText: 'Số chữ số thập phân',
|
|
32
|
+
customColumnParentHeaderText: 'Tiêu đề bảng cấp trên mà nó thuộc về',
|
|
32
33
|
summaryText: 'Có thống kê tổng cộng không?',
|
|
33
34
|
summaryTypeText: 'Quy tắc tính tổng cộng',
|
|
34
35
|
summaryTypeContentText: "\n <div>\n <p>1. T\xEDnh t\u1ED5ng gi\xE1 tr\u1ECB d\u1EEF li\u1EC7u c\u1EE7a c\u1ED9t t\xF9y ch\u1EC9nh \u0111\u1EC3 c\xF3 \u0111\u01B0\u1EE3c gi\xE1 tr\u1ECB t\u1ED5ng c\u1ED9ng.</p>\n <p>\n 2. Ngu\u1ED3n d\u1EEF li\u1EC7u t\xEDnh to\xE1n gi\xE1 tr\u1ECB t\u1ED5ng c\u1ED9ng theo c\xF4ng th\u1EE9c t\xEDnh to\xE1n.\n <br />\n C\xE1c tr\u01B0\u1EDDng \u0111\u01B0\u1EE3c th\xEAm v\xE0o trong c\xF4ng th\u1EE9c s\u1EBD \u0111\u01B0\u1EE3c t\xEDnh t\u1ED5ng tr\u01B0\u1EDBc, sau \u0111\xF3 t\xEDnh to\xE1n gi\xE1 tr\u1ECB t\u1ED5ng c\u1ED9ng theo c\xF4ng th\u1EE9c.\n </p>\n </div>\n ",
|
|
@@ -29,6 +29,7 @@ var locale = {
|
|
|
29
29
|
customColumnExpressionText: '自定义公式',
|
|
30
30
|
customColumnExpressionPlaceholder: '自定义公式长度上限300',
|
|
31
31
|
customColumnDecimalPlacesText: '小数位数',
|
|
32
|
+
customColumnParentHeaderText: '所属上级表头',
|
|
32
33
|
summaryText: '是否统计合计',
|
|
33
34
|
summaryTypeText: '合计规则',
|
|
34
35
|
summaryTypeContentText: "\n <div>\n <p>1\u3001\u81EA\u5B9A\u4E49\u5217\u6570\u636E\u503C\u6C42\u548C\u5F97\u51FA\u5408\u8BA1\u503C</p>\n <p>\n 2\u3001\u6570\u636E\u6E90\u6839\u636E\u8BA1\u7B97\u516C\u5F0F\u5F97\u51FA\u5408\u8BA1\u503C\n <br />\n \u516C\u5F0F\u4E2D\u6DFB\u52A0\u7684\u5B57\u6BB5\u5148\u6C42\u548C\uFF0C\u518D\u6839\u636E\u8BA1\u7B97\u516C\u5F0F\u8BA1\u7B97\u51FA\u5408\u8BA1\n </p>\n </div>\n ",
|
|
@@ -29,6 +29,7 @@ var locale = {
|
|
|
29
29
|
customColumnExpressionText: '自定義公式',
|
|
30
30
|
customColumnExpressionPlaceholder: '自定義公式長度上限300',
|
|
31
31
|
customColumnDecimalPlacesText: '小數位數',
|
|
32
|
+
customColumnParentHeaderText: '所屬上級表頭',
|
|
32
33
|
summaryText: '是否統計合計',
|
|
33
34
|
summaryTypeText: '合計規則',
|
|
34
35
|
summaryTypeContentText: "\n <div>\n <p>1\u3001\u81EA\u5B9A\u7FA9\u5217\u6578\u64DA\u503C\u6C42\u548C\u5F97\u51FA\u5408\u8A08\u503C</p>\n <p>\n 2\u3001\u6578\u64DA\u6E90\u6839\u64DA\u8A08\u7B97\u516C\u5F0F\u5F97\u51FA\u5408\u8A08\u503C\n <br />\n \u516C\u5F0F\u4E2D\u6DFB\u52A0\u7684\u5B57\u6BB5\u5148\u6C42\u548C\uFF0C\u518D\u6839\u64DA\u8A08\u7B97\u516C\u5F0F\u8A08\u7B97\u51FA\u5408\u8A08\n </p>\n </div>\n ",
|
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().toLowerCase().includes(keywords.toLowerCase());
|
|
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",
|
|
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": "bdf13cf37730209f309871c203b8206526bcbdaf"
|
|
62
62
|
}
|