diff --git a/live-editing/configs/GridConfigGenerator.ts b/live-editing/configs/GridConfigGenerator.ts
index 2c55df305a..6d9cb51246 100644
--- a/live-editing/configs/GridConfigGenerator.ts
+++ b/live-editing/configs/GridConfigGenerator.ts
@@ -42,6 +42,7 @@ import {
import {
GridAdvancedFilteringStyleComponent
} from "../../src/app/grid/grid-advanced-filtering-style/grid-advanced-filtering-style.component";
+import { GridAllDataSummaryComponent } from "../../src/app/grid/grid-allData-summary/grid-allData-summary.component";
import {
GridBatchEditingSampleComponent
} from "../../src/app/grid/grid-batch-editing/grid-batch-editing-sample.component";
@@ -1158,6 +1159,16 @@ export class GridConfigGenerator implements IConfigGenerator {
ngProviders: []
})
}));
+
+ configs.push(new Config({
+ component: GridAllDataSummaryComponent,
+ additionalFiles: ["/src/app/data/nwindData.ts"],
+ appModuleConfig: new AppModuleConfig({
+ imports: [GridAllDataSummaryComponent, IgxGridModule ],
+ ngDeclarations: [GridAllDataSummaryComponent],
+ ngImports: [IgxGridModule]
+ })
+ }));
return configs;
}
}
diff --git a/live-editing/configs/HierarchicalGridConfigGenerator.ts b/live-editing/configs/HierarchicalGridConfigGenerator.ts
index 9f76307503..803808e575 100644
--- a/live-editing/configs/HierarchicalGridConfigGenerator.ts
+++ b/live-editing/configs/HierarchicalGridConfigGenerator.ts
@@ -20,6 +20,7 @@ import { IgxSparklineCoreModule} from "igniteui-angular-charts/ES5/igx-sparkline
import { IgxSparklineModule} from "igniteui-angular-charts/ES5/igx-sparkline-module";
import { HGridAdvancedFilteringStyleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-advanced-filtering-style/hierarchical-grid-advanced-filtering-style.component";
import { HGridAdvancedFilteringSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-advanced-filtering/hierarchical-grid-advanced-filtering.component";
+import { HGridAllDataSummaryComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component";
import { HGridBatchEditingSampleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-batch-editing/hierarchical-grid-batch-editing.component";
import { HierarchicalGridWithTransactionsComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-batch-editing/hierarchical-grid-transactions.component";
import { HierarchicalGridColumnHidingToolbarStyleComponent } from "../../src/app/hierarchical-grid/hierarchical-grid-column-hiding-toolbar-style/hierarchical-grid-column-hiding-toolbar-style.component";
@@ -670,6 +671,16 @@ export class HierarchicalGridConfigGenerator implements IConfigGenerator {
component: HGridSelectionTemplateNumbersSampleComponent
}));
+ configs.push(new Config({
+ additionalFiles: ["/src/app/hierarchical-grid/data.ts"],
+ appModuleConfig: new AppModuleConfig({
+ imports: [IgxHierarchicalGridModule, HGridAllDataSummaryComponent],
+ ngDeclarations: [HGridAllDataSummaryComponent],
+ ngImports: [IgxHierarchicalGridModule]
+ }),
+ component: HGridAllDataSummaryComponent
+ }));
+
return configs;
}
}
diff --git a/live-editing/configs/TreeGridConfigGenerator.ts b/live-editing/configs/TreeGridConfigGenerator.ts
index 5d0bdcbb60..64af1b800a 100644
--- a/live-editing/configs/TreeGridConfigGenerator.ts
+++ b/live-editing/configs/TreeGridConfigGenerator.ts
@@ -41,20 +41,18 @@ import { TreeGridAdvancedFilteringSampleComponent } from "../../src/app/tree-gri
import { TreeGridAdvancedFilteringStyleComponent } from "../../src/app/tree-grid/tree-grid-advanced-filtering-style/tree-grid-advanced-filtering-style.component";
import { TreeGridCellSelectionComponent } from "../../src/app/tree-grid/tree-grid-cellSelection-sample/tree-grid-cellSelection.component";
import { TreeGridColumnResizingSampleComponent } from "../../src/app/tree-grid/tree-grid-column-resizing-sample/tree-grid-column-resizing-sample.component";
-import { TreeGridConditionalCellStyleComponent } from "../../src/app/tree-grid/tree-grid-conditional-cell-style-sample/tree-grid-conditional-cell-style-sample.component";
-import {
- TreeGridConditionalRowSelectorsSampleComponent
-} from "../../src/app/tree-grid/tree-grid-conditional-row-selectors/tree-grid-conditional-row-selectors.component";
// tslint:disable-next-line: ordered-imports
import {
TreeGridConditionalCellStyle2Component
} from "../../src/app/tree-grid/tree-grid-conditional-cell-style-2/tree-grid-conditional-cell-style-2.component";
+import { TreeGridConditionalCellStyleComponent } from "../../src/app/tree-grid/tree-grid-conditional-cell-style-sample/tree-grid-conditional-cell-style-sample.component";
+import {
+ TreeGridConditionalRowSelectorsSampleComponent
+} from "../../src/app/tree-grid/tree-grid-conditional-row-selectors/tree-grid-conditional-row-selectors.component";
import { TreeGridDisplaydensitySampleComponent } from "../../src/app/tree-grid/tree-grid-displaydensity-sample/tree-grid-displaydensity-sample.component";
import { TreeGridEditingEventsComponent } from "../../src/app/tree-grid/tree-grid-editing-events/tree-grid-editing-events.component";
import { TreeGridEditingSampleComponent } from "../../src/app/tree-grid/tree-grid-editing-sample/tree-grid-editing-sample.component";
import { TreeGridEditingStyleComponent } from "../../src/app/tree-grid/tree-grid-editing-style/tree-grid-editing-sample.component";
-import { TreeGridExternalAdvancedFilteringComponent } from "../../src/app/tree-grid/tree-grid-external-advanced-filtering/tree-grid-external-advanced-filtering.component";
-import { TreeGridExternalExcelStyleFilteringComponent } from "../../src/app/tree-grid/tree-grid-external-excel-style-filtering/tree-grid-external-excel-style-filtering.component";
import { RemoteValuesService } from "../../src/app/tree-grid/tree-grid-excel-style-filtering-load-on-demand/remoteValues.service";
import { TreeGridExcelStyleFilteringLoadOnDemandComponent } from "../../src/app/tree-grid/tree-grid-excel-style-filtering-load-on-demand/tree-grid-excel-style-filtering-load-on-demand.component";
import {
@@ -69,6 +67,8 @@ import {
import {
TreeGridExcelStyleFilteringStyleComponent
} from "../../src/app/tree-grid/tree-grid-excel-style-filtering-style/tree-grid-excel-style-filtering-style.component";
+import { TreeGridExternalAdvancedFilteringComponent } from "../../src/app/tree-grid/tree-grid-external-advanced-filtering/tree-grid-external-advanced-filtering.component";
+import { TreeGridExternalExcelStyleFilteringComponent } from "../../src/app/tree-grid/tree-grid-external-excel-style-filtering/tree-grid-external-excel-style-filtering.component";
import { TreeGridFilteringCustomSampleComponent } from "../../src/app/tree-grid/tree-grid-filtering-custom-sample/tree-grid-filtering-custom-sample.component";
import { TreeGridFilteringSampleComponent } from "../../src/app/tree-grid/tree-grid-filtering-sample/tree-grid-filtering-sample.component";
import { TreeGridFilteringStyleComponent } from "../../src/app/tree-grid/tree-grid-filtering-style/tree-grid-filtering-style.component";
@@ -108,6 +108,7 @@ import { TreeGridToolbarSample3Component } from "../../src/app/tree-grid/tree-gr
import { TreeGridToolbarSample4Component } from "../../src/app/tree-grid/tree-grid-toolbar-sample-4/tree-grid-toolbar-sample-4.component";
import { TreeGridToolbarStyleComponent } from "../../src/app/tree-grid/tree-grid-toolbar-style/tree-grid-toolbar-style.component";
import { TreeGridVirtualizationSampleComponent } from "../../src/app/tree-grid/tree-grid-virtualization-sample/tree-grid-virtualization-sample.component";
+import { TreeGridAllDataSummaryComponent } from "../../src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component";
import { AppModuleConfig } from "./core/AppModuleConfig";
import { Config } from "./core/Config";
import { IConfigGenerator } from "./core/IConfigGenerator";
@@ -918,6 +919,18 @@ export class TreeGridConfigGenerator implements IConfigGenerator {
})
}));
+ configs.push(new Config({
+ additionalFiles: [
+ "/src/app/tree-grid/data/employees-flat.ts"
+ ],
+ appModuleConfig: new AppModuleConfig({
+ imports: [IgxTreeGridModule, TreeGridAllDataSummaryComponent],
+ ngDeclarations: [TreeGridAllDataSummaryComponent],
+ ngImports: [IgxTreeGridModule]
+ }),
+ component: TreeGridAllDataSummaryComponent
+ }));
+
return configs;
}
}
diff --git a/src/app/data/nwindData.ts b/src/app/data/nwindData.ts
index c4bc643821..73fa95866e 100644
--- a/src/app/data/nwindData.ts
+++ b/src/app/data/nwindData.ts
@@ -21,7 +21,7 @@ export const DATA: any[] = [{
UnitsInStock: 17,
UnitsOnOrder: 40,
ReorderLevel: 25,
- Discontinued: false,
+ Discontinued: true,
OrderDate: new Date("2003-03-17")
}, {
ProductID: 3,
diff --git a/src/app/grid/grid-allData-summary/grid-allData-summary.component.html b/src/app/grid/grid-allData-summary/grid-allData-summary.component.html
new file mode 100644
index 0000000000..d11301f11d
--- /dev/null
+++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/grid/grid-allData-summary/grid-allData-summary.component.scss b/src/app/grid/grid-allData-summary/grid-allData-summary.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts b/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts
new file mode 100644
index 0000000000..f1a95a0ca4
--- /dev/null
+++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts
@@ -0,0 +1,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() {
+ }
+
+}
diff --git a/src/app/grid/grid-routes-data.ts b/src/app/grid/grid-routes-data.ts
index c9ed90bec0..f477c8b778 100644
--- a/src/app/grid/grid-routes-data.ts
+++ b/src/app/grid/grid-routes-data.ts
@@ -86,6 +86,7 @@ export const gridsRoutesData = {
{ displayName: "Grid Excel Style Filtering Load On Demand", parentName: "Grid" },
"grid-conditional-row-selectors": { displayName: "Grid Conditional Row Selectors", parentName: "Grid" },
"grid-dynamic-chart-data": { displayName: "Grid Dynamic Chart Data", parentName: "Grid" },
- "grid-master-detail": { displayName: "Grid Master Detail", parentName: "Grid" },
- "grid-multiple-row-drag": { displayName: "Grid Multi Row Drag", parentName: "Grid"}
+ "grid-multiple-row-drag": { displayName: "Grid Multi Row Drag", parentName: "Grid"},
+ "grid-alldata-summaries": {displayName: "Grid AllData Summaries", parentName: "Grid"},
+ "grid-master-detail": { displayName: "Grid Master Detail", parentName: "Grid" }
};
diff --git a/src/app/grid/grids-routing.module.ts b/src/app/grid/grids-routing.module.ts
index fcc47293f1..783d7095c3 100644
--- a/src/app/grid/grids-routing.module.ts
+++ b/src/app/grid/grids-routing.module.ts
@@ -76,6 +76,7 @@ import { GridMultiColumnHeadersComponent } from "./multi-column-headers/multi-co
import { CustomGridPagingStyleSample } from "./custom-grid-paging-style/custom-grid-paging-style.component";
import { GridAdvancedFilteringSampleComponent } from "./grid-advanced-filtering-sample/grid-advanced-filtering-sample.component";
import { GridAdvancedFilteringStyleComponent } from "./grid-advanced-filtering-style/grid-advanced-filtering-style.component";
+import { GridAllDataSummaryComponent } from "./grid-allData-summary/grid-allData-summary.component";
import { GridCellSelectionComponent } from "./grid-cellSelection-sample/grid-cellSelection.component";
import {
GridConditionalRowSelectorsComponent
@@ -516,6 +517,11 @@ export const gridsRoutes: Routes = [
data: gridsRoutesData["grid-dynamic-chart-data"],
path: "grid-dynamic-chart-data"
},
+ {
+ component: GridAllDataSummaryComponent,
+ data: gridsRoutesData["grid-alldata-summaries"],
+ path: "grid-alldata-summaries"
+ },
{
component: GridMasterDetailSampleComponent,
data: gridsRoutesData["grid-master-detail"],
diff --git a/src/app/grid/grids.module.ts b/src/app/grid/grids.module.ts
index 77f13c1e15..ad92c30da7 100644
--- a/src/app/grid/grids.module.ts
+++ b/src/app/grid/grids.module.ts
@@ -41,6 +41,7 @@ import { IgxSparklineModule } from "igniteui-angular-charts/ES5/igx-sparkline-mo
import { CustomGridPagingStyleSample } from "./custom-grid-paging-style/custom-grid-paging-style.component";
import { GridAdvancedFilteringSampleComponent } from "./grid-advanced-filtering-sample/grid-advanced-filtering-sample.component";
import { GridAdvancedFilteringStyleComponent } from "./grid-advanced-filtering-style/grid-advanced-filtering-style.component";
+import { GridAllDataSummaryComponent } from "./grid-allData-summary/grid-allData-summary.component";
import { GridBatchEditingSampleComponent } from "./grid-batch-editing/grid-batch-editing-sample.component";
import { GridWithTransactionsComponent } from "./grid-batch-editing/grid-transaction.component";
import { GridComponent } from "./grid-boston-marathon/grid.component";
@@ -223,8 +224,9 @@ import { DataService } from "./services/data.service";
GridMultipleRowDragComponent,
ChartHostDirective,
ChartArgsPipe,
- GridMasterDetailSampleComponent,
- GridExternalAdvancedFilteringComponent
+ GridExternalAdvancedFilteringComponent,
+ GridAllDataSummaryComponent,
+ GridMasterDetailSampleComponent
],
imports: [
CommonModule,
diff --git a/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.html b/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.html
new file mode 100644
index 0000000000..7e3b0d30ea
--- /dev/null
+++ b/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.scss b/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.ts b/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.ts
new file mode 100644
index 0000000000..519cd51702
--- /dev/null
+++ b/src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.ts
@@ -0,0 +1,73 @@
+import { Component, OnInit, ViewChild } from "@angular/core";
+import { IgxHierarchicalGridComponent,
+ IgxNumberSummaryOperand,
+ IgxSummaryOperand,
+ IgxSummaryResult } from "igniteui-angular";
+import { SINGERS } from "../data";
+
+class CustomNumberSummary extends IgxNumberSummaryOperand {
+
+ constructor() {
+ super();
+ }
+
+ public operate(data?: any[]): IgxSummaryResult[] {
+ const result = super.operate(data);
+ result.pop();
+ result.pop();
+ return result;
+ }
+}
+
+class GrammySummary extends IgxSummaryOperand {
+
+ constructor() {
+ super();
+ }
+
+ public operate(data?: any[], allData = [], fieldName = ""): IgxSummaryResult[] {
+ const result = [];
+ result.push({
+ key: "nominatedSingers",
+ label: "Nominated Singers",
+ summaryResult: allData.filter((rec) => rec["GrammyNominations"] > 0).length
+ });
+ result.push({
+ key: "singersWithAwards",
+ label: "Singers with Awards",
+ summaryResult: allData.filter((rec) => rec["GrammyAwards"] > 0).length
+ });
+ result.push({
+ key: "nominations",
+ label: "Total Nominations",
+ summaryResult: IgxNumberSummaryOperand.sum(allData.map(r => r["GrammyNominations"]))
+ });
+ result.push({
+ key: "awards",
+ label: "Total Awards",
+ summaryResult: IgxNumberSummaryOperand.sum(allData.map(r => r["GrammyAwards"]))
+ });
+ return result;
+ }
+}
+
+@Component({
+ selector: "hierarchical-grid-allData-summary",
+ styleUrls: ["./hierarchical-grid-allData-summary.component.scss"],
+ templateUrl: "hierarchical-grid-allData-summary.component.html"
+})
+
+export class HGridAllDataSummaryComponent implements OnInit {
+ public localdata;
+ public grammySummary = GrammySummary;
+ public numberSummary = CustomNumberSummary;
+
+ @ViewChild("hierarchicalGrid", { static: true })
+ private hierarchicalGrid: IgxHierarchicalGridComponent;
+
+ constructor() {}
+
+ public ngOnInit(): void {
+ this.localdata = SINGERS;
+ }
+}
diff --git a/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts b/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts
index 0f09c25644..e8200dea07 100644
--- a/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts
+++ b/src/app/hierarchical-grid/hierarchical-grid-routes-data.ts
@@ -54,5 +54,6 @@ export const hierarchicalGridRoutesData = {
"hierarchical-grid-advanced-filtering": { displayName: "Hierarchical Grid Advanced Filtering", parentName: "Hierarchical Grid" },
"hierarchical-grid-advanced-filtering-style": { displayName: "Hierarchical Grid Advanced Filtering Style", parentName: "Hierarchical Grid" },
"hierarchical-grid-filtering-style": { displayName: "HGrid Filtering Style", parentName: "Hierarchical Grid" },
- "hierarchical-grid-conditional-row-selectors": { displayName: "HGrid Conditional Row Selectors", parentName: "Hierarchical Grid" }
+ "hierarchical-grid-conditional-row-selectors": { displayName: "HGrid Conditional Row Selectors", parentName: "Hierarchical Grid" },
+ "hierarchical-grid-allData-summary": {displayName: "HGrid All Data Custom Summaries", parentName: "Hierarchical Grid"}
};
diff --git a/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts b/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts
index 9c42eea218..cf016b65d7 100644
--- a/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts
+++ b/src/app/hierarchical-grid/hierarchical-grid-routing.module.ts
@@ -4,6 +4,7 @@ import { RouterModule, Routes } from "@angular/router";
import { HGridAdvancedFilteringStyleComponent } from "./hierarchical-grid-advanced-filtering-style/hierarchical-grid-advanced-filtering-style.component";
import { HGridAdvancedFilteringSampleComponent } from "./hierarchical-grid-advanced-filtering/hierarchical-grid-advanced-filtering.component";
+import { HGridAllDataSummaryComponent } from "./hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component";
import { HGridBatchEditingSampleComponent } from "./hierarchical-grid-batch-editing/hierarchical-grid-batch-editing.component";
import { HierarchicalGridColumnHidingToolbarStyleComponent } from "./hierarchical-grid-column-hiding-toolbar-style/hierarchical-grid-column-hiding-toolbar-style.component";
import { HGridCostumHidingSampleComponent } from "./hierarchical-grid-column-hiding/hierarchical-grid-custom-hiding.component";
@@ -384,6 +385,11 @@ export const hierarchicalGridRoutes: Routes = [
component: HGridConditionalRowSelectorsComponent,
data: hierarchicalGridRoutesData["hierarchical-grid-conditional-row-selectors"],
path: "hierarchical-grid-conditional-row-selectors"
+ },
+ {
+ component: HGridAllDataSummaryComponent,
+ data: hierarchicalGridRoutesData["hierarchical-grid-allData-summary"],
+ path: "hierarchical-grid-allData-summary"
}
];
diff --git a/src/app/hierarchical-grid/hierarchical-grid.module.ts b/src/app/hierarchical-grid/hierarchical-grid.module.ts
index 19f142404e..22351a1f4e 100644
--- a/src/app/hierarchical-grid/hierarchical-grid.module.ts
+++ b/src/app/hierarchical-grid/hierarchical-grid.module.ts
@@ -12,6 +12,7 @@ import { IgxSparklineCoreModule } from "igniteui-angular-charts/ES5/igx-sparklin
import { IgxSparklineModule } from "igniteui-angular-charts/ES5/igx-sparkline-module";
import { HGridAdvancedFilteringStyleComponent } from "./hierarchical-grid-advanced-filtering-style/hierarchical-grid-advanced-filtering-style.component";
import { HGridAdvancedFilteringSampleComponent } from "./hierarchical-grid-advanced-filtering/hierarchical-grid-advanced-filtering.component";
+import { HGridAllDataSummaryComponent } from "./hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component";
import { HGridBatchEditingSampleComponent } from "./hierarchical-grid-batch-editing/hierarchical-grid-batch-editing.component";
import { HierarchicalGridWithTransactionsComponent } from "./hierarchical-grid-batch-editing/hierarchical-grid-transactions.component";
import { HierarchicalGridColumnHidingToolbarStyleComponent } from "./hierarchical-grid-column-hiding-toolbar-style/hierarchical-grid-column-hiding-toolbar-style.component";
@@ -127,7 +128,8 @@ import { HGridToolbarTitleSampleComponent } from "./hierarchical-grid-toolbar/hi
HGridStylingComponent,
HGridConditionalRowSelectorsComponent,
HGridExternalAdvancedFilteringComponent,
- HGridExternalExcelStyleFilteringComponent
+ HGridExternalExcelStyleFilteringComponent,
+ HGridAllDataSummaryComponent
],
imports: [
CommonModule,
diff --git a/src/app/tree-grid/tree-grid-routes-data.ts b/src/app/tree-grid/tree-grid-routes-data.ts
index c4817c0eb1..d28736ad1c 100644
--- a/src/app/tree-grid/tree-grid-routes-data.ts
+++ b/src/app/tree-grid/tree-grid-routes-data.ts
@@ -92,5 +92,6 @@ export const treeGridRoutesData = {
"treegrid-cell-selection": { displayName: "TreeGrid Cell Selection", parentName: "TreeGrid" },
"treegrid-conditional-row-selectors": { displayName: "TreeGrid Conditional Row Selectors", parentName: "TreeGrid" },
"treegrid-style": { displayName: "TreeGrid Style", parentName: "TreeGrid" },
- "tree-grid-cell-cellStyling": { displayName: "TreeGrid Conditional Cell Styling", parentName: "TreeGrid" }
+ "tree-grid-cell-cellStyling": { displayName: "TreeGrid Conditional Cell Styling", parentName: "TreeGrid" },
+ "tree-grid-allData-summary": { displayName: "TreeGrid All Data Custom Summaries", parentName: "TreeGrid" }
};
diff --git a/src/app/tree-grid/tree-grid-routing.module.ts b/src/app/tree-grid/tree-grid-routing.module.ts
index 25f33e7143..cd9062117e 100644
--- a/src/app/tree-grid/tree-grid-routing.module.ts
+++ b/src/app/tree-grid/tree-grid-routing.module.ts
@@ -151,6 +151,7 @@ import { TreeGridToolbarStyleComponent } from "./tree-grid-toolbar-style/tree-gr
import {
TreeGridVirtualizationSampleComponent
} from "./tree-grid-virtualization-sample/tree-grid-virtualization-sample.component";
+import { TreeGridAllDataSummaryComponent } from "./treegrid-allData-summary/treegrid-allData-summary.component";
export const treeGridRoutes: Routes = [
{
@@ -487,6 +488,11 @@ export const treeGridRoutes: Routes = [
component: TreeGridConditionalCellStyle2Component,
data: treeGridRoutesData["tree-grid-cell-cellStyling"],
path: "tree-grid-cell-cellStyling"
+ },
+ {
+ component: TreeGridAllDataSummaryComponent,
+ data: treeGridRoutesData["tree-grid-allData-summary"],
+ path: "tree-grid-allData-summary"
}
];
diff --git a/src/app/tree-grid/tree-grid.module.ts b/src/app/tree-grid/tree-grid.module.ts
index 9d50435763..0389b48510 100644
--- a/src/app/tree-grid/tree-grid.module.ts
+++ b/src/app/tree-grid/tree-grid.module.ts
@@ -178,6 +178,7 @@ import { TreeGridToolbarStyleComponent } from "./tree-grid-toolbar-style/tree-gr
import {
TreeGridVirtualizationSampleComponent
} from "./tree-grid-virtualization-sample/tree-grid-virtualization-sample.component";
+import { TreeGridAllDataSummaryComponent } from "./treegrid-allData-summary/treegrid-allData-summary.component";
@NgModule({
declarations: [
TreeGridChilddatakeySampleComponent,
@@ -248,7 +249,8 @@ import {
TreeGridStyleComponent,
TreeGridExternalExcelStyleFilteringComponent,
TreeGridExternalAdvancedFilteringComponent,
- TreeGridConditionalCellStyle2Component
+ TreeGridConditionalCellStyle2Component,
+ TreeGridAllDataSummaryComponent
],
imports: [
CommonModule,
diff --git a/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.html b/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.html
new file mode 100644
index 0000000000..f597f198e1
--- /dev/null
+++ b/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.html
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.scss b/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.scss
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.ts b/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.ts
new file mode 100644
index 0000000000..b5ae419e72
--- /dev/null
+++ b/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.ts
@@ -0,0 +1,64 @@
+import { Component, OnInit, ViewChild } from "@angular/core";
+import { IgxSummaryOperand, IgxSummaryResult, IgxTreeGridComponent } from "igniteui-angular";
+import { generateEmployeeFlatData } from "../data/employees-flat";
+
+class PTOSummary extends IgxSummaryOperand {
+
+ constructor() {
+ super();
+ }
+
+ public operate(data?: any[], allData = [], fieldName = ""): IgxSummaryResult[] {
+ const result = [];
+ result.push({
+ key: "totalOnPTO", label: "Employees On PTO",
+ summaryResult: IgxSummaryOperand.count(allData.filter((rec) => rec["OnPTO"]).map(r => r[fieldName]))
+ });
+ result.push({
+ key: "devs", label: "Developers",
+ summaryResult: IgxSummaryOperand.count(
+ allData.filter((rec) => rec[fieldName].includes("Developer") && rec["OnPTO"]).map(r => r[fieldName]))
+ });
+ result.push({
+ key: "tl", label: "Team Leads",
+ summaryResult: IgxSummaryOperand.count(
+ allData.filter((rec) => rec[fieldName].includes("Team Lead") && rec["OnPTO"]).map(r => r[fieldName]))
+ });
+ result.push({
+ key: "managers", label: "Managers/Directors",
+ summaryResult: IgxSummaryOperand.count(
+ allData.filter((rec) =>
+ (rec[fieldName].includes("Manager") || rec[fieldName].includes("Director")) && rec["OnPTO"])
+ .map(r => r[fieldName]))
+ });
+ result.push({
+ key: "ceo", label: "CEO/President",
+ summaryResult: IgxSummaryOperand.count(
+ allData.filter((rec) =>
+ (rec[fieldName].includes("CEO") || rec[fieldName].includes("President")) && rec["OnPTO"])
+ .map(r => r[fieldName]))
+ });
+ return result;
+ }
+}
+
+@Component({
+ selector: "treegrid-allData-summary-sample",
+ styleUrls: ["./treegrid-allData-summary.component.scss"],
+ templateUrl: "./treegrid-allData-summary.component.html"
+})
+export class TreeGridAllDataSummaryComponent implements OnInit {
+
+ @ViewChild("treegrid1", { read: IgxTreeGridComponent, static: true })
+ public grid1: IgxTreeGridComponent;
+ public data;
+ public d;
+ public ptoSummary = PTOSummary;
+
+ constructor() { }
+
+ public ngOnInit() {
+ this.data = generateEmployeeFlatData();
+ this.data.forEach(rec => rec.Title = rec.Title.includes("Localiza") ? "Software Developer" : rec.Title);
+ }
+}