@@ -62,6 +62,12 @@ interface DataChangeEventData {
6262 data : any
6363}
6464
65+ interface DataFilteredEventData {
66+ column ?: number ,
67+ isCommon : boolean ,
68+ filterOptions : any
69+ }
70+
6571
6672@Component ( {
6773 selector : 'data-grid' ,
@@ -87,6 +93,7 @@ export class DataTableComponent implements OnInit {
8793
8894
8995 @Output ( ) dataChanged = new EventEmitter < DataChangeEventData > ( ) ;
96+ @Output ( ) dataFiltered = new EventEmitter < DataFilteredEventData > ( ) ;
9097 @Input ( ) pagination ;
9198 private pageSize ;
9299 public dragTheme ;
@@ -211,8 +218,8 @@ export class DataTableComponent implements OnInit {
211218 }
212219 }
213220
214- public onOutsideClick ( event ) {
215- if ( event . target . className === "options-menu button button-options" ||
221+ public onOutsideClick ( event ) {
222+ if ( event . target . className === "options-menu button button-options" ||
216223 event . target . className === "fa fa-bars" ||
217224 event . target . className === "checkmark" ||
218225 event . srcElement . id === "commonCacheCheckbox" ||
@@ -314,6 +321,8 @@ export class DataTableComponent implements OnInit {
314321
315322// Filters data based on CONTAINS.
316323 filter ( column , text ) {
324+ let filterEventData :DataFilteredEventData = { column : column , filterOptions : [ text ] , isCommon : false } ;
325+ this . dataFiltered . emit ( filterEventData ) ;
317326 this . FilterData [ column ] = this . FilterData [ column ] || { values : [ ] } ;
318327 this . FilterData [ column ] . values = [ {
319328 operator : FilterService . OR ,
@@ -356,6 +365,11 @@ export class DataTableComponent implements OnInit {
356365 checkedColumnFilter ( filterEventArgs ) {
357366
358367 this . FilterData [ filterEventArgs . column ] . values = [ ] ;
368+ let filterEventData :DataFilteredEventData = {
369+ isCommon : false ,
370+ column : filterEventArgs . column ,
371+ filterOptions : filterEventArgs . filteredData
372+ } ;
359373 for ( let i = 0 ; i < filterEventArgs . filteredData . length ; ++ i ) {
360374 this . FilterData [ filterEventArgs . column ] . values . push ( {
361375 comparator : StringUtilsService . equals ,
@@ -364,6 +378,7 @@ export class DataTableComponent implements OnInit {
364378 } ) ;
365379 this . FilterData [ filterEventArgs . column ] . filterApplied = this . cacheFilter ;
366380 }
381+ this . dataFiltered . emit ( filterEventData ) ;
367382 this . applyFilter ( this . FilterData , this . TableRows ) ;
368383 }
369384
@@ -536,7 +551,8 @@ export class DataTableComponent implements OnInit {
536551 * @param text: String to be searched across the table data.
537552 */
538553 onCommonFilter ( text ) {
539-
554+ let filteredEventData :DataFilteredEventData = { filterOptions : [ text ] , isCommon : true } ;
555+ this . dataFiltered . emit ( filteredEventData ) ;
540556 if ( text === undefined || text === "" ) {
541557 for ( let i = 0 ; i < this . columnDefs . length ; ++ i ) {
542558 if ( ! this . FilterData [ i ] ) {
0 commit comments