1 | export 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 | }
|
13 | export 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 | }
|
23 | export 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 | }
|
37 | export 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 | }
|
47 | export 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 | }
|
57 | export 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 |
|
\ | No newline at end of file |