(nodes: TreeNode[])
| 1541 | } |
| 1542 | |
| 1543 | filterTreeNodes(nodes: TreeNode[]): TreeNode[] { |
| 1544 | const search = this.searchString().trim().toLowerCase(); |
| 1545 | if (!search) { |
| 1546 | return nodes; |
| 1547 | } |
| 1548 | |
| 1549 | return nodes.reduce((acc, node) => { |
| 1550 | const children = node.children ? this.filterTreeNodes(node.children) : undefined; |
| 1551 | if (this.isMatch(node) || (children && children.length > 0)) { |
| 1552 | acc.push({ |
| 1553 | ...node, |
| 1554 | children, |
| 1555 | expanded: children && children.length > 0 ? true : node.expanded, |
| 1556 | }); |
| 1557 | } |
| 1558 | return acc; |
| 1559 | }, [] as TreeNode[]); |
| 1560 | } |
| 1561 | |
| 1562 | isMatch(node: TreeNode) { |
| 1563 | return node.name.toLowerCase().includes(this.searchString().toLowerCase()); |
no test coverage detected