@kcuf/helper-data 0.3.0 → 0.4.0
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/CHANGELOG.md +2 -2
- package/dist/cjs/helper/index.js +3 -3
- package/dist/cjs/helper/{normalize-tree-list.js → to-tree-list.js} +18 -10
- package/dist/esm/helper/index.js +1 -1
- package/dist/esm/helper/index.js.map +1 -1
- package/dist/esm/helper/{normalize-tree-list.js → to-tree-list.js} +18 -10
- package/dist/esm/helper/to-tree-list.js.map +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/generic.js.map +1 -1
- package/dist/types/helper/index.d.ts +1 -1
- package/dist/types/helper/to-tree-list.d.ts +5 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types/generic.d.ts +6 -0
- package/package.json +1 -1
- package/dist/esm/helper/normalize-tree-list.js.map +0 -1
- package/dist/types/helper/normalize-tree-list.d.ts +0 -11
package/CHANGELOG.md
CHANGED
package/dist/cjs/helper/index.js
CHANGED
|
@@ -52,10 +52,10 @@ Object.defineProperty(exports, "normalizeTime", {
|
|
|
52
52
|
return _normalizeTime.default;
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
|
-
Object.defineProperty(exports, "
|
|
55
|
+
Object.defineProperty(exports, "toTreeList", {
|
|
56
56
|
enumerable: true,
|
|
57
57
|
get: function get() {
|
|
58
|
-
return
|
|
58
|
+
return _toTreeList.default;
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
61
|
var _normalizeId = _interopRequireDefault(require("./normalize-id"));
|
|
@@ -65,5 +65,5 @@ var _normalizeEnum = _interopRequireDefault(require("./normalize-enum"));
|
|
|
65
65
|
var _normalizeTime = _interopRequireDefault(require("./normalize-time"));
|
|
66
66
|
var _normalizePagedList = _interopRequireDefault(require("./normalize-paged-list"));
|
|
67
67
|
var _normalizePagedListUncertain = _interopRequireDefault(require("./normalize-paged-list-uncertain"));
|
|
68
|
-
var
|
|
68
|
+
var _toTreeList = _interopRequireDefault(require("./to-tree-list"));
|
|
69
69
|
var _isEmptyPagedList = _interopRequireDefault(require("./is-empty-paged-list"));
|
|
@@ -4,22 +4,19 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default =
|
|
7
|
+
exports.default = toTreeList;
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* 将平铺的(已标准化 `id` 和 `parentId`)数据转成树节点列表
|
|
11
11
|
*/
|
|
12
|
-
function
|
|
12
|
+
function toTreeList(list, filter) {
|
|
13
13
|
var nodeMap = new Map();
|
|
14
|
-
var
|
|
14
|
+
var listClone = list.map(function (v) {
|
|
15
15
|
var treeItem = (0, _objectSpread2.default)({}, v);
|
|
16
16
|
nodeMap.set(treeItem.id, treeItem);
|
|
17
17
|
return treeItem;
|
|
18
18
|
});
|
|
19
19
|
function putToParent(o) {
|
|
20
|
-
if (!o.parentId) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
20
|
var parentNode = nodeMap.get(o.parentId);
|
|
24
21
|
if (parentNode) {
|
|
25
22
|
var _parentNode$children;
|
|
@@ -29,10 +26,21 @@ function normalizeTreeList(list) {
|
|
|
29
26
|
o.parentId = ''; // wrong parent
|
|
30
27
|
}
|
|
31
28
|
}
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
listClone.forEach(function (v) {
|
|
30
|
+
if (v.parentId && (!filter || filter(v))) {
|
|
31
|
+
putToParent(v);
|
|
32
|
+
}
|
|
34
33
|
});
|
|
35
|
-
|
|
34
|
+
var treeItems = listClone.filter(function (v) {
|
|
36
35
|
return !v.parentId;
|
|
37
36
|
}); // all top-level nodes
|
|
37
|
+
|
|
38
|
+
return filter ? treeItems.filter(function (v) {
|
|
39
|
+
var _v$children;
|
|
40
|
+
// filter top-level nodes again
|
|
41
|
+
if ((_v$children = v.children) !== null && _v$children !== void 0 && _v$children.length) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
return filter(v);
|
|
45
|
+
}) : treeItems;
|
|
38
46
|
}
|
package/dist/esm/helper/index.js
CHANGED
|
@@ -5,6 +5,6 @@ export { default as normalizeEnum } from './normalize-enum';
|
|
|
5
5
|
export { default as normalizeTime } from './normalize-time';
|
|
6
6
|
export { default as normalizePagedList } from './normalize-paged-list';
|
|
7
7
|
export { default as normalizePagedListUncertain } from './normalize-paged-list-uncertain';
|
|
8
|
-
export { default as
|
|
8
|
+
export { default as toTreeList } from './to-tree-list';
|
|
9
9
|
export { default as isEmptyPagedList } from './is-empty-paged-list';
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","normalizeId","normalizeBoolean","normalizeNumber","normalizeEnum","normalizeTime","normalizePagedList","normalizePagedListUncertain","
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","normalizeId","normalizeBoolean","normalizeNumber","normalizeEnum","normalizeTime","normalizePagedList","normalizePagedListUncertain","toTreeList","isEmptyPagedList"],"sources":["../../../src/helper/index.ts"],"sourcesContent":["export { default as normalizeId } from './normalize-id';\nexport { default as normalizeBoolean } from './normalize-boolean';\nexport { default as normalizeNumber } from './normalize-number';\nexport { default as normalizeEnum } from './normalize-enum';\nexport { default as normalizeTime } from './normalize-time';\nexport { default as normalizePagedList } from './normalize-paged-list';\nexport { default as normalizePagedListUncertain } from './normalize-paged-list-uncertain';\n\nexport { default as toTreeList } from './to-tree-list';\n\nexport { default as isEmptyPagedList } from './is-empty-paged-list';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAAW,QAAQ,gBAAgB;AACvD,SAASD,OAAO,IAAIE,gBAAgB,QAAQ,qBAAqB;AACjE,SAASF,OAAO,IAAIG,eAAe,QAAQ,oBAAoB;AAC/D,SAASH,OAAO,IAAII,aAAa,QAAQ,kBAAkB;AAC3D,SAASJ,OAAO,IAAIK,aAAa,QAAQ,kBAAkB;AAC3D,SAASL,OAAO,IAAIM,kBAAkB,QAAQ,wBAAwB;AACtE,SAASN,OAAO,IAAIO,2BAA2B,QAAQ,kCAAkC;AAEzF,SAASP,OAAO,IAAIQ,UAAU,QAAQ,gBAAgB;AAEtD,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,uBAAuB","ignoreList":[]}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* 将平铺的(已标准化 `id` 和 `parentId`)数据转成树节点列表
|
|
4
4
|
*/
|
|
5
|
-
export default function
|
|
5
|
+
export default function toTreeList(list, filter) {
|
|
6
6
|
var nodeMap = new Map();
|
|
7
|
-
var
|
|
7
|
+
var listClone = list.map(function (v) {
|
|
8
8
|
var treeItem = _objectSpread({}, v);
|
|
9
9
|
nodeMap.set(treeItem.id, treeItem);
|
|
10
10
|
return treeItem;
|
|
11
11
|
});
|
|
12
12
|
function putToParent(o) {
|
|
13
|
-
if (!o.parentId) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
13
|
var parentNode = nodeMap.get(o.parentId);
|
|
17
14
|
if (parentNode) {
|
|
18
15
|
var _parentNode$children;
|
|
@@ -22,11 +19,22 @@ export default function normalizeTreeList(list) {
|
|
|
22
19
|
o.parentId = ''; // wrong parent
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
listClone.forEach(function (v) {
|
|
23
|
+
if (v.parentId && (!filter || filter(v))) {
|
|
24
|
+
putToParent(v);
|
|
25
|
+
}
|
|
27
26
|
});
|
|
28
|
-
|
|
27
|
+
var treeItems = listClone.filter(function (v) {
|
|
29
28
|
return !v.parentId;
|
|
30
29
|
}); // all top-level nodes
|
|
30
|
+
|
|
31
|
+
return filter ? treeItems.filter(function (v) {
|
|
32
|
+
var _v$children;
|
|
33
|
+
// filter top-level nodes again
|
|
34
|
+
if ((_v$children = v.children) !== null && _v$children !== void 0 && _v$children.length) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
return filter(v);
|
|
38
|
+
}) : treeItems;
|
|
31
39
|
}
|
|
32
|
-
//# sourceMappingURL=
|
|
40
|
+
//# sourceMappingURL=to-tree-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-tree-list.js","names":["toTreeList","list","filter","nodeMap","Map","listClone","map","v","treeItem","_objectSpread","set","id","putToParent","o","parentNode","get","parentId","_parentNode$children","children","push","forEach","treeItems","_v$children","length"],"sources":["../../../src/helper/to-tree-list.ts"],"sourcesContent":["import {\n ITreeItemBase,\n TTreeItem\n} from '../types';\n\n/**\n * 将平铺的(已标准化 `id` 和 `parentId`)数据转成树节点列表\n */\nexport default function toTreeList<T extends ITreeItemBase>(list: T[], filter?: (o: T) => boolean): TTreeItem<T>[] {\n const nodeMap = new Map<string, TTreeItem<T>>();\n const listClone: TTreeItem<T>[] = list.map((v: T) => {\n const treeItem: TTreeItem<T> = { // shallow clone\n ...v\n };\n \n nodeMap.set(treeItem.id, treeItem);\n \n return treeItem;\n });\n \n function putToParent(o: TTreeItem<T>): void {\n const parentNode = nodeMap.get(o.parentId);\n \n if (parentNode) {\n parentNode.children ??= [];\n \n parentNode.children.push(o);\n } else {\n o.parentId = ''; // wrong parent\n }\n }\n \n listClone.forEach(v => {\n if (v.parentId && (!filter || filter(v))) {\n putToParent(v);\n }\n });\n \n const treeItems: TTreeItem<T>[] = listClone.filter(v => !v.parentId); // all top-level nodes\n \n return filter ? treeItems.filter(v => { // filter top-level nodes again\n if (v.children?.length) {\n return true;\n }\n \n return filter(v);\n }) : treeItems;\n}\n"],"mappings":";AAKA;AACA;AACA;AACA,eAAe,SAASA,UAAUA,CAA0BC,IAAS,EAAEC,MAA0B,EAAkB;EACjH,IAAMC,OAAO,GAAG,IAAIC,GAAG,CAAuB,CAAC;EAC/C,IAAMC,SAAyB,GAAGJ,IAAI,CAACK,GAAG,CAAC,UAACC,CAAI,EAAK;IACnD,IAAMC,QAAsB,GAAAC,aAAA,KACvBF,CAAC,CACL;IAEDJ,OAAO,CAACO,GAAG,CAACF,QAAQ,CAACG,EAAE,EAAEH,QAAQ,CAAC;IAElC,OAAOA,QAAQ;EACjB,CAAC,CAAC;EAEF,SAASI,WAAWA,CAACC,CAAe,EAAQ;IAC1C,IAAMC,UAAU,GAAGX,OAAO,CAACY,GAAG,CAACF,CAAC,CAACG,QAAQ,CAAC;IAE1C,IAAIF,UAAU,EAAE;MAAA,IAAAG,oBAAA;MACd,CAAAA,oBAAA,GAAAH,UAAU,CAACI,QAAQ,cAAAD,oBAAA,cAAAA,oBAAA,GAAnBH,UAAU,CAACI,QAAQ,GAAK,EAAE;MAE1BJ,UAAU,CAACI,QAAQ,CAACC,IAAI,CAACN,CAAC,CAAC;IAC7B,CAAC,MAAM;MACLA,CAAC,CAACG,QAAQ,GAAG,EAAE,CAAC,CAAC;IACnB;EACF;EAEAX,SAAS,CAACe,OAAO,CAAC,UAAAb,CAAC,EAAI;IACrB,IAAIA,CAAC,CAACS,QAAQ,KAAK,CAACd,MAAM,IAAIA,MAAM,CAACK,CAAC,CAAC,CAAC,EAAE;MACxCK,WAAW,CAACL,CAAC,CAAC;IAChB;EACF,CAAC,CAAC;EAEF,IAAMc,SAAyB,GAAGhB,SAAS,CAACH,MAAM,CAAC,UAAAK,CAAC;IAAA,OAAI,CAACA,CAAC,CAACS,QAAQ;EAAA,EAAC,CAAC,CAAC;;EAEtE,OAAOd,MAAM,GAAGmB,SAAS,CAACnB,MAAM,CAAC,UAAAK,CAAC,EAAI;IAAA,IAAAe,WAAA;IAAE;IACtC,KAAAA,WAAA,GAAIf,CAAC,CAACW,QAAQ,cAAAI,WAAA,eAAVA,WAAA,CAAYC,MAAM,EAAE;MACtB,OAAO,IAAI;IACb;IAEA,OAAOrB,MAAM,CAACK,CAAC,CAAC;EAClB,CAAC,CAAC,GAAGc,SAAS;AAChB","ignoreList":[]}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from './helper';\n\nexport type {\n // 参数标准化\n IBaseParamsPage as BaseParamsPage,\n IBaseParamsPageWithQ as BaseParamsPageWithQ,\n IBaseParamsCursorPage as BaseParamsCursorPage,\n IBaseParamsCursorPageWithQ as BaseParamsCursorPageWithQ,\n \n // 数据标准化\n IBaseDataId as BaseDataId,\n IBaseDataParentId as BaseDataParentId,\n IBaseDataName as BaseDataName,\n IBaseDataIdName as BaseDataIdName,\n IBaseDataTitle as BaseDataTitle,\n IBaseDataDescription as BaseDataDescription,\n IBaseDataContent as BaseDataContent,\n IBaseDataTimeCreated as BaseDataTimeCreated,\n IBaseDataTimeUpdated as BaseDataTimeModified,\n IBaseDataTimes as BaseDataTimes,\n IBaseDataCreator as BaseDataCreator,\n IBaseDataUpdater as BaseDataUpdater,\n \n // 数据标准化(泛型)\n IPagedList as PagedList,\n IPagedCursorList as PagedCursorList,\n IPagedListUncertain as PagedListUncertain\n} from './types';\n"],"mappings":"AAAA,cAAc,UAAU;AAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from './helper';\n\nexport type {\n // 参数标准化\n IBaseParamsPage as BaseParamsPage,\n IBaseParamsPageWithQ as BaseParamsPageWithQ,\n IBaseParamsCursorPage as BaseParamsCursorPage,\n IBaseParamsCursorPageWithQ as BaseParamsCursorPageWithQ,\n \n // 数据标准化\n IBaseDataId as BaseDataId,\n IBaseDataParentId as BaseDataParentId,\n IBaseDataName as BaseDataName,\n IBaseDataIdName as BaseDataIdName,\n IBaseDataTitle as BaseDataTitle,\n IBaseDataDescription as BaseDataDescription,\n IBaseDataContent as BaseDataContent,\n IBaseDataTimeCreated as BaseDataTimeCreated,\n IBaseDataTimeUpdated as BaseDataTimeModified,\n IBaseDataTimes as BaseDataTimes,\n IBaseDataCreator as BaseDataCreator,\n IBaseDataUpdater as BaseDataUpdater,\n \n // 数据标准化(泛型)\n IPagedList as PagedList,\n IPagedCursorList as PagedCursorList,\n IPagedListUncertain as PagedListUncertain,\n TTreeItem as TreeItem\n} from './types';\n"],"mappings":"AAAA,cAAc,UAAU;AAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","names":[],"sources":["../../../src/types/generic.ts"],"sourcesContent":["/**\n * 分页数据标准化\n */\nexport interface IPagedList<T> {\n total: number;\n page: number;\n pageSize: number;\n list: T[];\n}\n\n/**\n * 游标分页数据标准化\n */\nexport interface IPagedCursorList<T> {\n nextCursor: string;\n list: T[];\n}\n\n/**\n * 某些分页接口,后端给的数据只有列表,前端需根据返回转成非确定分页列表数据\n */\nexport interface IPagedListUncertain<T> extends Omit<IPagedList<T>, 'total'> {\n hasMore: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"generic.js","names":[],"sources":["../../../src/types/generic.ts"],"sourcesContent":["import {\n IBaseDataId,\n IBaseDataParentId\n} from './base-data';\n\n/**\n * 分页数据标准化\n */\nexport interface IPagedList<T> {\n total: number;\n page: number;\n pageSize: number;\n list: T[];\n}\n\n/**\n * 游标分页数据标准化\n */\nexport interface IPagedCursorList<T> {\n nextCursor: string;\n list: T[];\n}\n\n/**\n * 某些分页接口,后端给的数据只有列表,前端需根据返回转成非确定分页列表数据\n */\nexport interface IPagedListUncertain<T> extends Omit<IPagedList<T>, 'total'> {\n hasMore: boolean;\n}\n\nexport interface ITreeItemBase extends IBaseDataId, IBaseDataParentId {}\n\nexport type TTreeItem<T extends ITreeItemBase> = T & {\n children?: TTreeItem<T>[];\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -5,5 +5,5 @@ export { default as normalizeEnum } from './normalize-enum';
|
|
|
5
5
|
export { default as normalizeTime } from './normalize-time';
|
|
6
6
|
export { default as normalizePagedList } from './normalize-paged-list';
|
|
7
7
|
export { default as normalizePagedListUncertain } from './normalize-paged-list-uncertain';
|
|
8
|
-
export { default as
|
|
8
|
+
export { default as toTreeList } from './to-tree-list';
|
|
9
9
|
export { default as isEmptyPagedList } from './is-empty-paged-list';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './helper';
|
|
2
|
-
export type { IBaseParamsPage as BaseParamsPage, IBaseParamsPageWithQ as BaseParamsPageWithQ, IBaseParamsCursorPage as BaseParamsCursorPage, IBaseParamsCursorPageWithQ as BaseParamsCursorPageWithQ, IBaseDataId as BaseDataId, IBaseDataParentId as BaseDataParentId, IBaseDataName as BaseDataName, IBaseDataIdName as BaseDataIdName, IBaseDataTitle as BaseDataTitle, IBaseDataDescription as BaseDataDescription, IBaseDataContent as BaseDataContent, IBaseDataTimeCreated as BaseDataTimeCreated, IBaseDataTimeUpdated as BaseDataTimeModified, IBaseDataTimes as BaseDataTimes, IBaseDataCreator as BaseDataCreator, IBaseDataUpdater as BaseDataUpdater, IPagedList as PagedList, IPagedCursorList as PagedCursorList, IPagedListUncertain as PagedListUncertain } from './types';
|
|
2
|
+
export type { IBaseParamsPage as BaseParamsPage, IBaseParamsPageWithQ as BaseParamsPageWithQ, IBaseParamsCursorPage as BaseParamsCursorPage, IBaseParamsCursorPageWithQ as BaseParamsCursorPageWithQ, IBaseDataId as BaseDataId, IBaseDataParentId as BaseDataParentId, IBaseDataName as BaseDataName, IBaseDataIdName as BaseDataIdName, IBaseDataTitle as BaseDataTitle, IBaseDataDescription as BaseDataDescription, IBaseDataContent as BaseDataContent, IBaseDataTimeCreated as BaseDataTimeCreated, IBaseDataTimeUpdated as BaseDataTimeModified, IBaseDataTimes as BaseDataTimes, IBaseDataCreator as BaseDataCreator, IBaseDataUpdater as BaseDataUpdater, IPagedList as PagedList, IPagedCursorList as PagedCursorList, IPagedListUncertain as PagedListUncertain, TTreeItem as TreeItem } from './types';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IBaseDataId, IBaseDataParentId } from './base-data';
|
|
1
2
|
/**
|
|
2
3
|
* 分页数据标准化
|
|
3
4
|
*/
|
|
@@ -20,3 +21,8 @@ export interface IPagedCursorList<T> {
|
|
|
20
21
|
export interface IPagedListUncertain<T> extends Omit<IPagedList<T>, 'total'> {
|
|
21
22
|
hasMore: boolean;
|
|
22
23
|
}
|
|
24
|
+
export interface ITreeItemBase extends IBaseDataId, IBaseDataParentId {
|
|
25
|
+
}
|
|
26
|
+
export type TTreeItem<T extends ITreeItemBase> = T & {
|
|
27
|
+
children?: TTreeItem<T>[];
|
|
28
|
+
};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-tree-list.js","names":["normalizeTreeList","list","nodeMap","Map","treeList","map","v","treeItem","_objectSpread","set","id","putToParent","o","parentId","parentNode","get","_parentNode$children","children","push","forEach","filter"],"sources":["../../../src/helper/normalize-tree-list.ts"],"sourcesContent":["import {\n IBaseDataId,\n IBaseDataParentId\n} from '../types';\n\ninterface IBaseItem extends IBaseDataId, IBaseDataParentId {}\n\ntype TTreeItem<T extends IBaseItem> = T & {\n children?: TTreeItem<T>[];\n};\n\n/**\n * 将平铺的数据转成树节点列表\n */\nexport default function normalizeTreeList<T extends IBaseItem>(list: T[]): TTreeItem<T>[] {\n const nodeMap = new Map<string, TTreeItem<T>>();\n const treeList: TTreeItem<T>[] = list.map((v: T) => {\n const treeItem: TTreeItem<T> = { // shallow clone\n ...v\n };\n \n nodeMap.set(treeItem.id, treeItem);\n \n return treeItem;\n });\n \n function putToParent(o: TTreeItem<T>): void {\n if (!o.parentId) {\n return;\n }\n \n const parentNode = nodeMap.get(o.parentId);\n \n if (parentNode) {\n parentNode.children ??= [];\n \n parentNode.children.push(o);\n } else {\n o.parentId = ''; // wrong parent\n }\n }\n \n treeList.forEach(v => putToParent(v));\n \n return treeList.filter(v => !v.parentId); // all top-level nodes\n}\n"],"mappings":";AAWA;AACA;AACA;AACA,eAAe,SAASA,iBAAiBA,CAAsBC,IAAS,EAAkB;EACxF,IAAMC,OAAO,GAAG,IAAIC,GAAG,CAAuB,CAAC;EAC/C,IAAMC,QAAwB,GAAGH,IAAI,CAACI,GAAG,CAAC,UAACC,CAAI,EAAK;IAClD,IAAMC,QAAsB,GAAAC,aAAA,KACvBF,CAAC,CACL;IAEDJ,OAAO,CAACO,GAAG,CAACF,QAAQ,CAACG,EAAE,EAAEH,QAAQ,CAAC;IAElC,OAAOA,QAAQ;EACjB,CAAC,CAAC;EAEF,SAASI,WAAWA,CAACC,CAAe,EAAQ;IAC1C,IAAI,CAACA,CAAC,CAACC,QAAQ,EAAE;MACf;IACF;IAEA,IAAMC,UAAU,GAAGZ,OAAO,CAACa,GAAG,CAACH,CAAC,CAACC,QAAQ,CAAC;IAE1C,IAAIC,UAAU,EAAE;MAAA,IAAAE,oBAAA;MACd,CAAAA,oBAAA,GAAAF,UAAU,CAACG,QAAQ,cAAAD,oBAAA,cAAAA,oBAAA,GAAnBF,UAAU,CAACG,QAAQ,GAAK,EAAE;MAE1BH,UAAU,CAACG,QAAQ,CAACC,IAAI,CAACN,CAAC,CAAC;IAC7B,CAAC,MAAM;MACLA,CAAC,CAACC,QAAQ,GAAG,EAAE,CAAC,CAAC;IACnB;EACF;EAEAT,QAAQ,CAACe,OAAO,CAAC,UAAAb,CAAC;IAAA,OAAIK,WAAW,CAACL,CAAC,CAAC;EAAA,EAAC;EAErC,OAAOF,QAAQ,CAACgB,MAAM,CAAC,UAAAd,CAAC;IAAA,OAAI,CAACA,CAAC,CAACO,QAAQ;EAAA,EAAC,CAAC,CAAC;AAC5C","ignoreList":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { IBaseDataId, IBaseDataParentId } from '../types';
|
|
2
|
-
interface IBaseItem extends IBaseDataId, IBaseDataParentId {
|
|
3
|
-
}
|
|
4
|
-
type TTreeItem<T extends IBaseItem> = T & {
|
|
5
|
-
children?: TTreeItem<T>[];
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* 将平铺的数据转成树节点列表
|
|
9
|
-
*/
|
|
10
|
-
export default function normalizeTreeList<T extends IBaseItem>(list: T[]): TTreeItem<T>[];
|
|
11
|
-
export {};
|