Skip to content

Commit d7d60ce

Browse files
committed
feat(IgxSummaries): add all grid data and curr colField as optional params #5754
1 parent 1c0abba commit d7d60ce

File tree

2 files changed

+17
-20
lines changed

2 files changed

+17
-20
lines changed

projects/igniteui-angular/src/lib/grids/summaries/grid-summary.service.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,11 @@ export class IgxGridSummaryService {
105105
this.summaryCacheMap.set(rowID, rowSummaries);
106106
}
107107
if (!this.hasSummarizedColumns || !data) {return rowSummaries; }
108+
const allData = data;
108109
this.grid.columnList.filter(col => col.hasSummary).forEach((column) => {
109110
if (!rowSummaries.get(column.field)) {
110111
rowSummaries.set(column.field,
111-
column.summaries.operate(data, column.field));
112+
column.summaries.operate(data.map(r => r[column.field]), allData, column.field));
112113
}
113114
});
114115
return rowSummaries;

projects/igniteui-angular/src/lib/grids/summaries/grid-summary.ts

+15-19
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export class IgxSummaryOperand {
4545
* constructor() {
4646
* super();
4747
* }
48-
* public operate(data: any[], fieldName: string): IgxSummaryResult[] {
48+
* public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {
4949
* const result = [];
5050
* result.push({
5151
* key: "test",
@@ -59,17 +59,13 @@ export class IgxSummaryOperand {
5959
* ```
6060
* @memberof IgxSummaryOperand
6161
*/
62-
public operate(data: any[] = [], fieldName: string): IgxSummaryResult[] {
62+
public operate(data: any[] = [], allData: any[] = [], fieldName?: string): IgxSummaryResult[] {
6363
return [{
6464
key: 'count',
6565
label: 'Count',
66-
summaryResult: IgxSummaryOperand.count(this.getColumnData(data, fieldName))
66+
summaryResult: IgxSummaryOperand.count(data)
6767
}];
6868
}
69-
70-
protected getColumnData(data, field): any[] {
71-
return data.map(rec => rec[field]);
72-
}
7369
}
7470

7571
// @dynamic
@@ -133,7 +129,7 @@ export class IgxNumberSummaryOperand extends IgxSummaryOperand {
133129
* constructor() {
134130
* super();
135131
* }
136-
* public operate(data: any[], fieldName: string): IgxSummaryResult[] {
132+
* public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {
137133
* const result = [];
138134
* result.push({
139135
* key: "avg",
@@ -152,27 +148,27 @@ export class IgxNumberSummaryOperand extends IgxSummaryOperand {
152148
* ```
153149
* @memberof IgxNumberSummaryOperand
154150
*/
155-
public operate(data: any[] = [], fieldName: string): IgxSummaryResult[] {
156-
const result = super.operate(data, fieldName);
151+
public operate(data: any[] = [], allData: any[] = [], fieldName?: string): IgxSummaryResult[] {
152+
const result = super.operate(data, allData, fieldName);
157153
result.push({
158154
key: 'min',
159155
label: 'Min',
160-
summaryResult: IgxNumberSummaryOperand.min(super.getColumnData(data, fieldName))
156+
summaryResult: IgxNumberSummaryOperand.min(data)
161157
});
162158
result.push({
163159
key: 'max',
164160
label: 'Max',
165-
summaryResult: IgxNumberSummaryOperand.max(super.getColumnData(data, fieldName))
161+
summaryResult: IgxNumberSummaryOperand.max(data)
166162
});
167163
result.push({
168164
key: 'sum',
169165
label: 'Sum',
170-
summaryResult: IgxNumberSummaryOperand.sum(super.getColumnData(data, fieldName))
166+
summaryResult: IgxNumberSummaryOperand.sum(data)
171167
});
172168
result.push({
173169
key: 'average',
174170
label: 'Avg',
175-
summaryResult: IgxNumberSummaryOperand.average(super.getColumnData(data, fieldName))
171+
summaryResult: IgxNumberSummaryOperand.average(data)
176172
});
177173
return result;
178174
}
@@ -219,7 +215,7 @@ export class IgxDateSummaryOperand extends IgxSummaryOperand {
219215
* constructor() {
220216
* super();
221217
* }
222-
* public operate(data: any[], fieldName: string): IgxSummaryResult[] {
218+
* public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {
223219
* const result = [];
224220
* result.push({
225221
* key: "latest",
@@ -233,17 +229,17 @@ export class IgxDateSummaryOperand extends IgxSummaryOperand {
233229
* ```
234230
* @memberof IgxDateSummaryOperand
235231
*/
236-
public operate(data: any[] = [], fieldName: string): IgxSummaryResult[] {
237-
const result = super.operate(data, fieldName);
232+
public operate(data: any[] = [], allData: any[] = [], fieldName?: string): IgxSummaryResult[] {
233+
const result = super.operate(data, allData, fieldName);
238234
result.push({
239235
key: 'earliest',
240236
label: 'Earliest',
241-
summaryResult: IgxDateSummaryOperand.earliest(super.getColumnData(data, fieldName))
237+
summaryResult: IgxDateSummaryOperand.earliest(data)
242238
});
243239
result.push({
244240
key: 'latest',
245241
label: 'Latest',
246-
summaryResult: IgxDateSummaryOperand.latest(super.getColumnData(data, fieldName))
242+
summaryResult: IgxDateSummaryOperand.latest(data)
247243
});
248244
return result;
249245
}

0 commit comments

Comments
 (0)