1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.filterRestTreeItems = exports.filterTreeItemsWithoutFolders = exports.filterTreeItems = exports.filterFolders = exports.flattenTreeWithFolders = exports.flattenTree = void 0;
|
4 | function 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 | }
|
16 | exports.flattenTree = flattenTree;
|
17 | function 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 | }
|
27 | exports.flattenTreeWithFolders = flattenTreeWithFolders;
|
28 | function 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 | }
|
42 | exports.filterFolders = filterFolders;
|
43 | function 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 | }
|
53 | exports.filterTreeItems = filterTreeItems;
|
54 | function 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 | }
|
64 | exports.filterTreeItemsWithoutFolders = filterTreeItemsWithoutFolders;
|
65 | function 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 | }
|
76 | exports.filterRestTreeItems = filterRestTreeItems;
|
77 |
|
\ | No newline at end of file |