@sheinx/hooks 3.6.0-beta.2 → 3.6.0-beta.21

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 (165) hide show
  1. package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
  2. package/cjs/common/use-position-style/check-border.d.ts +6 -0
  3. package/cjs/common/use-position-style/check-border.d.ts.map +1 -0
  4. package/cjs/common/use-position-style/check-border.js +35 -0
  5. package/cjs/common/use-position-style/get-position-style.d.ts +1 -0
  6. package/cjs/common/use-position-style/get-position-style.d.ts.map +1 -1
  7. package/cjs/common/use-position-style/get-position-style.js +14 -8
  8. package/cjs/common/use-position-style/index.d.ts +1 -0
  9. package/cjs/common/use-position-style/index.d.ts.map +1 -1
  10. package/cjs/common/use-position-style/index.js +16 -7
  11. package/cjs/components/use-cascader/use-cascader.d.ts.map +1 -1
  12. package/cjs/components/use-cascader/use-cascader.type.d.ts +2 -1
  13. package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  14. package/cjs/components/use-check/use-check.d.ts +1 -1
  15. package/cjs/components/use-check/use-check.d.ts.map +1 -1
  16. package/cjs/components/use-check/use-check.js +10 -3
  17. package/cjs/components/use-form/Provider.d.ts +1 -2
  18. package/cjs/components/use-form/Provider.d.ts.map +1 -1
  19. package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  20. package/cjs/components/use-form/use-form-fieldset/fieldset-context.d.ts +1 -1
  21. package/cjs/components/use-form/use-form-fieldset/fieldset-context.d.ts.map +1 -1
  22. package/cjs/components/use-form/use-form-fieldset/fieldset-context.js +3 -2
  23. package/cjs/components/use-form/use-form-fieldset/index.d.ts +1 -0
  24. package/cjs/components/use-form/use-form-fieldset/index.d.ts.map +1 -1
  25. package/cjs/components/use-form/use-form-fieldset/index.js +6 -0
  26. package/cjs/components/use-form/use-form.d.ts +3 -4
  27. package/cjs/components/use-form/use-form.d.ts.map +1 -1
  28. package/cjs/components/use-form/use-form.js +63 -16
  29. package/cjs/components/use-form/use-form.type.d.ts +6 -2
  30. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  31. package/cjs/components/use-input/use-input-format.d.ts +1 -1
  32. package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
  33. package/cjs/components/use-input/use-input-format.js +12 -4
  34. package/cjs/components/use-input/use-input-number.d.ts +1 -1
  35. package/cjs/components/use-input/use-input-number.d.ts.map +1 -1
  36. package/cjs/components/use-input/use-input-number.js +1 -0
  37. package/cjs/components/use-table/index.d.ts +2 -1
  38. package/cjs/components/use-table/index.d.ts.map +1 -1
  39. package/cjs/components/use-table/index.js +7 -0
  40. package/cjs/components/use-table/use-table-filter.d.ts +19 -0
  41. package/cjs/components/use-table/use-table-filter.d.ts.map +1 -0
  42. package/cjs/components/use-table/use-table-filter.js +95 -0
  43. package/cjs/components/use-table/use-table-sort.d.ts +5 -0
  44. package/cjs/components/use-table/use-table-sort.d.ts.map +1 -1
  45. package/cjs/components/use-table/use-table-sort.js +5 -1
  46. package/cjs/components/use-table/use-table-tree.d.ts +13 -0
  47. package/cjs/components/use-table/use-table-tree.d.ts.map +1 -1
  48. package/cjs/components/use-table/use-table-tree.js +68 -1
  49. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  50. package/cjs/components/use-table/use-table-virtual.js +6 -4
  51. package/cjs/components/use-table/use-table.type.d.ts +93 -0
  52. package/cjs/components/use-table/use-table.type.d.ts.map +1 -1
  53. package/cjs/components/use-tabs/context.d.ts +1 -1
  54. package/cjs/components/use-tabs/context.d.ts.map +1 -1
  55. package/cjs/components/use-tabs/use-tabs.d.ts +1 -1
  56. package/cjs/components/use-tree/index.d.ts +3 -2
  57. package/cjs/components/use-tree/index.d.ts.map +1 -1
  58. package/cjs/components/use-tree/index.js +18 -2
  59. package/cjs/components/use-tree/use-tree-node.d.ts.map +1 -1
  60. package/cjs/components/use-tree/use-tree-node.js +1 -5
  61. package/cjs/components/use-tree/use-tree-node.type.d.ts +18 -0
  62. package/cjs/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  63. package/cjs/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  64. package/cjs/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  65. package/cjs/components/use-tree/use-tree-virtual-node.js +92 -0
  66. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  67. package/cjs/components/use-tree/use-tree.js +213 -6
  68. package/cjs/components/use-tree/use-tree.type.d.ts +35 -1
  69. package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
  70. package/cjs/components/use-treeselect/use-tiled.d.ts +1 -1
  71. package/cjs/utils/dom/element.d.ts +1 -1
  72. package/cjs/utils/dom/element.d.ts.map +1 -1
  73. package/cjs/utils/dom/element.js +5 -3
  74. package/cjs/utils/is.d.ts +2 -0
  75. package/cjs/utils/is.d.ts.map +1 -1
  76. package/cjs/utils/is.js +5 -2
  77. package/cjs/utils/lazyload.d.ts.map +1 -1
  78. package/cjs/utils/lazyload.js +2 -2
  79. package/cjs/utils/object.d.ts +12 -0
  80. package/cjs/utils/object.d.ts.map +1 -1
  81. package/cjs/utils/object.js +34 -1
  82. package/cjs/utils/warning.js +5 -5
  83. package/esm/common/use-filter/use-filter.d.ts.map +1 -1
  84. package/esm/common/use-position-style/check-border.d.ts +6 -0
  85. package/esm/common/use-position-style/check-border.d.ts.map +1 -0
  86. package/esm/common/use-position-style/check-border.js +29 -0
  87. package/esm/common/use-position-style/get-position-style.d.ts +1 -0
  88. package/esm/common/use-position-style/get-position-style.d.ts.map +1 -1
  89. package/esm/common/use-position-style/get-position-style.js +14 -8
  90. package/esm/common/use-position-style/index.d.ts +1 -0
  91. package/esm/common/use-position-style/index.d.ts.map +1 -1
  92. package/esm/common/use-position-style/index.js +16 -7
  93. package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
  94. package/esm/components/use-cascader/use-cascader.type.d.ts +2 -1
  95. package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  96. package/esm/components/use-check/use-check.d.ts +1 -1
  97. package/esm/components/use-check/use-check.d.ts.map +1 -1
  98. package/esm/components/use-check/use-check.js +10 -3
  99. package/esm/components/use-form/Provider.d.ts +1 -2
  100. package/esm/components/use-form/Provider.d.ts.map +1 -1
  101. package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  102. package/esm/components/use-form/use-form-fieldset/fieldset-context.d.ts +1 -1
  103. package/esm/components/use-form/use-form-fieldset/fieldset-context.d.ts.map +1 -1
  104. package/esm/components/use-form/use-form-fieldset/fieldset-context.js +2 -1
  105. package/esm/components/use-form/use-form-fieldset/index.d.ts +1 -0
  106. package/esm/components/use-form/use-form-fieldset/index.d.ts.map +1 -1
  107. package/esm/components/use-form/use-form-fieldset/index.js +2 -1
  108. package/esm/components/use-form/use-form.d.ts +3 -4
  109. package/esm/components/use-form/use-form.d.ts.map +1 -1
  110. package/esm/components/use-form/use-form.js +64 -17
  111. package/esm/components/use-form/use-form.type.d.ts +6 -2
  112. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  113. package/esm/components/use-input/use-input-format.d.ts +1 -1
  114. package/esm/components/use-input/use-input-format.d.ts.map +1 -1
  115. package/esm/components/use-input/use-input-format.js +12 -4
  116. package/esm/components/use-input/use-input-number.d.ts +1 -1
  117. package/esm/components/use-input/use-input-number.d.ts.map +1 -1
  118. package/esm/components/use-input/use-input-number.js +1 -0
  119. package/esm/components/use-table/index.d.ts +2 -1
  120. package/esm/components/use-table/index.d.ts.map +1 -1
  121. package/esm/components/use-table/index.js +1 -0
  122. package/esm/components/use-table/use-table-filter.d.ts +19 -0
  123. package/esm/components/use-table/use-table-filter.d.ts.map +1 -0
  124. package/esm/components/use-table/use-table-filter.js +88 -0
  125. package/esm/components/use-table/use-table-sort.d.ts +5 -0
  126. package/esm/components/use-table/use-table-sort.d.ts.map +1 -1
  127. package/esm/components/use-table/use-table-sort.js +5 -1
  128. package/esm/components/use-table/use-table-tree.d.ts +13 -0
  129. package/esm/components/use-table/use-table-tree.d.ts.map +1 -1
  130. package/esm/components/use-table/use-table-tree.js +67 -0
  131. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  132. package/esm/components/use-table/use-table-virtual.js +6 -4
  133. package/esm/components/use-table/use-table.type.d.ts +93 -0
  134. package/esm/components/use-table/use-table.type.d.ts.map +1 -1
  135. package/esm/components/use-tabs/context.d.ts +1 -1
  136. package/esm/components/use-tabs/context.d.ts.map +1 -1
  137. package/esm/components/use-tabs/use-tabs.d.ts +1 -1
  138. package/esm/components/use-tree/index.d.ts +3 -2
  139. package/esm/components/use-tree/index.d.ts.map +1 -1
  140. package/esm/components/use-tree/index.js +3 -2
  141. package/esm/components/use-tree/use-tree-node.d.ts.map +1 -1
  142. package/esm/components/use-tree/use-tree-node.js +1 -5
  143. package/esm/components/use-tree/use-tree-node.type.d.ts +18 -0
  144. package/esm/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  145. package/esm/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  146. package/esm/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  147. package/esm/components/use-tree/use-tree-virtual-node.js +85 -0
  148. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  149. package/esm/components/use-tree/use-tree.js +215 -8
  150. package/esm/components/use-tree/use-tree.type.d.ts +35 -1
  151. package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
  152. package/esm/components/use-treeselect/use-tiled.d.ts +1 -1
  153. package/esm/utils/dom/element.d.ts +1 -1
  154. package/esm/utils/dom/element.d.ts.map +1 -1
  155. package/esm/utils/dom/element.js +4 -2
  156. package/esm/utils/is.d.ts +2 -0
  157. package/esm/utils/is.d.ts.map +1 -1
  158. package/esm/utils/is.js +4 -1
  159. package/esm/utils/lazyload.d.ts.map +1 -1
  160. package/esm/utils/lazyload.js +3 -3
  161. package/esm/utils/object.d.ts +12 -0
  162. package/esm/utils/object.d.ts.map +1 -1
  163. package/esm/utils/object.js +34 -1
  164. package/esm/utils/warning.js +5 -5
  165. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
