@sheinx/hooks 3.6.0-beta.1 → 3.6.0-beta.10

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 (131) 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 +15 -8
  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-form/use-form-control/use-form-control.d.ts.map +1 -1
  15. package/cjs/components/use-form/use-form-control/use-form-control.js +3 -2
  16. package/cjs/components/use-form/use-form-fieldset/fieldset-context.d.ts +1 -1
  17. package/cjs/components/use-form/use-form-fieldset/fieldset-context.d.ts.map +1 -1
  18. package/cjs/components/use-form/use-form-fieldset/fieldset-context.js +3 -2
  19. package/cjs/components/use-form/use-form-fieldset/index.d.ts +1 -0
  20. package/cjs/components/use-form/use-form-fieldset/index.d.ts.map +1 -1
  21. package/cjs/components/use-form/use-form-fieldset/index.js +6 -0
  22. package/cjs/components/use-form/use-form.d.ts +2 -2
  23. package/cjs/components/use-form/use-form.d.ts.map +1 -1
  24. package/cjs/components/use-form/use-form.js +47 -9
  25. package/cjs/components/use-form/use-form.type.d.ts +5 -3
  26. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  27. package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
  28. package/cjs/components/use-input/use-input-format.js +12 -4
  29. package/cjs/components/use-table/use-table-sort.d.ts +5 -0
  30. package/cjs/components/use-table/use-table-sort.d.ts.map +1 -1
  31. package/cjs/components/use-table/use-table-sort.js +5 -1
  32. package/cjs/components/use-table/use-table-tree.d.ts +13 -0
  33. package/cjs/components/use-table/use-table-tree.d.ts.map +1 -1
  34. package/cjs/components/use-table/use-table-tree.js +68 -1
  35. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  36. package/cjs/components/use-table/use-table-virtual.js +6 -4
  37. package/cjs/components/use-tree/index.d.ts +3 -2
  38. package/cjs/components/use-tree/index.d.ts.map +1 -1
  39. package/cjs/components/use-tree/index.js +18 -2
  40. package/cjs/components/use-tree/use-tree-node.d.ts.map +1 -1
  41. package/cjs/components/use-tree/use-tree-node.js +1 -5
  42. package/cjs/components/use-tree/use-tree-node.type.d.ts +18 -0
  43. package/cjs/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  44. package/cjs/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  45. package/cjs/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  46. package/cjs/components/use-tree/use-tree-virtual-node.js +92 -0
  47. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  48. package/cjs/components/use-tree/use-tree.js +191 -6
  49. package/cjs/components/use-tree/use-tree.type.d.ts +31 -1
  50. package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
  51. package/cjs/components/use-treeselect/use-tiled.d.ts +1 -1
  52. package/cjs/components/use-treeselect/use-tiled.d.ts.map +1 -1
  53. package/cjs/components/use-treeselect/use-tiled.js +12 -18
  54. package/cjs/components/use-treeselect/use-tiled.type.d.ts +2 -0
  55. package/cjs/components/use-treeselect/use-tiled.type.d.ts.map +1 -1
  56. package/cjs/utils/is.d.ts +2 -0
  57. package/cjs/utils/is.d.ts.map +1 -1
  58. package/cjs/utils/is.js +5 -2
  59. package/cjs/utils/object.d.ts +12 -0
  60. package/cjs/utils/object.d.ts.map +1 -1
  61. package/cjs/utils/object.js +34 -1
  62. package/cjs/utils/tree.d.ts +1 -1
  63. package/cjs/utils/tree.d.ts.map +1 -1
  64. package/cjs/utils/tree.js +3 -9
  65. package/cjs/utils/warning.js +5 -5
  66. package/esm/common/use-filter/use-filter.d.ts.map +1 -1
  67. package/esm/common/use-position-style/check-border.d.ts +6 -0
  68. package/esm/common/use-position-style/check-border.d.ts.map +1 -0
  69. package/esm/common/use-position-style/check-border.js +29 -0
  70. package/esm/common/use-position-style/get-position-style.d.ts +1 -0
  71. package/esm/common/use-position-style/get-position-style.d.ts.map +1 -1
  72. package/esm/common/use-position-style/get-position-style.js +14 -8
  73. package/esm/common/use-position-style/index.d.ts +1 -0
  74. package/esm/common/use-position-style/index.d.ts.map +1 -1
  75. package/esm/common/use-position-style/index.js +15 -8
  76. package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
  77. package/esm/components/use-cascader/use-cascader.type.d.ts +2 -1
  78. package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  79. package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
  80. package/esm/components/use-form/use-form-control/use-form-control.js +3 -2
  81. package/esm/components/use-form/use-form-fieldset/fieldset-context.d.ts +1 -1
  82. package/esm/components/use-form/use-form-fieldset/fieldset-context.d.ts.map +1 -1
  83. package/esm/components/use-form/use-form-fieldset/fieldset-context.js +2 -1
  84. package/esm/components/use-form/use-form-fieldset/index.d.ts +1 -0
  85. package/esm/components/use-form/use-form-fieldset/index.d.ts.map +1 -1
  86. package/esm/components/use-form/use-form-fieldset/index.js +2 -1
  87. package/esm/components/use-form/use-form.d.ts +2 -2
  88. package/esm/components/use-form/use-form.d.ts.map +1 -1
  89. package/esm/components/use-form/use-form.js +48 -10
  90. package/esm/components/use-form/use-form.type.d.ts +5 -3
  91. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  92. package/esm/components/use-input/use-input-format.d.ts.map +1 -1
  93. package/esm/components/use-input/use-input-format.js +12 -4
  94. package/esm/components/use-table/use-table-sort.d.ts +5 -0
  95. package/esm/components/use-table/use-table-sort.d.ts.map +1 -1
  96. package/esm/components/use-table/use-table-sort.js +5 -1
  97. package/esm/components/use-table/use-table-tree.d.ts +13 -0
  98. package/esm/components/use-table/use-table-tree.d.ts.map +1 -1
  99. package/esm/components/use-table/use-table-tree.js +67 -0
  100. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  101. package/esm/components/use-table/use-table-virtual.js +6 -4
  102. package/esm/components/use-tree/index.d.ts +3 -2
  103. package/esm/components/use-tree/index.d.ts.map +1 -1
  104. package/esm/components/use-tree/index.js +3 -2
  105. package/esm/components/use-tree/use-tree-node.d.ts.map +1 -1
  106. package/esm/components/use-tree/use-tree-node.js +1 -5
  107. package/esm/components/use-tree/use-tree-node.type.d.ts +18 -0
  108. package/esm/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  109. package/esm/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  110. package/esm/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  111. package/esm/components/use-tree/use-tree-virtual-node.js +85 -0
  112. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  113. package/esm/components/use-tree/use-tree.js +193 -8
  114. package/esm/components/use-tree/use-tree.type.d.ts +31 -1
  115. package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
  116. package/esm/components/use-treeselect/use-tiled.d.ts +1 -1
  117. package/esm/components/use-treeselect/use-tiled.d.ts.map +1 -1
  118. package/esm/components/use-treeselect/use-tiled.js +10 -16
  119. package/esm/components/use-treeselect/use-tiled.type.d.ts +2 -0
  120. package/esm/components/use-treeselect/use-tiled.type.d.ts.map +1 -1
  121. package/esm/utils/is.d.ts +2 -0
  122. package/esm/utils/is.d.ts.map +1 -1
  123. package/esm/utils/is.js +4 -1
  124. package/esm/utils/object.d.ts +12 -0
  125. package/esm/utils/object.d.ts.map +1 -1
  126. package/esm/utils/object.js +34 -1
  127. package/esm/utils/tree.d.ts +1 -1
  128. package/esm/utils/tree.d.ts.map +1 -1
  129. package/esm/utils/tree.js +3 -9
  130. package/esm/utils/warning.js +5 -5
  131. package/package.json +1 -1
