Skip to content

Commit 1ccf222

Browse files
Merge pull request #15928 from IgniteUI/ganastasov/fix-15808-20.0
fix(excel-style-filtering): allow negative decimal values for numeric columns - 20.0.x
2 parents 1e52ad5 + 0dd178e commit 1ccf222

File tree

3 files changed

+57
-4
lines changed

3 files changed

+57
-4
lines changed

projects/igniteui-angular/src/lib/grids/filtering/excel-style/excel-style-default-expression.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
[placeholder]="inputValuePlaceholder"
3131
[disabled]="expressionUI.expression.condition && expressionUI.expression.condition.isUnary"
3232
autocomplete="off"
33-
[value]="expressionUI.expression.searchVal"
34-
(input)="onValuesInput($event)"
33+
[(ngModel)]="expressionUI.expression.searchVal"
34+
(blur)="updateSearchValueOnBlur($event)"
3535
/>
3636
</igx-input-group>
3737

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
ChangeDetectorRef,
88
ViewChild
99
} from '@angular/core';
10+
import { FormsModule } from '@angular/forms';
1011
import { IgxButtonGroupComponent } from '../../../buttonGroup/buttonGroup.component';
1112
import { GridColumnDataType, DataUtil } from '../../../data-operations/data-util';
1213
import { IFilteringOperation } from '../../../data-operations/filtering-condition';
@@ -41,7 +42,7 @@ export interface ILogicOperatorChangedArgs extends IBaseEventArgs {
4142
@Component({
4243
selector: 'igx-excel-style-default-expression',
4344
templateUrl: './excel-style-default-expression.component.html',
44-
imports: [IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective]
45+
imports: [FormsModule, IgxSelectComponent, IgxPrefixDirective, IgxIconComponent, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective, IgxIconButtonDirective]
4546
})
4647
export class IgxExcelStyleDefaultExpressionComponent implements AfterViewInit {
4748
@Input()
@@ -163,7 +164,7 @@ export class IgxExcelStyleDefaultExpressionComponent implements AfterViewInit {
163164
return this.grid.resourceStrings[`igx_grid_filter_${name}`] || name;
164165
}
165166

166-
public onValuesInput(eventArgs) {
167+
public updateSearchValueOnBlur(eventArgs) {
167168
this.expressionUI.expression.searchVal = DataUtil.parseValue(this.column.dataType, eventArgs.target.value);
168169
}
169170

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

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3814,12 +3814,15 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => {
38143814

38153815
// set first expression's value
38163816
GridFunctions.setInputValueESF(fix, 0, 0);
3817+
tick(100);
38173818

38183819
// select second expression's operator
38193820
GridFunctions.setOperatorESF(fix, 1, 1);
3821+
tick(100);
38203822

38213823
// set second expression's value
38223824
GridFunctions.setInputValueESF(fix, 1, 20);
3825+
tick(100);
38233826

38243827
GridFunctions.clickApplyExcelStyleCustomFiltering(fix);
38253828

@@ -6302,6 +6305,55 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => {
63026305
expect(input.value).toBe('');
63036306
});
63046307
}));
6308+
6309+
it('should correctly filter negative decimal values in Excel Style filtering', fakeAsync(() => {
6310+
GridFunctions.clickExcelFilterIcon(fix, 'Downloads');
6311+
tick();
6312+
fix.detectChanges();
6313+
6314+
GridFunctions.clickExcelFilterCascadeButton(fix);
6315+
tick();
6316+
fix.detectChanges();
6317+
6318+
GridFunctions.clickOperatorFromCascadeMenu(fix, 2);
6319+
tick();
6320+
fix.detectChanges();
6321+
6322+
GridFunctions.setInputValueESF(fix, 0, '-1');
6323+
tick(100);
6324+
fix.detectChanges();
6325+
expect(GridFunctions.getExcelFilteringInput(fix, 0).value).toBe('-1');
6326+
6327+
const applyButton = GridFunctions.getApplyExcelStyleCustomFiltering(fix);
6328+
applyButton.click();
6329+
tick(100);
6330+
fix.detectChanges();
6331+
6332+
expect(grid.filteredData.length).toBe(8);
6333+
6334+
GridFunctions.clickExcelFilterIcon(fix, 'Downloads');
6335+
tick();
6336+
fix.detectChanges();
6337+
6338+
GridFunctions.clickExcelFilterCascadeButton(fix);
6339+
tick();
6340+
fix.detectChanges();
6341+
6342+
GridFunctions.clickOperatorFromCascadeMenu(fix, 2);
6343+
tick();
6344+
fix.detectChanges();
6345+
6346+
GridFunctions.setInputValueESF(fix, 0, '-0.1');
6347+
tick(100);
6348+
fix.detectChanges();
6349+
expect(GridFunctions.getExcelFilteringInput(fix, 0).value).toBe('-0.1');
6350+
6351+
applyButton.click();
6352+
tick(100);
6353+
fix.detectChanges();
6354+
6355+
expect(grid.filteredData.length).toBe(8);
6356+
}));
63056357
});
63066358

63076359
describe('Templates: ', () => {

0 commit comments

Comments
 (0)