-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathgrid-allData-summary.component.ts
58 lines (51 loc) · 1.53 KB
/
grid-allData-summary.component.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { Component, OnInit, ViewChild } from "@angular/core";
import {
IgxGridComponent,
IgxNumberSummaryOperand,
IgxSummaryResult } from "igniteui-angular";
import { DATA } from "../../data/nwindData";
class DiscontinuedSummary extends IgxNumberSummaryOperand {
constructor() {
super();
}
public operate(data?: any[], allData = [], fieldName = ""): IgxSummaryResult[] {
const result = [];
result.push({
key: "products",
label: "Producs",
summaryResult: data.length
});
result.push({
key: "total",
label: "Total Items",
summaryResult: IgxNumberSummaryOperand.sum(data)
});
result.push({
key: "discontinued",
label: "Discontinued Producs",
summaryResult: allData.map(r => r["Discontinued"]).filter((rec) => rec).length
});
result.push({
key: "totalDiscontinued",
label: "Total Discontinued Items",
summaryResult: IgxNumberSummaryOperand.sum(allData.filter((rec) => rec["Discontinued"]).map(r => r[fieldName]))
});
return result;
}
}
@Component({
selector: "grid-allData-summary",
styleUrls: ["./grid-allData-summary.component.scss"],
templateUrl: "./grid-allData-summary.component.html"
})
export class GridAllDataSummaryComponent implements OnInit {
@ViewChild("grid1", { read: IgxGridComponent, static: true })
public grid1: IgxGridComponent;
public discontinuedSummary = DiscontinuedSummary;
public data;
constructor() {
this.data = DATA;
}
public ngOnInit() {
}
}