@@ -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,14 +17,16 @@ 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
  }
29
+ var global_tree_map = new Map();
22
30
  export var MODE = {
23
31
  /**
24
32
  * 返回全选数据,包含父节点和子节点
@@ -51,6 +59,7 @@ var useTree = function useTree(props) {
51
59
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
52
60
  keygen = props.keygen,
53
61
  mode = props.mode,
62
+ virtual = props.virtual,
54
63
  activeProp = props.active,
55
64
  expandedProp = props.expanded,
56
65
  _props$dataUpdate = props.dataUpdate,
@@ -58,14 +67,19 @@ var useTree = function useTree(props) {
58
67
  _props$defaultExpande = props.defaultExpanded,
59
68
  defaultExpanded = _props$defaultExpande === void 0 ? [] : _props$defaultExpande,
60
69
  defaultExpandAll = props.defaultExpandAll,
61
- disabledProps = props.disabled,
62
70
  unmatch = props.unmatch,
63
71
  isControlled = props.isControlled,
64
72
  onExpandProp = props.onExpand;
73
+ var disabledProps = isOptionalDisabled(props.disabled) ? props.disabled.disabled : props.disabled;
74
+ var isRealtime = isOptionalDisabled(props.disabled) ? props.disabled.isRealtime : false;
65
75
  var _useState = useState(false),
66
76
  _useState2 = _slicedToArray(_useState, 2),
67
77
  inited = _useState2[0],
68
78
  setInited = _useState2[1];
79
+ var _useState3 = useState([]),
80
+ _useState4 = _slicedToArray(_useState3, 2),
81
+ dataFlat = _useState4[0],
82
+ setDataFlat = _useState4[1];
69
83
  var _useInputAble = useInputAble({
70
84
  value: expandedProp,
71
85
  defaultValue: defaultExpanded,
@@ -78,6 +92,8 @@ var useTree = function useTree(props) {
78
92
  var _useRef = useRef({
79
93
  pathMap: new Map(),
80
94
  dataMap: new Map(),
95
+ dataFlatStatusMap: new Map(),
96
+ dataFlat: [],
81
97
  forceUpdateMap: new Map(),
82
98
  valueMap: new Map(),
83
99
  updateMap: new Map(),
@@ -109,11 +125,27 @@ var useTree = function useTree(props) {
109
125
  expanded: shouldDefaultExpand
110
126
  };
111
127
  }
128
+ if (virtual) {
129
+ return {
130
+ active: isActive,
131
+ expanded: context.dataFlatStatusMap.get(id).expanded
132
+ };
133
+ }
112
134
  return {
113
135
  active: isActive,
114
136
  expanded: !!(expandeds && expandeds.indexOf(id) >= 0)
115
137
  };
116
138
  };
139
+
140
+ // 注册节点
141
+ var bindVirtualNode = function bindVirtualNode(id, update) {
142
+ context.updateMap.set(id, update);
143
+ var isActive = activeProp === id;
144
+ return {
145
+ active: isActive,
146
+ expanded: context.dataFlatStatusMap.get(id).expanded
147
+ };
148
+ };
117
149
  var get = function get(id) {
118
150
  return context.valueMap.get(id);
119
151
  };
@@ -126,7 +158,6 @@ var useTree = function useTree(props) {
126
158
  if (keygen && (isString(keygen) || isNumber(keygen))) {
127
159
  return item[keygen];
128
160
  }
129
-
130
161
  // 降级处理
131
162
  return id + (id ? ',' : '') + index;
132
163
  };
@@ -224,6 +255,8 @@ var useTree = function useTree(props) {
224
255
  };
225
256
  var initData = function initData(data, path, disabled) {
226
257
  var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
258
+ var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
259
+ var pid = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
227
260
  var ids = [];
228
261
  for (var i = 0; i < data.length; i++) {
229
262
  var item = data[i];
@@ -235,6 +268,28 @@ var useTree = function useTree(props) {
235
268
  }
236
269
  // 制作 data mapping
237
270
  context.dataMap.set(id, item);
271
+ if (virtual) {
272
+ context.dataFlatStatusMap.set(id, {
273
+ active: false,
274
+ expanded: defaultExpandAll ? true : (expanded === null || expanded === void 0 ? void 0 : expanded.includes(id)) || false,
275
+ fetching: false
276
+ });
277
+ var node = {
278
+ id: id,
279
+ level: level,
280
+ data: item,
281
+ pid: pid
282
+ };
283
+ if (defaultExpandAll) {
284
+ context.dataFlat.push(node);
285
+ } else {
286
+ if (level === 1) {
287
+ context.dataFlat.push(node);
288
+ } else if (expanded && pid !== null && expanded.indexOf(pid) >= 0) {
289
+ context.dataFlat.push(node);
290
+ }
291
+ }
292
+ }
238
293
  var _isDisabled = !!disabled;
239
294
  if (_isDisabled === false) {
240
295
  _isDisabled = getDisabled()(item);
@@ -243,7 +298,7 @@ var useTree = function useTree(props) {
243
298
  ids.push(id);
244
299
  var children = [];
245
300
  if (Array.isArray(item[childrenKey])) {
246
- var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath);
301
+ var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath, level + 1, id);
247
302
  if (_children) children = _children;
248
303
  }
249
304
  context.pathMap.set(id, {
@@ -321,7 +376,15 @@ var useTree = function useTree(props) {
321
376
  var isDisabled = function isDisabled(id) {
322
377
  if (isFunc(disabledProps)) {
323
378
  var node = context.pathMap.get(id);
324
- if (node) return node.isDisabled;
379
+ if (node) {
380
+ if (isRealtime) {
381
+ var item = context.dataMap.get(id);
382
+ if (!item) return false;
383
+ return getDisabled()(item);
384
+ } else {
385
+ return node.isDisabled;
386
+ }
387
+ }
325
388
  return false;
326
389
  }
327
390
  return !!disabledProps;
@@ -338,17 +401,37 @@ var useTree = function useTree(props) {
338
401
  return 2;
339
402
  };
340
403
  var setData = function setData(data) {
404
+ // if(data && global_tree_map.get(data)){
405
+ // context.cachedValue = global_tree_map.get(data)?.cachedValue || []
406
+ // context.pathMap = global_tree_map.get(data)?.pathMap || new Map()
407
+ // context.dataMap = global_tree_map.get(data)?.dataMap || new Map()
408
+ // context.valueMap = global_tree_map.get(data)?.valueMap || new Map()
409
+ // context.unmatchedValueMap = global_tree_map.get(data)?.unmatchedValueMap || new Map()
410
+ // return
411
+ // }
412
+
341
413
  var prevValue = context.value || [];
342
414
  context.cachedValue = [];
343
415
  context.pathMap = new Map();
344
416
  context.dataMap = new Map();
417
+ context.dataFlat = [];
418
+ context.dataFlatStatusMap = new Map();
345
419
  context.valueMap = new Map();
346
420
  context.unmatchedValueMap = new Map();
347
421
  context.data = toArray(data);
422
+ if (virtual) {
423
+ context.dataFlat = [];
424
+ setDataFlat([]);
425
+ }
348
426
  if (!data) return;
349
427
  initData(context.data, []);
428
+ if (virtual) {
429
+ setDataFlat(context.dataFlat);
430
+ }
350
431
  initValue();
351
432
  setValue(prevValue);
433
+
434
+ // global_tree_map.set(data, context)
352
435
  };
353
436
  var set = function set(id, checked, direction) {
354
437
  if (!isDisabled(id)) {
@@ -390,6 +473,101 @@ var useTree = function useTree(props) {
390
473
  }
391
474
  return current;
392
475
  };
476
+ var appendChildrenExpanded = function appendChildrenExpanded(child, level, pid, insertData) {
477
+ if (!child) return;
478
+ child.forEach(function (item, i) {
479
+ var _context$dataFlatStat;
480
+ var childId = getKey(item, pid, i);
481
+ var node = {
482
+ id: childId,
483
+ level: level,
484
+ data: item,
485
+ pid: pid
486
+ };
487
+ insertData.push(node);
488
+ if ((_context$dataFlatStat = context.dataFlatStatusMap.get(childId)) !== null && _context$dataFlatStat !== void 0 && _context$dataFlatStat.expanded && item[childrenKey]) {
489
+ appendChildrenExpanded(item[childrenKey], level + 1, childId, insertData);
490
+ }
491
+ });
492
+ };
493
+ var insertFlat = function insertFlat(id) {
494
+ var item = getDataById(id);
495
+ if (isUnMatchedData(item)) return;
496
+ if (!item) return;
497
+ var status = context.dataFlatStatusMap.get(id);
498
+ if (!status) return;
499
+ var childrenData = item[childrenKey];
500
+ var insertStartNode = dataFlat.find(function (item) {
501
+ return item.id === id;
502
+ });
503
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
504
+ expanded: true,
505
+ fetching: false
506
+ }));
507
+ if (!insertStartNode) return;
508
+ var insertData = [];
509
+ appendChildrenExpanded(childrenData, insertStartNode.level + 1, id, insertData);
510
+ var insertIndex = dataFlat.indexOf(insertStartNode);
511
+ var nextDataFlat = produce(dataFlat, function (draft) {
512
+ draft.splice.apply(draft, [insertIndex + 1, 0].concat(_toConsumableArray(insertData)));
513
+ });
514
+ setDataFlat(nextDataFlat);
515
+ };
516
+ var removeFlat = function removeFlat(id) {
517
+ var item = getDataById(id);
518
+ if (isUnMatchedData(item)) return;
519
+ if (!item) return;
520
+ var removeNode = dataFlat.find(function (item) {
521
+ return item.id === id;
522
+ });
523
+ if (!removeNode) return;
524
+ var status = context.dataFlatStatusMap.get(id);
525
+ if (!status) return;
526
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
527
+ fetching: false,
528
+ expanded: false
529
+ }));
530
+ var removeStartIndex = dataFlat.indexOf(removeNode);
531
+ var removeEndIndex = 0;
532
+ for (var i = removeStartIndex + 1; i < dataFlat.length; i++) {
533
+ if (dataFlat[i].level <= removeNode.level) {
534
+ removeEndIndex = i;
535
+ break;
536
+ }
537
+ if (i === dataFlat.length - 1) {
538
+ removeEndIndex = i + 1;
539
+ break;
540
+ }
541
+ }
542
+ var nextDataFlat = produce(dataFlat, function (draft) {
543
+ draft.splice(removeStartIndex + 1, removeEndIndex - removeStartIndex - 1);
544
+ });
545
+ setDataFlat(nextDataFlat);
546
+ };
547
+ var expandedFlat = function expandedFlat(expanded) {
548
+ if (!context.data) return;
549
+ context.dataFlatStatusMap.forEach(function (status, id) {
550
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
551
+ expanded: false
552
+ }));
553
+ });
554
+ expanded.forEach(function (id) {
555
+ var status = context.dataFlatStatusMap.get(id);
556
+ if (!status) return;
557
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
558
+ expanded: true
559
+ }));
560
+ });
561
+ var _getExpandVirtualData = getExpandVirtualData(context.data, expanded, getKey, childrenKey),
562
+ treeDataInfo = _getExpandVirtualData.treeDataInfo;
563
+ if (!treeDataInfo) {
564
+ return;
565
+ }
566
+ setDataFlat(treeDataInfo);
567
+ };
568
+ var getFlatData = function getFlatData() {
569
+ return context.dataFlat;
570
+ };
393
571
  useEffect(function () {
394
572
  if (defaultExpandAll) {
395
573
  var nextExpanded = [];
@@ -400,7 +578,7 @@ var useTree = function useTree(props) {
400
578
  });
401
579
  onExpand(nextExpanded);
402
580
  }
403
- }, []);
581
+ }, [context.dataMap]);
404
582
  useEffect(function () {
405
583
  if (props.datum) return;
406
584
  if (!dataUpdate) return;
@@ -416,25 +594,32 @@ var useTree = function useTree(props) {
416
594
  var datum = useLatestObj({
417
595
  get: get,
418
596
  set: set,
597
+ insertFlat: insertFlat,
598
+ removeFlat: removeFlat,
599
+ expandedFlat: expandedFlat,
419
600
  getPath: getPath,
420
601
  getValue: getValue,
421
602
  getChecked: getChecked,
422
603
  getKey: getKey,
604
+ getFlatData: getFlatData,
423
605
  getDataByValues: getDataByValues,
424
606
  setValue: setValue,
425
607
  setData: setData,
426
608
  isDisabled: isDisabled,
427
609
  bindNode: bindNode,
610
+ bindVirtualNode: bindVirtualNode,
428
611
  getDataById: getDataById,
429
612
  bindUpdate: bindUpdate,
430
613
  unBindUpdate: unBindUpdate,
431
614
  isUnMatched: isUnMatched,
432
615
  childrenKey: childrenKey,
433
616
  data: data,
617
+ dataFlat: dataFlat,
434
618
  pathMap: context.pathMap,
435
619
  dataMap: context.dataMap,
436
620
  valueMap: context.valueMap,
437
- updateMap: context.updateMap
621
+ updateMap: context.updateMap,
622
+ dataFlatStatusMap: context.dataFlatStatusMap
438
623
  });
439
624
  return {
440
625
  inited: inited,
@@ -2,9 +2,22 @@ import { StructKeygenStringType, KeygenResult, ObjectKey } from '../../common/ty
2
2
  export type CheckedStatusType = 0 | 1 | 2;
3
3
  export type TreeModeType = 0 | 1 | 2 | 3 | 4;
4
4
  export type UpdateFunc = (name: string, active: boolean) => void;
5
+ export type FlatNodeType<DataItem> = {
6
+ id: KeygenResult;
7
+ data: DataItem;
8
+ level: number;
9
+ pid?: KeygenResult | null;
10
+ };
11
+ export type FlatMapType = {
12
+ active: boolean;
13
+ expanded: boolean;
14
+ fetching: boolean;
15
+ };
5
16
  export interface TreeContext<DataItem> {
6
17
  pathMap: Map<KeygenResult, TreePathType>;
7
18
  dataMap: Map<KeygenResult, DataItem>;
19
+ dataFlat: FlatNodeType<DataItem>[];
20
+ dataFlatStatusMap: Map<KeygenResult, FlatMapType>;
8
21
  valueMap: Map<KeygenResult, CheckedStatusType>;
9
22
  unmatchedValueMap: Map<any, any>;
10
23
  updateMap: Map<KeygenResult, UpdateFunc>;
@@ -21,6 +34,10 @@ export interface TreePathType {
21
34
  indexPath: number[];
22
35
  index: number;
23
36
  }
37
+ export interface DisabledOption<DataItem> {
38
+ disabled: (data: DataItem) => boolean;
39
+ isRealtime: boolean;
40
+ }
24
41
  export interface BaseTreeProps<DataItem> {
25
42
  /**
26
43
  * @private 内部属性
@@ -63,7 +80,7 @@ export interface BaseTreeProps<DataItem> {
63
80
  * @cn 显示选择框时有效,为 true 时,所有节点禁用选择,为函数时,根据函数返回结果确定是否禁用
64
81
  * @default false
65
82
  */
66
- disabled?: boolean | ((item: DataItem) => boolean);
83
+ disabled?: boolean | ((item: DataItem) => boolean) | DisabledOption<DataItem>;
67
84
  /**
68
85
  * @en Auxiliary method for generating key. When it is a function, use the return value of this function. When it is a string, use the data value corresponding to this string. For example, "id" is the same thing as (d) => d.id
69
86
  * @cn 生成 key 的辅助方法, 为函数时,使用此函数返回值, 为 string 时,使用这个 string 对应的数据值。如 "id",相当于 (d) => d.id
@@ -106,10 +123,17 @@ export interface BaseTreeProps<DataItem> {
106
123
  * @private 内部数据处理
107
124
  */
108
125
  datum?: TreeDatum<DataItem>;
126
+ /**
127
+ * @private 是否虚拟化
128
+ */
129
+ virtual?: boolean;
109
130
  }
