igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
55 lines (48 loc) • 1.59 kB
text/typescript
import { Component } from '@angular/core';
import { PlatformUtil } from '../../../core/utils';
import { BaseFilteringComponent } from './base-filtering.component';
import { IgxIconComponent } from '../../../icon/icon.component';
import { NgIf, NgClass } from '@angular/common';
/**
* A component used for presenting Excel style clear filters UI.
*/
({
selector: 'igx-excel-style-clear-filters',
templateUrl: './excel-style-clear-filters.component.html',
standalone: true,
imports: [NgIf, NgClass, IgxIconComponent]
})
export class IgxExcelStyleClearFiltersComponent {
constructor(public esf: BaseFilteringComponent, protected platform: PlatformUtil) { }
/**
* @hidden @internal
*/
public clearFilterClass() {
if (this.esf.column.filteringExpressionsTree) {
return 'igx-excel-filter__actions-clear';
}
return 'igx-excel-filter__actions-clear--disabled';
}
/**
* @hidden @internal
*/
public clearFilter() {
this.esf.grid.filteringService.clearFilter(this.esf.column.field);
this.selectAllFilterItems();
}
/**
* @hidden @internal
*/
public onClearFilterKeyDown(eventArgs: KeyboardEvent) {
if (eventArgs.key === this.platform.KEYMAP.ENTER) {
this.clearFilter();
}
}
private selectAllFilterItems() {
this.esf.listData.forEach(filterListItem => {
filterListItem.isSelected = true;
filterListItem.indeterminate = false;
});
this.esf.detectChanges();
}
}