@sheinx/hooks 3.6.0-beta.3 → 3.6.0-beta.4

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.
Files changed (65) hide show
  1. package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
  2. package/cjs/components/use-cascader/use-cascader.d.ts.map +1 -1
  3. package/cjs/components/use-cascader/use-cascader.type.d.ts +2 -1
  4. package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  5. package/cjs/components/use-form/use-form.d.ts.map +1 -1
  6. package/cjs/components/use-form/use-form.js +2 -1
  7. package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
  8. package/cjs/components/use-input/use-input-format.js +12 -4
  9. package/cjs/components/use-table/use-table-tree.d.ts +13 -0
  10. package/cjs/components/use-table/use-table-tree.d.ts.map +1 -1
  11. package/cjs/components/use-table/use-table-tree.js +68 -1
  12. package/cjs/components/use-table/use-table-virtual.js +3 -3
  13. package/cjs/components/use-tree/index.d.ts +2 -1
  14. package/cjs/components/use-tree/index.d.ts.map +1 -1
  15. package/cjs/components/use-tree/index.js +7 -0
  16. package/cjs/components/use-tree/use-tree-node.d.ts.map +1 -1
  17. package/cjs/components/use-tree/use-tree-node.js +1 -5
  18. package/cjs/components/use-tree/use-tree-node.type.d.ts +18 -0
  19. package/cjs/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  20. package/cjs/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  21. package/cjs/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  22. package/cjs/components/use-tree/use-tree-virtual-node.js +92 -0
  23. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  24. package/cjs/components/use-tree/use-tree.js +179 -7
  25. package/cjs/components/use-tree/use-tree.type.d.ts +31 -1
  26. package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
  27. package/cjs/utils/is.d.ts +2 -0
  28. package/cjs/utils/is.d.ts.map +1 -1
  29. package/cjs/utils/is.js +5 -2
  30. package/cjs/utils/object.d.ts.map +1 -1
  31. package/cjs/utils/object.js +6 -1
  32. package/cjs/utils/warning.js +5 -5
  33. package/esm/common/use-filter/use-filter.d.ts.map +1 -1
  34. package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
  35. package/esm/components/use-cascader/use-cascader.type.d.ts +2 -1
  36. package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  37. package/esm/components/use-form/use-form.d.ts.map +1 -1
  38. package/esm/components/use-form/use-form.js +2 -1
  39. package/esm/components/use-input/use-input-format.d.ts.map +1 -1
  40. package/esm/components/use-input/use-input-format.js +12 -4
  41. package/esm/components/use-table/use-table-tree.d.ts +13 -0
  42. package/esm/components/use-table/use-table-tree.d.ts.map +1 -1
  43. package/esm/components/use-table/use-table-tree.js +67 -0
  44. package/esm/components/use-table/use-table-virtual.js +3 -3
  45. package/esm/components/use-tree/index.d.ts +2 -1
  46. package/esm/components/use-tree/index.d.ts.map +1 -1
  47. package/esm/components/use-tree/index.js +2 -1
  48. package/esm/components/use-tree/use-tree-node.d.ts.map +1 -1
  49. package/esm/components/use-tree/use-tree-node.js +1 -5
  50. package/esm/components/use-tree/use-tree-node.type.d.ts +18 -0
  51. package/esm/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  52. package/esm/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  53. package/esm/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  54. package/esm/components/use-tree/use-tree-virtual-node.js +85 -0
  55. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  56. package/esm/components/use-tree/use-tree.js +181 -9
  57. package/esm/components/use-tree/use-tree.type.d.ts +31 -1
  58. package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
  59. package/esm/utils/is.d.ts +2 -0
  60. package/esm/utils/is.d.ts.map +1 -1
  61. package/esm/utils/is.js +4 -1
  62. package/esm/utils/object.d.ts.map +1 -1
  63. package/esm/utils/object.js +6 -1
  64. package/esm/utils/warning.js +5 -5
  65. 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;AA+CvD,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"}
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,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
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,3 +1,4 @@
1
1
  "use client";
2
2
  export { default, default as useTree } from "./use-tree";
3
- export { default as useTreeNode } from "./use-tree-node";
3
+ export { default as useTreeNode } from "./use-tree-node";
4
+ export { default as useTreeVirtualNode } from "./use-tree-virtual-node";
@@ -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;;;;;;;;CAmDzD,CAAC;AACF,eAAe,WAAW,CAAC"}
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;AAEjD,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,iBAAiB,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,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"}
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,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;CAucZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
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) return node.isDisabled;
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,