Skip to content

Commit e7ab933

Browse files
committed
fix(pivot): Apply filteringExpressionTree in grid to reflect it in ESF
1 parent 25ecb4f commit e7ab933

File tree

3 files changed

+22
-12
lines changed

3 files changed

+22
-12
lines changed

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
EventEmitter,
88
ComponentFactoryResolver,
99
ElementRef,
10-
forwardRef,
1110
HostBinding,
1211
Inject,
1312
Input,
@@ -30,10 +29,10 @@ import { IgxGridBaseDirective } from '../grid-base.directive';
3029
import { IgxFilteringService } from '../filtering/grid-filtering.service';
3130
import { IgxGridSelectionService } from '../selection/selection.service';
3231
import { IgxForOfSyncService, IgxForOfScrollSyncService } from '../../directives/for-of/for_of.sync.service';
33-
import { GridServiceType, GridType, IGX_GRID_BASE, IGX_GRID_SERVICE_BASE, RowType } from '../common/grid.interface';
32+
import { GridType, IGX_GRID_BASE, RowType } from '../common/grid.interface';
3433
import { IgxGridCRUDService } from '../common/crud.service';
3534
import { IgxGridSummaryService } from '../summaries/grid-summary.service';
36-
import { DEFAULT_PIVOT_KEYS, IDimensionsChange, IPivotConfiguration, IPivotDimension, IPivotKeys, IValuesChange, PivotDimensionType } from './pivot-grid.interface';
35+
import { DEFAULT_PIVOT_KEYS, IDimensionsChange, IPivotConfiguration, IPivotDimension, IValuesChange, PivotDimensionType } from './pivot-grid.interface';
3736
import { IgxPivotHeaderRowComponent } from './pivot-header-row.component';
3837
import { IgxColumnGroupComponent } from '../columns/column-group.component';
3938
import { IgxColumnComponent } from '../columns/column.component';
@@ -544,6 +543,8 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
544543
// pivot grid always generates columns automatically.
545544
this.autoGenerate = true;
546545
this.uniqueColumnValuesStrategy = this.uniqueColumnValuesStrategy || this.uniqueDimensionValuesStrategy;
546+
const config = this.pivotConfiguration;
547+
this.filteringExpressionsTree = PivotUtil.buildExpressionTree(config);;
547548
super.ngOnInit();
548549
}
549550

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.pipes.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,8 @@ export class IgxPivotGridFilterPipe implements PipeTransform {
137137
advancedExpressionsTree: IFilteringExpressionsTree,
138138
_filterPipeTrigger: number,
139139
_pipeTrigger: number): any[] {
140-
const allDimensions = config.rows.concat(config.columns).concat(config.filters).filter(x => x !== null && x !== undefined);
141-
const enabledDimensions = allDimensions.filter(x => x && x.enabled);
140+
const expressionsTree = PivotUtil.buildExpressionTree(config);
142141

143-
const expressionsTree = new FilteringExpressionsTree(FilteringLogic.And);
144-
// add expression trees from all filters
145-
PivotUtil.flatten(enabledDimensions).forEach((x: IPivotDimension) => {
146-
if (x.filter && x.filter.filteringOperands) {
147-
expressionsTree.filteringOperands.push(...x.filter.filteringOperands);
148-
}
149-
});
150142
const state = {
151143
expressionsTree,
152144
strategy: filterStrategy || new DimensionValuesFilteringStrategy(),

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-util.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { cloneValue } from '../../core/utils';
22
import { DataUtil } from '../../data-operations/data-util';
3+
import { FilteringLogic } from '../../data-operations/filtering-expression.interface';
4+
import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
35
import { ISortingExpression } from '../../data-operations/sorting-strategy';
46
import { IGridSortingStrategy, IgxSorting } from '../common/strategy';
57
import { IPivotConfiguration, IPivotDimension, IPivotKeys, IPivotValue, PivotDimensionType } from './pivot-grid.interface';
@@ -403,6 +405,21 @@ export class PivotUtil {
403405
return flatData;
404406
}
405407

408+
public static buildExpressionTree(config: IPivotConfiguration) {
409+
const allDimensions = config.rows.concat(config.columns).concat(config.filters).filter(x => x !== null && x !== undefined);
410+
const enabledDimensions = allDimensions.filter(x => x && x.enabled);
411+
412+
const expressionsTree = new FilteringExpressionsTree(FilteringLogic.And);
413+
// add expression trees from all filters
414+
PivotUtil.flatten(enabledDimensions).forEach((x: IPivotDimension) => {
415+
if (x.filter && x.filter.filteringOperands) {
416+
expressionsTree.filteringOperands.push(...x.filter.filteringOperands);
417+
}
418+
});
419+
420+
return expressionsTree;
421+
}
422+
406423
private static collectRecords(children, pivotKeys: IPivotKeys) {
407424
let result = [];
408425
children.forEach(value => result = result.concat(value[pivotKeys.records]));

0 commit comments

Comments
 (0)