Skip to content

Commit ae5233a

Browse files
authored
Merge pull request #2986 from IgniteUI/sstoyanov/fr-#2979
Close filter row on Esc
2 parents ab3b06e + b9a35d9 commit ae5233a

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,13 @@ export class IgxGridFilteringRowComponent implements AfterViewInit, OnDestroy {
172172
}
173173
}
174174

175+
@HostListener('keydown.esc', ['$event'])
176+
public onEscKeydown(event) {
177+
event.preventDefault();
178+
event.stopPropagation();
179+
this.close();
180+
}
181+
175182
get disabled(): boolean {
176183
return !(this.column.filteringExpressionsTree && this.column.filteringExpressionsTree.filteringOperands.length > 0);
177184
}
@@ -254,6 +261,9 @@ export class IgxGridFilteringRowComponent implements AfterViewInit, OnDestroy {
254261
this.input.nativeElement.blur();
255262
this.inputGroupPrefix.nativeElement.focus();
256263
this.toggleConditionsDropDown(this.inputGroupPrefix.nativeElement);
264+
} else if (event.key === KEYS.ESCAPE || event.key === KEYS.ESCAPE_IE) {
265+
event.preventDefault();
266+
this.close();
257267
}
258268
event.stopPropagation();
259269
}

projects/igniteui-angular/src/lib/grids/grid/grid-filtering-ui.spec.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2452,6 +2452,27 @@ describe('IgxGrid - Filtering Row UI actions', () => {
24522452
expect(colOperands[0].nativeElement.innerText).toEqual('AND');
24532453
expect(colIndicator.length).toEqual(0);
24542454
}));
2455+
2456+
it('Should close FilterRow when Escape is pressed.', fakeAsync(() => {
2457+
const fix = TestBed.createComponent(IgxGridFilteringComponent);
2458+
fix.detectChanges();
2459+
2460+
const initialChips = fix.debugElement.queryAll(By.directive(IgxChipComponent));
2461+
const stringCellChip = initialChips[0].nativeElement;
2462+
2463+
stringCellChip.click();
2464+
fix.detectChanges();
2465+
2466+
let filteringRow = fix.debugElement.query(By.directive(IgxGridFilteringRowComponent));
2467+
expect(filteringRow).toBeDefined();
2468+
2469+
GridFunctions.simulateKeyboardEvent(filteringRow, 'keydown', 'Esc');
2470+
fix.detectChanges();
2471+
2472+
filteringRow = fix.debugElement.query(By.directive(IgxGridFilteringRowComponent));
2473+
2474+
expect(filteringRow).toBeNull();
2475+
}));
24552476
});
24562477

24572478
export class CustomFilter extends IgxFilteringOperand {

0 commit comments

Comments
 (0)