@sheinx/hooks 3.5.0-beta.10 → 3.5.0-beta.12
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.
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA8CvD,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACvC,cAAc,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,QAAQ,CACvE;IACD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB;;;;;;+BA6BR,GAAG,SAAS,MAAM;iCAjBhB,GAAG,SAAS,MAAM;;CAuDhE,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
@@ -19,35 +19,47 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
19
19
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
20
20
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
21
21
|
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; }
|
22
|
-
var getExpandData = function getExpandData(
|
22
|
+
var getExpandData = function getExpandData(_treeData, keys, keygen, treeColumnsName) {
|
23
23
|
var expandKeys = keys;
|
24
24
|
var expandSet = new Set(expandKeys);
|
25
|
-
var
|
25
|
+
var unmatchExpandKeys = [];
|
26
|
+
var treeExpandLevel = new Map();
|
26
27
|
if (expandSet.size === 0 || !treeColumnsName) {
|
27
|
-
return
|
28
|
+
return {
|
29
|
+
treeData: _treeData,
|
30
|
+
treeExpandLevel: treeExpandLevel,
|
31
|
+
unmatchExpandKeys: unmatchExpandKeys
|
32
|
+
};
|
28
33
|
}
|
29
|
-
var
|
34
|
+
var treeData = _toConsumableArray(_treeData || []);
|
30
35
|
var _loop = function _loop() {
|
31
36
|
if (expandSet.size === 0) return 1; // break
|
32
|
-
var item =
|
37
|
+
var item = treeData[i];
|
33
38
|
var key = (0, _render.getKey)(keygen, item, i);
|
34
|
-
var parentLevel =
|
39
|
+
var parentLevel = treeExpandLevel.get(key) || 0;
|
35
40
|
var children = (0, _is.isObject)(item) && item[treeColumnsName];
|
36
|
-
if (expandSet.has(key)
|
37
|
-
children.
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
41
|
+
if (expandSet.has(key)) {
|
42
|
+
if (children && children.length > 0) {
|
43
|
+
children.forEach(function (child) {
|
44
|
+
treeExpandLevel.set((0, _render.getKey)(keygen, child), parentLevel + 1);
|
45
|
+
});
|
46
|
+
treeData.splice.apply(treeData, [i + 1, 0].concat(_toConsumableArray(children)));
|
47
|
+
expandSet.delete(key);
|
48
|
+
} else {
|
49
|
+
unmatchExpandKeys.push(key);
|
50
|
+
}
|
42
51
|
}
|
43
52
|
};
|
44
|
-
for (var i = 0; i <
|
53
|
+
for (var i = 0; i < treeData.length; i++) {
|
45
54
|
if (_loop()) break;
|
46
55
|
}
|
47
|
-
return
|
56
|
+
return {
|
57
|
+
treeData: treeData,
|
58
|
+
treeExpandLevel: treeExpandLevel,
|
59
|
+
unmatchExpandKeys: unmatchExpandKeys
|
60
|
+
};
|
48
61
|
};
|
49
62
|
var useTableTree = exports.useTableTree = function useTableTree(props) {
|
50
|
-
var _props$data$filter;
|
51
63
|
var _useState = (0, _react.useState)(props.defaultTreeExpandKeys || []),
|
52
64
|
_useState2 = _slicedToArray(_useState, 2),
|
53
65
|
expandKeysState = _useState2[0],
|
@@ -88,13 +100,27 @@ var useTableTree = exports.useTableTree = function useTableTree(props) {
|
|
88
100
|
var _useMemo = (0, _react.useMemo)(function () {
|
89
101
|
return getExpandData(props.data, expandKeys, props.keygen, props.treeColumnsName);
|
90
102
|
}, [props.data, expandKeys, props.treeColumnsName]),
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
var isEmptyTree = (
|
95
|
-
var
|
96
|
-
return (
|
97
|
-
|
103
|
+
treeData = _useMemo.treeData,
|
104
|
+
treeExpandLevel = _useMemo.treeExpandLevel,
|
105
|
+
unmatchExpandKeys = _useMemo.unmatchExpandKeys;
|
106
|
+
var isEmptyTree = (0, _react.useMemo)(function () {
|
107
|
+
var _props$data$filter;
|
108
|
+
return ((_props$data$filter = props.data.filter(function (item) {
|
109
|
+
var _item;
|
110
|
+
return (_item = item[props.treeColumnsName]) === null || _item === void 0 ? void 0 : _item.length;
|
111
|
+
})) === null || _props$data$filter === void 0 ? void 0 : _props$data$filter.length) === 0;
|
112
|
+
}, [props.data, props.treeColumnsName]);
|
113
|
+
(0, _react.useEffect)(function () {
|
114
|
+
if (!unmatchExpandKeys.length || !expandKeysState.length) {
|
115
|
+
return;
|
116
|
+
}
|
117
|
+
|
118
|
+
// 检查treeData中的每一项,对比expandKeysState,如果expandKeysState有但是children是空的,则需要修正expandKeysState
|
119
|
+
var newExpandKeys = expandKeysState.filter(function (key) {
|
120
|
+
return !unmatchExpandKeys.includes(key);
|
121
|
+
});
|
122
|
+
setExpandKeysState(newExpandKeys);
|
123
|
+
}, [unmatchExpandKeys, expandKeysState]);
|
98
124
|
return {
|
99
125
|
data: treeData,
|
100
126
|
treeExpandLevel: treeExpandLevel,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"use-table-tree.d.ts","sourceRoot":"","sources":["use-table-tree.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA8CvD,MAAM,WAAW,iBACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EACvC,cAAc,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,QAAQ,CACvE;IACD,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,eAAO,MAAM,YAAY,UAAW,iBAAiB;;;;;;+BA6BR,GAAG,SAAS,MAAM;iCAjBhB,GAAG,SAAS,MAAM;;CAuDhE,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
@@ -13,35 +13,47 @@ import { usePersistFn } from "../../common/use-persist-fn";
|
|
13
13
|
import { getKey } from "../../utils/render";
|
14
14
|
import { isObject } from "../../utils/is";
|
15
15
|
import { useLatestObj } from "../../common/use-latest-obj";
|
16
|
-
var getExpandData = function getExpandData(
|
16
|
+
var getExpandData = function getExpandData(_treeData, keys, keygen, treeColumnsName) {
|
17
17
|
var expandKeys = keys;
|
18
18
|
var expandSet = new Set(expandKeys);
|
19
|
-
var
|
19
|
+
var unmatchExpandKeys = [];
|
20
|
+
var treeExpandLevel = new Map();
|
20
21
|
if (expandSet.size === 0 || !treeColumnsName) {
|
21
|
-
return
|
22
|
+
return {
|
23
|
+
treeData: _treeData,
|
24
|
+
treeExpandLevel: treeExpandLevel,
|
25
|
+
unmatchExpandKeys: unmatchExpandKeys
|
26
|
+
};
|
22
27
|
}
|
23
|
-
var
|
28
|
+
var treeData = _toConsumableArray(_treeData || []);
|
24
29
|
var _loop = function _loop() {
|
25
30
|
if (expandSet.size === 0) return 1; // break
|
26
|
-
var item =
|
31
|
+
var item = treeData[i];
|
27
32
|
var key = getKey(keygen, item, i);
|
28
|
-
var parentLevel =
|
33
|
+
var parentLevel = treeExpandLevel.get(key) || 0;
|
29
34
|
var children = isObject(item) && item[treeColumnsName];
|
30
|
-
if (expandSet.has(key)
|
31
|
-
children.
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
if (expandSet.has(key)) {
|
36
|
+
if (children && children.length > 0) {
|
37
|
+
children.forEach(function (child) {
|
38
|
+
treeExpandLevel.set(getKey(keygen, child), parentLevel + 1);
|
39
|
+
});
|
40
|
+
treeData.splice.apply(treeData, [i + 1, 0].concat(_toConsumableArray(children)));
|
41
|
+
expandSet.delete(key);
|
42
|
+
} else {
|
43
|
+
unmatchExpandKeys.push(key);
|
44
|
+
}
|
36
45
|
}
|
37
46
|
};
|
38
|
-
for (var i = 0; i <
|
47
|
+
for (var i = 0; i < treeData.length; i++) {
|
39
48
|
if (_loop()) break;
|
40
49
|
}
|
41
|
-
return
|
50
|
+
return {
|
51
|
+
treeData: treeData,
|
52
|
+
treeExpandLevel: treeExpandLevel,
|
53
|
+
unmatchExpandKeys: unmatchExpandKeys
|
54
|
+
};
|
42
55
|
};
|
43
56
|
export var useTableTree = function useTableTree(props) {
|
44
|
-
var _props$data$filter;
|
45
57
|
var _useState = useState(props.defaultTreeExpandKeys || []),
|
46
58
|
_useState2 = _slicedToArray(_useState, 2),
|
47
59
|
expandKeysState = _useState2[0],
|
@@ -82,13 +94,27 @@ export var useTableTree = function useTableTree(props) {
|
|
82
94
|
var _useMemo = useMemo(function () {
|
83
95
|
return getExpandData(props.data, expandKeys, props.keygen, props.treeColumnsName);
|
84
96
|
}, [props.data, expandKeys, props.treeColumnsName]),
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
var isEmptyTree = (
|
89
|
-
var
|
90
|
-
return (
|
91
|
-
|
97
|
+
treeData = _useMemo.treeData,
|
98
|
+
treeExpandLevel = _useMemo.treeExpandLevel,
|
99
|
+
unmatchExpandKeys = _useMemo.unmatchExpandKeys;
|
100
|
+
var isEmptyTree = useMemo(function () {
|
101
|
+
var _props$data$filter;
|
102
|
+
return ((_props$data$filter = props.data.filter(function (item) {
|
103
|
+
var _item;
|
104
|
+
return (_item = item[props.treeColumnsName]) === null || _item === void 0 ? void 0 : _item.length;
|
105
|
+
})) === null || _props$data$filter === void 0 ? void 0 : _props$data$filter.length) === 0;
|
106
|
+
}, [props.data, props.treeColumnsName]);
|
107
|
+
useEffect(function () {
|
108
|
+
if (!unmatchExpandKeys.length || !expandKeysState.length) {
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
|
112
|
+
// 检查treeData中的每一项,对比expandKeysState,如果expandKeysState有但是children是空的,则需要修正expandKeysState
|
113
|
+
var newExpandKeys = expandKeysState.filter(function (key) {
|
114
|
+
return !unmatchExpandKeys.includes(key);
|
115
|
+
});
|
116
|
+
setExpandKeysState(newExpandKeys);
|
117
|
+
}, [unmatchExpandKeys, expandKeysState]);
|
92
118
|
return {
|
93
119
|
data: treeData,
|
94
120
|
treeExpandLevel: treeExpandLevel,
|