- export { default, default as useTree } from './use-tree';
2
- export type { BaseTreeProps, UpdateFunc, TreePathType, TreeModeType } from './use-tree.type';
1
+ export { default, default as useTree, MODE } from './use-tree';
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,IAAI,EAAE,MAAM,YAAY,CAAC;AAC/D,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,9 +1,16 @@
1
1
  "use strict";
2
2
  "use client";
3
3
 
4
+ 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); }
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
8
+ Object.defineProperty(exports, "MODE", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _useTree.MODE;
12
+ }
13
+ });
7
14
  Object.defineProperty(exports, "default", {
8
15
  enumerable: true,
9
16
  get: function get() {
@@ -22,6 +29,15 @@ Object.defineProperty(exports, "useTreeNode", {
22
29
  return _useTreeNode.default;
23
30
  }
24
31
  });
25
- var _useTree = _interopRequireDefault(require("./use-tree"));
32
+ Object.defineProperty(exports, "useTreeVirtualNode", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _useTreeVirtualNode.default;
36
+ }
37
+ });
38
+ var _useTree = _interopRequireWildcard(require("./use-tree"));
26
39
  var _useTreeNode = _interopRequireDefault(require("./use-tree-node"));
27
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
40
+ var _useTreeVirtualNode = _interopRequireDefault(require("./use-tree-virtual-node"));
41
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
43
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -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"}
@@ -48,11 +48,7 @@ var useTreeNode = function useTreeNode(props) {
48
48
  break;
49
49
  }
