From c3182fedd9f7171c001cd9128cb5cd6741da8f69 Mon Sep 17 00:00:00 2001 From: igdmdimitrov Date: Fri, 4 Jul 2025 16:52:37 +0300 Subject: [PATCH 1/2] fix(query-builder): improve isAdvancedFiltering check --- .../query-builder-tree.component.html | 4 +-- .../query-builder-tree.component.ts | 2 +- .../query-builder.component.spec.ts | 28 +++++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html index 7e167a243c7..ea92b146cca 100644 --- a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html +++ b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html @@ -75,7 +75,7 @@ (selectionChanging)="onReturnFieldSelectChanging($event)" [overlaySettings]="returnFieldSelectOverlaySettings" [disabled]="!selectedEntity" - [ngModel]="selectedReturnFields[0]" + [ngModel]="selectedReturnFields ? selectedReturnFields[0] : null" [placeholder]="this.resourceStrings.igx_query_builder_select_return_field_single" [style.display]="isInEditMode() ? 'block' : 'none'" (opening)="exitEditAddMode()" @@ -466,7 +466,7 @@ e.childEntities?.length > 0) !== undefined || - this.entities !== this.queryBuilder?.entities; + (this.entities?.length > 0 && this.queryBuilder?.entities?.length > 0 && this.entities !== this.queryBuilder?.entities); } /** @hidden */ diff --git a/projects/igniteui-angular/src/lib/query-builder/query-builder.component.spec.ts b/projects/igniteui-angular/src/lib/query-builder/query-builder.component.spec.ts index ec9722cd1ef..894876c3423 100644 --- a/projects/igniteui-angular/src/lib/query-builder/query-builder.component.spec.ts +++ b/projects/igniteui-angular/src/lib/query-builder/query-builder.component.spec.ts @@ -127,6 +127,13 @@ describe('IgxQueryBuilder', () => { expect(field.pipeArgs).toBeUndefined(); }); })); + + it('Should not throw error when entities are empty and expressionTree is set.', fakeAsync(() => { + expect(() => { + fix = TestBed.createComponent(IgxQueryBuilderInvalidSampleTestComponent); + fix.detectChanges(); + }).not.toThrow(); + })); }); describe('Interactions', () => { @@ -3234,6 +3241,27 @@ export class IgxQueryBuilderSampleTestComponent implements OnInit { } } +@Component({ + template: ` + + + `, + standalone: true, + imports: [ + IgxQueryBuilderComponent + ] +}) +export class IgxQueryBuilderInvalidSampleTestComponent implements OnInit { + @ViewChild(IgxQueryBuilderComponent) public queryBuilder: IgxQueryBuilderComponent; + public entities: Array; + public expressionTree: IExpressionTree; + + public ngOnInit(): void { + this.entities = []; + this.expressionTree = QueryBuilderFunctions.generateExpressionTree(); + } +} + @Component({ template: ` From 0b912cb553267e6b4e0f38e3f07af84526b13688 Mon Sep 17 00:00:00 2001 From: igdmdimitrov Date: Tue, 8 Jul 2025 16:39:01 +0300 Subject: [PATCH 2/2] chore(*): add additional checks when entities is not set --- .../src/lib/query-builder/query-builder-tree.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html index ea92b146cca..9adc2116b0d 100644 --- a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html +++ b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.html @@ -466,7 +466,7 @@