Skip to content

Commit 5fe13e6

Browse files
committed
chore(*): Makes filteredSortedData adequate to row pinning
1 parent 75a8e2f commit 5fe13e6

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
| visibleColumns:hasVisibleColumns
8181
| treeGridRowPinning:id:pipeTrigger
8282
| treeGridFiltering:filteringExpressionsTree:filterStrategy:advancedFilteringExpressionsTree:id:pipeTrigger:filteringPipeTrigger:true
83-
| treeGridSorting:sortingExpressions:sortStrategy:id:pipeTrigger as pinnedData'>
83+
| treeGridSorting:sortingExpressions:sortStrategy:id:pipeTrigger:true as pinnedData'>
8484
<div #pinContainer *ngIf='pinnedData.length > 0'
8585
[ngClass]="{
8686
'igx-grid__tr--pinned-bottom': !isRowPinningToTop,

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ export class IgxTreeGridComponent extends IgxGridBaseDirective implements GridTy
137137
*/
138138
set filteredData(value) {
139139
this._filteredData = value;
140-
141140
}
141+
142142

143143
/**
144144
* Get transactions service for the grid.
@@ -366,6 +366,28 @@ export class IgxTreeGridComponent extends IgxGridBaseDirective implements GridTy
366366
super.ngAfterContentInit();
367367
}
368368

369+
/**
370+
* @hidden @internal
371+
*/
372+
public setFilteredSortedData(data, pinned: boolean) {
373+
super.setFilteredSortedData(data, pinned);
374+
const flatFilteredSortedData = [];
375+
this.flattenTreeGridRecords(this.filteredSortedData, flatFilteredSortedData);
376+
this.filteredSortedData = flatFilteredSortedData;
377+
}
378+
379+
/**
380+
* @hidden @internal
381+
*/
382+
private flattenTreeGridRecords(records: ITreeGridRecord[], flatData: any[]) {
383+
if (records && records.length) {
384+
for (const record of records) {
385+
flatData.push(record.data);
386+
this.flattenTreeGridRecords(record.children, flatData);
387+
}
388+
}
389+
}
390+
369391
private loadChildrenOnRowExpansion(args: IRowToggleEventArgs) {
370392
if (this.loadChildrenOnDemand) {
371393
const parentID = args.rowID;

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

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,8 @@ export class IgxTreeGridSortingPipe implements PipeTransform {
202202
expressions: ISortingExpression[],
203203
sorting: IGridSortingStrategy,
204204
id: string,
205-
pipeTrigger: number): ITreeGridRecord[] {
205+
pipeTrigger: number,
206+
pinned?: boolean): ITreeGridRecord[] {
206207
const grid = this.gridAPI.grid;
207208

208209
let result: ITreeGridRecord[];
@@ -211,21 +212,10 @@ export class IgxTreeGridSortingPipe implements PipeTransform {
211212
} else {
212213
result = DataUtil.treeGridSort(hierarchicalData, expressions, sorting);
213214
}
214-
const filteredSortedData = [];
215-
this.flattenTreeGridRecords(result, filteredSortedData);
216-
grid.filteredSortedData = filteredSortedData;
215+
grid.setFilteredSortedData(result, pinned);
217216

218217
return result;
219218
}
220-
221-
private flattenTreeGridRecords(records: ITreeGridRecord[], flatData: any[]) {
222-
if (records && records.length) {
223-
for (const record of records) {
224-
flatData.push(record.data);
225-
this.flattenTreeGridRecords(record.children, flatData);
226-
}
227-
}
228-
}
229219
}
230220

231221
/** @hidden */

0 commit comments

Comments
 (0)