Skip to content

Commit 7ae312d

Browse files
committed
feat(filtering): add display density and remove selectedGroup #5496
1 parent 9831544 commit 7ae312d

File tree

5 files changed

+67
-30
lines changed

5 files changed

+67
-30
lines changed

Diff for: projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.html

+27-17
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ <h4 class="igx-typography__h6">
4949
<ng-template #filterOperandTemplate let-expressionItem>
5050
<span *ngIf="!expressionItem.inEditMode">
5151
<igx-chip [data]="expressionItem"
52+
[displayDensity]="displayDensity"
5253
[removable]="true"
5354
[selected]="expressionItem.selected"
5455
(click)="onChipClick(expressionItem)"
@@ -61,18 +62,21 @@ <h4 class="igx-typography__h6">
6162
</igx-chip>
6263
<span *ngIf="expressionItem.selected && selectedExpressions.length === 1">
6364
<button igxButton="icon"
65+
[displayDensity]="displayDensity"
6466
(click)="enterExpressionEdit(expressionItem)">
6567
<igx-icon fontSet="material">edit</igx-icon>
6668
</button>
6769
<button igxButton="icon"
70+
[displayDensity]="displayDensity"
6871
(click)="enterExpressionAdd(expressionItem)">
6972
<igx-icon fontSet="material">add</igx-icon>
7073
</button>
7174
</span>
7275
</span>
7376
<div *ngIf="expressionItem.inEditMode"
7477
style="display: flex; align-items: center;">
75-
<igx-select type="box"
78+
<igx-select type="box"
79+
[displayDensity]="displayDensity"
7680
[(ngModel)]="selectedColumn">
7781
<igx-select-item *ngFor="let column of grid.columns" [value]="column">
7882
{{column.header}}
@@ -81,12 +85,14 @@ <h4 class="igx-typography__h6">
8185

8286
<ng-container *ngIf="!selectedColumn">
8387
<igx-select type="box"
88+
[displayDensity]="displayDensity"
8489
[disabled]="true">
8590
</igx-select>
8691
</ng-container>
8792

8893
<ng-container *ngIf="selectedColumn">
8994
<igx-select type="box"
95+
[displayDensity]="displayDensity"
9096
[(ngModel)]="selectedCondition"
9197
[disabled]="!selectedColumn">
9298
<igx-select-item *ngFor="let condition of selectedColumn.filters.conditionList()" [value]="condition">
@@ -104,11 +110,13 @@ <h4 class="igx-typography__h6">
104110
</igx-input-group>
105111

106112
<button igxButton="icon"
113+
[displayDensity]="displayDensity"
107114
[disabled]="!selectedColumn || !selectedCondition || (!searchValue && !selectedColumn.filters.condition(selectedCondition).isUnary)"
108115
(click)="commitOperandEdit(expressionItem)">
109116
<igx-icon fontSet="material">check</igx-icon>
110117
</button>
111118
<button igxButton="icon"
119+
[displayDensity]="displayDensity"
112120
(click)="cancelOperandEdit()">
113121
<igx-icon fontSet="material">close</igx-icon>
114122
</button>
@@ -117,6 +125,7 @@ <h4 class="igx-typography__h6">
117125
style="display: flex;">
118126
<ng-container *ngTemplateOutlet="addExpressionsTemplate; context: context(expressionItem.parent, expressionItem)"></ng-container>
119127
<button igxButton="icon"
128+
[displayDensity]="displayDensity"
120129
(click)="cancelOperandAdd()">
121130
<igx-icon fontSet="material">close</igx-icon>
122131
</button>
@@ -154,26 +163,27 @@ <h4 class="igx-typography__h6">
154163
style="display: flex; flex-flow: column; width: 200px; background-color: black; margin-left: 20px">
155164
<ng-container *ngIf="selectedGroups.length === 1">
156165
<igx-buttongroup #logicOperatorButtonGroup
166+
[displayDensity]="displayDensity"
157167
[multiSelection]="false">
158-
<span igxButton [displayDensity]="displayDensity"
159-
#andButton
160-
(keydown)="onLogicOperatorKeyDown(0)"
161-
tabindex="0"
162-
[selected]="selectedGroups[0].operator === 0"
163-
type="button"
164-
(click)="onLogicOperatorButtonClicked(0)">
168+
<button igxButton [displayDensity]="displayDensity"
169+
#andButton
170+
(keydown)="onLogicOperatorKeyDown(0)"
171+
tabindex="0"
172+
[selected]="selectedGroups[0].operator === 0"
173+
type="button"
174+
(click)="onLogicOperatorButtonClicked(0)">
165175
{{ grid.resourceStrings.igx_grid_filter_operator_and }}
166-
</span>
176+
</button>
167177

168-
<span igxButton [displayDensity]="displayDensity"
169-
#orButton
170-
tabindex="0"
171-
(keydown)="onLogicOperatorKeyDown(1)"
172-
[selected]="selectedGroups[0].operator === 1"
173-
type="button"
174-
(click)="onLogicOperatorButtonClicked($event, 1)">
178+
<button igxButton [displayDensity]="displayDensity"
179+
#orButton
180+
tabindex="0"
181+
(keydown)="onLogicOperatorKeyDown(1)"
182+
[selected]="selectedGroups[0].operator === 1"
183+
type="button"
184+
(click)="onLogicOperatorButtonClicked($event, 1)">
175185
{{ grid.resourceStrings.igx_grid_filter_operator_or }}
176-
</span>
186+
</button>
177187
</igx-buttongroup>
178188

