Skip to content

Commit f931add

Browse files
committed
fix(filtering): Refactoring grid filter row code #4967
1 parent a7b3a7b commit f931add

File tree

2 files changed

+16
-29
lines changed

2 files changed

+16
-29
lines changed

projects/igniteui-angular/src/lib/grids/filtering/grid-filtering-row.component.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
<igx-chip #chip id='chip'
8989
(pointerdown)="onChipPointerdown($event, chip)"
9090
(click)="onChipClick($event, item)"
91-
(onSelection)="onChipSelected($event)"
9291
(keydown)="onChipKeyDown($event, item)"
9392
(onRemove)="onChipRemoved($event, item)"
9493
[selectable]="false"

projects/igniteui-angular/src/lib/grids/filtering/grid-filtering-row.component.ts

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)