@@ -76,7 +76,7 @@ export class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
7676 @ViewChild ( 'input' , { read : IgxInputDirective , static : true } )
7777 public searchInput : IgxInputDirective ;
7878
79- @ViewChild ( 'cancelButton' , { read : IgxButtonDirective , static : true } )
79+ @ViewChild ( 'cancelButton' , { read : IgxButtonDirective , static : true } )
8080 protected cancelButton : IgxButtonDirective ;
8181
8282 /**
@@ -251,6 +251,10 @@ export class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
251251 this . searchInput . nativeElement . focus ( ) ;
252252 } ) ;
253253 } ) ;
254+
255+ esf . filterCleared . pipe ( takeUntil ( this . destroy$ ) ) . subscribe ( ( ) => {
256+ this . clearInput ( ) ;
257+ } ) ;
254258 }
255259
256260 public ngAfterViewInit ( ) {
@@ -396,7 +400,7 @@ export class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
396400 return `${ this . id } -item-${ index } ` ;
397401 }
398402
399- protected setActiveDescendant ( ) : void {
403+ protected setActiveDescendant ( ) : void {
400404 this . activeDescendant = this . focusedItem ?. id || '' ;
401405 }
402406
@@ -585,20 +589,38 @@ export class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
585589 blanksItem = selectedItems [ blanksItemIndex ] ;
586590 selectedItems . splice ( blanksItemIndex , 1 ) ;
587591 }
592+ let searchVal ;
593+ switch ( this . esf . column . dataType ) {
594+ case GridColumnDataType . Date :
595+ searchVal = new Set ( selectedItems . map ( d => d . value . toDateString ( ) ) ) ;
596+ break ;
597+ case GridColumnDataType . DateTime :
598+ searchVal = new Set ( selectedItems . map ( d => d . value . toISOString ( ) ) ) ;
599+ break ;
600+ case GridColumnDataType . Time :
601+ searchVal = new Set ( selectedItems . map ( e => e . value . toLocaleTimeString ( ) ) ) ;
602+ break ;
603+ case GridColumnDataType . String :
604+ if ( this . esf . column . filteringIgnoreCase ) {
605+ const selectedValues = new Set ( selectedItems . map ( item => item . value . toLowerCase ( ) ) ) ;
606+ searchVal = new Set ( ) ;
607+
608+ this . esf . grid . data . forEach ( item => {
609+ if ( typeof item [ this . esf . column . field ] === "string" && selectedValues . has ( item [ this . esf . column . field ] ?. toLowerCase ( ) ) ) {
610+ searchVal . add ( item [ this . esf . column . field ] ) ;
611+ }
612+ } ) ;
613+ break ;
614+ }
615+ default :
616+ searchVal = new Set ( selectedItems . map ( e => e . value ) )
617+ }
588618 filterTree . filteringOperands . push ( {
589619 condition : this . createCondition ( 'in' ) ,
590620 conditionName : 'in' ,
591621 fieldName : this . esf . column . field ,
592622 ignoreCase : this . esf . column . filteringIgnoreCase ,
593- searchVal : new Set (
594- this . esf . column . dataType === GridColumnDataType . Date ?
595- selectedItems . map ( d => d . value . toDateString ( ) ) :
596- this . esf . column . dataType === GridColumnDataType . DateTime ?
597- selectedItems . map ( d => d . value . toISOString ( ) ) :
598- this . esf . column . dataType === GridColumnDataType . Time ?
599- selectedItems . map ( e => e . value . toLocaleTimeString ( ) ) :
600- selectedItems . map ( e => e . value )
601- )
623+ searchVal
602624 } ) ;
603625
604626 if ( blanksItem ) {
@@ -628,12 +650,12 @@ export class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
628650 if ( event ) {
629651 const key = event . key . toLowerCase ( ) ;
630652 const navKeys = [ 'space' , 'spacebar' , ' ' ,
631- 'arrowup' , 'up' , 'arrowdown' , 'down' , 'home' , 'end' ] ;
632- if ( navKeys . indexOf ( key ) === - 1 ) { // If key has appropriate function in DD
633- return ;
634- }
635- event . preventDefault ( ) ;
636- event . stopPropagation ( ) ;
653+ 'arrowup' , 'up' , 'arrowdown' , 'down' , 'home' , 'end' ] ;
654+ if ( navKeys . indexOf ( key ) === - 1 ) { // If key has appropriate function in DD
655+ return ;
656+ }
657+ event . preventDefault ( ) ;
658+ event . stopPropagation ( ) ;
637659 switch ( key ) {
638660 case 'arrowup' :
639661 case 'up' :
@@ -827,9 +849,9 @@ export class IgxExcelStyleSearchComponent implements AfterViewInit, OnDestroy {
827849 const direction = index > ( this . focusedItem ? this . focusedItem . index : - 1 ) ? Navigate . Down : Navigate . Up ;
828850 const scrollRequired = this . isIndexOutOfBounds ( index , direction ) ;
829851 this . focusedItem = {
830- id : this . getItemId ( index ) ,
831- index : index ,
832- checked : this . virtDir . igxForOf [ index ] . isSelected
852+ id : this . getItemId ( index ) ,
853+ index : index ,
854+ checked : this . virtDir . igxForOf [ index ] . isSelected
833855 } ;
834856 if ( scrollRequired ) {
835857 this . virtDir . scrollTo ( index ) ;
0 commit comments