Skip to content

Commit 5190bc1

Browse files
fix(esf): check for untyped non-string columns when filtering grid through esf (#15457)
Co-authored-by: Galina Edinakova <[email protected]>
1 parent 0be13d9 commit 5190bc1

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-filtering.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ export class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent
549549
const lowerCaseFilterValues = new Set(Array.from(expr.expression.searchVal).map((value: string) => value.toLowerCase()));
550550

551551
this.grid.data.forEach(item => {
552-
if (lowerCaseFilterValues.has(item[this.column.field]?.toLowerCase())) {
552+
if (typeof item[this.column.field] === "string" && lowerCaseFilterValues.has(item[this.column.field]?.toLowerCase())) {
553553
expr.expression.searchVal.add(item[this.column.field]);
554554
}
555555
});

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { GridFunctions } from '../../test-utils/grid-functions.spec';
1313
import { UIInteractions } from '../../test-utils/ui-interactions.spec';
1414
import { SampleTestData } from '../../test-utils/sample-test-data.spec';
1515
import { By } from '@angular/platform-browser';
16+
import { GridColumnDataType } from '../../data-operations/data-util';
1617

1718
const IGX_CHECKBOX_LABEL = '.igx-checkbox__label';
1819

@@ -751,6 +752,29 @@ describe('IgxTreeGrid - Filtering actions #tGrid', () => {
751752
emptyTextEl = searchComponent.querySelector('.igx-excel-filter__empty');
752753
expect(emptyTextEl.innerText).toEqual('No matches');
753754
}));
755+
756+
it('Should not throw console error when number column with dataType string is filtered.', fakeAsync(() => {
757+
tGrid.columns[0].dataType = GridColumnDataType.String;
758+
fix.detectChanges();
759+
spyOn(console, 'error');
760+
761+
GridFunctions.clickExcelFilterIcon(fix, 'ID');
762+
fix.detectChanges();
763+
tick();
764+
765+
const excelMenu = GridFunctions.getExcelStyleFilteringComponent(fix, 'igx-tree-grid');
766+
const checkboxes: any[] = Array.from(GridFunctions.getExcelStyleFilteringCheckboxes(fix, excelMenu, 'igx-tree-grid'));
767+
768+
checkboxes[2].click();
769+
tick();
770+
fix.detectChanges();
771+
772+
GridFunctions.clickApplyExcelStyleFiltering(fix, null, 'igx-tree-grid');
773+
fix.detectChanges();
774+
tick();
775+
776+
expect(console.error).not.toHaveBeenCalled();
777+
}));
754778
});
755779

756780
describe('Tree grid ESF templates', () => {

0 commit comments

Comments
 (0)