Skip to content

Commit

Permalink
feat(IgxSummaries): add all grid data and curr colField as optional p…
Browse files Browse the repository at this point in the history
…arams #5754
  • Loading branch information
ddincheva committed Oct 10, 2019
1 parent 1c0abba commit d7d60ce
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 20 deletions.
Expand Up @@ -105,10 +105,11 @@ export class IgxGridSummaryService {
this.summaryCacheMap.set(rowID, rowSummaries);
}
if (!this.hasSummarizedColumns || !data) {return rowSummaries; }
const allData = data;
this.grid.columnList.filter(col => col.hasSummary).forEach((column) => {
if (!rowSummaries.get(column.field)) {
rowSummaries.set(column.field,
column.summaries.operate(data, column.field));
column.summaries.operate(data.map(r => r[column.field]), allData, column.field));
}
});
return rowSummaries;
Expand Down
34 changes: 15 additions & 19 deletions projects/igniteui-angular/src/lib/grids/summaries/grid-summary.ts
Expand Up @@ -45,7 +45,7 @@ export class IgxSummaryOperand {
* constructor() {
* super();
* }
* public operate(data: any[], fieldName: string): IgxSummaryResult[] {
* public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {
* const result = [];
* result.push({
* key: "test",
Expand All @@ -59,17 +59,13 @@ export class IgxSummaryOperand {
* ```
* @memberof IgxSummaryOperand
*/
public operate(data: any[] = [], fieldName: string): IgxSummaryResult[] {
public operate(data: any[] = [], allData: any[] = [], fieldName?: string): IgxSummaryResult[] {
return [{
key: 'count',
label: 'Count',
summaryResult: IgxSummaryOperand.count(this.getColumnData(data, fieldName))
summaryResult: IgxSummaryOperand.count(data)
}];
}

protected getColumnData(data, field): any[] {
return data.map(rec => rec[field]);
}
}

// @dynamic
Expand Down Expand Up @@ -133,7 +129,7 @@ export class IgxNumberSummaryOperand extends IgxSummaryOperand {
* constructor() {
* super();
* }
* public operate(data: any[], fieldName: string): IgxSummaryResult[] {
* public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {
* const result = [];
* result.push({
* key: "avg",
Expand All @@ -152,27 +148,27 @@ export class IgxNumberSummaryOperand extends IgxSummaryOperand {
* ```
* @memberof IgxNumberSummaryOperand
*/
public operate(data: any[] = [], fieldName: string): IgxSummaryResult[] {
const result = super.operate(data, fieldName);
public operate(data: any[] = [], allData: any[] = [], fieldName?: string): IgxSummaryResult[] {
const result = super.operate(data, allData, fieldName);
result.push({
key: 'min',
label: 'Min',
summaryResult: IgxNumberSummaryOperand.min(super.getColumnData(data, fieldName))
summaryResult: IgxNumberSummaryOperand.min(data)
});
result.push({
key: 'max',
label: 'Max',
summaryResult: IgxNumberSummaryOperand.max(super.getColumnData(data, fieldName))
summaryResult: IgxNumberSummaryOperand.max(data)
});
result.push({
key: 'sum',
label: 'Sum',
summaryResult: IgxNumberSummaryOperand.sum(super.getColumnData(data, fieldName))
summaryResult: IgxNumberSummaryOperand.sum(data)
});
result.push({
key: 'average',
label: 'Avg',
summaryResult: IgxNumberSummaryOperand.average(super.getColumnData(data, fieldName))
summaryResult: IgxNumberSummaryOperand.average(data)
});
return result;
}
Expand Down Expand Up @@ -219,7 +215,7 @@ export class IgxDateSummaryOperand extends IgxSummaryOperand {
* constructor() {
* super();
* }
* public operate(data: any[], fieldName: string): IgxSummaryResult[] {
* public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {
* const result = [];
* result.push({
* key: "latest",
Expand All @@ -233,17 +229,17 @@ export class IgxDateSummaryOperand extends IgxSummaryOperand {
* ```
* @memberof IgxDateSummaryOperand
*/
public operate(data: any[] = [], fieldName: string): IgxSummaryResult[] {
const result = super.operate(data, fieldName);
public operate(data: any[] = [], allData: any[] = [], fieldName?: string): IgxSummaryResult[] {
const result = super.operate(data, allData, fieldName);
result.push({
key: 'earliest',
label: 'Earliest',
summaryResult: IgxDateSummaryOperand.earliest(super.getColumnData(data, fieldName))
summaryResult: IgxDateSummaryOperand.earliest(data)
});
result.push({
key: 'latest',
label: 'Latest',
summaryResult: IgxDateSummaryOperand.latest(super.getColumnData(data, fieldName))
summaryResult: IgxDateSummaryOperand.latest(data)
});
return result;
}
Expand Down

0 comments on commit d7d60ce

Please sign in to comment.