igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
34 lines (29 loc) • 1.09 kB
text/typescript
import { PipeTransform, Pipe, Inject } from '@angular/core';
import { GridType, IGX_GRID_BASE } from '../common/grid.interface';
/** @hidden */
({
name: 'gridDetails',
standalone: true
})
export class IgxGridDetailsPipe implements PipeTransform {
constructor(private grid: GridType) { }
(IGX_GRID_BASE) public transform(collection: any[], hasDetails: boolean, expansionStates: Map<any, boolean>, _pipeTrigger: number) {
if (!hasDetails) {
return collection;
}
const res = this.addDetailRows(collection, expansionStates);
return res;
}
protected addDetailRows(collection: any[], _expansionStates: Map<any, boolean>) {
const result = [];
collection.forEach((v) => {
result.push(v);
if (!this.grid.isGroupByRecord(v) && !this.grid.isSummaryRow(v) &&
this.grid.gridAPI.get_row_expansion_state(v)) {
const detailsObj = { detailsData: v };
result.push(detailsObj);
}
});
return result;
}
}