@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
@@ -135,6 +135,9 @@ var useTableSort = function useTableSort(props) {
135
135
  }
136
136
  }
137
137
  });
138
+ var sortByColumn = usePersistFn(function (params) {
139
+ onSorterChange(params.columnKey, params.direction, true, params.columnSorter);
140
+ });
138
141
  useEffect(function () {
139
142
  if (context.mounted) return;
140
143
  var hasSingleDefaultOrder = false;
@@ -156,7 +159,8 @@ var useTableSort = function useTableSort(props) {
156
159
  return {
157
160
  sortInfo: sortInfo,
158
161
  onSorterChange: onSorterChange,
159
- sortedData: sortedData
162
+ sortedData: sortedData,
163
+ sortByColumn: sortByColumn
160
164
  };
161
165
  };
162
166
  export default useTableSort;
@@ -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),
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAWrD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAuMpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAnGuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BA+JnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CAyFnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"use-table-virtual.d.ts","sourceRoot":"","sources":["use-table-virtual.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAWrD,UAAU,oBAAoB;IAC5B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;CAC3C;AACD,QAAA,MAAM,eAAe,UAAW,oBAAoB;;;;;;;oBAuMpC,MAAM;mBACP,MAAM;WACd,MAAM;gBACD,MAAM;kBACJ,OAAO;;0BAnGuB,MAAM,UAAU,MAAM;0BAxBtB,MAAM,QAAQ,MAAM;2BA+JnB,MAAM,aAAa,MAAM,IAAI;qCAoBnB,MAAM;mCAWR,MAAM,GAAG,MAAM;CA2FnE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -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);
@@ -365,8 +365,10 @@ var useTableVirtual = function useTableVirtual(props) {
365
365
  if (props.disabled) return;
366
366
  if (context.heightCallback) {
367
367
  var cb = context.heightCallback;
368
- context.heightCallback = null;
369
368
  cb();
369
+ setTimeout(function () {
370
+ context.heightCallback = null;
371
+ }, 300);
370
372
  }
371
373
  }, [scrollHeight]);
372
374
  var finalRowsInView = rowsInView + context.rowSpanRows + context.autoAddRows;
@@ -139,6 +139,93 @@ export interface TableColumnSorter {
139
139
  export interface ColumnRenderFunc<DataItem> {
140
140
  (data: DataItem, index: number, checkInstance?: React.ReactComponentElement<any>): React.ReactNode | (() => React.ReactNode);
141
141
  }
142
+ export interface TableColumnFilterBase<DataItem> {
143
+ /**
144
+ * @cn 筛选模式: search 搜索模式, select 选择模式
145
+ * @en Filter mode: search search mode, select select mode
146
+ */
147
+ mode: 'search' | 'select';
148
+ /**
149
+ * @cn 筛选数据的函数
150
+ * @en Filter data function
151
+ * @param value 筛选值
152
+ * @param row 行数据
153
+ * @returns 是否通过筛选
154
+ */
155
+ onFilter: (value: any, row: DataItem) => boolean;
156
+ /**
157
+ * @cn 自定义的筛选项图标
158
+ * @en Custom filter icon
159
+ */
160
+ icon?: React.ReactNode;
161
+ }
162
+ export type TableFilterData = {
163
+ label: string;
164
+ value: any;
165
+ icon?: React.ReactNode;
166
+ [key: string]: any;
167
+ children?: TableFilterData[];
168
+ };
169
+ export interface SelectModeColumnFilter<DataItem> extends TableColumnFilterBase<DataItem> {
170
+ /**
171
+ * @cn 筛选模式为 select 时
172
+ * @en Filter mode is select
173
+ */
174
+ mode: 'select';
175
+ /**
176
+ * 必填的 `config` 字段
177
+ */
178
+ config: {
179
+ /**
180
+ * @cn 筛选项数据
181
+ * @en Filter item data
182
+ */
183
+ data: Array<TableFilterData>;
184
+ /**
185
+ * @cn 自定义渲染筛选项
186
+ * @en Custom rendering filter options
187
+ * @default (data) => data.label
188
+ */
189
+ renderItem?: ((item: TableFilterData) => React.ReactNode) | ObjectKey<TableFilterData>;
190
+ /**
191
+ * @cn 是否多选
192
+ * @en Whether to multiple select
193
+ */
194
+ multiple?: boolean;
195
+ /**
196
+ * @cn 是否开启顶部的搜索框
197
+ * @en Whether to open the top search box
198
+ */
199
+ search?: boolean;
200
+ /**
201
+ * @cn 是否高亮命中的关键词,仅当 search 为 true 时有效
202
+ * @en Whether to highlight the hit keywords
203
+ */
204
+ highlight?: boolean;
205
+ };
206
+ /**
207
+ * @cn 筛选数据的函数
208
+ * @en Filter data function
209
+ * @param value 筛选值,单选时为单个值,多选时为数组
210
+ * @param row 行数据
211
+ * @returns 是否通过筛选
212
+ */
213
+ onFilter: (value: any, row: DataItem) => boolean;
214
+ }
215
+ export interface SearchModeColumnFilter<DataItem> extends TableColumnFilterBase<DataItem> {
216
+ /**
217
+ * 筛选模式为 search 时
218
+ */
219
+ mode: 'search';
220
+ /**
221
+ * 此时不允许传 `config`
222
+ */
223
+ config?: never;
224
+ }
225
+ /**
226
+ * 最终的联合类型
227
+ */
228
+ export type TableColumnFilter<DataItem> = SelectModeColumnFilter<DataItem> | SearchModeColumnFilter<DataItem>;
142
229
  /**
143
230
  * @title TableColumn
144
231
  */
@@ -227,6 +314,12 @@ export interface TableColumnItem<DataItem> {
227
314
  * @version 3.5.0
228
315
  */
229
316
  sortDirections?: ('asc' | 'desc')[];
317
+ /**
318
+ * @cn 列的筛选配置
319
+ * @en Column filter configuration
320
+ * @version 3.6.0
321
+ */
322
+ filter?: TableColumnFilter<DataItem>;
230
323
  /**
231
324
  * @en The content of the header
232
325
  * @cn 表头显示内容
@@ -1 +1 @@
1
- {"version":3,"file":"use-table.type.d.ts","sourceRoot":"","sources":["use-table.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-table.type.d.ts","sourceRoot":"","sources":["use-table.type.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { TabsProviderProps, TabsContextProps } from './context.type';
3
3
  export declare const TabsContext: React.Context<TabsContextProps<any>>;
4
- export declare const Provider: <TabData>(props: TabsProviderProps<TabData>) => JSX.Element;
4
+ export declare const Provider: <TabData>(props: TabsProviderProps<TabData>) => import("react/jsx-runtime").JSX.Element;
5
5
  export declare const useTabsContext: <TabData>() => TabsContextProps<TabData>;
6
6
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,eAAO,MAAM,WAAW,sCAA8E,CAAC;AAEvG,eAAO,MAAM,QAAQ,6DAGpB,CAAC;AAEF,eAAO,MAAM,cAAc,0CAA8E,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAErE,eAAO,MAAM,WAAW,sCAA8E,CAAC;AAEvG,eAAO,MAAM,QAAQ,yFAGpB,CAAC;AAEF,eAAO,MAAM,cAAc,0CAA8E,CAAC"}
@@ -5,7 +5,7 @@ declare const useTabs: <TabData = any>(props: BaseTabsProps) => {
5
5
  onChange: (key: string | number) => void;
6
6
  tabs: TabData[];
7
7
  setTabs: import("react").Dispatch<import("react").SetStateAction<TabData[]>>;
8
- Provider: <TabData_1>(props: import("./context.type").TabsProviderProps<TabData_1>) => JSX.Element;
8
+ Provider: <TabData_1>(props: import("./context.type").TabsProviderProps<TabData_1>) => import("react/jsx-runtime").JSX.Element;
9
9
  };
10
10
  export default useTabs;
11
11
  //# sourceMappingURL=use-tabs.d.ts.map
@@ -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,3 +1,4 @@
1
1
  "use client";
2
- export { default, default as useTree } from "./use-tree";
3
- export { default as useTreeNode } from "./use-tree-node";
2
+ export { default, default as useTree, MODE } from "./use-tree";
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;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"}