@@ -287,6 +287,37 @@ describe('IgxGrid - Summaries #grid', () => {
287
287
'summary cell and data cell are not right aligned' ) ;
288
288
} ) ) ;
289
289
290
+ it ( 'should be able to access alldata from each summary' , fakeAsync ( ( ) => {
291
+ const fixture = TestBed . createComponent ( CustomSummariesComponent ) ;
292
+ const grid = fixture . componentInstance . grid1 ;
293
+ fixture . detectChanges ( ) ;
294
+
295
+ const summaryRow = fixture . debugElement . query ( By . css ( SUMMARY_ROW ) ) ;
296
+ GridSummaryFunctions . verifyColumnSummaries ( summaryRow , 3 , [ 'Count' , 'Sum' , 'Avg' ] , [ '10' , '39,004' , '3,900.4' ] ) ;
297
+ GridSummaryFunctions . verifyColumnSummaries ( summaryRow , 4 , [ 'Earliest' ] , [ '5/17/1990' ] ) ;
298
+ GridSummaryFunctions . verifyVisibleSummariesHeight ( fixture , 3 , grid . defaultSummaryHeight ) ;
299
+ grid . getColumnByName ( 'UnitsInStock' ) . summaries = fixture . componentInstance . inStockSummary ;
300
+ tick ( 100 ) ;
301
+ fixture . detectChanges ( ) ;
302
+
303
+ GridSummaryFunctions . verifyColumnSummaries ( summaryRow , 3 , [ 'Count' , 'Min' , 'Max' , 'Sum' , 'Avg' , 'Items InStock' ] ,
304
+ [ '10' , '0' , '20,000' , '39,004' , '3,900.4' , '6' ] ) ;
305
+ GridSummaryFunctions . verifyColumnSummaries ( summaryRow , 4 , [ 'Earliest' ] , [ '5/17/1990' ] ) ;
306
+
307
+ grid . getCellByColumn ( 4 , 'InStock' ) . update ( true ) ;
308
+ tick ( ) ;
309
+ fixture . detectChanges ( ) ;
310
+
311
+ GridSummaryFunctions . verifyColumnSummaries ( summaryRow , 3 , [ 'Count' , 'Min' , 'Max' , 'Sum' , 'Avg' , 'Items InStock' ] ,
312
+ [ '10' , '0' , '20,000' , '39,004' , '3,900.4' , '7' ] ) ;
313
+
314
+ grid . filter ( 'UnitsInStock' , 0 , IgxNumberFilteringOperand . instance ( ) . condition ( 'equals' ) ) ;
315
+ fixture . detectChanges ( ) ;
316
+
317
+ GridSummaryFunctions . verifyColumnSummaries ( summaryRow , 3 , [ 'Count' , 'Min' , 'Max' , 'Sum' , 'Avg' , 'Items InStock' ] ,
318
+ [ '3' , '0' , '0' , '0' , '0' , '1' ] ) ;
319
+ } ) ) ;
320
+
290
321
describe ( '' , ( ) => {
291
322
let fix ;
292
323
let grid : IgxGridComponent ;
@@ -2441,6 +2472,24 @@ class EarliestSummary extends IgxDateSummaryOperand {
2441
2472
}
2442
2473
}
2443
2474
2475
+ class InStockSummary extends IgxNumberSummaryOperand {
2476
+ constructor ( ) {
2477
+ super ( ) ;
2478
+ }
2479
+
2480
+ public operate ( summaries ?: any [ ] , allData = [ ] , field ?) : IgxSummaryResult [ ] {
2481
+ const result = super . operate ( summaries ) ;
2482
+ if ( field && field === 'UnitsInStock' ) {
2483
+ result . push ( {
2484
+ key : 'test' ,
2485
+ label : 'Items InStock' ,
2486
+ summaryResult : allData . filter ( ( rec ) => rec . InStock ) . length
2487
+ } ) ;
2488
+ }
2489
+ return result ;
2490
+ }
2491
+ }
2492
+
2444
2493
@Component ( {
2445
2494
template : `
2446
2495
<igx-grid #grid1 [data]="data" [primaryKey]="'ProductID'" [allowFiltering]="true">
@@ -2466,6 +2515,7 @@ export class CustomSummariesComponent {
2466
2515
public dealsSummary = DealsSummary ;
2467
2516
public dealsSummaryMinMax = DealsSummaryMinMax ;
2468
2517
public earliest = EarliestSummary ;
2518
+ public inStockSummary = InStockSummary ;
2469
2519
}
2470
2520
2471
2521
@Component ( {
0 commit comments