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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
  2. package/cjs/components/use-cascader/use-cascader.d.ts.map +1 -1
  3. package/cjs/components/use-cascader/use-cascader.type.d.ts +2 -1
  4. package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  5. package/cjs/components/use-form/use-form.d.ts +2 -2
  6. package/cjs/components/use-form/use-form.d.ts.map +1 -1
  7. package/cjs/components/use-form/use-form.js +46 -8
  8. package/cjs/components/use-form/use-form.type.d.ts +3 -1
  9. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  10. package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
  11. package/cjs/components/use-input/use-input-format.js +12 -4
  12. package/cjs/components/use-table/use-table-sort.d.ts +5 -0
  13. package/cjs/components/use-table/use-table-sort.d.ts.map +1 -1
  14. package/cjs/components/use-table/use-table-sort.js +5 -1
  15. package/cjs/components/use-table/use-table-tree.d.ts +13 -0
  16. package/cjs/components/use-table/use-table-tree.d.ts.map +1 -1
  17. package/cjs/components/use-table/use-table-tree.js +68 -1
  18. package/cjs/components/use-table/use-table-virtual.js +3 -3
  19. package/cjs/components/use-tree/index.d.ts +2 -1
  20. package/cjs/components/use-tree/index.d.ts.map +1 -1
  21. package/cjs/components/use-tree/index.js +7 -0
  22. package/cjs/components/use-tree/use-tree-node.d.ts.map +1 -1
  23. package/cjs/components/use-tree/use-tree-node.js +1 -5
  24. package/cjs/components/use-tree/use-tree-node.type.d.ts +18 -0
  25. package/cjs/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  26. package/cjs/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  27. package/cjs/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  28. package/cjs/components/use-tree/use-tree-virtual-node.js +92 -0
  29. package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
  30. package/cjs/components/use-tree/use-tree.js +179 -7
  31. package/cjs/components/use-tree/use-tree.type.d.ts +31 -1
  32. package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
  33. package/cjs/utils/is.d.ts +2 -0
  34. package/cjs/utils/is.d.ts.map +1 -1
  35. package/cjs/utils/is.js +5 -2
  36. package/cjs/utils/object.d.ts +12 -0
  37. package/cjs/utils/object.d.ts.map +1 -1
  38. package/cjs/utils/object.js +34 -1
  39. package/cjs/utils/warning.js +5 -5
  40. package/esm/common/use-filter/use-filter.d.ts.map +1 -1
  41. package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
  42. package/esm/components/use-cascader/use-cascader.type.d.ts +2 -1
  43. package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
  44. package/esm/components/use-form/use-form.d.ts +2 -2
  45. package/esm/components/use-form/use-form.d.ts.map +1 -1
  46. package/esm/components/use-form/use-form.js +47 -9
  47. package/esm/components/use-form/use-form.type.d.ts +3 -1
  48. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  49. package/esm/components/use-input/use-input-format.d.ts.map +1 -1
  50. package/esm/components/use-input/use-input-format.js +12 -4
  51. package/esm/components/use-table/use-table-sort.d.ts +5 -0
  52. package/esm/components/use-table/use-table-sort.d.ts.map +1 -1
  53. package/esm/components/use-table/use-table-sort.js +5 -1
  54. package/esm/components/use-table/use-table-tree.d.ts +13 -0
  55. package/esm/components/use-table/use-table-tree.d.ts.map +1 -1
  56. package/esm/components/use-table/use-table-tree.js +67 -0
  57. package/esm/components/use-table/use-table-virtual.js +3 -3
  58. package/esm/components/use-tree/index.d.ts +2 -1
  59. package/esm/components/use-tree/index.d.ts.map +1 -1
  60. package/esm/components/use-tree/index.js +2 -1
  61. package/esm/components/use-tree/use-tree-node.d.ts.map +1 -1
  62. package/esm/components/use-tree/use-tree-node.js +1 -5
  63. package/esm/components/use-tree/use-tree-node.type.d.ts +18 -0
  64. package/esm/components/use-tree/use-tree-node.type.d.ts.map +1 -1
  65. package/esm/components/use-tree/use-tree-virtual-node.d.ts +13 -0
  66. package/esm/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
  67. package/esm/components/use-tree/use-tree-virtual-node.js +85 -0
  68. package/esm/components/use-tree/use-tree.d.ts.map +1 -1
  69. package/esm/components/use-tree/use-tree.js +181 -9
  70. package/esm/components/use-tree/use-tree.type.d.ts +31 -1
  71. package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
  72. package/esm/utils/is.d.ts +2 -0
  73. package/esm/utils/is.d.ts.map +1 -1
  74. package/esm/utils/is.js +4 -1
  75. package/esm/utils/object.d.ts +12 -0
  76. package/esm/utils/object.d.ts.map +1 -1
  77. package/esm/utils/object.js +34 -1
  78. package/esm/utils/warning.js +5 -5
  79. 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,15 +17,15 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
