Skip to content

Commit 7d7baae

Browse files
committed
feat(query-builder): search value template improvements
1 parent b8873a0 commit 7d7baae

File tree

6 files changed

+20
-24
lines changed

6 files changed

+20
-24
lines changed

projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,12 @@ <h6 class="igx-filter-empty__title">
246246
</igx-select-item>
247247
</igx-select>
248248

249-
<ng-container *ngTemplateOutlet="searchValueTemplate ? searchValueTemplate : defaultSearchValueTemplate">
249+
<ng-container
250+
*ngTemplateOutlet="
251+
searchValueTemplate ? searchValueTemplate : defaultSearchValueTemplate;
252+
context: { $implicit: _editedExpression.expression.searchVal, field: selectedField, condition: selectedCondition }
253+
"
254+
>
250255
</ng-container>
251256

252257
<ng-template #defaultSearchValueTemplate>

projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
173173
@Input()
174174
public entities: EntityType[];
175175

176+
@Input()
177+
public searchValueTemplate: TemplateRef<IgxQueryBuilderSearchValueTemplateDirective> = null;
178+
176179
@Input()
177180
public get parentExpression(): ExpressionOperandItem {
178181
return this._parentExpression;
@@ -314,12 +317,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
314317
@ContentChild(IgxQueryBuilderHeaderComponent)
315318
public headerContent: IgxQueryBuilderHeaderComponent;
316319

317-
@ContentChild(IgxQueryBuilderSearchValueTemplateDirective, { read: TemplateRef })
318-
public searchValueTemplate: TemplateRef<IgxQueryBuilderSearchValueTemplateDirective> = null;
319-
320-
// @ViewChildren(IgxQueryBuilderSearchValueTemplateDirective)
321-
// public searchValueTemplateDirectives: QueryList<IgxQueryBuilderSearchValueTemplateDirective>;
322-
323320
@ViewChild('editingInputsContainer', { read: ElementRef })
324321
protected set editingInputsContainer(value: ElementRef) {
325322
if ((value && !this._editingInputsContainer) ||
@@ -725,7 +722,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
725722
if (this._editedExpression) {
726723
this._editedExpression.expression.field = this.selectedField.field;
727724
this._editedExpression.expression.condition = this.selectedField.filters.condition(this.selectedCondition);
728-
this._editedExpression.expression.searchVal = DataUtil.parseValue(this.selectedField.dataType, this.searchValue);
725+
this._editedExpression.expression.searchVal = DataUtil.parseValue(this.selectedField.dataType, this.searchValue); //
729726
this._editedExpression.fieldLabel = this.selectedField.label
730727
? this.selectedField.label
731728
: this.selectedField.header

projects/igniteui-angular/src/lib/query-builder/query-builder.component.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@
1212
[locale]="this.locale"
1313
[resourceStrings]="this.resourceStrings"
1414
(expressionTreeChange)="onExpressionTreeChange($event)"
15-
>
16-
<ng-container *ngIf="searchValueTemplate">
17-
<ng-template igxQueryBuilderSearchValue>
18-
<ng-container *ngTemplateOutlet="searchValueTemplate"></ng-container>
19-
</ng-template>
20-
</ng-container>
15+
[searchValueTemplate]="searchValueTemplate">
2116
</igx-query-builder-tree>
2217

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Directive, Input, TemplateRef } from '@angular/core';
1+
import { Directive, TemplateRef } from '@angular/core';
22

33
/**
44
* Defines the custom template that will be used for the search value input of condition in edit mode
@@ -9,8 +9,8 @@ import { Directive, Input, TemplateRef } from '@angular/core';
99
*
1010
* @example
1111
* <igx-query-builder>
12-
* <ng-template igxQueryBuilderSearchValue>
13-
* <span>Custom Search Value</span>
12+
* <ng-template igxQueryBuilderSearchValue let-searchValue let-field="field" let-condition="condition">
13+
* <span>{{field.field}} {{condition}} {{searchValue}}</span>
1414
* </ng-template>
1515
* </igx-query-builder>
1616
*/
@@ -19,8 +19,5 @@ import { Directive, Input, TemplateRef } from '@angular/core';
1919
standalone: true
2020
})
2121
export class IgxQueryBuilderSearchValueTemplateDirective {
22-
@Input()
23-
public searchValue: any;
24-
2522
constructor(public template: TemplateRef<any>) { }
2623
}

src/app/query-builder/query-builder.sample.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
<!-- Custom header -->
1111
<!-- <igx-query-builder-header [title]="'Builder'" [showLegend]="false"><span>Custom Title</span></igx-query-builder-header> -->
1212

13-
<!-- <ng-template #searchValueTemplate igxQueryBuilderSearchValue let-searchValue="searchValue">
14-
<button igxButton="contained" igxRipple (click)="setSearchValue()">Set Search Value</button>
13+
<!-- <ng-template #searchValueTemplate igxQueryBuilderSearchValue let-searchValue let-field="field" let-condition="condition">
14+
<button igxButton="contained" igxRipple (click)="logParams(field, condition, searchValue)">LOG</button>
1515
</ng-template> -->
1616
</igx-query-builder>
1717

src/app/query-builder/query-builder.sample.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,10 @@ export class QueryBuilderComponent implements OnInit {
148148
this.queryBuilder.locale = locale;
149149
}
150150

151-
public setSearchValue() {
152-
this.searchValueTemplate.searchValue = 'value from template';
151+
public logParams(field: any, condition: any, searchValue: any) {
152+
console.log(field);
153+
console.log(condition);
154+
console.log(searchValue);
153155
}
154156

155157
public printExpressionTree(tree: IExpressionTree) {

0 commit comments

Comments
 (0)