@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,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); }
@@ -26,6 +33,7 @@ function toArray(value) {
26
33
  if (!Array.isArray(value)) return [value];
27
34
  return value;
28
35
  }
36
+ var global_tree_map = new Map();
29
37
  var MODE = exports.MODE = {
30
38
  /**
31
39
  * 返回全选数据,包含父节点和子节点
@@ -58,6 +66,7 @@ var useTree = function useTree(props) {
58
66
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
59
67
  keygen = props.keygen,
60
68
  mode = props.mode,
69
+ virtual = props.virtual,
61
70
  activeProp = props.active,
62
71
  expandedProp = props.expanded,
63
72
  _props$dataUpdate = props.dataUpdate,
@@ -65,14 +74,19 @@ var useTree = function useTree(props) {
65
74
  _props$defaultExpande = props.defaultExpanded,
66
75
  defaultExpanded = _props$defaultExpande === void 0 ? [] : _props$defaultExpande,
67
76
  defaultExpandAll = props.defaultExpandAll,
68
- disabledProps = props.disabled,
69
77
  unmatch = props.unmatch,
70
78
  isControlled = props.isControlled,
71
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;
72
82
  var _useState = (0, _react.useState)(false),
73
83
  _useState2 = _slicedToArray(_useState, 2),
74
84
  inited = _useState2[0],
75
85
  setInited = _useState2[1];
86
+ var _useState3 = (0, _react.useState)([]),
87
+ _useState4 = _slicedToArray(_useState3, 2),
88
+ dataFlat = _useState4[0],
89
+ setDataFlat = _useState4[1];
76
90
  var _useInputAble = (0, _useInputAble2.useInputAble)({
77
91
  value: expandedProp,
78
92
  defaultValue: defaultExpanded,
@@ -85,6 +99,8 @@ var useTree = function useTree(props) {
85
99
  var _useRef = (0, _react.useRef)({
86
100
  pathMap: new Map(),
87
101
  dataMap: new Map(),
102
+ dataFlatStatusMap: new Map(),
103
+ dataFlat: [],
88
104
  forceUpdateMap: new Map(),
89
105
  valueMap: new Map(),
90
106
  updateMap: new Map(),
@@ -116,11 +132,27 @@ var useTree = function useTree(props) {
116
132
  expanded: shouldDefaultExpand
117
133
  };
118
134
  }
135
+ if (virtual) {
136
+ return {
137
+ active: isActive,
138
+ expanded: context.dataFlatStatusMap.get(id).expanded
139
+ };
140
+ }
119
141
  return {
120
142
  active: isActive,
121
143
  expanded: !!(expandeds && expandeds.indexOf(id) >= 0)
122
144
  };
123
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
+ };
124
156
  var get = function get(id) {
125
157
  return context.valueMap.get(id);
126
158
  };
@@ -133,7 +165,6 @@ var useTree = function useTree(props) {
133
165
  if (keygen && ((0, _is.isString)(keygen) || (0, _is.isNumber)(keygen))) {
134
166
  return item[keygen];
135
167
  }
136
-
137
168
  // 降级处理
138
169
  return id + (id ? ',' : '') + index;
139
170
  };
@@ -231,6 +262,8 @@ var useTree = function useTree(props) {
231
262
  };
232
263
  var initData = function initData(data, path, disabled) {
233
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;
234
267
  var ids = [];
235
268
  for (var i = 0; i < data.length; i++) {
236
269
  var item = data[i];
@@ -242,6 +275,28 @@ var useTree = function useTree(props) {
242
275
  }
243
276
  // 制作 data mapping
244
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
+ }
245
300
  var _isDisabled = !!disabled;
246
301
  if (_isDisabled === false) {
247
302
  _isDisabled = getDisabled()(item);
@@ -250,7 +305,7 @@ var useTree = function useTree(props) {
250
305
  ids.push(id);
251
306
  var children = [];
252
307
  if (Array.isArray(item[childrenKey])) {
253
- 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);
254
309
  if (_children) children = _children;
255
310
  }
256
311
  context.pathMap.set(id, {
@@ -328,7 +383,15 @@ var useTree = function useTree(props) {
328
383
  var isDisabled = function isDisabled(id) {
329
384
  if ((0, _is.isFunc)(disabledProps)) {
330
385
  var node = context.pathMap.get(id);
331
- if (node) return node.isDisabled;
386
+ if (node) {
387
+ if (isRealtime) {
388
+ var item = context.dataMap.get(id);
389
+ if (!item) return false;
390
+ return getDisabled()(item);
391
+ } else {
392
+ return node.isDisabled;
393
+ }
394
+ }
332
395
  return false;
333
396
  }
334
397
  return !!disabledProps;
@@ -345,17 +408,37 @@ var useTree = function useTree(props) {
345
408
  return 2;
346
409
  };
347
410
  var setData = function setData(data) {
411
+ // if(data && global_tree_map.get(data)){
412
+ // context.cachedValue = global_tree_map.get(data)?.cachedValue || []
413
+ // context.pathMap = global_tree_map.get(data)?.pathMap || new Map()
414
+ // context.dataMap = global_tree_map.get(data)?.dataMap || new Map()
415
+ // context.valueMap = global_tree_map.get(data)?.valueMap || new Map()
416
+ // context.unmatchedValueMap = global_tree_map.get(data)?.unmatchedValueMap || new Map()
417
+ // return
418
+ // }
419
+
348
420
  var prevValue = context.value || [];
349
421
  context.cachedValue = [];
350
422
  context.pathMap = new Map();
351
423
  context.dataMap = new Map();
424
+ context.dataFlat = [];
425
+ context.dataFlatStatusMap = new Map();
352
426
  context.valueMap = new Map();
353
427
  context.unmatchedValueMap = new Map();
354
428
  context.data = toArray(data);
429
+ if (virtual) {
430
+ context.dataFlat = [];
431
+ setDataFlat([]);
432
+ }
355
433
  if (!data) return;
356
434
  initData(context.data, []);
435
+ if (virtual) {
436
+ setDataFlat(context.dataFlat);
437
+ }
357
438
  initValue();
358
439
  setValue(prevValue);
440
+
441
+ // global_tree_map.set(data, context)
359
442
  };
360
443
  var set = function set(id, checked, direction) {
361
444
  if (!isDisabled(id)) {
@@ -397,6 +480,101 @@ var useTree = function useTree(props) {
397
480
  }
398
481
  return current;
399
482
  };
483
+ var appendChildrenExpanded = function appendChildrenExpanded(child, level, pid, insertData) {
484
+ if (!child) return;
485
+ child.forEach(function (item, i) {
486
+ var _context$dataFlatStat;
487
+ var childId = getKey(item, pid, i);
488
+ var node = {
489
+ id: childId,
490
+ level: level,
491
+ data: item,
492
+ pid: pid
493
+ };
494
+ insertData.push(node);
495
+ if ((_context$dataFlatStat = context.dataFlatStatusMap.get(childId)) !== null && _context$dataFlatStat !== void 0 && _context$dataFlatStat.expanded && item[childrenKey]) {
496
+ appendChildrenExpanded(item[childrenKey], level + 1, childId, insertData);
497
+ }
498
+ });
499
+ };
500
+ var insertFlat = function insertFlat(id) {
501
+ var item = getDataById(id);
502
+ if ((0, _is.isUnMatchedData)(item)) return;
503
+ if (!item) return;
504
+ var status = context.dataFlatStatusMap.get(id);
505
+ if (!status) return;
506
+ var childrenData = item[childrenKey];
507
+ var insertStartNode = dataFlat.find(function (item) {
508
+ return item.id === id;
509
+ });
510
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
511
+ expanded: true,
512
+ fetching: false
513
+ }));
514
+ if (!insertStartNode) return;
515
+ var insertData = [];
516
+ appendChildrenExpanded(childrenData, insertStartNode.level + 1, id, insertData);
517
+ var insertIndex = dataFlat.indexOf(insertStartNode);
518
+ var nextDataFlat = (0, _utils.produce)(dataFlat, function (draft) {
519
+ draft.splice.apply(draft, [insertIndex + 1, 0].concat(_toConsumableArray(insertData)));
520
+ });
521
+ setDataFlat(nextDataFlat);
522
+ };
523
+ var removeFlat = function removeFlat(id) {
524
+ var item = getDataById(id);
525
+ if ((0, _is.isUnMatchedData)(item)) return;
526
+ if (!item) return;
527
+ var removeNode = dataFlat.find(function (item) {
528
+ return item.id === id;
529
+ });
530
+ if (!removeNode) return;
531
+ var status = context.dataFlatStatusMap.get(id);
532
+ if (!status) return;
533
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
534
+ fetching: false,
535
+ expanded: false
536
+ }));
537
+ var removeStartIndex = dataFlat.indexOf(removeNode);
538
+ var removeEndIndex = 0;
539
+ for (var i = removeStartIndex + 1; i < dataFlat.length; i++) {
540
+ if (dataFlat[i].level <= removeNode.level) {
541
+ removeEndIndex = i;
542
+ break;
543
+ }
544
+ if (i === dataFlat.length - 1) {
545
+ removeEndIndex = i + 1;
546
+ break;
547
+ }
548
+ }
549
+ var nextDataFlat = (0, _utils.produce)(dataFlat, function (draft) {
550
+ draft.splice(removeStartIndex + 1, removeEndIndex - removeStartIndex - 1);
551
+ });
552
+ setDataFlat(nextDataFlat);
553
+ };
554
+ var expandedFlat = function expandedFlat(expanded) {
555
+ if (!context.data) return;
556
+ context.dataFlatStatusMap.forEach(function (status, id) {
557
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
558
+ expanded: false
559
+ }));
560
+ });
561
+ expanded.forEach(function (id) {
562
+ var status = context.dataFlatStatusMap.get(id);
563
+ if (!status) return;
564
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
565
+ expanded: true
566
+ }));
567
+ });
568
+ var _getExpandVirtualData = (0, _useTableTree.getExpandVirtualData)(context.data, expanded, getKey, childrenKey),
569
+ treeDataInfo = _getExpandVirtualData.treeDataInfo;
570
+ if (!treeDataInfo) {
571
+ return;
572
+ }
573
+ setDataFlat(treeDataInfo);
574
+ };
575
+ var getFlatData = function getFlatData() {
576
+ return context.dataFlat;
577
+ };
400
578
  (0, _react.useEffect)(function () {
401
579
  if (defaultExpandAll) {
402
580
  var nextExpanded = [];
@@ -407,7 +585,7 @@ var useTree = function useTree(props) {
407
585
  });
408
586
  onExpand(nextExpanded);
409
587
  }
410
- }, []);
588
+ }, [context.dataMap]);
411
589
  (0, _react.useEffect)(function () {
412
590
  if (props.datum) return;
413
591
  if (!dataUpdate) return;
@@ -423,25 +601,32 @@ var useTree = function useTree(props) {
423
601
  var datum = (0, _useLatestObj.default)({
424
602
  get: get,
425
603
  set: set,
604
+ insertFlat: insertFlat,
605
+ removeFlat: removeFlat,
606
+ expandedFlat: expandedFlat,
426
607
  getPath: getPath,
427
608
  getValue: getValue,
428
609
  getChecked: getChecked,
429
610
  getKey: getKey,
611
+ getFlatData: getFlatData,
430
612
  getDataByValues: getDataByValues,
431
613
  setValue: setValue,
432
614
  setData: setData,
433
615
  isDisabled: isDisabled,
434
616
  bindNode: bindNode,
617
+ bindVirtualNode: bindVirtualNode,
435
618
  getDataById: getDataById,
436
619
  bindUpdate: bindUpdate,
437
620
  unBindUpdate: unBindUpdate,
438
621
  isUnMatched: isUnMatched,
439
622
  childrenKey: childrenKey,
440
623
  data: data,
624
+ dataFlat: dataFlat,
441
625
  pathMap: context.pathMap,
442
626
  dataMap: context.dataMap,
443
627
  valueMap: context.valueMap,
444
- updateMap: context.updateMap
628
+ updateMap: context.updateMap,
629
+ dataFlatStatusMap: context.dataFlatStatusMap
445
630
  });
446
631
  return {
447
632
  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"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
- var _useTree3 = require("../use-tree");
8
+ var _useTree2 = require("../use-tree");
9
9
  var _tree = require("../../utils/tree");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -19,7 +19,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
19
19
  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; } }
20
20
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
21
  var useTiled = function useTiled(props) {
22
- var data = props.data,
22
+ var filterData = props.data,
23
23
  keygen = props.keygen,
24
24
  _props$childrenKey = props.childrenKey,
25
25
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
@@ -35,20 +35,20 @@ var useTiled = function useTiled(props) {
35
35
  _useState2 = _slicedToArray(_useState, 2),
36
36
  tileds = _useState2[0],
37
37
  setTileds = _useState2[1];
38
- var _useTree = (0, _useTree3.useTree)({
39
- data: data,
40
- childrenKey: childrenKey,
41
- keygen: keygen,
42
- isControlled: false
43
- }),
44
- datum = _useTree.datum;
45
- var _useTree2 = (0, _useTree3.useTree)({
38
+ var _useTree = (0, _useTree2.useTree)({
46
39
  data: rawData,
40
+ datum: props.rawDatum,
47
41
  childrenKey: childrenKey,
48
42
  keygen: keygen,
49
43
  isControlled: false
50
44
  }),
51
- rawDatum = _useTree2.datum;
45
+ rawDatum = _useTree.datum;
46
+ if (!filterText || !onAdvancedFilter) {
47
+ return {
48
+ data: filterData,
49
+ onFilter: onFilter
50
+ };
51
+ }
52
52
  var handleToggle = function handleToggle(e, key) {
53
53
  e.stopPropagation();
54
54
  var nextTileds = _toConsumableArray(tileds);
@@ -80,13 +80,7 @@ var useTiled = function useTiled(props) {
80
80
  children: moreIcon()
81
81
  });
82
82
  };
83
- if (!filterText || !onAdvancedFilter) {
84
- return {
85
- data: data,
86
- onFilter: onFilter
87
- };
88
- }
89
- var nextData = (0, _tree.mergeFilteredTree)(datum, rawDatum, tileds);
83
+ var nextData = (0, _tree.mergeFilteredTree)(filterData, rawDatum, tileds);
90
84
  return {
91
85
  data: nextData,
92
86
  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/cjs/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/cjs/utils/is.js CHANGED
@@ -9,7 +9,7 @@ exports.isDate = exports.isBuffer = void 0;
9
9
  exports.isDomElement = isDomElement;
10
10
  exports.isMergeable = exports.isMap = exports.isMacOS = exports.isLink = exports.isFunc = exports.isFirefox = exports.isError = exports.isEmpty = void 0;
11
11
  exports.isNamedComponent = isNamedComponent;
12
- exports.isUndefined = exports.isUnMatchedData = exports.isString = exports.isSet = exports.isRegexp = exports.isPromise = exports.isObject = exports.isNumber = exports.isNan = void 0;
12
+ exports.isUndefined = exports.isUnMatchedData = exports.isString = exports.isSet = exports.isRegexp = exports.isPromise = exports.isOptionalDisabled = exports.isObject = exports.isNumber = exports.isNan = void 0;
13
13
  var _react = _interopRequireDefault(require("react"));
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  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); }
@@ -111,4 +111,7 @@ var isFirefox = exports.isFirefox = function isFirefox() {
111
111
  function isDomElement(element) {
112
112
  return (typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement)) === 'object' ? element instanceof HTMLElement // DOM2
113
113
  : element && _typeof(element) === 'object' && element !== null && element.nodeType === 1 && typeof element.nodeName === 'string';
114
- }
114
+ }
115
+ var isOptionalDisabled = exports.isOptionalDisabled = function isOptionalDisabled(disabled) {
116
+ return isObject(disabled) && disabled.hasOwnProperty('isRealtime');
117
+ };
@@ -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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getAllKeyPaths = exports.entries = exports.deepSet = exports.deepRemove = exports.deepMerge = exports.deepHas = exports.deepGet = void 0;
6
+ exports.getCompleteFieldKeys = exports.getAllKeyPaths = exports.entries = exports.deepSet = exports.deepRemove = exports.deepMerge = exports.deepHas = exports.deepGet = void 0;
7
7
  exports.insertPoint = insertPoint;
8
8
  exports.objectValues = void 0;
9
9
  exports.pathGenerator = pathGenerator;
@@ -302,4 +302,37 @@ var getAllKeyPaths = exports.getAllKeyPaths = function getAllKeyPaths(obj) {
302
302
  }
303
303
  return keys.concat(obj[key] !== null && _typeof(obj[key]) === 'object' ? getAllKeyPaths(obj[key], newKey) : newKey);
304
304
  }, []);
305
+ };
306
+
307
+ /**
308
+ * 获取完整的字段key
309
+ * @param fields 字段key
310
+ * @param allFields 所有字段key
311
+ * @returns 完整的字段key
312
+ * @example
313
+ * const fields = ['user']
314
+ * const allFields = ['user', 'user.name', 'user.age', 'user[0].name', 'user[0].age', 'user[1].name', 'user[1].age']
315
+ * const completeFields = getCompleteFieldKeys(fields, allFields)
316
+ * console.log(completeFields) // ['user', 'user.name', 'user.age', 'user[0].name', 'user[0].age', 'user[1].name', 'user[1].age']
317
+ */
318
+ var getCompleteFieldKeys = exports.getCompleteFieldKeys = function getCompleteFieldKeys(fields, allFields) {
319
+ var fieldsArray = (0, _is.isArray)(fields) ? fields : [fields];
320
+ var completeFields = [];
321
+ fieldsArray.forEach(function (field) {
322
+ var na = "".concat(field, "[");
323
+ if (field.endsWith(']')) {
324
+ na = field;
325
+ }
326
+ var no = "".concat(field, ".");
327
+ completeFields.push(field);
328
+ var childFields = allFields.filter(function (f) {
329
+ return f.startsWith(na) || f.startsWith(no);
330
+ });
331
+ if (childFields.length) {
332
+ completeFields.push.apply(completeFields, _toConsumableArray(childFields));
333
+ }
334
+ });
335
+
336
+ // 返回之前去重
337
+ return Array.from(new Set(completeFields));
305
338
  };