50
50
  });
51
- var handleToggle = function handleToggle() {
52
- // const newExpand = !expanded;
53
- // setExpanded(newExpand);
54
- // if (onToggle) onToggle(id, newExpand);
55
- };
51
+ var handleToggle = function handleToggle() {};
56
52
  var isLeaf = function isLeaf() {
57
53
  var children = data[childrenKey];
58
54
  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,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _usePersistFn = _interopRequireDefault(require("../../common/use-persist-fn"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ 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."); }
12
+ 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); }
13
+ 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; }
14
+ 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; } }
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+ var useTreeVirtualNode = function useTreeVirtualNode(props) {
17
+ var _datum$dataFlatStatus, _datum$dataFlatStatus2, _datum$dataFlatStatus3;
18
+ var id = props.id,
19
+ data = props.data,
20
+ childrenKey = props.childrenKey,
21
+ bindNode = props.bindNode,
22
+ loader = props.loader,
23
+ datum = props.datum;
24
+ var _useState = (0, _react.useState)((datum === null || datum === void 0 || (_datum$dataFlatStatus = datum.dataFlatStatusMap.get(id)) === null || _datum$dataFlatStatus === void 0 ? void 0 : _datum$dataFlatStatus.active) || false),
25
+ _useState2 = _slicedToArray(_useState, 2),
26
+ active = _useState2[0],
27
+ setActive = _useState2[1];
28
+ var _useState3 = (0, _react.useState)((datum === null || datum === void 0 || (_datum$dataFlatStatus2 = datum.dataFlatStatusMap.get(id)) === null || _datum$dataFlatStatus2 === void 0 ? void 0 : _datum$dataFlatStatus2.expanded) || false),
29
+ _useState4 = _slicedToArray(_useState3, 2),
30
+ expanded = _useState4[0],
31
+ setExpanded = _useState4[1];
32
+ var _useState5 = (0, _react.useState)((datum === null || datum === void 0 || (_datum$dataFlatStatus3 = datum.dataFlatStatusMap.get(id)) === null || _datum$dataFlatStatus3 === void 0 ? void 0 : _datum$dataFlatStatus3.fetching) || false),
33
+ _useState6 = _slicedToArray(_useState5, 2),
34
+ fetching = _useState6[0],
35
+ setFetching = _useState6[1];
36
+ var update = (0, _usePersistFn.default)(function (key, value) {
37
+ switch (key) {
38
+ case 'active':
39
+ if (value !== active) {
40
+ setActive(value);
41
+ }
42
+ break;
43
+ case 'expanded':
44
+ setExpanded(value);
45
+ break;
46
+ case 'fetching':
47
+ if (value !== fetching) {
48
+ setFetching(value);
49
+ }
50
+ break;
51
+ }
52
+ });
53
+ var handleToggle = function handleToggle() {};
54
+ var handleSetFetchind = function handleSetFetchind(v) {
55
+ datum === null || datum === void 0 || datum.dataFlatStatusMap.set(id, {
56
+ active: active,
57
+ expanded: expanded,
58
+ fetching: v
59
+ });
60
+ setFetching(v);
61
+ };
62
+ var handleSetExpanded = function handleSetExpanded(v) {
63
+ datum === null || datum === void 0 || datum.dataFlatStatusMap.set(id, {
64
+ active: active,
65
+ expanded: v,
66
+ fetching: fetching
67
+ });
68
+ setExpanded(v);
69
+ };
70
+ var isLeaf = function isLeaf() {
71
+ var children = data[childrenKey];
72
+ if (children && children.length > 0) return false;
73
+ if (Array.isArray(children) || children === null) return true;
74
+ if (fetching && !children) return false;
75
+ if (loader && !fetching) return false;
76
+ return true;
77
+ };
78
+ (0, _react.useEffect)(function () {
79
+ bindNode(id, update, data);
80
+ }, []);
81
+ return {
82
+ update: update,
83
+ active: active,
84
+ expanded: expanded,
85
+ fetching: fetching,
86
+ isLeaf: isLeaf,
87
+ setFetching: handleSetFetchind,
88
+ setExpanded: handleSetExpanded,
89
+ onToggle: handleToggle
90
+ };
91
+ };
92
+ var _default = exports.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;AAmBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;;CA8qBZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ 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); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -7,10 +8,16 @@ exports.default = exports.MODE = void 0;
7
8
  var _react = require("react");
