From 8d1fabab81a6b5a1beab7fbb8db55e1245fd09c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6berl?= Date: Thu, 18 Aug 2022 12:17:25 -0500 Subject: [PATCH] fix(datagrid): reject strings in the numeric property filter when active This is a backport of 697355998d86f29a3f5372be016a1d1159d41e17. --- .../filters/datagrid-property-numeric-filter.spec.ts | 8 ++++---- .../built-in/filters/datagrid-property-numeric-filter.ts | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.spec.ts b/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.spec.ts index 6ab4523782..87a10b560f 100644 --- a/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.spec.ts +++ b/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.spec.ts @@ -21,10 +21,10 @@ export default function (): void { expect(this.filter.accepts({ a: 'not a number' }, null, null)).toBe(true); }); - // it('rejects strings when active', function () { - // this.filter = new DatagridPropertyNumericFilter('a'); - // expect(this.filter.accepts({ a: 'not a number' }, null, 1)).toBe(false); - // }); + it('rejects strings when active', function () { + this.filter = new DatagridPropertyNumericFilter('a'); + expect(this.filter.accepts({ a: 'not a number' }, null, 1)).toBe(false); + }); it('always rejects undefined', function () { this.filter = new DatagridPropertyNumericFilter('a'); diff --git a/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.ts b/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.ts index f250ec64db..b693a1c029 100644 --- a/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.ts +++ b/projects/angular/src/data/datagrid/built-in/filters/datagrid-property-numeric-filter.ts @@ -19,10 +19,10 @@ export class DatagridPropertyNumericFilter implements ClrDatagridNumeri if (propValue === undefined) { return false; } - if (low !== null && propValue < low) { + if (low !== null && (typeof propValue !== 'number' || propValue < low)) { return false; } - if (high !== null && propValue > high) { + if (high !== null && (typeof propValue !== 'number' || propValue > high)) { return false; } return true;