Skip to content

Commit 65e15d6

Browse files
MKirovaMKirova
authored andcommitted
Handle expansion states for rows.
1 parent 02075d9 commit 65e15d6

File tree

5 files changed

+22
-9
lines changed

5 files changed

+22
-9
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
class="igx-grid__scroll-on-drag-pinned" [style.left.px]="pinnedWidth"></span>
3333
<ng-template igxGridFor let-rowData [igxGridForOf]="data
3434
| pivotGridFilter:pivotConfiguration.filters:filterStrategy:advancedFilteringExpressionsTree
35-
| pivotGridRow:pivotConfiguration.rows:pivotConfiguration.values
35+
| pivotGridRow:pivotConfiguration.rows:expansionStates:pivotConfiguration.values
3636
| pivotGridColumn:pivotConfiguration.columns:pivotConfiguration.values"
3737
let-rowIndex="index" [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]='verticalScroll'
3838
[igxForContainerSize]='calcHeight'

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export class IgxPivotRowPipe implements PipeTransform {
2020
public transform(
2121
collection: any,
2222
rows: IPivotDimension[],
23+
expansionStates: Map<any, boolean>,
2324
values?: IPivotValue[],
2425
pivotKeys: IPivotKeys = {aggregations: 'aggregations', records: 'records', children: 'children', level: 'level'}
2526
): any[] {
@@ -28,7 +29,7 @@ export class IgxPivotRowPipe implements PipeTransform {
2829
// apply aggregations based on the created groups
2930
// PivotUtil.applyAggregations(hierarchies, values, pivotKeys);
3031
// generate flat data from the hierarchies
31-
const data = PivotUtil.flattenHierarchy(hierarchies, collection[0] ?? [], rows, pivotKeys);
32+
const data = PivotUtil.flattenHierarchy(hierarchies, collection[0] ?? [], rows, pivotKeys, 0, expansionStates);
3233
return data;
3334
}
3435
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,9 @@
100100
<ng-template #headerTemplate let-column>
101101
<div class="igx-grid__tr--header igx-grid__row-indentation--level-{{ level }}">
102102
<igx-icon *ngIf="hasChild" [attr.draggable]="false"
103-
(click)="grid.toggleRow(rowID)"
103+
(click)="grid.toggleRow(rowDimensionKey)"
104104
style='cursor: pointer;'>
105-
{{grid.expansionStates.get(rowID) ? 'expand_more' : 'expand_less'}}</igx-icon>
105+
{{grid.expansionStates.get(rowDimensionKey) ? 'expand_more' : 'expand_less'}}</igx-icon>
106106
{{column.header}}
107107
</div>
108108
</ng-template>

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,14 @@ export class IgxPivotRowComponent extends IgxRowDirective<IgxPivotGridComponent>
5454
return this.index;
5555
}
5656

57+
/**
58+
* @hidden
59+
* @internal
60+
*/
61+
public get rowDimensionKey(){
62+
return this.rowDimension.map(x => x.header).join('_');
63+
}
64+
5765
public ngOnInit() {
5866
// generate rowDimension
5967
const rowDimConfig = this.grid.pivotConfiguration.rows;

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export class PivotUtil {
6161
return result;
6262
}
6363

64-
public static flattenHierarchy(hierarchies, rec, dims, pivotKeys, level = 0) {
64+
public static flattenHierarchy(hierarchies, rec, dims, pivotKeys, level = 0, expansionStates: Map<any, boolean>) {
6565
const flatData = [];
6666
for (const dim of dims) {
6767
hierarchies.forEach((h, key) => {
@@ -72,11 +72,15 @@ export class PivotUtil {
7272
obj = {...obj, ...h[pivotKeys.aggregations]};
7373
obj[pivotKeys.level] = level;
7474
flatData.push(obj);
75+
const isExpanded = expansionStates.get(key);
7576
if (h[pivotKeys.children]) {
76-
obj[pivotKeys.records] = this.flattenHierarchy(h[pivotKeys.children], rec, dim.childLevels, pivotKeys, level + 1);
77-
for (const record of obj[pivotKeys.records]) {
78-
flatData.push(record);
79-
}
77+
obj[pivotKeys.records] = this.flattenHierarchy(h[pivotKeys.children], rec,
78+
dim.childLevels, pivotKeys, level + 1, expansionStates);
79+
if (isExpanded) {
80+
for (const record of obj[pivotKeys.records]) {
81+
flatData.push(record);
82+
}
83+
}
8084
}
8185
});
8286
}

0 commit comments

Comments
 (0)