Skip to content

Commit 515be9c

Browse files
Merge pull request #15929 from IgniteUI/ganastasov/fix-15808-19.2
fix(excel-style-filtering): allow negative decimal values for numeric columns - 19.2.x
2 parents b7d0fca + 5978982 commit 515be9c

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
@@ -3813,12 +3813,15 @@ describe('IgxGrid - Filtering actions - Excel style filtering #grid', () => {
38133813

38143814
// set first expression's value
38153815
GridFunctions.setInputValueESF(fix, 0, 0);
3816+
tick(100);
38163817

38173818
// select second expression's operator
38183819
GridFunctions.setOperatorESF(fix, 1, 1);
3820+
tick(100);
38193821

38203822
// set second expression's value
38213823
GridFunctions.setInputValueESF(fix, 1, 20);
3824+
tick(100);
38223825

38233826
GridFunctions.clickApplyExcelStyleCustomFiltering(fix);
38243827

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

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

0 commit comments

Comments
 (0)