UNPKG

2.55 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.filterRestTreeItems = exports.filterTreeItemsWithoutFolders = exports.filterTreeItems = exports.filterFolders = exports.flattenTreeWithFolders = exports.flattenTree = void 0;
4function flattenTree(tree) {
5 let result = [];
6 tree.forEach(item => {
7 if (item.children) {
8 result = result.concat(flattenTree(item.children));
9 }
10 else {
11 result.push(item.id);
12 }
13 });
14 return result;
15}
16exports.flattenTree = flattenTree;
17function flattenTreeWithFolders(tree) {
18 let result = [];
19 tree.forEach(item => {
20 result.push(item.id);
21 if (item.children) {
22 result = result.concat(flattenTreeWithFolders(item.children));
23 }
24 });
25 return result;
26}
27exports.flattenTreeWithFolders = flattenTreeWithFolders;
28function filterFolders(tree, inputList) {
29 let result = [];
30 tree.forEach(item => {
31 if (item.children) {
32 result = result.concat(filterFolders(item.children, inputList));
33 }
34 else {
35 if (inputList.includes(item.id)) {
36 result.push(item.id);
37 }
38 }
39 });
40 return result;
41}
42exports.filterFolders = filterFolders;
43function filterTreeItems(item, inputList) {
44 if (inputList.includes(item.id)) {
45 return true;
46 }
47 if (item.children) {
48 return ((item.children = item.children
49 .map(opt => Object.assign({}, opt))
50 .filter(child => filterTreeItems(child, inputList))).length > 0);
51 }
52}
53exports.filterTreeItems = filterTreeItems;
54function filterTreeItemsWithoutFolders(item, inputList) {
55 if (item.children) {
56 return ((item.children = item.children
57 .map(opt => Object.assign({}, opt))
58 .filter(child => child.children ? filterTreeItemsWithoutFolders(child, inputList) : filterTreeItems(child, inputList))).length > 0);
59 }
60 if (inputList.includes(item.id)) {
61 return true;
62 }
63}
64exports.filterTreeItemsWithoutFolders = filterTreeItemsWithoutFolders;
65function filterRestTreeItems(item, inputList) {
66 if (item.children) {
67 const child = (item.children = item.children
68 .map(opt => Object.assign({}, opt))
69 .filter(child => filterRestTreeItems(child, inputList))).length > 0;
70 return child;
71 }
72 if (!inputList.includes(item.id)) {
73 return true;
74 }
75}
76exports.filterRestTreeItems = filterRestTreeItems;
77//# sourceMappingURL=treeUtils.js.map
\No newline at end of file