From 11b09b23d3c4ea22d5760fc5f90fd876dbcbf95a Mon Sep 17 00:00:00 2001 From: ddincheva Date: Tue, 3 Dec 2019 11:25:12 +0200 Subject: [PATCH 01/11] chore(*): add routes for allData summary sample --- src/app/data/nwindData.ts | 2 +- src/app/grid/grid-routes-data.ts | 3 ++- src/app/grid/grids-routing.module.ts | 6 ++++++ src/app/grid/grids.module.ts | 4 +++- 4 files changed, 12 insertions(+), 3 deletions(-) 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-routes-data.ts b/src/app/grid/grid-routes-data.ts index 8c12bd8c59..04efb24e25 100644 --- a/src/app/grid/grid-routes-data.ts +++ b/src/app/grid/grid-routes-data.ts @@ -85,5 +85,6 @@ 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-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"} }; diff --git a/src/app/grid/grids-routing.module.ts b/src/app/grid/grids-routing.module.ts index def8f39d59..c5b434c284 100644 --- a/src/app/grid/grids-routing.module.ts +++ b/src/app/grid/grids-routing.module.ts @@ -75,6 +75,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 @@ -508,6 +509,11 @@ export const gridsRoutes: Routes = [ component: GridDynamicChartDataComponent, data: gridsRoutesData["grid-dynamic-chart-data"], path: "grid-dynamic-chart-data" + }, + { + component: GridAllDataSummaryComponent, + data: gridsRoutesData["grid-alldata-summaries"], + path: "grid-alldata-summaries" } ]; diff --git a/src/app/grid/grids.module.ts b/src/app/grid/grids.module.ts index a0c09f9093..b122ec88fd 100644 --- a/src/app/grid/grids.module.ts +++ b/src/app/grid/grids.module.ts @@ -40,6 +40,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"; @@ -221,7 +222,8 @@ import { DataService } from "./services/data.service"; GridMultipleRowDragComponent, ChartHostDirective, ChartArgsPipe, - GridExternalAdvancedFilteringComponent + GridExternalAdvancedFilteringComponent, + GridAllDataSummaryComponent ], imports: [ CommonModule, From 247dbc032af7f256996c7ecd9341d31ea2d1b29e Mon Sep 17 00:00:00 2001 From: ddincheva Date: Tue, 3 Dec 2019 11:25:55 +0200 Subject: [PATCH 02/11] chore(*): add all data summary grid sample --- .../grid-allData-summary.component.html | 18 ++++++ .../grid-allData-summary.component.scss | 0 .../grid-allData-summary.component.ts | 62 +++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 src/app/grid/grid-allData-summary/grid-allData-summary.component.html create mode 100644 src/app/grid/grid-allData-summary/grid-allData-summary.component.scss create mode 100644 src/app/grid/grid-allData-summary/grid-allData-summary.component.ts 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..35147c955c --- /dev/null +++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.html @@ -0,0 +1,18 @@ +
+ + + + + + + + + + + + + + +
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..decccca9cf --- /dev/null +++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts @@ -0,0 +1,62 @@ +import { Component, OnInit, ViewChild, ViewEncapsulation} from "@angular/core"; +import { + IgxColumnComponent, + IgxGridComponent, + IgxNumberSummaryOperand, + IgxSummaryResult } from "igniteui-angular"; +import { DATA } from "../../data/nwindData"; + +class DiscountedSummary 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: "discounted", + label: "Discounted Producs", + summaryResult: allData.map(r => r["Discontinued"]).filter((rec) => rec).length + }); + result.push({ + key: "totalDiscounted", + label: "Total Discounted Items", + summaryResult: IgxNumberSummaryOperand.sum(allData.filter((rec) => rec["Discontinued"]).map(r => r[fieldName])) + }); + return result; + } +} +@Component({ + encapsulation: ViewEncapsulation.None, + 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 discountedSummary = DiscountedSummary; + public data; + public productId = 0; + + constructor() { + this.data = DATA; + this.productId = DATA.length; + } + + public ngOnInit() { + } + +} From d75696731e87791277cd6e4e8684d110cfe6285b Mon Sep 17 00:00:00 2001 From: ddincheva Date: Tue, 3 Dec 2019 14:40:38 +0200 Subject: [PATCH 03/11] chore(*): add treeGrid all data summary sample --- .../grid-allData-summary.component.ts | 4 +- .../treegrid-allData-summary.component.html | 10 +++ .../treegrid-allData-summary.component.scss | 0 .../treegrid-allData-summary.component.ts | 66 +++++++++++++++++++ 4 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.html create mode 100644 src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.scss create mode 100644 src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.ts 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 index decccca9cf..55afd013d8 100644 --- a/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts +++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts @@ -1,6 +1,5 @@ -import { Component, OnInit, ViewChild, ViewEncapsulation} from "@angular/core"; +import { Component, OnInit, ViewChild } from "@angular/core"; import { - IgxColumnComponent, IgxGridComponent, IgxNumberSummaryOperand, IgxSummaryResult } from "igniteui-angular"; @@ -38,7 +37,6 @@ class DiscountedSummary extends IgxNumberSummaryOperand { } } @Component({ - encapsulation: ViewEncapsulation.None, selector: "grid-allData-summary", styleUrls: ["./grid-allData-summary.component.scss"], templateUrl: "./grid-allData-summary.component.html" 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..a92e5f5c41 --- /dev/null +++ b/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.html @@ -0,0 +1,10 @@ +
+ + + + + + + +
\ 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..8dd5a7f59b --- /dev/null +++ b/src/app/tree-grid/treegrid-allData-summary/treegrid-allData-summary.component.ts @@ -0,0 +1,66 @@ +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); + } +} From bda555836e0a001027056afecd0be80bebbbed74 Mon Sep 17 00:00:00 2001 From: ddincheva Date: Tue, 3 Dec 2019 14:45:24 +0200 Subject: [PATCH 04/11] chore(*): add tree grid all data summary sample component to the routing --- src/app/tree-grid/tree-grid-routes-data.ts | 3 ++- src/app/tree-grid/tree-grid-routing.module.ts | 6 ++++++ src/app/tree-grid/tree-grid.module.ts | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) 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, From a5a3f37f0fce0518778d10365e6866294e842528 Mon Sep 17 00:00:00 2001 From: ddincheva Date: Tue, 3 Dec 2019 16:27:45 +0200 Subject: [PATCH 05/11] chore(*): add hierarchical all data summary sample --- src/app/hierarchical-grid/hierarchical-grid-routes-data.ts | 3 ++- .../hierarchical-grid/hierarchical-grid-routing.module.ts | 6 ++++++ src/app/hierarchical-grid/hierarchical-grid.module.ts | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) 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 613ac70023..e058fe1ba5 100644 --- a/src/app/hierarchical-grid/hierarchical-grid.module.ts +++ b/src/app/hierarchical-grid/hierarchical-grid.module.ts @@ -11,6 +11,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"; @@ -126,7 +127,8 @@ import { HGridToolbarTitleSampleComponent } from "./hierarchical-grid-toolbar/hi HGridStylingComponent, HGridConditionalRowSelectorsComponent, HGridExternalAdvancedFilteringComponent, - HGridExternalExcelStyleFilteringComponent + HGridExternalExcelStyleFilteringComponent, + HGridAllDataSummaryComponent ], imports: [ CommonModule, From 1e84bc5c1e359ecd2baa85be1828c15788a55334 Mon Sep 17 00:00:00 2001 From: ddincheva Date: Tue, 3 Dec 2019 16:28:54 +0200 Subject: [PATCH 06/11] chore(*): add routing for all data custom summary sample --- ...chical-grid-allData-summary.component.html | 29 ++++++++ ...chical-grid-allData-summary.component.scss | 0 ...archical-grid-allData-summary.component.ts | 73 +++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.html create mode 100644 src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.scss create mode 100644 src/app/hierarchical-grid/hierarchical-grid-allData-summary/hierarchical-grid-allData-summary.component.ts 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..389b80c7e1 --- /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..c09ed719a3 --- /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[], allData = [], fieldName = ""): 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; + } +} \ No newline at end of file From 0bc35409bcb087fdcbe951ec6033c8257eaee8fe Mon Sep 17 00:00:00 2001 From: ddincheva Date: Wed, 4 Dec 2019 09:15:00 +0200 Subject: [PATCH 07/11] chore(*): add live-editing configs for all data summary sample --- live-editing/configs/GridConfigGenerator.ts | 11 ++++++++ .../HierarchicalGridConfigGenerator.ts | 11 ++++++++ .../configs/TreeGridConfigGenerator.ts | 25 ++++++++++++++----- ...archical-grid-allData-summary.component.ts | 2 +- 4 files changed, 42 insertions(+), 7 deletions(-) diff --git a/live-editing/configs/GridConfigGenerator.ts b/live-editing/configs/GridConfigGenerator.ts index f50ebdf942..b7b05fa9c8 100644 --- a/live-editing/configs/GridConfigGenerator.ts +++ b/live-editing/configs/GridConfigGenerator.ts @@ -40,6 +40,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"; @@ -1127,6 +1128,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/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 index c09ed719a3..06e25abd93 100644 --- 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 @@ -11,7 +11,7 @@ class CustomNumberSummary extends IgxNumberSummaryOperand { super(); } - public operate(data?: any[], allData = [], fieldName = ""): IgxSummaryResult[] { + public operate(data?: any[]): IgxSummaryResult[] { const result = super.operate(data); result.pop(); result.pop(); From dcbe148d078408f8c08ad590acc04e72346ea0a4 Mon Sep 17 00:00:00 2001 From: ddincheva Date: Wed, 4 Dec 2019 10:47:20 +0200 Subject: [PATCH 08/11] chore(*): apply small sample improvements --- .../grid-allData-summary.component.html | 9 ++++----- .../grid-allData-summary.component.ts | 2 -- .../treegrid-allData-summary.component.html | 18 ++++++++++-------- .../treegrid-allData-summary.component.ts | 6 ++---- 4 files changed, 16 insertions(+), 19 deletions(-) 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 index 35147c955c..9a50a99c42 100644 --- a/src/app/grid/grid-allData-summary/grid-allData-summary.component.html +++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.html @@ -1,16 +1,15 @@
- + - + - + - + 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 index 55afd013d8..0d02d58380 100644 --- a/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts +++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts @@ -47,11 +47,9 @@ export class GridAllDataSummaryComponent implements OnInit { public grid1: IgxGridComponent; public discountedSummary = DiscountedSummary; public data; - public productId = 0; constructor() { this.data = DATA; - this.productId = DATA.length; } public ngOnInit() { 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 index a92e5f5c41..f597f198e1 100644 --- 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 @@ -1,10 +1,12 @@
- - - - - - - +
+ + + + + + + +
\ No newline at end of file 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 index 8dd5a7f59b..b5ae419e72 100644 --- 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 @@ -17,14 +17,12 @@ class PTOSummary extends IgxSummaryOperand { result.push({ key: "devs", label: "Developers", summaryResult: IgxSummaryOperand.count( - allData.filter((rec) => rec[fieldName].includes("Developer") && rec["OnPTO"]) - .map(r => r[fieldName])) + 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])) + allData.filter((rec) => rec[fieldName].includes("Team Lead") && rec["OnPTO"]).map(r => r[fieldName])) }); result.push({ key: "managers", label: "Managers/Directors", From 0f5f68745ff7724b3f091c05f1ed421dc7e3e232 Mon Sep 17 00:00:00 2001 From: ddincheva Date: Wed, 4 Dec 2019 11:03:53 +0200 Subject: [PATCH 09/11] chore(*): update the height of hierarchical all data summary sample component --- .../hierarchical-grid-allData-summary.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index 389b80c7e1..7e3b0d30ea 100644 --- 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 @@ -1,6 +1,6 @@
+ [height]="'600px'" [width]="'100%'" [rowHeight]="'65px'" #hierarchicalGrid> From cf8566e61d881c0892e69b3215d9ebebe9a5bb35 Mon Sep 17 00:00:00 2001 From: ddincheva Date: Wed, 4 Dec 2019 11:19:48 +0200 Subject: [PATCH 10/11] chore(*): fix linting errors --- src/app/grid/grids-routing.module.ts | 2 +- src/app/grid/grids.module.ts | 2 +- .../hierarchical-grid-allData-summary.component.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/grid/grids-routing.module.ts b/src/app/grid/grids-routing.module.ts index c5b434c284..7f8662e6c2 100644 --- a/src/app/grid/grids-routing.module.ts +++ b/src/app/grid/grids-routing.module.ts @@ -75,7 +75,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 { GridAllDataSummaryComponent } from "./grid-allData-summary/grid-allData-summary.component"; import { GridCellSelectionComponent } from "./grid-cellSelection-sample/grid-cellSelection.component"; import { GridConditionalRowSelectorsComponent diff --git a/src/app/grid/grids.module.ts b/src/app/grid/grids.module.ts index b122ec88fd..c624c4b09d 100644 --- a/src/app/grid/grids.module.ts +++ b/src/app/grid/grids.module.ts @@ -40,7 +40,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 { 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"; 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 index 06e25abd93..519cd51702 100644 --- 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 @@ -70,4 +70,4 @@ export class HGridAllDataSummaryComponent implements OnInit { public ngOnInit(): void { this.localdata = SINGERS; } -} \ No newline at end of file +} From 447e2c56b5d6bdbf655acca2eaa55d41f528e036 Mon Sep 17 00:00:00 2001 From: ddincheva Date: Wed, 4 Dec 2019 13:48:39 +0200 Subject: [PATCH 11/11] chore(*): rename custom summary operand --- .../grid-allData-summary.component.html | 2 +- .../grid-allData-summary.component.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) 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 index 9a50a99c42..d11301f11d 100644 --- a/src/app/grid/grid-allData-summary/grid-allData-summary.component.html +++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.html @@ -7,7 +7,7 @@ + [hasSummary]="true" [summaries]="discontinuedSummary"> 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 index 0d02d58380..f1a95a0ca4 100644 --- a/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts +++ b/src/app/grid/grid-allData-summary/grid-allData-summary.component.ts @@ -5,7 +5,7 @@ import { IgxSummaryResult } from "igniteui-angular"; import { DATA } from "../../data/nwindData"; -class DiscountedSummary extends IgxNumberSummaryOperand { +class DiscontinuedSummary extends IgxNumberSummaryOperand { constructor() { super(); @@ -24,13 +24,13 @@ class DiscountedSummary extends IgxNumberSummaryOperand { summaryResult: IgxNumberSummaryOperand.sum(data) }); result.push({ - key: "discounted", - label: "Discounted Producs", + key: "discontinued", + label: "Discontinued Producs", summaryResult: allData.map(r => r["Discontinued"]).filter((rec) => rec).length }); result.push({ - key: "totalDiscounted", - label: "Total Discounted Items", + key: "totalDiscontinued", + label: "Total Discontinued Items", summaryResult: IgxNumberSummaryOperand.sum(allData.filter((rec) => rec["Discontinued"]).map(r => r[fieldName])) }); return result; @@ -45,7 +45,7 @@ export class GridAllDataSummaryComponent implements OnInit { @ViewChild("grid1", { read: IgxGridComponent, static: true }) public grid1: IgxGridComponent; - public discountedSummary = DiscountedSummary; + public discontinuedSummary = DiscontinuedSummary; public data; constructor() {