11import {
22 Component ,
33 ViewChild ,
4- OnInit
4+ OnInit ,
5+ AfterViewInit
56} from "@angular/core" ;
67import {
78 IgxGridComponent ,
89 IgxNumberSummaryOperand ,
910 IgxSummaryResult ,
1011 IgxColumnComponent ,
11- IgxButtonDirective
12+ IgxButtonGroupComponent
1213} from "igniteui-angular" ;
1314import { DATA } from "../../data/nwindData" ;
1415import { IgxPreventDocumentScrollDirective } from "../../directives/prevent-scroll.directive" ;
@@ -60,16 +61,18 @@ class DiscontinuedSummary {
6061 styleUrls : [ "./grid-disable-summaries.component.scss" ] ,
6162 templateUrl : "grid-disable-summaries.component.html" ,
6263 imports : [
63- IgxPreventDocumentScrollDirective ,
6464 IgxGridComponent ,
65+ IgxPreventDocumentScrollDirective ,
6566 IgxColumnComponent ,
66- IgxButtonDirective
67+ IgxButtonGroupComponent
6768 ]
6869} )
69- export class GridDisableSummariesComponent implements OnInit {
70+ export class GridDisableSummariesComponent implements OnInit , AfterViewInit {
7071 @ViewChild ( "grid1" , { static : true } ) public grid1 : IgxGridComponent ;
7172
7273 public data : any [ ] ;
74+ public defaultSummaries : any [ ] ;
75+ public customSummaries : any [ ] ;
7376
7477 public discontinuedSummary = DiscontinuedSummary ;
7578
@@ -79,11 +82,101 @@ export class GridDisableSummariesComponent implements OnInit{
7982 this . data = DATA ;
8083 }
8184
82- public disableDefaultSummaries ( ) {
83- this . grid1 . getColumnByName ( 'UnitPrice' ) . disabledSummaries = [ 'min' , 'max' ] ;
85+ public ngAfterViewInit ( ) : void {
86+ this . defaultSummaries = [
87+ {
88+ label : 'Count' ,
89+ selected : this . grid1 . getColumnByName ( 'UnitPrice' ) . disabledSummaries . includes ( 'count' ) ,
90+ togglable : true ,
91+ value : 'count'
92+ } ,
93+ {
94+ label : 'Min' ,
95+ selected : this . grid1 . getColumnByName ( 'UnitPrice' ) . disabledSummaries . includes ( 'min' ) ,
96+ togglable : true ,
97+ value : 'min'
98+ } ,
99+ {
100+ label : 'Max' ,
101+ selected : this . grid1 . getColumnByName ( 'UnitPrice' ) . disabledSummaries . includes ( 'max' ) ,
102+ togglable : true ,
103+ value : 'max'
104+ } ,
105+ {
106+ label : 'Sum' ,
107+ selected : this . grid1 . getColumnByName ( 'UnitPrice' ) . disabledSummaries . includes ( 'sum' ) ,
108+ togglable : true ,
109+ value : 'sum'
110+ } ,
111+ {
112+ label : 'Average' ,
113+ selected : this . grid1 . getColumnByName ( 'UnitPrice' ) . disabledSummaries . includes ( 'average' ) ,
114+ togglable : true ,
115+ value : 'average'
116+ }
117+ ] ;
118+
119+ this . customSummaries = [
120+ {
121+ label : 'Products' ,
122+ selected : this . grid1 . getColumnByName ( 'UnitsInStock' ) . disabledSummaries . includes ( 'products' ) ,
123+ togglable : true ,
124+ value : 'products'
125+ } ,
126+ {
127+ label : 'Total Items' ,
128+ selected : this . grid1 . getColumnByName ( 'UnitsInStock' ) . disabledSummaries . includes ( 'total' ) ,
129+ togglable : true ,
130+ value : 'total'
131+ } ,
132+ {
133+ label : 'Discontinued Products' ,
134+ selected : this . grid1 . getColumnByName ( 'UnitsInStock' ) . disabledSummaries . includes ( 'discontinued' ) ,
135+ togglable : true ,
136+ value : 'discontinued'
137+ } ,
138+ {
139+ label : 'Total Discontinued Items' ,
140+ selected : this . grid1 . getColumnByName ( 'UnitsInStock' ) . disabledSummaries . includes ( 'totalDiscontinued' ) ,
141+ togglable : true ,
142+ value : 'totalDiscontinued'
143+ }
144+ ] ;
84145 }
85146
86- public disableCustomSummaries ( ) {
87- this . grid1 . getColumnByName ( 'UnitsInStock' ) . disabledSummaries = [ 'products' , 'discontinued' ] ;
147+ public disableDefaultSummary ( event ) {
148+ const selectedValue = this . defaultSummaries [ event . index ] . value ;
149+ const column = this . grid1 . getColumnByName ( 'UnitPrice' ) ;
150+
151+ if ( ! column . disabledSummaries . includes ( selectedValue ) ) {
152+ column . disabledSummaries = [ ...column . disabledSummaries , selectedValue ] ;
153+ }
154+ }
155+
156+ public enableDefaultSummary ( event ) {
157+ const selectedValue = this . defaultSummaries [ event . index ] . value ;
158+ const column = this . grid1 . getColumnByName ( 'UnitPrice' ) ;
159+
160+ column . disabledSummaries = column . disabledSummaries . filter (
161+ ( summary ) => summary !== selectedValue
162+ ) ;
163+ }
164+
165+ public disableCustomSummary ( event ) {
166+ const selectedValue = this . customSummaries [ event . index ] . value ;
167+ const column = this . grid1 . getColumnByName ( 'UnitsInStock' ) ;
168+
169+ if ( ! column . disabledSummaries . includes ( selectedValue ) ) {
170+ column . disabledSummaries = [ ...column . disabledSummaries , selectedValue ] ;
171+ }
172+ }
173+
174+ public enableCustomSummary ( event ) {
175+ const selectedValue = this . customSummaries [ event . index ] . value ;
176+ const column = this . grid1 . getColumnByName ( 'UnitsInStock' ) ;
177+
178+ column . disabledSummaries = column . disabledSummaries . filter (
179+ ( summary ) => summary !== selectedValue
180+ ) ;
88181 }
89182}
0 commit comments