110
131
  export interface TreeDatum<DataItem> {
111
132
  get: (id: KeygenResult) => CheckedStatusType | undefined;
112
133
  set: (id: KeygenResult, checked: CheckedStatusType, direction?: 'asc' | 'desc') => CheckedStatusType | null;
134
+ insertFlat: (id: KeygenResult) => void;
135
+ removeFlat: (id: KeygenResult) => void;
136
+ expandedFlat: (id: KeygenResult[]) => void;
113
137
  getPath: (id: KeygenResult) => TreePathType | undefined;
114
138
  getValue: () => KeygenResult[];
115
139
  getChecked: (id: KeygenResult) => boolean | 'indeterminate';
@@ -122,6 +146,10 @@ export interface TreeDatum<DataItem> {
122
146
  active: boolean;
123
147
  expanded: boolean;
124
148
  };
149
+ bindVirtualNode: (id: KeygenResult, update: UpdateFunc, data: DataItem) => {
150
+ active: boolean;
151
+ expanded: boolean;
152
+ };
125
153
  getDataById: (id: KeygenResult) => DataItem | {
126
154
  IS_NOT_MATCHED_VALUE: boolean;
127
155
  value: KeygenResult | null;
@@ -132,8 +160,10 @@ export interface TreeDatum<DataItem> {
132
160
  updateMap: Map<KeygenResult, UpdateFunc>;
133
161
  childrenKey: string;
134
162
  data: DataItem[];
163
+ dataFlat: FlatNodeType<DataItem>[];
135
164
  pathMap: Map<KeygenResult, TreePathType>;
136
165
  dataMap: Map<KeygenResult, DataItem>;
137
166
  valueMap: Map<KeygenResult, CheckedStatusType>;
167
+ dataFlatStatusMap: Map<KeygenResult, FlatMapType>;
138
168
  }
139
169
  //# sourceMappingURL=use-tree.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ declare const useTiled: <DataItem>(props: UseTiledProps<DataItem>) => {
5
5
  onFilter: ((text: string, from?: string | undefined) => void) | undefined;
6
6
  expandIcons?: undefined;
7
7
  } | {
8
- data: any[];
8
+ data: any;
9
9
  onFilter: (text: string, from?: string) => void;
10
10
  expandIcons: ((item: DataItem) => string | number | boolean | import("react").ReactFragment | JSX.Element | null | undefined)[];
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-tiled.d.ts","sourceRoot":"","sources":["use-tiled.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,QAAA,MAAM,QAAQ;;;;;;qBA4BgB,MAAM,SAAS,MAAM;;CA8ClD,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"use-tiled.d.ts","sourceRoot":"","sources":["use-tiled.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,QAAA,MAAM,QAAQ;;;;;;qBAkCgB,MAAM,SAAS,MAAM;;CAyClD,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -13,7 +13,7 @@ import { useTree } from "../use-tree";
13
13
  import { mergeFilteredTree } from "../../utils/tree";
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  var useTiled = function useTiled(props) {
16
- var data = props.data,
16
+ var filterData = props.data,
17
17
  keygen = props.keygen,
18
18
  _props$childrenKey = props.childrenKey,
19
19
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
@@ -30,19 +30,19 @@ var useTiled = function useTiled(props) {
30
30
  tileds = _useState2[0],
31
31
  setTileds = _useState2[1];
32
32
  var _useTree = useTree({
33
- data: data,
34
- childrenKey: childrenKey,
35
- keygen: keygen,
36
- isControlled: false
37
- }),
38
- datum = _useTree.datum;
39
- var _useTree2 = useTree({
40
33
  data: rawData,
34
+ datum: props.rawDatum,
41
35
  childrenKey: childrenKey,
42
36
  keygen: keygen,
43
37
  isControlled: false
44
38
  }),
45
- rawDatum = _useTree2.datum;
39
+ rawDatum = _useTree.datum;
40
+ if (!filterText || !onAdvancedFilter) {
41
+ return {
42
+ data: filterData,
43
+ onFilter: onFilter
44
+ };
45
+ }
46
46
  var handleToggle = function handleToggle(e, key) {
47
47
  e.stopPropagation();
48
48
  var nextTileds = _toConsumableArray(tileds);
@@ -74,13 +74,7 @@ var useTiled = function useTiled(props) {
74
74
  children: moreIcon()
75
75
  });
76
76
  };
77
- if (!filterText || !onAdvancedFilter) {
78
- return {
79
- data: data,
80
- onFilter: onFilter
81
- };
82
- }
83
- var nextData = mergeFilteredTree(datum, rawDatum, tileds);
77
+ var nextData = mergeFilteredTree(filterData, rawDatum, tileds);
84
78
  return {
85
79
  data: nextData,
86
80
  onFilter: handleFilter,
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
2
  import { TreeKeygenType, KeygenResult, ObjectKey } from '../../common/type';
3
+ import { TreeDatum } from '../use-tree/use-tree.type';
3
4
  export type FilterFormType = 'blur' | 'edit';
4
5
  export interface UseTiledProps<DataItem> {
5
6
  data: DataItem[];
6
7
  rawData: DataItem[];
8
+ rawDatum?: TreeDatum<DataItem>;
7
9
  onFilter?: (text: string, from?: string) => void;
8
10
  keygen: TreeKeygenType<DataItem>;
9
11
  childrenKey?: ObjectKey<DataItem>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-tiled.type.d.ts","sourceRoot":"","sources":["use-tiled.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,aAAa,CAAC,QAAQ;IACrC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;CAClE"}
1
+ {"version":3,"file":"use-tiled.type.d.ts","sourceRoot":"","sources":["use-tiled.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,aAAa,CAAC,QAAQ;IACrC,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAChC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;CAClE"}
package/esm/utils/is.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ObjectType } from '../common/type';
2
+ import { DisabledOption } from '../components/use-tree/use-tree.type';
2
3
  import { UnMatchedData } from '../common/use-list-select/use-list.type';
3
4
  import React from 'react';
4
5
  export declare function isBrowser(): boolean;
@@ -25,4 +26,5 @@ export declare function isNamedComponent(type: any): type is React.ForwardRefExo
25
26
  export declare const isMacOS: () => boolean;
26
27
  export declare const isFirefox: () => boolean;
27
28
  export declare function isDomElement(element: any): element is HTMLElement;
29
+ export declare const isOptionalDisabled: <DataItem>(disabled: unknown) => disabled is DisabledOption<DataItem>;
28
30
  //# sourceMappingURL=is.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"is.d.ts","sourceRoot":"","sources":["is.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,SAAS,YAExB;AASD,eAAO,MAAM,OAAO,4BAAgB,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAS,OAAO,sBACc,CAAC;AACpD,eAAO,MAAM,MAAM,QAAS,OAAO,gBAAqC,CAAC;AACzE,eAAO,MAAM,SAAS,QAAS,OAAO,mBAA2C,CAAC;AAClF,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OAA+B,CAAC;AACvE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAAgC,CAAC;AACzE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,QAAS,GAAG,qBAAwC,CAAC;AAC7E,eAAO,MAAM,KAAK,QAjBsB,OAAO,mBAiBb,CAAC;AACnC,eAAO,MAAM,KAAK,QAlBsB,OAAO,mBAkBb,CAAC;AACnC,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAUvC,CAAC;AACF,eAAO,MAAM,eAAe,QAAS,OAAO,yBAE3C,CAAC;AACF,eAAO,MAAM,WAAW,QAAS,OAAO,KAAG,OAS1C,CAAC;AAEF,eAAO,MAAM,MAAM,MAAO,OAAO,kBAA2C,CAAC;AAE7E,eAAO,MAAM,SAAS,MAAO,OAAO,YACiC,CAAC;AAGtE,eAAO,MAAM,KAAK,MAAO,OAAO,KAAG,OAAkB,CAAC;AAEtD,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OActC,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,OAAO,6EASjC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAE5F;AAED,eAAO,MAAM,OAAO,QAAO,OACqC,CAAC;AAEjE,eAAO,MAAM,SAAS,QAAO,OAG5B,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,WAAW,CAQjE"}
1
+ {"version":3,"file":"is.d.ts","sourceRoot":"","sources":["is.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,SAAS,YAExB;AASD,eAAO,MAAM,OAAO,4BAAgB,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAS,OAAO,sBACc,CAAC;AACpD,eAAO,MAAM,MAAM,QAAS,OAAO,gBAAqC,CAAC;AACzE,eAAO,MAAM,SAAS,QAAS,OAAO,mBAA2C,CAAC;AAClF,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OAA+B,CAAC;AACvE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAAgC,CAAC;AACzE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,QAAS,GAAG,qBAAwC,CAAC;AAC7E,eAAO,MAAM,KAAK,QAjBsB,OAAO,mBAiBb,CAAC;AACnC,eAAO,MAAM,KAAK,QAlBsB,OAAO,mBAkBb,CAAC;AACnC,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAUvC,CAAC;AACF,eAAO,MAAM,eAAe,QAAS,OAAO,yBAE3C,CAAC;AACF,eAAO,MAAM,WAAW,QAAS,OAAO,KAAG,OAS1C,CAAC;AAEF,eAAO,MAAM,MAAM,MAAO,OAAO,kBAA2C,CAAC;AAE7E,eAAO,MAAM,SAAS,MAAO,OAAO,YACiC,CAAC;AAGtE,eAAO,MAAM,KAAK,MAAO,OAAO,KAAG,OAAkB,CAAC;AAEtD,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OActC,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,OAAO,6EASjC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAE5F;AAED,eAAO,MAAM,OAAO,QAAO,OACqC,CAAC;AAEjE,eAAO,MAAM,SAAS,QAAO,OAG5B,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,WAAW,CAQjE;AAED,eAAO,MAAM,kBAAkB,uBACnB,OAAO,yCAGlB,CAAC"}
package/esm/utils/is.js CHANGED
@@ -98,4 +98,7 @@ export var isFirefox = function isFirefox() {
98
98
  export function isDomElement(element) {
99
99
  return (typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement)) === 'object' ? element instanceof HTMLElement // DOM2
100
100
  : element && _typeof(element) === 'object' && element !== null && element.nodeType === 1 && typeof element.nodeName === 'string';
101
- }
101
+ }
102
+ export var isOptionalDisabled = function isOptionalDisabled(disabled) {
103
+ return isObject(disabled) && disabled.hasOwnProperty('isRealtime');
104
+ };
@@ -33,5 +33,17 @@ export declare const removeProps: <T extends ObjectType, K extends ObjectType>(t
33
33
  * console.log(keys); // ['a.b.c', 'a.b', 'a']
34
34
  */
35
35
  export declare const getAllKeyPaths: (obj: ObjectType, parentKey?: string) => string[];
36
+ /**
37
+ * 获取完整的字段key
38
+ * @param fields 字段key
39
+ * @param allFields 所有字段key
40
+ * @returns 完整的字段key
41
+ * @example
42
+ * const fields = ['user']
43
+ * const allFields = ['user', 'user.name', 'user.age', 'user[0].name', 'user[0].age', 'user[1].name', 'user[1].age']
44
+ * const completeFields = getCompleteFieldKeys(fields, allFields)
45
+ * console.log(completeFields) // ['user', 'user.name', 'user.age', 'user[0].name', 'user[0].age', 'user[1].name', 'user[1].age']
46
+ */
47
+ export declare const getCompleteFieldKeys: (fields: string | string[], allFields: string[]) => string[];
36
48
  export {};
37
49
  //# sourceMappingURL=object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAGvC;AASD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,YAAY,QAAS,UAAU,UAG3C,CAAC;AAGF,eAAO,MAAM,SAAS,2CAEZ,UAAU,YACT,WAAW,eAwBrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,+DA4BxC;AAED,UAAU,cAAc;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,WACV,UAAU,QACZ,MAAM,SACL,GAAG,YACD,cAAc,eAiDxB,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAAW,WAAW,YAyB7E,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,UAAU,QAAQ,MAAM,eA0B1D,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAavD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,UAAU,YAItC,CAAC;AAEF,eAAO,MAAM,WAAW,wFAQvB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QAAS,UAAU,cAAa,MAAM,KAAQ,MAAM,EAoB9E,CAAC"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAGvC;AASD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,YAAY,QAAS,UAAU,UAG3C,CAAC;AAGF,eAAO,MAAM,SAAS,2CAEZ,UAAU,YACT,WAAW,eAwBrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,+DA4BxC;AAED,UAAU,cAAc;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,WACV,UAAU,QACZ,MAAM,SACL,GAAG,YACD,cAAc,eAiDxB,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAAW,WAAW,YAyB7E,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,UAAU,QAAQ,MAAM,eA0B1D,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAavD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,UAAU,YAItC,CAAC;AAEF,eAAO,MAAM,WAAW,wFAQvB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QAAS,UAAU,cAAa,MAAM,KAAQ,MAAM,EAoB9E,CAAC;AAGF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,WAAY,MAAM,GAAG,MAAM,EAAE,aAAa,MAAM,EAAE,KAAG,MAAM,EAmB3F,CAAA"}
@@ -10,7 +10,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
10
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
11
11
  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); }
12
12
  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; }
13
- import { isMergeable, isObject } from "./is";
13
+ import { isMergeable, isObject, isArray } from "./is";
14
14
  export function insertPoint(name) {
15
15
  var reg = /(\[\d+\])/gi;
16
16
  return name.replace(reg, function (s, m, i) {
@@ -292,4 +292,37 @@ export var getAllKeyPaths = function getAllKeyPaths(obj) {
292
292
  }
293
293
  return keys.concat(obj[key] !== null && _typeof(obj[key]) === 'object' ? getAllKeyPaths(obj[key], newKey) : newKey);
294
294
  }, []);
295
+ };
296
+
297
+ /**
298
+ * 获取完整的字段key
299
+ * @param fields 字段key
300
+ * @param allFields 所有字段key
301
+ * @returns 完整的字段key
302
+ * @example
303
+ * const fields = ['user']
304
+ * const allFields = ['user', 'user.name', 'user.age', 'user[0].name', 'user[0].age', 'user[1].name', 'user[1].age']
305
+ * const completeFields = getCompleteFieldKeys(fields, allFields)
306
+ * console.log(completeFields) // ['user', 'user.name', 'user.age', 'user[0].name', 'user[0].age', 'user[1].name', 'user[1].age']
307
+ */
308
+ export var getCompleteFieldKeys = function getCompleteFieldKeys(fields, allFields) {
309
+ var fieldsArray = isArray(fields) ? fields : [fields];
310
+ var completeFields = [];
311
+ fieldsArray.forEach(function (field) {
312
+ var na = "".concat(field, "[");
313
+ if (field.endsWith(']')) {
314
+ na = field;
315
+ }
316
+ var no = "".concat(field, ".");
317
+ completeFields.push(field);
318
+ var childFields = allFields.filter(function (f) {
319
+ return f.startsWith(na) || f.startsWith(no);
320
+ });
321
+ if (childFields.length) {
322
+ completeFields.push.apply(completeFields, _toConsumableArray(childFields));
323
+ }
324
+ });
325
+
326
+ // 返回之前去重
327
+ return Array.from(new Set(completeFields));
295
328
  };
@@ -9,6 +9,6 @@ type FilterDatum<DataItem> = {
9
9
  getKey: (node: DataItem) => KeygenResult;
10
10
  getDataById: (id: KeygenResult) => DataItem;
11
11
  };
12
- export declare const mergeFilteredTree: (filterDatum: FilterDatum<any>, rawDatum: FilterDatum<any>, tiledId: KeygenResult[]) => any[];
12
+ export declare const mergeFilteredTree: (filterData: any, rawDatum: FilterDatum<any>, tiledId: KeygenResult[]) => any;
13
13
  export {};
14
14
  //# sourceMappingURL=tree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["tree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,cAAc,+CAGlB,OAAO,UAkBf,CAAC;AAEF,eAAO,MAAM,aAAa,2CAA4C,YAAY,6EAE5B,OAAO,iCACzC,YAAY,EAAE,GAAG,SAAS,2EAGxB,OAAO,wCACU,IAAI;;yBA4B1C,CAAC;AAEF,KAAK,WAAW,CAAC,QAAQ,IAAI;IAC3B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,YAAY,CAAC;IACzC,WAAW,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,QAAQ,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBACf,YAAY,GAAG,CAAC,YACnB,YAAY,GAAG,CAAC,WACjB,YAAY,EAAE,UAqBxB,CAAC"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["tree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,eAAO,MAAM,cAAc,+CAGlB,OAAO,UAkBf,CAAC;AAEF,eAAO,MAAM,aAAa,2CAA4C,YAAY,6EAE5B,OAAO,iCACzC,YAAY,EAAE,GAAG,SAAS,2EAGxB,OAAO,wCACU,IAAI;;yBA4B1C,CAAC;AAEF,KAAK,WAAW,CAAC,QAAQ,IAAI;IAC3B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,YAAY,CAAC;IACzC,WAAW,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,QAAQ,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAChB,GAAG,YACL,YAAY,GAAG,CAAC,WACjB,YAAY,EAAE,QAexB,CAAC"}