8
9
  var _useLatestObj = _interopRequireDefault(require("../../common/use-latest-obj"));
9
10
  var _useInputAble2 = require("../../common/use-input-able");
11
+ var _useTableTree = require("../use-table/use-table-tree");
10
12
  var _usePersistFn = require("../../common/use-persist-fn");
11
13
  var _is = require("../../utils/is");
12
14
  var _utils = require("../../utils");
13
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ 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; }
17
+ 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; }
18
+ 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; }
19
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
20
+ 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); }
14
21
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
15
22
  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."); }
16
23
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
@@ -59,6 +66,7 @@ var useTree = function useTree(props) {
59
66
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
60
67
  keygen = props.keygen,
61
68
  mode = props.mode,
69
+ virtual = props.virtual,
62
70
  activeProp = props.active,
63
71
  expandedProp = props.expanded,
64
72
  _props$dataUpdate = props.dataUpdate,
@@ -66,14 +74,19 @@ var useTree = function useTree(props) {
66
74
  _props$defaultExpande = props.defaultExpanded,
67
75
  defaultExpanded = _props$defaultExpande === void 0 ? [] : _props$defaultExpande,
68
76
  defaultExpandAll = props.defaultExpandAll,
69
- disabledProps = props.disabled,
70
77
  unmatch = props.unmatch,
71
78
  isControlled = props.isControlled,
72
79
  onExpandProp = props.onExpand;
80
+ var disabledProps = (0, _is.isOptionalDisabled)(props.disabled) ? props.disabled.disabled : props.disabled;
81
+ var isRealtime = (0, _is.isOptionalDisabled)(props.disabled) ? props.disabled.isRealtime : false;
73
82
  var _useState = (0, _react.useState)(false),
74
83
  _useState2 = _slicedToArray(_useState, 2),
75
84
  inited = _useState2[0],
76
85
  setInited = _useState2[1];
86
+ var _useState3 = (0, _react.useState)([]),
87
+ _useState4 = _slicedToArray(_useState3, 2),
88
+ dataFlat = _useState4[0],
89
+ setDataFlat = _useState4[1];
77
90
  var _useInputAble = (0, _useInputAble2.useInputAble)({
78
91
  value: expandedProp,
79
92
  defaultValue: defaultExpanded,
@@ -86,6 +99,8 @@ var useTree = function useTree(props) {
86
99
  var _useRef = (0, _react.useRef)({
87
100
  pathMap: new Map(),
88
101
  dataMap: new Map(),
102
+ dataFlatStatusMap: new Map(),
103
+ dataFlat: [],
89
104
  forceUpdateMap: new Map(),
90
105
  valueMap: new Map(),
91
106
  updateMap: new Map(),
@@ -117,11 +132,27 @@ var useTree = function useTree(props) {
117
132
  expanded: shouldDefaultExpand
118
133
  };
119
134
  }
135
+ if (virtual) {
136
+ return {
137
+ active: isActive,
138
+ expanded: context.dataFlatStatusMap.get(id).expanded
139
+ };
140
+ }
120
141
  return {
121
142
  active: isActive,
122
143
  expanded: !!(expandeds && expandeds.indexOf(id) >= 0)
123
144
  };
124
145
  };
146
+
147
+ // 注册节点
148
+ var bindVirtualNode = function bindVirtualNode(id, update) {
149
+ context.updateMap.set(id, update);
150
+ var isActive = activeProp === id;
151
+ return {
152
+ active: isActive,
153
+ expanded: context.dataFlatStatusMap.get(id).expanded
154
+ };
155
+ };
125
156
  var get = function get(id) {
126
157
  return context.valueMap.get(id);
127
158
  };
@@ -134,7 +165,6 @@ var useTree = function useTree(props) {
134
165
  if (keygen && ((0, _is.isString)(keygen) || (0, _is.isNumber)(keygen))) {
135
166
  return item[keygen];
136
167
  }
137
-
138
168
  // 降级处理
139
169
  return id + (id ? ',' : '') + index;
140
170
  };
@@ -232,6 +262,8 @@ var useTree = function useTree(props) {
232
262
  };
233
263
  var initData = function initData(data, path, disabled) {
234
264
  var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
265
+ var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
266
+ var pid = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
235
267
  var ids = [];
236
268
  for (var i = 0; i < data.length; i++) {
237
269
  var item = data[i];
@@ -243,6 +275,28 @@ var useTree = function useTree(props) {
243
275
  }
244
276
  // 制作 data mapping
245
277
  context.dataMap.set(id, item);
278
+ if (virtual) {
279
+ context.dataFlatStatusMap.set(id, {
280
+ active: false,
281
+ expanded: defaultExpandAll ? true : (expanded === null || expanded === void 0 ? void 0 : expanded.includes(id)) || false,
282
+ fetching: false
283
+ });
284
+ var node = {
285
+ id: id,
286
+ level: level,
287
+ data: item,
288
+ pid: pid
289
+ };
290
+ if (defaultExpandAll) {
291
+ context.dataFlat.push(node);
292
+ } else {
293
+ if (level === 1) {
294
+ context.dataFlat.push(node);
295
+ } else if (expanded && pid !== null && expanded.indexOf(pid) >= 0) {
296
+ context.dataFlat.push(node);
297
+ }
298
+ }
299
+ }
246
300
  var _isDisabled = !!disabled;
247
301
  if (_isDisabled === false) {
248
302
  _isDisabled = getDisabled()(item);
@@ -251,7 +305,7 @@ var useTree = function useTree(props) {
251
305
  ids.push(id);
252
306
  var children = [];
253
307
  if (Array.isArray(item[childrenKey])) {
254
- var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath);
308
+ var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath, level + 1, id);
255
309
  if (_children) children = _children;
256
310
  }
257
311
  context.pathMap.set(id, {
@@ -264,6 +318,34 @@ var useTree = function useTree(props) {
264
318
  }
265
319
  return ids;
266
320
  };
321
+ var initFlatData = function initFlatData(data, path) {
322
+ var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
323
+ var pid = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
324
+ var result = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
325
+ for (var i = 0; i < data.length; i++) {
326
+ var item = data[i];
327
+ var id = getKey(item, path[path.length - 1], i);
328
+ var node = {
329
+ id: id,
330
+ level: level,
331
+ data: item,
332
+ pid: pid
333
+ };
334
+ if (defaultExpandAll) {
335
+ result.push(node);
336
+ } else {
337
+ if (level === 1) {
338
+ result.push(node);
339
+ } else if (expanded && pid !== null && expanded.indexOf(pid) >= 0) {
340
+ result.push(node);
341
+ }
342
+ }
343
+ if (Array.isArray(item[childrenKey])) {
344
+ initFlatData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), level + 1, id, result);
345
+ }
346
+ }
347
+ return result;
348
+ };
267
349
  var initValue = function initValue(ids_outer, forceCheck) {
268
350
  var ids = ids_outer;
269
351
  if (!context.data || !context.value) {
@@ -329,7 +411,15 @@ var useTree = function useTree(props) {
329
411
  var isDisabled = function isDisabled(id) {
330
412
  if ((0, _is.isFunc)(disabledProps)) {
331
413
  var node = context.pathMap.get(id);
332
- if (node) return node.isDisabled;
414
+ if (node) {
415
+ if (isRealtime) {
416
+ var item = context.dataMap.get(id);
417
+ if (!item) return false;
418
+ return getDisabled()(item);
419
+ } else {
420
+ return node.isDisabled;
421
+ }
422
+ }
333
423
  return false;
334
424
  }
335
425
  return !!disabledProps;
@@ -359,11 +449,20 @@ var useTree = function useTree(props) {
359
449
  context.cachedValue = [];
360
450
  context.pathMap = new Map();
361
451
  context.dataMap = new Map();
452
+ context.dataFlat = [];
453
+ context.dataFlatStatusMap = new Map();
362
454
  context.valueMap = new Map();
363
455
  context.unmatchedValueMap = new Map();
364
456
  context.data = toArray(data);
457
+ if (virtual) {
458
+ context.dataFlat = [];
459
+ setDataFlat([]);
460
+ }
365
461
  if (!data) return;
366
462
  initData(context.data, []);
463
+ if (virtual) {
464
+ setDataFlat(context.dataFlat);
465
+ }
367
466
  initValue();
368
467
  setValue(prevValue);
369
468
 
@@ -409,6 +508,101 @@ var useTree = function useTree(props) {
409
508
  }
410
509
  return current;
411
510
  };
511
+ var appendChildrenExpanded = function appendChildrenExpanded(child, level, pid, insertData) {
512
+ if (!child) return;
513
+ child.forEach(function (item, i) {
514
+ var _context$dataFlatStat;
515
+ var childId = getKey(item, pid, i);
516
+ var node = {
517
+ id: childId,
518
+ level: level,
519
+ data: item,
520
+ pid: pid
521
+ };
522
+ insertData.push(node);
523
+ if ((_context$dataFlatStat = context.dataFlatStatusMap.get(childId)) !== null && _context$dataFlatStat !== void 0 && _context$dataFlatStat.expanded && item[childrenKey]) {
524
+ appendChildrenExpanded(item[childrenKey], level + 1, childId, insertData);
525
+ }
526
+ });
527
+ };
528
+ var insertFlat = function insertFlat(id) {
529
+ var item = getDataById(id);
530
+ if ((0, _is.isUnMatchedData)(item)) return;
531
+ if (!item) return;
532
+ var status = context.dataFlatStatusMap.get(id);
533
+ if (!status) return;
534
+ var childrenData = item[childrenKey];
535
+ var insertStartNode = dataFlat.find(function (item) {
536
+ return item.id === id;
537
+ });
538
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
539
+ expanded: true,
540
+ fetching: false
541
+ }));
542
+ if (!insertStartNode) return;
543
+ var insertData = [];
544
+ appendChildrenExpanded(childrenData, insertStartNode.level + 1, id, insertData);
545
+ var insertIndex = dataFlat.indexOf(insertStartNode);
546
+ var nextDataFlat = (0, _utils.produce)(dataFlat, function (draft) {
547
+ draft.splice.apply(draft, [insertIndex + 1, 0].concat(_toConsumableArray(insertData)));
548
+ });
549
+ setDataFlat(nextDataFlat);
550
+ };
551
+ var removeFlat = function removeFlat(id) {
552
+ var item = getDataById(id);
553
+ if ((0, _is.isUnMatchedData)(item)) return;
554
+ if (!item) return;
555
+ var removeNode = dataFlat.find(function (item) {
556
+ return item.id === id;
557
+ });
558
+ if (!removeNode) return;
559
+ var status = context.dataFlatStatusMap.get(id);
560
+ if (!status) return;
561
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
562
+ fetching: false,
563
+ expanded: false
564
+ }));
565
+ var removeStartIndex = dataFlat.indexOf(removeNode);
566
+ var removeEndIndex = 0;
567
+ for (var i = removeStartIndex + 1; i < dataFlat.length; i++) {
568
+ if (dataFlat[i].level <= removeNode.level) {
569
+ removeEndIndex = i;
570
+ break;
571
+ }
572
+ if (i === dataFlat.length - 1) {
573
+ removeEndIndex = i + 1;
574
+ break;
575
+ }
576
+ }
577
+ var nextDataFlat = (0, _utils.produce)(dataFlat, function (draft) {
578
+ draft.splice(removeStartIndex + 1, removeEndIndex - removeStartIndex - 1);
579
+ });
580
+ setDataFlat(nextDataFlat);
581
+ };
582
+ var expandedFlat = function expandedFlat(expanded) {
583
+ if (!context.data) return;
584
+ context.dataFlatStatusMap.forEach(function (status, id) {
585
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
586
+ expanded: false
587
+ }));
588
+ });
589
+ expanded.forEach(function (id) {
590
+ var status = context.dataFlatStatusMap.get(id);
591
+ if (!status) return;
592
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
593
+ expanded: true
594
+ }));
595
+ });
596
+ var _getExpandVirtualData = (0, _useTableTree.getExpandVirtualData)(props.tiledData || context.data, expanded, getKey, childrenKey),
597
+ treeDataInfo = _getExpandVirtualData.treeDataInfo;
598
+ if (!treeDataInfo) {
599
+ return;
600
+ }
601
+ setDataFlat(treeDataInfo);
602
+ };
603
+ var getFlatData = function getFlatData() {
604
+ return context.dataFlat;
605
+ };
412
606
  (0, _react.useEffect)(function () {
413
607
  if (defaultExpandAll) {
414
608
  var nextExpanded = [];
@@ -419,7 +613,7 @@ var useTree = function useTree(props) {
419
613
  });
420
614
  onExpand(nextExpanded);
421
615
  }
422
- }, []);
616
+ }, [context.dataMap]);
423
617
  (0, _react.useEffect)(function () {
424
618
  if (props.datum) return;
425
619
  if (!dataUpdate) return;
@@ -429,31 +623,44 @@ var useTree = function useTree(props) {
429
623
  if (props.datum) return;
430
624
  setValue(value);
431
625
  }, [value]);
626
+ (0, _react.useEffect)(function () {
627
+ if (!virtual) return;
628
+ if (!props.tiledData) return;
629
+ var tiledFlatData = initFlatData(props.tiledData, [], 1);
630
+ setDataFlat(tiledFlatData);
631
+ }, [props.tiledData]);
432
632
  (0, _react.useEffect)(function () {
433
633
  setInited(true);
434
634
  }, []);
435
635
  var datum = (0, _useLatestObj.default)({
436
636
  get: get,
437
637
  set: set,
638
+ insertFlat: insertFlat,
639
+ removeFlat: removeFlat,
640
+ expandedFlat: expandedFlat,
438
641
  getPath: getPath,
439
642
  getValue: getValue,
440
643
  getChecked: getChecked,
441
644
  getKey: getKey,
645
+ getFlatData: getFlatData,
442
646
  getDataByValues: getDataByValues,
443
647
  setValue: setValue,
444
648
  setData: setData,
445
649
  isDisabled: isDisabled,
446
650
  bindNode: bindNode,
651
+ bindVirtualNode: bindVirtualNode,
447
652
  getDataById: getDataById,
448
653
  bindUpdate: bindUpdate,
449
654
  unBindUpdate: unBindUpdate,
450
655
  isUnMatched: isUnMatched,
451
656
  childrenKey: childrenKey,
452
657
  data: data,
658
+ dataFlat: dataFlat,
453
659
  pathMap: context.pathMap,
454
660
  dataMap: context.dataMap,
455
661
  valueMap: context.valueMap,
456
- updateMap: context.updateMap
662
+ updateMap: context.updateMap,
663
+ dataFlatStatusMap: context.dataFlatStatusMap
457
664
  });
458
665
  return {
459
666
  inited: inited,