179189
<button igxButton [displayDensity]="displayDensity" [disabled]="!selectedGroups[0].parent" (click)="ungroup()">

Diff for: projects/igniteui-angular/src/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.ts

+16-13
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,6 @@ export class IgxAdvancedFilteringDialogComponent {
5555
@Input()
5656
public overlayService: IgxOverlayService;
5757

58-
@Input()
59-
public displayDensity: DisplayDensity;
60-
6158
public rootGroup: ExpressionGroupItem;
6259

6360
public selectedExpressions: ExpressionOperandItem[] = [];
@@ -70,8 +67,6 @@ export class IgxAdvancedFilteringDialogComponent {
7067

7168
public addModeExpression: ExpressionOperandItem;
7269

73-
public selectedGroup: ExpressionGroupItem;
74-
7570
public selectedCondition: string;
7671
public searchValue: string;
7772

@@ -99,6 +94,10 @@ export class IgxAdvancedFilteringDialogComponent {
9994

10095
constructor(public cdr: ChangeDetectorRef) { }
10196

97+
public get displayDensity() {
98+
return this.grid.displayDensity;
99+
}
100+
102101
public get selectedColumn(): IgxColumnComponent {
103102
return this._selectedColumn;
104103
}
@@ -413,27 +412,31 @@ export class IgxAdvancedFilteringDialogComponent {
413412
}
414413

415414
public ungroup() {
416-
const parent = this.selectedGroup.parent;
415+
const selectedGroup = this.selectedGroups[0];
416+
const parent = selectedGroup.parent;
417417
if (parent) {
418-
const index = parent.children.indexOf(this.selectedGroup);
419-
parent.children.splice(index, 1, ...this.selectedGroup.children);
418+
const index = parent.children.indexOf(selectedGroup);
419+
parent.children.splice(index, 1, ...selectedGroup.children);
420420

421-
for (const expr of this.selectedGroup.children) {
421+
for (const expr of selectedGroup.children) {
422422
expr.parent = parent;
423423
}
424424
}
425425

426-
this.selectedGroup = null;
426+
this.selectedGroups = [];
427+
this.clearSelection();
427428
this.toggleContextMenu();
428429
}
429430

430431
public deleteGroup() {
431-
const parent = this.selectedGroup.parent;
432+
const selectedGroup = this.selectedGroups[0];
433+
const parent = selectedGroup.parent;
432434
if (parent) {
433-
const index = parent.children.indexOf(this.selectedGroup);
435+
const index = parent.children.indexOf(selectedGroup);
434436
parent.children.splice(index, 1);
435437
}
436-
this.selectedGroup = null;
438+
this.selectedGroups = [];
439+
this.clearSelection();
437440
this.toggleContextMenu();
438441
}
439442

Diff for: src/app/grid-search/grid-search.sample.css

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
.density-chooser {
2+
margin-bottom: 16px;
3+
max-width: 900px;
4+
}
5+
16
.sample-buttons {
27
margin-top: 24px;
38
}

Diff for: src/app/grid-search/grid-search.sample.html

+7
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,18 @@
33
Allows search in a grid.
44
</app-page-header>
55

6+
7+
68
<div class="sample-content">
79
<div class="sample-column">
10+
<div class="density-chooser">
11+
<igx-buttongroup [values]="displayDensities" (onSelect)="selectDensity($event)"></igx-buttongroup>
12+
</div>
13+
814
<igx-grid
915
#grid1
1016
[data]="data"
17+
[displayDensity]="density"
1118
[allowFiltering]="true"
1219
[rowSelectable]="true"
1320
[paging]="false"

Diff for: src/app/grid-search/grid-search.sample.ts

+12
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,18 @@ export class GridSearchComponent implements OnInit {
1212

1313
public data: Array<any>;
1414
public columns: Array<any>;
15+
public displayDensities;
16+
public density = 'comfortable';
1517

1618
@ViewChild('grid1', { static: true }) public grid1: IgxGridComponent;
1719

1820
public ngOnInit(): void {
21+
this.displayDensities = [
22+
{ label: 'comfortable', selected: this.density === 'comfortable', togglable: true },
23+
{ label: 'cosy', selected: this.density === 'cosy', togglable: true },
24+
{ label: 'compact', selected: this.density === 'compact', togglable: true }
25+
];
26+
1927
this.columns = [
2028
{ field: 'ID', width: 80, resizable: true, movable: true },
2129
{ field: 'CompanyName', width: 150, resizable: true, movable: true, type: 'string'},
@@ -466,6 +474,10 @@ export class GridSearchComponent implements OnInit {
466474
];
467475
}
468476

477+
public selectDensity(event) {
478+
this.density = this.displayDensities[event.index].label;
479+
}
480+
469481
toggleColumn(name: string) {
470482
const col = this.grid1.getColumnByName(name);
471483
col.pinned ? col.pinned = false : col.pinned = true;

0 commit comments

Comments
 (0)