@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.
- package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
- package/cjs/common/use-position-style/check-border.d.ts +6 -0
- package/cjs/common/use-position-style/check-border.d.ts.map +1 -0
- package/cjs/common/use-position-style/check-border.js +35 -0
- package/cjs/common/use-position-style/get-position-style.d.ts +1 -0
- package/cjs/common/use-position-style/get-position-style.d.ts.map +1 -1
- package/cjs/common/use-position-style/get-position-style.js +14 -8
- package/cjs/common/use-position-style/index.d.ts +1 -0
- package/cjs/common/use-position-style/index.d.ts.map +1 -1
- package/cjs/common/use-position-style/index.js +15 -8
- package/cjs/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/cjs/components/use-cascader/use-cascader.type.d.ts +2 -1
- package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-control/use-form-control.js +3 -2
- package/cjs/components/use-form/use-form-fieldset/fieldset-context.d.ts +1 -1
- package/cjs/components/use-form/use-form-fieldset/fieldset-context.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-fieldset/fieldset-context.js +3 -2
- package/cjs/components/use-form/use-form-fieldset/index.d.ts +1 -0
- package/cjs/components/use-form/use-form-fieldset/index.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-fieldset/index.js +6 -0
- package/cjs/components/use-form/use-form.d.ts +2 -2
- package/cjs/components/use-form/use-form.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.js +47 -9
- package/cjs/components/use-form/use-form.type.d.ts +5 -3
- package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
- package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
- package/cjs/components/use-input/use-input-format.js +12 -4
- package/cjs/components/use-table/use-table-sort.d.ts +5 -0
- package/cjs/components/use-table/use-table-sort.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-sort.js +5 -1
- package/cjs/components/use-table/use-table-tree.d.ts +13 -0
- package/cjs/components/use-table/use-table-tree.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-tree.js +68 -1
- package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-virtual.js +6 -4
- package/cjs/components/use-tree/index.d.ts +3 -2
- package/cjs/components/use-tree/index.d.ts.map +1 -1
- package/cjs/components/use-tree/index.js +18 -2
- package/cjs/components/use-tree/use-tree-node.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree-node.js +1 -5
- package/cjs/components/use-tree/use-tree-node.type.d.ts +18 -0
- package/cjs/components/use-tree/use-tree-node.type.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree-virtual-node.d.ts +13 -0
- package/cjs/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
- package/cjs/components/use-tree/use-tree-virtual-node.js +92 -0
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +191 -6
- package/cjs/components/use-tree/use-tree.type.d.ts +31 -1
- package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/cjs/components/use-treeselect/use-tiled.d.ts +1 -1
- package/cjs/components/use-treeselect/use-tiled.d.ts.map +1 -1
- package/cjs/components/use-treeselect/use-tiled.js +12 -18
- package/cjs/components/use-treeselect/use-tiled.type.d.ts +2 -0
- package/cjs/components/use-treeselect/use-tiled.type.d.ts.map +1 -1
- package/cjs/utils/is.d.ts +2 -0
- package/cjs/utils/is.d.ts.map +1 -1
- package/cjs/utils/is.js +5 -2
- package/cjs/utils/object.d.ts +12 -0
- package/cjs/utils/object.d.ts.map +1 -1
- package/cjs/utils/object.js +34 -1
- package/cjs/utils/tree.d.ts +1 -1
- package/cjs/utils/tree.d.ts.map +1 -1
- package/cjs/utils/tree.js +3 -9
- package/cjs/utils/warning.js +5 -5
- package/esm/common/use-filter/use-filter.d.ts.map +1 -1
- package/esm/common/use-position-style/check-border.d.ts +6 -0
- package/esm/common/use-position-style/check-border.d.ts.map +1 -0
- package/esm/common/use-position-style/check-border.js +29 -0
- package/esm/common/use-position-style/get-position-style.d.ts +1 -0
- package/esm/common/use-position-style/get-position-style.d.ts.map +1 -1
- package/esm/common/use-position-style/get-position-style.js +14 -8
- package/esm/common/use-position-style/index.d.ts +1 -0
- package/esm/common/use-position-style/index.d.ts.map +1 -1
- package/esm/common/use-position-style/index.js +15 -8
- package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/esm/components/use-cascader/use-cascader.type.d.ts +2 -1
- package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/esm/components/use-form/use-form-control/use-form-control.js +3 -2
- package/esm/components/use-form/use-form-fieldset/fieldset-context.d.ts +1 -1
- package/esm/components/use-form/use-form-fieldset/fieldset-context.d.ts.map +1 -1
- package/esm/components/use-form/use-form-fieldset/fieldset-context.js +2 -1
- package/esm/components/use-form/use-form-fieldset/index.d.ts +1 -0
- package/esm/components/use-form/use-form-fieldset/index.d.ts.map +1 -1
- package/esm/components/use-form/use-form-fieldset/index.js +2 -1
- package/esm/components/use-form/use-form.d.ts +2 -2
- package/esm/components/use-form/use-form.d.ts.map +1 -1
- package/esm/components/use-form/use-form.js +48 -10
- package/esm/components/use-form/use-form.type.d.ts +5 -3
- package/esm/components/use-form/use-form.type.d.ts.map +1 -1
- package/esm/components/use-input/use-input-format.d.ts.map +1 -1
- package/esm/components/use-input/use-input-format.js +12 -4
- package/esm/components/use-table/use-table-sort.d.ts +5 -0
- package/esm/components/use-table/use-table-sort.d.ts.map +1 -1
- package/esm/components/use-table/use-table-sort.js +5 -1
- package/esm/components/use-table/use-table-tree.d.ts +13 -0
- package/esm/components/use-table/use-table-tree.d.ts.map +1 -1
- package/esm/components/use-table/use-table-tree.js +67 -0
- package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/esm/components/use-table/use-table-virtual.js +6 -4
- package/esm/components/use-tree/index.d.ts +3 -2
- package/esm/components/use-tree/index.d.ts.map +1 -1
- package/esm/components/use-tree/index.js +3 -2
- package/esm/components/use-tree/use-tree-node.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree-node.js +1 -5
- package/esm/components/use-tree/use-tree-node.type.d.ts +18 -0
- package/esm/components/use-tree/use-tree-node.type.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree-virtual-node.d.ts +13 -0
- package/esm/components/use-tree/use-tree-virtual-node.d.ts.map +1 -0
- package/esm/components/use-tree/use-tree-virtual-node.js +85 -0
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +193 -8
- package/esm/components/use-tree/use-tree.type.d.ts +31 -1
- package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/esm/components/use-treeselect/use-tiled.d.ts +1 -1
- package/esm/components/use-treeselect/use-tiled.d.ts.map +1 -1
- package/esm/components/use-treeselect/use-tiled.js +10 -16
- package/esm/components/use-treeselect/use-tiled.type.d.ts +2 -0
- package/esm/components/use-treeselect/use-tiled.type.d.ts.map +1 -1
- package/esm/utils/is.d.ts +2 -0
- package/esm/utils/is.d.ts.map +1 -1
- package/esm/utils/is.js +4 -1
- package/esm/utils/object.d.ts +12 -0
- package/esm/utils/object.d.ts.map +1 -1
- package/esm/utils/object.js +34 -1
- package/esm/utils/tree.d.ts +1 -1
- package/esm/utils/tree.d.ts.map +1 -1
- package/esm/utils/tree.js +3 -9
- package/esm/utils/warning.js +5 -5
- 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)
|
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":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC/C,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzC,cAAc,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,cAAc,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ;IACrC;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B;;;OAGG;IACH,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;
|
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;;;;;;
|
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
|
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
|
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,
|
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 =
|
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
|
-
|
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;
|
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
|
package/cjs/utils/is.d.ts.map
CHANGED
@@ -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
|
+
};
|
package/cjs/utils/object.d.ts
CHANGED
@@ -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"}
|
package/cjs/utils/object.js
CHANGED
@@ -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
|
};
|