UNPKG

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