11
17
  import { useState, useEffect, useRef } from 'react';
12
18
  import useLatestObj from "../../common/use-latest-obj";
13
19
  import { useInputAble } from "../../common/use-input-able";
20
+ import { getExpandVirtualData } from "../use-table/use-table-tree";
14
21
  import { usePersistFn } from "../../common/use-persist-fn";
15
- import { isFunc, isString, isNumber, isArray, isUnMatchedData } from "../../utils/is";
16
- import { devUseWarning } from "../../utils";
22
+ import { isFunc, isString, isNumber, isArray, isUnMatchedData, isOptionalDisabled } from "../../utils/is";
23
+ import { devUseWarning, produce } from "../../utils";
17
24
  function toArray(value) {
18
25
  if (!value) return [];
19
26
  if (!Array.isArray(value)) return [value];
20
27
  return value;
21
28
  }
22
- var global_tree_map = new Map();
23
29
  export var MODE = {
24
30
  /**
25
31
  * 返回全选数据,包含父节点和子节点
@@ -52,6 +58,7 @@ var useTree = function useTree(props) {
52
58
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
53
59
  keygen = props.keygen,
54
60
  mode = props.mode,
61
+ virtual = props.virtual,
55
62
  activeProp = props.active,
56
63
  expandedProp = props.expanded,
57
64
  _props$dataUpdate = props.dataUpdate,
@@ -59,14 +66,19 @@ var useTree = function useTree(props) {
59
66
  _props$defaultExpande = props.defaultExpanded,
60
67
  defaultExpanded = _props$defaultExpande === void 0 ? [] : _props$defaultExpande,
61
68
  defaultExpandAll = props.defaultExpandAll,
62
- disabledProps = props.disabled,
63
69
  unmatch = props.unmatch,
64
70
  isControlled = props.isControlled,
65
71
  onExpandProp = props.onExpand;
72
+ var disabledProps = isOptionalDisabled(props.disabled) ? props.disabled.disabled : props.disabled;
73
+ var isRealtime = isOptionalDisabled(props.disabled) ? props.disabled.isRealtime : false;
66
74
  var _useState = useState(false),
67
75
  _useState2 = _slicedToArray(_useState, 2),
68
76
  inited = _useState2[0],
69
77
  setInited = _useState2[1];
78
+ var _useState3 = useState([]),
79
+ _useState4 = _slicedToArray(_useState3, 2),
80
+ dataFlat = _useState4[0],
81
+ setDataFlat = _useState4[1];
70
82
  var _useInputAble = useInputAble({
71
83
  value: expandedProp,
72
84
  defaultValue: defaultExpanded,
@@ -79,6 +91,8 @@ var useTree = function useTree(props) {
79
91
  var _useRef = useRef({
80
92
  pathMap: new Map(),
81
93
  dataMap: new Map(),
94
+ dataFlatStatusMap: new Map(),
95
+ dataFlat: [],
82
96
  forceUpdateMap: new Map(),
83
97
  valueMap: new Map(),
84
98
  updateMap: new Map(),
@@ -110,11 +124,27 @@ var useTree = function useTree(props) {
110
124
  expanded: shouldDefaultExpand
111
125
  };
112
126
  }
127
+ if (virtual) {
128
+ return {
129
+ active: isActive,
130
+ expanded: context.dataFlatStatusMap.get(id).expanded
131
+ };
132
+ }
113
133
  return {
114
134
  active: isActive,
115
135
  expanded: !!(expandeds && expandeds.indexOf(id) >= 0)
116
136
  };
117
137
  };
138
+
139
+ // 注册节点
140
+ var bindVirtualNode = function bindVirtualNode(id, update) {
141
+ context.updateMap.set(id, update);
142
+ var isActive = activeProp === id;
143
+ return {
144
+ active: isActive,
145
+ expanded: context.dataFlatStatusMap.get(id).expanded
146
+ };
147
+ };
118
148
  var get = function get(id) {
119
149
  return context.valueMap.get(id);
120
150
  };
@@ -127,7 +157,6 @@ var useTree = function useTree(props) {
127
157
  if (keygen && (isString(keygen) || isNumber(keygen))) {
128
158
  return item[keygen];
129
159
  }
130
-
131
160
  // 降级处理
132
161
  return id + (id ? ',' : '') + index;
133
162
  };
@@ -225,6 +254,8 @@ var useTree = function useTree(props) {
225
254
  };
226
255
  var initData = function initData(data, path, disabled) {
227
256
  var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
257
+ var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;
258
+ var pid = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
228
259
  var ids = [];
229
260
  for (var i = 0; i < data.length; i++) {
230
261
  var item = data[i];
@@ -236,6 +267,28 @@ var useTree = function useTree(props) {
236
267
  }
237
268
  // 制作 data mapping
238
269
  context.dataMap.set(id, item);
270
+ if (virtual) {
271
+ context.dataFlatStatusMap.set(id, {
272
+ active: false,
273
+ expanded: defaultExpandAll ? true : (expanded === null || expanded === void 0 ? void 0 : expanded.includes(id)) || false,
274
+ fetching: false
275
+ });
276
+ var node = {
277
+ id: id,
278
+ level: level,
279
+ data: item,
280
+ pid: pid
281
+ };
282
+ if (defaultExpandAll) {
283
+ context.dataFlat.push(node);
284
+ } else {
285
+ if (level === 1) {
286
+ context.dataFlat.push(node);
287
+ } else if (expanded && pid !== null && expanded.indexOf(pid) >= 0) {
288
+ context.dataFlat.push(node);
289
+ }
290
+ }
291
+ }
239
292
  var _isDisabled = !!disabled;
240
293
  if (_isDisabled === false) {
241
294
  _isDisabled = getDisabled()(item);
@@ -244,7 +297,7 @@ var useTree = function useTree(props) {
244
297
  ids.push(id);
245
298
  var children = [];
246
299
  if (Array.isArray(item[childrenKey])) {
247
- var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath);
300
+ var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath, level + 1, id);
248
301
  if (_children) children = _children;
249
302
  }
250
303
  context.pathMap.set(id, {
@@ -322,7 +375,15 @@ var useTree = function useTree(props) {
322
375
  var isDisabled = function isDisabled(id) {
323
376
  if (isFunc(disabledProps)) {
324
377
  var node = context.pathMap.get(id);
325
- if (node) return node.isDisabled;
378
+ if (node) {
379
+ if (isRealtime) {
380
+ var item = context.dataMap.get(id);
381
+ if (!item) return false;
382
+ return getDisabled()(item);
383
+ } else {
384
+ return node.isDisabled;
385
+ }
386
+ }
326
387
  return false;
327
388
  }
328
389
  return !!disabledProps;
@@ -352,11 +413,20 @@ var useTree = function useTree(props) {
352
413
  context.cachedValue = [];
353
414
  context.pathMap = new Map();
354
415
  context.dataMap = new Map();
416
+ context.dataFlat = [];
417
+ context.dataFlatStatusMap = new Map();
355
418
  context.valueMap = new Map();
356
419
  context.unmatchedValueMap = new Map();
357
420
  context.data = toArray(data);
421
+ if (virtual) {
422
+ context.dataFlat = [];
423
+ setDataFlat([]);
424
+ }
358
425
  if (!data) return;
359
426
  initData(context.data, []);
427
+ if (virtual) {
428
+ setDataFlat(context.dataFlat);
429
+ }
360
430
  initValue();
361
431
  setValue(prevValue);
362
432
 
@@ -402,6 +472,101 @@ var useTree = function useTree(props) {
402
472
  }
403
473
  return current;
404
474
  };
475
+ var appendChildrenExpanded = function appendChildrenExpanded(child, level, pid, insertData) {
476
+ if (!child) return;
477
+ child.forEach(function (item, i) {
478
+ var _context$dataFlatStat;
479
+ var childId = getKey(item, pid, i);
480
+ var node = {
481
+ id: childId,
482
+ level: level,
483
+ data: item,
484
+ pid: pid
485
+ };
486
+ insertData.push(node);
487
+ if ((_context$dataFlatStat = context.dataFlatStatusMap.get(childId)) !== null && _context$dataFlatStat !== void 0 && _context$dataFlatStat.expanded && item[childrenKey]) {
488
+ appendChildrenExpanded(item[childrenKey], level + 1, childId, insertData);
489
+ }
490
+ });
491
+ };
492
+ var insertFlat = function insertFlat(id) {
493
+ var item = getDataById(id);
494
+ if (isUnMatchedData(item)) return;
495
+ if (!item) return;
496
+ var status = context.dataFlatStatusMap.get(id);
497
+ if (!status) return;
498
+ var childrenData = item[childrenKey];
499
+ var insertStartNode = dataFlat.find(function (item) {
500
+ return item.id === id;
501
+ });
502
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
503
+ expanded: true,
504
+ fetching: false
505
+ }));
506
+ if (!insertStartNode) return;
507
+ var insertData = [];
508
+ appendChildrenExpanded(childrenData, insertStartNode.level + 1, id, insertData);
509
+ var insertIndex = dataFlat.indexOf(insertStartNode);
510
+ var nextDataFlat = produce(dataFlat, function (draft) {
511
+ draft.splice.apply(draft, [insertIndex + 1, 0].concat(_toConsumableArray(insertData)));
512
+ });
513
+ setDataFlat(nextDataFlat);
514
+ };
515
+ var removeFlat = function removeFlat(id) {
516
+ var item = getDataById(id);
517
+ if (isUnMatchedData(item)) return;
518
+ if (!item) return;
519
+ var removeNode = dataFlat.find(function (item) {
520
+ return item.id === id;
521
+ });
522
+ if (!removeNode) return;
523
+ var status = context.dataFlatStatusMap.get(id);
524
+ if (!status) return;
525
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
526
+ fetching: false,
527
+ expanded: false
528
+ }));
529
+ var removeStartIndex = dataFlat.indexOf(removeNode);
530
+ var removeEndIndex = 0;
531
+ for (var i = removeStartIndex + 1; i < dataFlat.length; i++) {
532
+ if (dataFlat[i].level <= removeNode.level) {
533
+ removeEndIndex = i;
534
+ break;
535
+ }
536
+ if (i === dataFlat.length - 1) {
537
+ removeEndIndex = i + 1;
538
+ break;
539
+ }
540
+ }
541
+ var nextDataFlat = produce(dataFlat, function (draft) {
542
+ draft.splice(removeStartIndex + 1, removeEndIndex - removeStartIndex - 1);
543
+ });
544
+ setDataFlat(nextDataFlat);
545
+ };
546
+ var expandedFlat = function expandedFlat(expanded) {
547
+ if (!context.data) return;
548
+ context.dataFlatStatusMap.forEach(function (status, id) {
549
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
550
+ expanded: false
551
+ }));
552
+ });
553
+ expanded.forEach(function (id) {
554
+ var status = context.dataFlatStatusMap.get(id);
555
+ if (!status) return;
556
+ context.dataFlatStatusMap.set(id, _objectSpread(_objectSpread({}, status), {}, {
557
+ expanded: true
558
+ }));
559
+ });
560
+ var _getExpandVirtualData = getExpandVirtualData(context.data, expanded, getKey, childrenKey),
561
+ treeDataInfo = _getExpandVirtualData.treeDataInfo;
562
+ if (!treeDataInfo) {
563
+ return;
564
+ }
565
+ setDataFlat(treeDataInfo);
566
+ };
567
+ var getFlatData = function getFlatData() {
568
+ return context.dataFlat;
569
+ };
405
570
  useEffect(function () {
406
571
  if (defaultExpandAll) {
407
572
  var nextExpanded = [];
@@ -412,7 +577,7 @@ var useTree = function useTree(props) {
412
577
  });
413
578
  onExpand(nextExpanded);
414
579
  }
415
- }, []);
580
+ }, [context.dataMap]);
416
581
  useEffect(function () {
417
582
  if (props.datum) return;
418
583
  if (!dataUpdate) return;
@@ -428,25 +593,32 @@ var useTree = function useTree(props) {
428
593
  var datum = useLatestObj({
429
594
  get: get,
430
595
  set: set,
596
+ insertFlat: insertFlat,
597
+ removeFlat: removeFlat,
598
+ expandedFlat: expandedFlat,
431
599
  getPath: getPath,
432
600
  getValue: getValue,
433
601
  getChecked: getChecked,
434
602
  getKey: getKey,
603
+ getFlatData: getFlatData,
435
604
  getDataByValues: getDataByValues,
436
605
  setValue: setValue,
437
606
  setData: setData,
438
607
  isDisabled: isDisabled,
439
608
  bindNode: bindNode,
609
+ bindVirtualNode: bindVirtualNode,
440
610
  getDataById: getDataById,
441
611
  bindUpdate: bindUpdate,
442
612
  unBindUpdate: unBindUpdate,
443
613
  isUnMatched: isUnMatched,
444
614
  childrenKey: childrenKey,
445
615
  data: data,
616
+ dataFlat: dataFlat,
446
617
  pathMap: context.pathMap,
447
618
  dataMap: context.dataMap,
448
619
  valueMap: context.valueMap,
449
- updateMap: context.updateMap
620
+ updateMap: context.updateMap,
621
+ dataFlatStatusMap: context.dataFlatStatusMap
450
622
  });
451
623
  return {
452
624
  inited: inited,
@@ -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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"}
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,29 +9,29 @@ var shouldShowMessage = function shouldShowMessage(message) {
9
9
  var deprecated = function deprecated(prop, newProp, component, extraMessage) {
10
10
  if (process.env.NODE_ENV !== 'production') {
11
11
  var msg = "[shineout] '".concat(prop, "' in ").concat(component, " component is deprecated, please use '").concat(newProp, "' instead. ").concat(extraMessage);
12
- shouldShowMessage(msg) && console.error(msg);
12
+ if (shouldShowMessage(msg)) console.error(msg);
13
13
  }
14
14
  };
15
15
  var breakingChange = function breakingChange(message) {
16
16
  if (process.env.NODE_ENV !== 'production') {
17
17
  var msg = "[shineout] ".concat(message);
18
- shouldShowMessage(msg) && console.error(msg);
18
+ if (shouldShowMessage(msg)) console.error(msg);
19
19
  }
20
20
  };
21
21
  var devWarn = function devWarn(message) {
22
22
  if (process.env.NODE_ENV !== 'production') {
23
- shouldShowMessage(message) && console.warn("[shineout] ".concat(message));
23
+ if (shouldShowMessage(message)) console.warn("[shineout] ".concat(message));
24
24
  }
25
25
  };
26
26
  var conflictWarning = function conflictWarning(component, prop1, prop2) {
27
27
  if (process.env.NODE_ENV !== 'production') {
28
28
  var msg = "[shineout] ".concat(prop1, " and ").concat(prop2, " cannot be used at the same time in ").concat(component, ".");
29
- shouldShowMessage(msg) && console.warn(msg);
29
+ if (shouldShowMessage(msg)) console.warn(msg);
30
30
  }
31
31
  };
32
32
  var error = function error(message) {
33
33
  var msg = new Error("[shineout] ".concat(message));
34
- shouldShowMessage(msg.message) && console.error(msg);
34
+ if (shouldShowMessage(msg.message)) console.error(msg);
35
35
  };
36
36
  export var devUseWarning = {
37
37
  error: error,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/hooks",
3
- "version": "3.6.0-beta.2",
3
+ "version": "3.6.0-beta.4",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",