@@ -75,6 +75,9 @@ export class IgxGridFilteringRowComponent implements AfterViewInit {
7575 }
7676
7777 set column ( val ) {
78+ if ( this . _column ) {
79+ this . expressionsList . forEach ( exp => exp . isSelected = false ) ;
80+ }
7881 if ( val ) {
7982 this . _column = val ;
8083
@@ -147,6 +150,11 @@ export class IgxGridFilteringRowComponent implements AfterViewInit {
147150 this . _conditionsOverlaySettings . outlet = this . column . grid . outletDirective ;
148151 this . _operatorsOverlaySettings . outlet = this . column . grid . outletDirective ;
149152
153+ const selectedItem = this . expressionsList . find ( expr => expr . isSelected === true ) ;
154+ if ( selectedItem ) {
155+ this . expression = selectedItem . expression ;
156+ }
157+
150158 this . input . nativeElement . focus ( ) ;
151159 }
152160
@@ -385,8 +393,6 @@ export class IgxGridFilteringRowComponent implements AfterViewInit {
385393 */
386394 public clearInput ( ) {
387395 this . value = null ;
388- const selectedItem = this . expressionsList . findIndex ( ex => ex . isSelected === true ) ;
389- this . expressionsList . splice ( selectedItem , 1 ) ;
390396 }
391397
392398 /**
@@ -534,35 +540,21 @@ export class IgxGridFilteringRowComponent implements AfterViewInit {
534540 }
535541
536542 this . _cancelChipClick = false ;
537- item . isSelected = ! item . isSelected ;
538543
544+ this . expressionsList . forEach ( ex => ex . isSelected = false ) ;
545+
546+ this . toggleChip ( item ) ;
547+ }
548+
549+ public toggleChip ( item : ExpressionUI ) {
550+ item . isSelected = ! item . isSelected ;
539551 if ( item . isSelected ) {
540- if ( this . expressionsList ) {
541- this . expressionsList . forEach ( ( expr ) => {
542- if ( expr !== item ) {
543- expr . isSelected = false ;
544- }
545- } ) ;
546- }
547552 this . expression = item . expression ;
548553
549554 if ( this . input ) {
550555 this . input . nativeElement . focus ( ) ;
551556 }
552- } else if ( this . expression === item . expression ) {
553- this . resetExpression ( ) ;
554- }
555- }
556-
557- /**
558- * Event handler for chip selected event.
559- */
560- public onChipSelected ( eventArgs : IChipSelectEventArgs ) {
561- if ( eventArgs . selected && this . input ) {
562- this . input . nativeElement . focus ( ) ;
563557 }
564-
565- this . showHideArrowButtons ( ) ;
566558 }
567559
568560 /**
@@ -571,12 +563,8 @@ export class IgxGridFilteringRowComponent implements AfterViewInit {
571563 public onChipKeyDown ( eventArgs : KeyboardEvent , item : ExpressionUI ) {
572564 if ( eventArgs . key === KEYS . ENTER ) {
573565 eventArgs . preventDefault ( ) ;
574- item . isSelected = ! item . isSelected ;
575566
576- this . expression = item . expression ;
577- if ( this . input ) {
578- this . input . nativeElement . focus ( ) ;
579- }
567+ this . toggleChip ( item ) ;
580568 }
581569 }
582570
0 commit comments