@sheinx/hooks 3.6.0-beta.3 → 3.6.0-beta.4
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
- package/cjs/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/cjs/components/use-cascader/use-cascader.type.d.ts +2 -1
- package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.js +2 -1
- package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
- package/cjs/components/use-input/use-input-format.js +12 -4
- package/cjs/components/use-table/use-table-tree.d.ts +13 -0
- package/cjs/components/use-table/use-table-tree.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-tree.js +68 -1
- package/cjs/components/use-table/use-table-virtual.js +3 -3
- package/cjs/components/use-tree/index.d.ts +2 -1
- package/cjs/components/use-tree/index.d.ts.map +1 -1
- package/cjs/components/use-tree/index.js +7 -0
- package/cjs/components/use-tree/use-tree-node.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree-node.js +1 -5
- package/cjs/components/use-tree/use-tree-node.type.d.ts +18 -0
- package/cjs/components/use-tree/use-tree-node.type.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree-virtual-node.d.ts +13 -0
- package/cjs/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
- package/cjs/components/use-tree/use-tree-virtual-node.js +92 -0
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +179 -7
- package/cjs/components/use-tree/use-tree.type.d.ts +31 -1
- package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/cjs/utils/is.d.ts +2 -0
- package/cjs/utils/is.d.ts.map +1 -1
- package/cjs/utils/is.js +5 -2
- package/cjs/utils/object.d.ts.map +1 -1
- package/cjs/utils/object.js +6 -1
- package/cjs/utils/warning.js +5 -5
- package/esm/common/use-filter/use-filter.d.ts.map +1 -1
- package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/esm/components/use-cascader/use-cascader.type.d.ts +2 -1
- package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/esm/components/use-form/use-form.d.ts.map +1 -1
- package/esm/components/use-form/use-form.js +2 -1
- package/esm/components/use-input/use-input-format.d.ts.map +1 -1
- package/esm/components/use-input/use-input-format.js +12 -4
- package/esm/components/use-table/use-table-tree.d.ts +13 -0
- package/esm/components/use-table/use-table-tree.d.ts.map +1 -1
- package/esm/components/use-table/use-table-tree.js +67 -0
- package/esm/components/use-table/use-table-virtual.js +3 -3
- package/esm/components/use-tree/index.d.ts +2 -1
- package/esm/components/use-tree/index.d.ts.map +1 -1
- package/esm/components/use-tree/index.js +2 -1
- package/esm/components/use-tree/use-tree-node.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree-node.js +1 -5
- package/esm/components/use-tree/use-tree-node.type.d.ts +18 -0
- package/esm/components/use-tree/use-tree-node.type.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree-virtual-node.d.ts +13 -0
- package/esm/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
- package/esm/components/use-tree/use-tree-virtual-node.js +85 -0
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +181 -9
- package/esm/components/use-tree/use-tree.type.d.ts +31 -1
- package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/esm/utils/is.d.ts +2 -0
- package/esm/utils/is.d.ts.map +1 -1
- package/esm/utils/is.js +4 -1
- package/esm/utils/object.d.ts.map +1 -1
- package/esm/utils/object.js +6 -1
- package/esm/utils/warning.js +5 -5
- package/package.json +1 -1
@@ -1,5 +1,18 @@
|
|
1
1
|
import type { BaseTableProps } from './use-table.type';
|
2
2
|
import { OptionalToRequired } from '../../common/type';
|
3
|
+
type treeDataInfoType = {
|
4
|
+
id: string | number;
|
5
|
+
level: number;
|
6
|
+
data: any;
|
7
|
+
pid: null | string | number;
|
8
|
+
};
|
9
|
+
interface GetExpandDataVirtualResult {
|
10
|
+
treeData: any[];
|
11
|
+
treeExpandLevel: Map<any, number>;
|
12
|
+
unmatchExpandKeys: (string | number)[];
|
13
|
+
treeDataInfo: treeDataInfoType[];
|
14
|
+
}
|
15
|
+
export declare const getExpandVirtualData: (_treeData: any[], keys: (string | number)[], keygen: any, treeColumnsName?: string) => GetExpandDataVirtualResult;
|
3
16
|
export interface UseTableTreeProps extends Pick<OptionalToRequired<BaseTableProps<any>>, 'onTreeExpand' | 'treeExpandKeys' | 'defaultTreeExpandKeys' | 'keygen'> {
|
4
17
|
treeColumnsName: string | undefined;
|
5
18
|
data: any[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD,KAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,CAAC;IACV,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;CAC7B,CAAC;AAOF,UAAU,0BAA0B;IAClC,QAAQ,EAAE,GAAG,EAAE,CAAC;IAChB,eAAe,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,iBAAiB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAwCD,eAAO,MAAM,oBAAoB,cACpB,GAAG,EAAE,QACV,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,UACjB,GAAG,oBACO,MAAM,KACvB,0BAyDF,CAAC;AAEF,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACvC,cAAc,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,QAAQ,CACvE;IACD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB;;;;;;+BA6BR,GAAG,SAAS,MAAM;iCAjBhB,GAAG,SAAS,MAAM;;CA4DhE,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
@@ -54,6 +54,73 @@ var getExpandData = function getExpandData(_treeData, keys, keygen, treeColumnsN
|
|
54
54
|
unmatchExpandKeys: unmatchExpandKeys
|
55
55
|
};
|
56
56
|
};
|
57
|
+
export var getExpandVirtualData = function getExpandVirtualData(_treeData, keys, keygen, treeColumnsName) {
|
58
|
+
var expandKeys = keys;
|
59
|
+
var expandSet = new Set(expandKeys);
|
60
|
+
var unmatchExpandKeys = [];
|
61
|
+
var treeExpandLevel = new Map();
|
62
|
+
if (expandSet.size === 0 || !treeColumnsName) {
|
63
|
+
var _treeDataInfo = _treeData.map(function (item, index) {
|
64
|
+
return {
|
65
|
+
id: getKey(keygen, item, index),
|
66
|
+
level: 1,
|
67
|
+
data: item,
|
68
|
+
pid: null
|
69
|
+
};
|
70
|
+
});
|
71
|
+
return {
|
72
|
+
treeData: _treeData,
|
73
|
+
treeExpandLevel: treeExpandLevel,
|
74
|
+
unmatchExpandKeys: unmatchExpandKeys,
|
75
|
+
treeDataInfo: _treeDataInfo
|
76
|
+
};
|
77
|
+
}
|
78
|
+
var treeData = _toConsumableArray(_treeData || []);
|
79
|
+
var treeDataInfo = treeData.map(function (item) {
|
80
|
+
return {
|
81
|
+
id: getKey(keygen, item),
|
82
|
+
level: 1,
|
83
|
+
data: item,
|
84
|
+
pid: null
|
85
|
+
};
|
86
|
+
});
|
87
|
+
var _loop2 = function _loop2() {
|
88
|
+
if (expandSet.size === 0) return 1; // break
|
89
|
+
var item = treeData[i];
|
90
|
+
var key = getKey(keygen, item, i);
|
91
|
+
var parentLevel = treeExpandLevel.get(key) || 0;
|
92
|
+
var children = isObject(item) && item[treeColumnsName];
|
93
|
+
if (expandSet.has(key)) {
|
94
|
+
if (children && children.length > 0) {
|
95
|
+
var nodes = [];
|
96
|
+
children.forEach(function (child) {
|
97
|
+
var node = {
|
98
|
+
id: getKey(keygen, child),
|
99
|
+
level: parentLevel + 2,
|
100
|
+
data: child,
|
101
|
+
pid: key
|
102
|
+
};
|
103
|
+
nodes.push(node);
|
104
|
+
treeExpandLevel.set(getKey(keygen, child), parentLevel + 1);
|
105
|
+
});
|
106
|
+
treeData.splice.apply(treeData, [i + 1, 0].concat(_toConsumableArray(children)));
|
107
|
+
treeDataInfo.splice.apply(treeDataInfo, [i + 1, 0].concat(nodes));
|
108
|
+
expandSet.delete(key);
|
109
|
+
} else {
|
110
|
+
unmatchExpandKeys.push(key);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
};
|
114
|
+
for (var i = 0; i < treeData.length; i++) {
|
115
|
+
if (_loop2()) break;
|
116
|
+
}
|
117
|
+
return {
|
118
|
+
treeData: treeData,
|
119
|
+
treeExpandLevel: treeExpandLevel,
|
120
|
+
unmatchExpandKeys: unmatchExpandKeys,
|
121
|
+
treeDataInfo: treeDataInfo
|
122
|
+
};
|
123
|
+
};
|
57
124
|
export var useTableTree = function useTableTree(props) {
|
58
125
|
var _useState = useState(props.defaultTreeExpandKeys || []),
|
59
126
|
_useState2 = _slicedToArray(_useState, 2),
|
@@ -163,7 +163,7 @@ var useTableVirtual = function useTableVirtual(props) {
|
|
163
163
|
});
|
164
164
|
}
|
165
165
|
});
|
166
|
-
var updateIndexAndTopFromTop = function updateIndexAndTopFromTop(scrollTop) {
|
166
|
+
var updateIndexAndTopFromTop = function updateIndexAndTopFromTop(scrollTop, fromDrag) {
|
167
167
|
var _props$scrollRef$curr;
|
168
168
|
if (props.disabled) return;
|
169
169
|
var sum = 0;
|
@@ -203,7 +203,7 @@ var useTableVirtual = function useTableVirtual(props) {
|
|
203
203
|
setStartIndex(currentIndex);
|
204
204
|
|
205
205
|
// startIndex处于上方某个合并行的中间一行时,可能引起translate闪烁
|
206
|
-
if (startIndex < currentIndex) {
|
206
|
+
if (rowSpanInfo && !fromDrag && startIndex < currentIndex) {
|
207
207
|
context.autoAddRows = currentIndex - startIndex;
|
208
208
|
setTimeout(function () {
|
209
209
|
context.autoAddRows = 0;
|
@@ -263,7 +263,7 @@ var useTableVirtual = function useTableVirtual(props) {
|
|
263
263
|
// 拖动滚动条
|
264
264
|
if (fromDrag) {
|
265
265
|
var top = y * max;
|
266
|
-
updateIndexAndTopFromTop(top);
|
266
|
+
updateIndexAndTopFromTop(top, fromDrag);
|
267
267
|
if (context.rateTimer) clearTimeout(context.rateTimer);
|
268
268
|
context.rateTimer = setTimeout(function () {
|
269
269
|
updateRateScroll(y);
|
@@ -1,5 +1,6 @@
|
|
1
1
|
export { default, default as useTree } from './use-tree';
|
2
|
-
export type { BaseTreeProps, UpdateFunc, TreePathType, TreeModeType } from './use-tree.type';
|
2
|
+
export type { BaseTreeProps, UpdateFunc, TreePathType, TreeModeType, DisabledOption, FlatNodeType, } from './use-tree.type';
|
3
3
|
export { default as useTreeNode } from './use-tree-node';
|
4
|
+
export { default as useTreeVirtualNode } from './use-tree-virtual-node';
|
4
5
|
export type { BaseTreeNodeProps, UpdateType } from './use-tree-node.type';
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-tree-node.d.ts","sourceRoot":"","sources":["use-tree-node.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,WAAW;kBAMmB,MAAM,SAAS,OAAO;;;;;;;;
|
1
|
+
{"version":3,"file":"use-tree-node.d.ts","sourceRoot":"","sources":["use-tree-node.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,QAAA,MAAM,WAAW;kBAMmB,MAAM,SAAS,OAAO;;;;;;;;CA+CzD,CAAC;AACF,eAAe,WAAW,CAAC"}
|
@@ -41,11 +41,7 @@ var useTreeNode = function useTreeNode(props) {
|
|
41
41
|
break;
|
42
42
|
}
|
43
43
|
});
|
44
|
-
var handleToggle = function handleToggle() {
|
45
|
-
// const newExpand = !expanded;
|
46
|
-
// setExpanded(newExpand);
|
47
|
-
// if (onToggle) onToggle(id, newExpand);
|
48
|
-
};
|
44
|
+
var handleToggle = function handleToggle() {};
|
49
45
|
var isLeaf = function isLeaf() {
|
50
46
|
var children = data[childrenKey];
|
51
47
|
if (children && children.length > 0) return false;
|
@@ -1,5 +1,6 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { KeygenResult } from '../../common/type';
|
3
|
+
import { TreeDatum } from './use-tree.type';
|
3
4
|
export type UpdateType = 'active' | 'expanded' | 'fetching';
|
4
5
|
export type UpdateFunc = (name: string, active: boolean) => void;
|
5
6
|
export interface NodeState {
|
@@ -12,8 +13,25 @@ export interface BaseTreeNodeProps<DataItem, Value> {
|
|
12
13
|
data: DataItem;
|
13
14
|
childrenKey: keyof DataItem;
|
14
15
|
element: React.RefObject<HTMLDivElement>;
|
16
|
+
dragImageStyle?: React.CSSProperties;
|
15
17
|
dragImageSelector: (data?: DataItem) => string | undefined;
|
18
|
+
bindNode: (id: KeygenResult, update: UpdateFunc, data: DataItem) => {
|
19
|
+
expanded: boolean;
|
20
|
+
active: boolean;
|
21
|
+
};
|
22
|
+
content: HTMLDivElement | null;
|
23
|
+
loader?: (key: KeygenResult, data: DataItem) => void;
|
24
|
+
onToggle?: (id: Value, expanded: boolean) => void;
|
25
|
+
onDrop?: (data: DataItem[], key: KeygenResult, targetKey: KeygenResult, position: number) => void;
|
26
|
+
}
|
27
|
+
export interface BaseTreeVirtualNodeProps<DataItem, Value> {
|
28
|
+
id: KeygenResult;
|
29
|
+
data: DataItem;
|
30
|
+
expanded?: boolean;
|
31
|
+
childrenKey: keyof DataItem;
|
32
|
+
element: React.RefObject<HTMLDivElement>;
|
16
33
|
dragImageStyle?: React.CSSProperties;
|
34
|
+
datum?: TreeDatum<DataItem>;
|
17
35
|
bindNode: (id: KeygenResult, update: UpdateFunc, data: DataItem) => {
|
18
36
|
expanded: boolean;
|
19
37
|
active: boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-tree-node.type.d.ts","sourceRoot":"","sources":["use-tree-node.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"use-tree-node.type.d.ts","sourceRoot":"","sources":["use-tree-node.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK;IAChD,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,QAAQ,EAAE,CACR,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,KACX;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACnG;AAED,MAAM,WAAW,wBAAwB,CAAC,QAAQ,EAAE,KAAK;IACvD,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,QAAQ,EAAE,CACR,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,QAAQ,KACX;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACnG"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { BaseTreeVirtualNodeProps } from './use-tree-node.type';
|
2
|
+
declare const useTreeVirtualNode: <DataItem, Value>(props: BaseTreeVirtualNodeProps<DataItem, Value>) => {
|
3
|
+
update: (key: string, value: boolean) => void;
|
4
|
+
active: boolean;
|
5
|
+
expanded: boolean;
|
6
|
+
fetching: boolean;
|
7
|
+
isLeaf: () => boolean;
|
8
|
+
setFetching: (v: boolean) => void;
|
9
|
+
setExpanded: (v: boolean) => void;
|
10
|
+
onToggle: () => void;
|
11
|
+
};
|
12
|
+
export default useTreeVirtualNode;
|
13
|
+
//# sourceMappingURL=use-tree-virtual-node.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"use-tree-virtual-node.d.ts","sourceRoot":"","sources":["use-tree-virtual-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,QAAA,MAAM,kBAAkB;kBAMY,MAAM,SAAS,OAAO;;;;;qBAoB1B,OAAO;qBASP,OAAO;;CAkCtC,CAAC;AACF,eAAe,kBAAkB,CAAC"}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
7
|
+
import { useEffect, useState } from 'react';
|
8
|
+
import usePersistFn from "../../common/use-persist-fn";
|
9
|
+
var useTreeVirtualNode = function useTreeVirtualNode(props) {
|
10
|
+
var _datum$dataFlatStatus, _datum$dataFlatStatus2, _datum$dataFlatStatus3;
|
11
|
+
var id = props.id,
|
12
|
+
data = props.data,
|
13
|
+
childrenKey = props.childrenKey,
|
14
|
+
bindNode = props.bindNode,
|
15
|
+
loader = props.loader,
|
16
|
+
datum = props.datum;
|
17
|
+
var _useState = useState((datum === null || datum === void 0 || (_datum$dataFlatStatus = datum.dataFlatStatusMap.get(id)) === null || _datum$dataFlatStatus === void 0 ? void 0 : _datum$dataFlatStatus.active) || false),
|
18
|
+
_useState2 = _slicedToArray(_useState, 2),
|
19
|
+
active = _useState2[0],
|
20
|
+
setActive = _useState2[1];
|
21
|
+
var _useState3 = useState((datum === null || datum === void 0 || (_datum$dataFlatStatus2 = datum.dataFlatStatusMap.get(id)) === null || _datum$dataFlatStatus2 === void 0 ? void 0 : _datum$dataFlatStatus2.expanded) || false),
|
22
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
23
|
+
expanded = _useState4[0],
|
24
|
+
setExpanded = _useState4[1];
|
25
|
+
var _useState5 = useState((datum === null || datum === void 0 || (_datum$dataFlatStatus3 = datum.dataFlatStatusMap.get(id)) === null || _datum$dataFlatStatus3 === void 0 ? void 0 : _datum$dataFlatStatus3.fetching) || false),
|
26
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
27
|
+
fetching = _useState6[0],
|
28
|
+
setFetching = _useState6[1];
|
29
|
+
var update = usePersistFn(function (key, value) {
|
30
|
+
switch (key) {
|
31
|
+
case 'active':
|
32
|
+
if (value !== active) {
|
33
|
+
setActive(value);
|
34
|
+
}
|
35
|
+
break;
|
36
|
+
case 'expanded':
|
37
|
+
setExpanded(value);
|
38
|
+
break;
|
39
|
+
case 'fetching':
|
40
|
+
if (value !== fetching) {
|
41
|
+
setFetching(value);
|
42
|
+
}
|
43
|
+
break;
|
44
|
+
}
|
45
|
+
});
|
46
|
+
var handleToggle = function handleToggle() {};
|
47
|
+
var handleSetFetchind = function handleSetFetchind(v) {
|
48
|
+
datum === null || datum === void 0 || datum.dataFlatStatusMap.set(id, {
|
49
|
+
active: active,
|
50
|
+
expanded: expanded,
|
51
|
+
fetching: v
|
52
|
+
});
|
53
|
+
setFetching(v);
|
54
|
+
};
|
55
|
+
var handleSetExpanded = function handleSetExpanded(v) {
|
56
|
+
datum === null || datum === void 0 || datum.dataFlatStatusMap.set(id, {
|
57
|
+
active: active,
|
58
|
+
expanded: v,
|
59
|
+
fetching: fetching
|
60
|
+
});
|
61
|
+
setExpanded(v);
|
62
|
+
};
|
63
|
+
var isLeaf = function isLeaf() {
|
64
|
+
var children = data[childrenKey];
|
65
|
+
if (children && children.length > 0) return false;
|
66
|
+
if (Array.isArray(children) || children === null) return true;
|
67
|
+
if (fetching && !children) return false;
|
68
|
+
if (loader && !fetching) return false;
|
69
|
+
return true;
|
70
|
+
};
|
71
|
+
useEffect(function () {
|
72
|
+
bindNode(id, update, data);
|
73
|
+
}, []);
|
74
|
+
return {
|
75
|
+
update: update,
|
76
|
+
active: active,
|
77
|
+
expanded: expanded,
|
78
|
+
fetching: fetching,
|
79
|
+
isLeaf: isLeaf,
|
80
|
+
setFetching: handleSetFetchind,
|
81
|
+
setExpanded: handleSetExpanded,
|
82
|
+
onToggle: handleToggle
|
83
|
+
};
|
84
|
+
};
|
85
|
+
export default useTreeVirtualNode;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,
|
1
|
+
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EAGV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;CA8nBZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
@@ -1,3 +1,9 @@
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
2
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
3
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
5
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
6
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
1
7
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
2
8
|
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."); }
|
3
9
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
@@ -11,15 +17,15 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
11
17
|
import { useState, useEffect, useRef } from 'react';
|
12
18
|
import useLatestObj from "../../common/use-latest-obj";
|
13
19
|
import { useInputAble } from "../../common/use-input-able";
|
20
|
+
import { getExpandVirtualData } from "../use-table/use-table-tree";
|
14
21
|
import { usePersistFn } from "../../common/use-persist-fn";
|
15
|
-
import { isFunc, isString, isNumber, isArray, isUnMatchedData } from "../../utils/is";
|
16
|
-
import { devUseWarning } from "../../utils";
|
22
|
+
import { isFunc, isString, isNumber, isArray, isUnMatchedData, isOptionalDisabled } from "../../utils/is";
|
23
|
+
import { devUseWarning, produce } from "../../utils";
|
17
24
|
function toArray(value) {
|
18
25
|
if (!value) return [];
|
19
26
|
if (!Array.isArray(value)) return [value];
|
20
27
|
return value;
|
21
28
|
}
|
22
|
-
var global_tree_map = new Map();
|
23
29
|
export var MODE = {
|
24
30
|
/**
|
25
31
|
* 返回全选数据,包含父节点和子节点
|
@@ -52,6 +58,7 @@ var useTree = function useTree(props) {
|
|
52
58
|
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
53
59
|
keygen = props.keygen,
|
54
60
|
mode = props.mode,
|
61
|
+
virtual = props.virtual,
|
55
62
|
activeProp = props.active,
|
56
63
|
expandedProp = props.expanded,
|
57
64
|
_props$dataUpdate = props.dataUpdate,
|
@@ -59,14 +66,19 @@ var useTree = function useTree(props) {
|
|
59
66
|
_props$defaultExpande = props.defaultExpanded,
|
60
67
|
defaultExpanded = _props$defaultExpande === void 0 ? [] : _props$defaultExpande,
|
61
68
|
defaultExpandAll = props.defaultExpandAll,
|
62
|
-
disabledProps = props.disabled,
|
63
69
|
unmatch = props.unmatch,
|
64
70
|
isControlled = props.isControlled,
|
65
71
|
onExpandProp = props.onExpand;
|
72
|
+
var disabledProps = isOptionalDisabled(props.disabled) ? props.disabled.disabled : props.disabled;
|
73
|
+
var isRealtime = isOptionalDisabled(props.disabled) ? props.disabled.isRealtime : false;
|
66
74
|
var _useState = useState(false),
|
67
75
|
_useState2 = _slicedToArray(_useState, 2),
|
68
76
|
inited = _useState2[0],
|
69
77
|
setInited = _useState2[1];
|
78
|
+
var _useState3 = useState([]),
|
79
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
80
|
+
dataFlat = _useState4[0],
|
81
|
+
setDataFlat = _useState4[1];
|
70
82
|
var _useInputAble = useInputAble({
|
71
83
|
value: expandedProp,
|
72
84
|
defaultValue: defaultExpanded,
|
@@ -79,6 +91,8 @@ var useTree = function useTree(props) {
|
|
79
91
|
var _useRef = useRef({
|
80
92
|
pathMap: new Map(),
|
81
93
|
dataMap: new Map(),
|
94
|
+
dataFlatStatusMap: new Map(),
|
95
|
+
dataFlat: [],
|
82
96
|
forceUpdateMap: new Map(),
|
83
97
|
valueMap: new Map(),
|
84
98
|
updateMap: new Map(),
|
@@ -110,11 +124,27 @@ var useTree = function useTree(props) {
|
|
110
124
|
expanded: shouldDefaultExpand
|
111
125
|
};
|
112
126
|
}
|
127
|
+
if (virtual) {
|
128
|
+
return {
|
129
|
+
active: isActive,
|
130
|
+
expanded: context.dataFlatStatusMap.get(id).expanded
|
131
|
+
};
|
132
|
+
}
|
113
133
|
return {
|
114
134
|
active: isActive,
|
115
135
|
expanded: !!(expandeds && expandeds.indexOf(id) >= 0)
|
116
136
|
};
|
117
137
|
};
|
138
|
+
|
139
|
+
// 注册节点
|
140
|
+
var bindVirtualNode = function bindVirtualNode(id, update) {
|
141
|
+
context.updateMap.set(id, update);
|
142
|
+
var isActive = activeProp === id;
|
143
|
+
return {
|
144
|
+
active: isActive,
|
145
|
+
expanded: context.dataFlatStatusMap.get(id).expanded
|
146
|
+
};
|
147
|
+
};
|
118
148
|
var get = function get(id) {
|
119
149
|
return context.valueMap.get(id);
|
120
150
|
};
|
@@ -127,7 +157,6 @@ var useTree = function useTree(props) {
|
|
127
157
|
if (keygen && (isString(keygen) || isNumber(keygen))) {
|
128
158
|
return item[keygen];
|
129
159
|
}
|
130
|
-
|
131
160
|
// 降级处理
|
132
161
|
return id + (id ? ',' : '') + index;
|
133
162
|
};
|
@@ -225,6 +254,8 @@ var useTree = function useTree(props) {
|
|
225
254
|
};
|
226
255
|
var initData = function initData(data, path, disabled) {
|
227
256
|
var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
257
|
+
var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
|
258
|
+
var pid = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
228
259
|
var ids = [];
|
229
260
|
for (var i = 0; i < data.length; i++) {
|
230
261
|
var item = data[i];
|
@@ -236,6 +267,28 @@ var useTree = function useTree(props) {
|
|
236
267
|
}
|
237
268
|
// 制作 data mapping
|
238
269
|
context.dataMap.set(id, item);
|
270
|
+
if (virtual) {
|
271
|
+
context.dataFlatStatusMap.set(id, {
|
272
|
+
active: false,
|
273
|
+
expanded: defaultExpandAll ? true : (expanded === null || expanded === void 0 ? void 0 : expanded.includes(id)) || false,
|
274
|
+
fetching: false
|
275
|
+
});
|
276
|
+
var node = {
|
277
|
+
id: id,
|
278
|
+
level: level,
|
279
|
+
data: item,
|
280
|
+
pid: pid
|
281
|
+
};
|
282
|
+
if (defaultExpandAll) {
|
283
|
+
context.dataFlat.push(node);
|
284
|
+
} else {
|
285
|
+
if (level === 1) {
|
286
|
+
context.dataFlat.push(node);
|
287
|
+
} else if (expanded && pid !== null && expanded.indexOf(pid) >= 0) {
|
288
|
+
context.dataFlat.push(node);
|
289
|
+
}
|
290
|
+
}
|
291
|
+
}
|
239
292
|
var _isDisabled = !!disabled;
|
240
293
|
if (_isDisabled === false) {
|
241
294
|
_isDisabled = getDisabled()(item);
|
@@ -244,7 +297,7 @@ var useTree = function useTree(props) {
|
|
244
297
|
ids.push(id);
|
245
298
|
var children = [];
|
246
299
|
if (Array.isArray(item[childrenKey])) {
|
247
|
-
var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath);
|
300
|
+
var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath, level + 1, id);
|
248
301
|
if (_children) children = _children;
|
249
302
|
}
|
250
303
|
context.pathMap.set(id, {
|
@@ -322,7 +375,15 @@ var useTree = function useTree(props) {
|
|
322
375
|
var isDisabled = function isDisabled(id) {
|
323
376
|
if (isFunc(disabledProps)) {
|
324
377
|
var node = context.pathMap.get(id);
|
325
|
-
if (node)
|
378
|
+
if (node) {
|
379
|
+
if (isRealtime) {
|
380
|
+
var item = context.dataMap.get(id);
|
381
|
+
if (!item) return false;
|
382
|
+
return getDisabled()(item);
|
383
|
+
} else {
|
384
|
+
return node.isDisabled;
|
385
|
+
}
|
386
|
+
}
|
326
387
|
return false;
|
327
388
|
}
|
328
389
|
return !!disabledProps;
|
@@ -352,11 +413,20 @@ var useTree = function useTree(props) {
|
|
352
413
|
context.cachedValue = [];
|
353
414
|
context.pathMap = new Map();
|
354
415
|
context.dataMap = new Map();
|
416
|
+
context.dataFlat = [];
|
417
|
+
context.dataFlatStatusMap = new Map();
|
355
418
|
context.valueMap = new Map();
|
356
419
|
context.unmatchedValueMap = new Map();
|
357
420
|
context.data = toArray(data);
|
421
|
+
if (virtual) {
|
422
|
+
context.dataFlat = [];
|
423
|
+
setDataFlat([]);
|
424
|
+
}
|
358
425
|
if (!data) return;
|
359
426
|
initData(context.data, []);
|
427
|
+
if (virtual) {
|
428
|
+
setDataFlat(context.dataFlat);
|
429
|
+
}
|
360
430
|
initValue();
|
361
431
|
setValue(prevValue);
|
362
432
|
|
@@ -402,6 +472,101 @@ var useTree = function useTree(props) {
|
|
402
472
|
}
|
403
473
|
return current;
|
404
474
|
};
|
475
|
+
var appendChildrenExpanded = function appendChildrenExpanded(child, level, pid, insertData) {
|
476
|
+
if (!child) return;
|
477
|
+
child.forEach(function (item, i) {
|
478
|
+
var _context$dataFlatStat;
|
479
|
+
var childId = getKey(item, pid, i);
|
480
|
+
var node = {
|
481
|
+
id: childId,
|
482
|
+
level: level,
|
483
|
+
data: item,
|
484
|
+
pid: pid
|
485
|
+
};
|
486
|
+
insertData.push(node);
|
487
|
+
if ((_context$dataFlatStat = context.dataFlatStatusMap.get(childId)) !== null && _context$dataFlatStat !== void 0 && _context$dataFlatStat.expanded && item[childrenKey]) {
|
488
|
+
appendChildrenExpanded(item[childrenKey], level + 1, childId, insertData);
|
489
|
+
}
|
490
|
+
});
|
491
|
+
};
|
492
|
+
var insertFlat = function insertFlat(id) {
|
493
|
+
var item = getDataById(id);
|
494
|
+
if (isUnMatchedData(item)) return;
|
495
|
+
if (!item) return;
|
496
|
+
var status = context.dataFlatStatusMap.get(id);
|
497
|
+
if (!status) return;
|
498
|
+
var childrenData = item[childrenKey];
|
499
|
+
var insertStartNode = dataFlat.find(function (item) {
|
500
|
+
return item.id === id;
|
501
|
+
});
|
502
|
+
context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
|
503
|
+
expanded: true,
|
504
|
+
fetching: false
|
505
|
+
}));
|
506
|
+
if (!insertStartNode) return;
|
507
|
+
var insertData = [];
|
508
|
+
appendChildrenExpanded(childrenData, insertStartNode.level + 1, id, insertData);
|
509
|
+
var insertIndex = dataFlat.indexOf(insertStartNode);
|
510
|
+
var nextDataFlat = produce(dataFlat, function (draft) {
|
511
|
+
draft.splice.apply(draft, [insertIndex + 1, 0].concat(_toConsumableArray(insertData)));
|
512
|
+
});
|
513
|
+
setDataFlat(nextDataFlat);
|
514
|
+
};
|
515
|
+
var removeFlat = function removeFlat(id) {
|
516
|
+
var item = getDataById(id);
|
517
|
+
if (isUnMatchedData(item)) return;
|
518
|
+
if (!item) return;
|
519
|
+
var removeNode = dataFlat.find(function (item) {
|
520
|
+
return item.id === id;
|
521
|
+
});
|
522
|
+
if (!removeNode) return;
|
523
|
+
var status = context.dataFlatStatusMap.get(id);
|
524
|
+
if (!status) return;
|
525
|
+
context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
|
526
|
+
fetching: false,
|
527
|
+
expanded: false
|
528
|
+
}));
|
529
|
+
var removeStartIndex = dataFlat.indexOf(removeNode);
|
530
|
+
var removeEndIndex = 0;
|
531
|
+
for (var i = removeStartIndex + 1; i < dataFlat.length; i++) {
|
532
|
+
if (dataFlat[i].level <= removeNode.level) {
|
533
|
+
removeEndIndex = i;
|
534
|
+
break;
|
535
|
+
}
|
536
|
+
if (i === dataFlat.length - 1) {
|
537
|
+
removeEndIndex = i + 1;
|
538
|
+
break;
|
539
|
+
}
|
540
|
+
}
|
541
|
+
var nextDataFlat = produce(dataFlat, function (draft) {
|
542
|
+
draft.splice(removeStartIndex + 1, removeEndIndex - removeStartIndex - 1);
|
543
|
+
});
|
544
|
+
setDataFlat(nextDataFlat);
|
545
|
+
};
|
546
|
+
var expandedFlat = function expandedFlat(expanded) {
|
547
|
+
if (!context.data) return;
|
548
|
+
context.dataFlatStatusMap.forEach(function (status, id) {
|
549
|
+
context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
|
550
|
+
expanded: false
|
551
|
+
}));
|
552
|
+
});
|
553
|
+
expanded.forEach(function (id) {
|
554
|
+
var status = context.dataFlatStatusMap.get(id);
|
555
|
+
if (!status) return;
|
556
|
+
context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
|
557
|
+
expanded: true
|
558
|
+
}));
|
559
|
+
});
|
560
|
+
var _getExpandVirtualData = getExpandVirtualData(context.data, expanded, getKey, childrenKey),
|
561
|
+
treeDataInfo = _getExpandVirtualData.treeDataInfo;
|
562
|
+
if (!treeDataInfo) {
|
563
|
+
return;
|
564
|
+
}
|
565
|
+
setDataFlat(treeDataInfo);
|
566
|
+
};
|
567
|
+
var getFlatData = function getFlatData() {
|
568
|
+
return context.dataFlat;
|
569
|
+
};
|
405
570
|
useEffect(function () {
|
406
571
|
if (defaultExpandAll) {
|
407
572
|
var nextExpanded = [];
|
@@ -412,7 +577,7 @@ var useTree = function useTree(props) {
|
|
412
577
|
});
|
413
578
|
onExpand(nextExpanded);
|
414
579
|
}
|
415
|
-
}, []);
|
580
|
+
}, [context.dataMap]);
|
416
581
|
useEffect(function () {
|
417
582
|
if (props.datum) return;
|
418
583
|
if (!dataUpdate) return;
|
@@ -428,25 +593,32 @@ var useTree = function useTree(props) {
|
|
428
593
|
var datum = useLatestObj({
|
429
594
|
get: get,
|
430
595
|
set: set,
|
596
|
+
insertFlat: insertFlat,
|
597
|
+
removeFlat: removeFlat,
|
598
|
+
expandedFlat: expandedFlat,
|
431
599
|
getPath: getPath,
|
432
600
|
getValue: getValue,
|
433
601
|
getChecked: getChecked,
|
434
602
|
getKey: getKey,
|
603
|
+
getFlatData: getFlatData,
|
435
604
|
getDataByValues: getDataByValues,
|
436
605
|
setValue: setValue,
|
437
606
|
setData: setData,
|
438
607
|
isDisabled: isDisabled,
|
439
608
|
bindNode: bindNode,
|
609
|
+
bindVirtualNode: bindVirtualNode,
|
440
610
|
getDataById: getDataById,
|
441
611
|
bindUpdate: bindUpdate,
|
442
612
|
unBindUpdate: unBindUpdate,
|
443
613
|
isUnMatched: isUnMatched,
|
444
614
|
childrenKey: childrenKey,
|
445
615
|
data: data,
|
616
|
+
dataFlat: dataFlat,
|
446
617
|
pathMap: context.pathMap,
|
447
618
|
dataMap: context.dataMap,
|
448
619
|
valueMap: context.valueMap,
|
449
|
-
updateMap: context.updateMap
|
620
|
+
updateMap: context.updateMap,
|
621
|
+
dataFlatStatusMap: context.dataFlatStatusMap
|
450
622
|
});
|
451
623
|
return {
|
452
624
|
inited: inited,
|