• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IgniteUI / igniteui-angular / 13331632524

14 Feb 2025 02:51PM CUT coverage: 22.015% (-69.6%) from 91.622%
13331632524

Pull #15372

github

web-flow
Merge d52d57714 into bcb78ae0a
Pull Request #15372: chore(*): test ci passing

1990 of 15592 branches covered (12.76%)

431 of 964 new or added lines in 18 files covered. (44.71%)

19956 existing lines in 307 files now uncovered.

6452 of 29307 relevant lines covered (22.02%)

249.17 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

5.26
/projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid.filtering.pipe.ts
1
import { Inject, Pipe, PipeTransform } from '@angular/core';
2
import { IFilteringStrategy } from '../../data-operations/filtering-strategy';
3
import { IFilteringExpressionsTree, FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
4
import { IFilteringState } from '../../data-operations/filtering-state.interface';
5
import { ITreeGridRecord } from './tree-grid.interfaces';
6
import { GridType, IGX_GRID_BASE } from '../common/grid.interface';
7
import { TreeGridFilteringStrategy } from './tree-grid.filtering.strategy';
8

9
/** @hidden */
10
@Pipe({
11
    name: 'treeGridFiltering',
12
    standalone: true
13
})
14
export class IgxTreeGridFilteringPipe implements PipeTransform {
2✔
15

UNCOV
16
    constructor(@Inject(IGX_GRID_BASE) private grid: GridType) {}
×
17

18
    public transform(hierarchyData: ITreeGridRecord[], expressionsTree: IFilteringExpressionsTree,
19
        filterStrategy: IFilteringStrategy,
20
        advancedFilteringExpressionsTree: IFilteringExpressionsTree,
21
        _: number, __: number, pinned?): ITreeGridRecord[] {
UNCOV
22
        const state: IFilteringState = {
×
23
            expressionsTree,
24
            advancedExpressionsTree: advancedFilteringExpressionsTree,
25
            strategy: new TreeGridFilteringStrategy()
26
        };
27

UNCOV
28
        if (filterStrategy) {
×
UNCOV
29
            state.strategy = filterStrategy;
×
30
        }
31

UNCOV
32
        if (FilteringExpressionsTree.empty(state.expressionsTree) && FilteringExpressionsTree.empty(state.advancedExpressionsTree)) {
×
UNCOV
33
            this.grid.setFilteredData(null, pinned);
×
UNCOV
34
            return hierarchyData;
×
35
        }
36

UNCOV
37
        const result = this.filter(hierarchyData, state, this.grid);
×
UNCOV
38
        const filteredData: any[] = [];
×
UNCOV
39
        this.expandAllRecursive(this.grid, result, this.grid.expansionStates, filteredData);
×
UNCOV
40
        this.grid.setFilteredData(filteredData, pinned);
×
41

UNCOV
42
        return result;
×
43
    }
44

45
    private expandAllRecursive(grid: GridType, data: ITreeGridRecord[],
46
        expandedStates: Map<any, boolean>, filteredData: any[]) {
UNCOV
47
        for (const rec of data) {
×
UNCOV
48
            filteredData.push(rec.data);
×
49

UNCOV
50
            if (rec.children && rec.children.length > 0) {
×
UNCOV
51
                expandedStates.set(rec.key, true);
×
UNCOV
52
                this.expandAllRecursive(grid, rec.children, expandedStates, filteredData);
×
53
            }
54
        }
55
    }
56

57
    private filter(data: ITreeGridRecord[], state: IFilteringState, grid?: GridType): ITreeGridRecord[] {
UNCOV
58
        return state.strategy.filter(data, state.expressionsTree, state.advancedExpressionsTree, grid);
×
59
    }
60
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc