|
1 |
| -<article #toggle |
2 |
| - class="igx-excel-filter__secondary" |
3 |
| - [ngClass]="{ |
4 |
| - 'igx-excel-filter__secondary--cosy': grid.displayDensity === 'cosy', |
5 |
| - 'igx-excel-filter__secondary--compact': grid.displayDensity === 'compact' |
6 |
| - }" |
7 |
| - (keydown)="onKeyDown($event)" |
8 |
| - (onOpening)="onCustomDialogOpening()" |
9 |
| - (onOpened)="onCustomDialogOpened()"> |
10 |
| - <header class="igx-advanced-filter__secondary-header"> |
| 1 | +<article class="igx-excel-filter__secondary" |
| 2 | + (keydown)="onKeyDown($event)" |
| 3 | + [ngClass]="{ |
| 4 | + 'igx-excel-filter__secondary--cosy': grid.displayDensity === 'cosy', |
| 5 | + 'igx-excel-filter__secondary--compact': grid.displayDensity === 'compact' |
| 6 | + }"> |
| 7 | + <header class="igx-excel-filter__secondary-header"> |
11 | 8 | <h4 class="igx-typography__h6">
|
12 | 9 | Adv. Filtering
|
13 | 10 | </h4>
|
14 | 11 | </header>
|
15 | 12 |
|
16 |
| - <article #expressionsContainer class="igx-advanced-filter__secondary-main"> |
17 |
| - <!-- <ng-container *ngIf="column.dataType === 'date'"> |
18 |
| - <igx-excel-style-date-expression *ngFor="let expression of expressionsList;" |
19 |
| - class="igx-excel-filter__condition" |
20 |
| - [expressionUI]="expression" |
21 |
| - [column]="column" |
22 |
| - [grid]="grid" |
23 |
| - [displayDensity]="displayDensity" |
24 |
| - [expressionsList]="expressionsList" |
25 |
| - (onExpressionRemoved)="onExpressionRemoved($event)" |
26 |
| - (onLogicOperatorChanged)="onLogicOperatorChanged($event)"> |
27 |
| - </igx-excel-style-date-expression> |
28 |
| - </ng-container> --> |
| 13 | + <article #expressionsContainer class="igx-excel-filter__secondary-main" style="padding: 10px;"> |
| 14 | + <ng-container *ngIf="!rootGroup"> |
| 15 | + <button igxButton [displayDensity]="displayDensity" (click)="addAndGroup()"> |
| 16 | + <igx-icon fontSet="material">add</igx-icon> |
| 17 | + <span>"And" Group</span> |
| 18 | + </button> |
| 19 | + <button igxButton [displayDensity]="displayDensity" (click)="addOrGroup()"> |
| 20 | + <igx-icon fontSet="material">add</igx-icon> |
| 21 | + <span>"Or" Group</span> |
| 22 | + </button> |
| 23 | + </ng-container> |
| 24 | + |
| 25 | + <ng-template #addExpressionsTemplate let-expressionItem let-afterExpression="afterExpression"> |
| 26 | + <button igxButton |
| 27 | + [displayDensity]="displayDensity" |
| 28 | + [disabled]="editedExpression" |
| 29 | + (click)="addCondition(expressionItem, afterExpression)"> |
| 30 | + <igx-icon fontSet="material">add</igx-icon> |
| 31 | + <span>Condition</span> |
| 32 | + </button> |
| 33 | + <button igxButton |
| 34 | + [displayDensity]="displayDensity" |
| 35 | + [disabled]="editedExpression" |
| 36 | + (click)="addAndGroup(expressionItem, afterExpression)"> |
| 37 | + <igx-icon fontSet="material">add</igx-icon> |
| 38 | + <span>"And" Group</span> |
| 39 | + </button> |
| 40 | + <button igxButton |
| 41 | + [displayDensity]="displayDensity" |
| 42 | + [disabled]="editedExpression" |
| 43 | + (click)="addOrGroup(expressionItem, afterExpression)"> |
| 44 | + <igx-icon fontSet="material">add</igx-icon> |
| 45 | + <span>"Or" Group</span> |
| 46 | + </button> |
| 47 | + </ng-template> |
| 48 | + |
| 49 | + <ng-template #filterOperandTemplate let-expressionItem> |
| 50 | + <span> |
| 51 | + <igx-chip *ngIf="!expressionItem.inEditMode" |
| 52 | + [removable]="true" |
| 53 | + [selected]="expressionItem.selected" |
| 54 | + (click)="onChipClick(expressionItem)" |
| 55 | + (dblclick)="onChipDblClick(expressionItem)" |
| 56 | + (onRemove)="onChipRemove(expressionItem)" |
| 57 | + style="margin-bottom: 10px"> |
| 58 | + {{ expressionItem.expression.fieldName }} |
| 59 | + {{ expressionItem.expression.condition ? expressionItem.expression.condition.name : '' }} |
| 60 | + {{ expressionItem.expression.searchVal }} |
| 61 | + </igx-chip> |
| 62 | + <span *ngIf="!expressionItem.inEditMode && expressionItem.selected && selectedExpressions.length === 1"> |
| 63 | + <button igxButton="icon" |
| 64 | + (click)="enterExpressionEdit(expressionItem)"> |
| 65 | + <igx-icon fontSet="material">edit</igx-icon> |
| 66 | + </button> |
| 67 | + <button igxButton="icon" |
| 68 | + (click)="enterExpressionAdd(expressionItem)"> |
| 69 | + <igx-icon fontSet="material">add</igx-icon> |
| 70 | + </button> |
| 71 | + </span> |
| 72 | + </span> |
| 73 | + <span *ngIf="expressionItem.inEditMode"> |
| 74 | + Editing... |
| 75 | + <button igxButton="icon" |
| 76 | + (click)="commitOperandEdit(expressionItem)"> |
| 77 | + <igx-icon fontSet="material">check</igx-icon> |
| 78 | + </button> |
| 79 | + <button igxButton="icon" |
| 80 | + (click)="cancelOperandEdit()"> |
| 81 | + <igx-icon fontSet="material">close</igx-icon> |
| 82 | + </button> |
| 83 | + </span> |
| 84 | + <div *ngIf="expressionItem.inAddMode" |
| 85 | + style="display: flex;"> |
| 86 | + <ng-container *ngTemplateOutlet="addExpressionsTemplate; context: context(expressionItem.parent, expressionItem)"></ng-container> |
| 87 | + <button igxButton="icon" |
| 88 | + (click)="cancelOperandAdd()"> |
| 89 | + <igx-icon fontSet="material">close</igx-icon> |
| 90 | + </button> |
| 91 | + </div> |
| 92 | + </ng-template> |
29 | 93 |
|
30 |
| - <!-- <ng-container *ngIf="column.dataType !== 'date'"> |
31 |
| - <igx-excel-style-default-expression *ngFor="let expression of expressionsList;" |
32 |
| - class="igx-excel-filter__condition" |
33 |
| - [expressionUI]="expression" |
34 |
| - [column]="column" |
35 |
| - [grid]="grid" |
36 |
| - [displayDensity]="displayDensity" |
37 |
| - [expressionsList]="expressionsList" |
38 |
| - (onExpressionRemoved)="onExpressionRemoved($event)" |
39 |
| - (onLogicOperatorChanged)="onLogicOperatorChanged($event)"> |
40 |
| - </igx-excel-style-default-expression> |
41 |
| - </ng-container> --> |
| 94 | + <ng-template #expressionTreeTemplate let-expressionItem> |
| 95 | + <div style="display: flex;"> |
| 96 | + <div tabindex="0" style="width: 10px; margin-right: 10px;" |
| 97 | + [style.background-color]="expressionItem.operator === 0 ? 'lightblue' : 'lightcoral'"></div> |
| 98 | + <div style="display: flex; flex-direction: column; align-items: flex-start;"> |
| 99 | + <ng-container *ngFor="let expr of expressionItem.children"> |
| 100 | + <ng-container *ngTemplateOutlet="isExpressionGroup(expr) ? expressionTreeTemplate : filterOperandTemplate; context: context(expr)"></ng-container> |
| 101 | + </ng-container> |
| 102 | + <div *ngIf="currentGroup === expressionItem"> |
| 103 | + <!-- <button igxButton |
| 104 | + [displayDensity]="displayDensity" |
| 105 | + [disabled]="editedExpression" |
| 106 | + (click)="addCondition(expressionItem)"> |
| 107 | + <igx-icon fontSet="material">add</igx-icon> |
| 108 | + <span>Condition</span> |
| 109 | + </button> |
| 110 | + <button igxButton |
| 111 | + [displayDensity]="displayDensity" |
| 112 | + [disabled]="editedExpression" |
| 113 | + (click)="addAndGroup(expressionItem)"> |
| 114 | + <igx-icon fontSet="material">add</igx-icon> |
| 115 | + <span>"And" Group</span> |
| 116 | + </button> |
| 117 | + <button igxButton |
| 118 | + [displayDensity]="displayDensity" |
| 119 | + [disabled]="editedExpression" |
| 120 | + (click)="addOrGroup(expressionItem)"> |
| 121 | + <igx-icon fontSet="material">add</igx-icon> |
| 122 | + <span>"Or" Group</span> |
| 123 | + </button> --> |
| 124 | + <ng-container *ngTemplateOutlet="addExpressionsTemplate; context: context(expressionItem)"></ng-container> |
| 125 | + <button igxButton |
| 126 | + *ngIf="expressionItem !== rootGroup" |
| 127 | + [displayDensity]="displayDensity" |
| 128 | + [disabled]="editedExpression" |
| 129 | + (click)="endGroup(expressionItem)"> |
| 130 | + <span>End Group</span> |
| 131 | + </button> |
| 132 | + </div> |
| 133 | + </div> |
| 134 | + </div> |
| 135 | + </ng-template> |
42 | 136 |
|
43 |
| - <!-- <button igxButton [displayDensity]="displayDensity" |
44 |
| - class="igx-advanced-filter__add-filter" |
45 |
| - (click)="onAddButtonClick()"> |
46 |
| - <igx-icon>add</igx-icon> |
47 |
| - <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span> |
48 |
| - </button> --> |
| 137 | + <ng-container *ngIf="rootGroup"> |
| 138 | + <ng-container *ngTemplateOutlet="expressionTreeTemplate; context: context(rootGroup)"></ng-container> |
| 139 | + </ng-container> |
49 | 140 | </article>
|
50 | 141 |
|
51 |
| - <footer class="igx-advanced-filter__secondary-footer"> |
| 142 | + <footer class="igx-excel-filter__secondary-footer"> |
52 | 143 | <button igxButton [displayDensity]="displayDensity" (click)="onClearButtonClick()">{{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}</button>
|
53 | 144 |
|
54 | 145 | <div>
|
|
0 commit comments