Skip to content

Commit f82a469

Browse files
authored
fix(advanced-filtering): pass overlay settings in GridType (#13974)
1 parent 096f4a8 commit f82a469

File tree

4 files changed

+58
-4
lines changed

4 files changed

+58
-4
lines changed

projects/igniteui-angular/src/lib/grids/common/grid.interface.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1111,7 +1111,7 @@ export interface GridType extends IGridDataBindable {
11111111
getVisibleContentHeight(): number;
11121112
getDragGhostCustomTemplate(): TemplateRef<any> | null;
11131113
openRowOverlay(id: any): void;
1114-
openAdvancedFilteringDialog(): void;
1114+
openAdvancedFilteringDialog(overlaySettings?: OverlaySettings): void;
11151115
showSnackbarFor(index: number): void;
11161116
getColumnByName(name: string): any;
11171117
getColumnByVisibleIndex(index: number): ColumnType;

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

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import {
1414
IgxGridAdvancedFilteringColumnGroupComponent,
1515
IgxGridAdvancedFilteringComponent,
1616
IgxGridExternalAdvancedFilteringComponent,
17-
IgxGridAdvancedFilteringBindingComponent
17+
IgxGridAdvancedFilteringBindingComponent,
18+
IgxGridAdvancedFilteringOverlaySettingsComponent
1819
} from '../../test-utils/grid-samples.spec';
1920
import { ControlsFunction } from '../../test-utils/controls-functions.spec';
2021
import { FormattedValuesFilteringStrategy } from '../../data-operations/filtering-strategy';
@@ -3043,6 +3044,29 @@ describe('IgxGrid - Advanced Filtering #grid - ', () => {
30433044
expect(grid.filteredData).toBe(null);
30443045
}));
30453046
});
3047+
3048+
describe('Overlay settings - ', () => {
3049+
it('Should respect the overlay settings set in the component.', fakeAsync(() => {
3050+
const fix = TestBed.createComponent(IgxGridAdvancedFilteringOverlaySettingsComponent);
3051+
const grid: IgxGridComponent = fix.componentInstance.grid;
3052+
fix.detectChanges();
3053+
3054+
// Open Advanced Filtering dialog.
3055+
grid.openAdvancedFilteringDialog();
3056+
fix.detectChanges();
3057+
3058+
// Verify context menu is opened.
3059+
expect(GridFunctions.getAdvancedFilteringComponent(fix)).not.toBeNull();
3060+
3061+
// Press 'Escape' on the context menu.
3062+
UIInteractions.triggerKeyDownEvtUponElem('Escape', GridFunctions.getRowEditingOverlay(fix));
3063+
tick();
3064+
fix.detectChanges();
3065+
3066+
// Verify context menu is opened.
3067+
expect(GridFunctions.getAdvancedFilteringComponent(fix)).not.toBeNull();
3068+
}));
3069+
});
30463070
});
30473071

30483072
const selectColumnInEditModeExpression = (fix, dropdownItemIndex: number) => {

projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<button igxButton="outlined" type="button" [displayDensity]="grid.displayDensity" name="btnAdvancedFiltering" igxRipple
22
[title]="grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip"
3-
(click)="grid.openAdvancedFilteringDialog()"
3+
(click)="grid.openAdvancedFilteringDialog(overlaySettings)"
44
[ngClass]="grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'">
55
<igx-icon>filter_list</igx-icon>
66
<span #ref>

projects/igniteui-angular/src/lib/test-utils/grid-samples.spec.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { IgxColumnComponent } from '../grids/columns/column.component';
1414
import { IgxFilteringOperand, IgxNumberFilteringOperand } from '../data-operations/filtering-condition';
1515
import { IFilteringExpressionsTree, FilteringExpressionsTree } from '../data-operations/filtering-expressions-tree';
1616
import { FilteringStrategy, IgxFilterItem } from '../data-operations/filtering-strategy';
17-
import { ISortingOptions, IgxExcelStyleHeaderIconDirective, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective } from '../grids/public_api';
17+
import { ISortingOptions, IgxExcelStyleHeaderIconDirective, IgxGridToolbarAdvancedFilteringComponent, IgxSortAscendingHeaderIconDirective, IgxSortDescendingHeaderIconDirective, IgxSortHeaderIconDirective } from '../grids/public_api';
1818
import { IgxRowAddTextDirective, IgxRowEditActionsDirective, IgxRowEditTabStopDirective, IgxRowEditTemplateDirective, IgxRowEditTextDirective } from '../grids/grid.rowEdit.directive';
1919
import { IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleFilterOperationsTemplateDirective, IgxGridExcelStyleFilteringComponent } from '../grids/filtering/excel-style/excel-style-filtering.component';
2020
import { FilteringLogic } from '../data-operations/filtering-expression.interface';
@@ -41,6 +41,7 @@ import { IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCollapsibl
4141
import { IgxGroupByRowSelectorDirective, IgxHeadSelectorDirective, IgxRowSelectorDirective } from '../grids/selection/row-selectors';
4242
import { CellType, ColumnType, IgxAdvancedFilteringDialogComponent } from '../grids/public_api';
4343
import { IgxGridComponent } from '../grids/grid/public_api';
44+
import { OverlaySettings } from '../services/public_api';
4445

4546
@Component({
4647
template: GridTemplateStrings.declareGrid('', '',
@@ -1172,6 +1173,35 @@ export class IgxGridAdvancedFilteringComponent extends BasicGridComponent {
11721173
}
11731174
}
11741175

1176+
@Component({
1177+
template: `<igx-grid [data]="data" height="500px" [allowAdvancedFiltering]="true">
1178+
<igx-grid-toolbar>
1179+
<igx-grid-toolbar-advanced-filtering
1180+
#filtering
1181+
[overlaySettings]="filteringOverlaySettings">
1182+
</igx-grid-toolbar-advanced-filtering>
1183+
</igx-grid-toolbar>
1184+
<igx-column width="100px" [field]="'ID'" [header]="'HeaderID'" [hasSummary]="true"></igx-column>
1185+
<igx-column width="100px" [field]="'ProductName'" dataType="string"></igx-column>
1186+
<igx-column width="100px" [field]="'Downloads'" dataType="number" [hasSummary]="true"></igx-column>
1187+
<igx-column width="100px" [field]="'Released'" dataType="boolean"></igx-column>
1188+
<igx-column width="100px" [field]="'ReleaseDate'" dataType="date" headerClasses="header-release-date"></igx-column>
1189+
<igx-column width="100px" [field]="'AnotherField'" [header]="'Another Field'" dataType="string" [filters]="customFilter">
1190+
</igx-column>
1191+
</igx-grid>`,
1192+
standalone: true,
1193+
imports: [IgxGridComponent, IgxColumnComponent, IgxGridToolbarComponent, IgxGridToolbarHidingComponent, IgxGridToolbarAdvancedFilteringComponent]
1194+
})
1195+
export class IgxGridAdvancedFilteringOverlaySettingsComponent extends BasicGridComponent {
1196+
public customFilter = CustomFilter.instance();
1197+
public hidingOverlaySettings: OverlaySettings = {};
1198+
public override data = SampleTestData.excelFilteringData();
1199+
1200+
public filteringOverlaySettings: OverlaySettings = {
1201+
closeOnEscape: false
1202+
};
1203+
}
1204+
11751205
@Component({
11761206
template: `
11771207
<igx-grid #grid1 [data]="data" height="400px">

0 commit comments

Comments
 (0)