From bd4de434940dfa50f887f4d6113ddaaaae6dc429 Mon Sep 17 00:00:00 2001 From: igdmdimitrov Date: Tue, 12 Nov 2024 17:53:17 +0200 Subject: [PATCH 1/6] feat(query-builder): select only one return field in inner query --- .../src/i18n/BG/query-builder-resources.ts | 1 + .../src/i18n/CS/query-builder-resources.ts | 1 + .../src/i18n/DA/query-builder-resources.ts | 1 + .../src/i18n/DE/query-builder-resources.ts | 1 + .../src/i18n/ES/query-builder-resources.ts | 1 + .../src/i18n/FR/query-builder-resources.ts | 1 + .../src/i18n/HU/query-builder-resources.ts | 1 + .../src/i18n/IT/query-builder-resources.ts | 1 + .../src/i18n/JA/query-builder-resources.ts | 1 + .../src/i18n/KO/query-builder-resources.ts | 1 + .../src/i18n/NB/query-builder-resources.ts | 1 + .../src/i18n/NL/query-builder-resources.ts | 1 + .../src/i18n/PL/query-builder-resources.ts | 1 + .../src/i18n/PT/query-builder-resources.ts | 1 + .../src/i18n/RO/query-builder-resources.ts | 1 + .../src/i18n/SV/query-builder-resources.ts | 1 + .../src/i18n/TR/query-builder-resources.ts | 1 + .../i18n/ZH-HANS/query-builder-resources.ts | 1 + .../i18n/ZH-HANT/query-builder-resources.ts | 1 + .../lib/core/i18n/query-builder-resources.ts | 2 + .../query-builder-tree.component.html | 84 +++++++++++-------- .../query-builder-tree.component.ts | 40 ++++++--- 22 files changed, 100 insertions(+), 45 deletions(-) diff --git a/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts b/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts index 1d40caa084b..f67e62ca9a2 100644 --- a/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts +++ b/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts @@ -60,6 +60,7 @@ const QueryBuilderResourceStringsBG_: ExpandRequire - - -
- - -
- {{ this.resourceStrings.igx_query_builder_select_all }} + + + +
+ + +
+ {{ this.resourceStrings.igx_query_builder_select_all }} +
-
- - - + + + + + + + + + + {{ field.field }} + + +
diff --git a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts index 53ea1c8eaf7..601474a5fe4 100644 --- a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts +++ b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts @@ -305,9 +305,12 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { @ViewChild('entitySelect', { read: IgxSelectComponent }) protected entitySelect: IgxSelectComponent; + + @ViewChild('returnFieldsCombo', { read: IgxComboComponent }) + private returnFieldsCombo: IgxComboComponent; - @ViewChild('selectedReturnFieldsCombo', { read: IgxComboComponent }) - private selectedReturnFieldsCombo: IgxComboComponent; + @ViewChild('returnFieldSelect', { read: IgxSelectComponent }) + protected returnFieldSelect: IgxSelectComponent; @ViewChild('fieldSelect', { read: IgxSelectComponent }) private fieldSelect: IgxSelectComponent; @@ -627,7 +630,12 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { this._selectedEntity.fields = []; } this.fields = this._entityNewValue ? this._entityNewValue.fields : []; - this._selectedReturnFields = this._entityNewValue.fields?.map(f => f.field); + + if (this.parentExpression) { + this._selectedReturnFields = []; + } else { + this._selectedReturnFields = this._entityNewValue.fields?.map(f => f.field); + } if (this._expressionTree) { this._expressionTree.entity = this._entityNewValue.name; @@ -667,7 +675,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { this._expressionTree.returnFields = value; this.expressionTreeChange.emit(this._expressionTree); } - } } @@ -992,10 +999,12 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { this.entitySelectOverlaySettings.target = this.entitySelect.element; this.entitySelectOverlaySettings.excludeFromOutsideClick = [this.entitySelect.element as HTMLElement]; this.entitySelectOverlaySettings.positionStrategy = new AutoPositionStrategy(); - this.returnFieldSelectOverlaySettings.target = this.selectedReturnFieldsCombo.getEditElement(); - this.returnFieldSelectOverlaySettings.excludeFromOutsideClick = [this.selectedReturnFieldsCombo.getEditElement() as HTMLElement]; - this.returnFieldSelectOverlaySettings.positionStrategy = new AutoPositionStrategy(); + if (this.returnFieldSelect) { + this.returnFieldSelectOverlaySettings.target = this.returnFieldSelect.element; + this.returnFieldSelectOverlaySettings.excludeFromOutsideClick = [this.returnFieldSelect.element as HTMLElement]; + this.returnFieldSelectOverlaySettings.positionStrategy = new AutoPositionStrategy(); + } if (this.fieldSelect) { this.fieldSelectOverlaySettings.target = this.fieldSelect.element; this.fieldSelectOverlaySettings.excludeFromOutsideClick = [this.fieldSelect.element as HTMLElement]; @@ -1007,7 +1016,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { this.conditionSelectOverlaySettings.positionStrategy = new AutoPositionStrategy(); } - if (!this.selectedField) { this.fieldSelect.input.nativeElement.focus(); } else if (this.selectedField.filters.condition(this.selectedCondition)?.isUnary) { @@ -1353,14 +1361,22 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { (this._selectedReturnFields.length > 0 && this._selectedReturnFields.length < this._selectedEntity.fields.length) || this._selectedReturnFields.length == this._selectedEntity.fields.length ) { - this.selectedReturnFieldsCombo.deselectAllItems(); + this.returnFieldsCombo.deselectAllItems(); } else { - this.selectedReturnFieldsCombo.selectAllItems(); + this.returnFieldsCombo.selectAllItems(); } } - public onReturnFieldSelectChanging(event: IComboSelectionChangingEventArgs) { - this.initExpressionTree(this.selectedEntity.name, event.newSelection.map(item => item.field)) + public onReturnFieldSelectChanging(event: IComboSelectionChangingEventArgs | ISelectionEventArgs) { + let newSelection; + if (event.newSelection instanceof Array) { + newSelection = event.newSelection.map(item => item.field) + } else { + newSelection = [event.newSelection.value]; + this._selectedReturnFields = newSelection; + } + + this.initExpressionTree(this.selectedEntity.name, newSelection); } public initExpressionTree(selectedEntityName: string, selectedReturnFields: string[]) { From b74dfe32a01133f378027e0d6a50a9a33d1caa72 Mon Sep 17 00:00:00 2001 From: "INFRAGISTICS\\IPetrov" Date: Mon, 18 Nov 2024 13:00:08 +0200 Subject: [PATCH 2/6] chore(query-builder): update resource string translations --- .../src/i18n/BG/query-builder-resources.ts | 2 +- .../src/i18n/CS/query-builder-resources.ts | 2 +- .../src/i18n/DA/query-builder-resources.ts | 2 +- .../src/i18n/DE/query-builder-resources.ts | 2 +- .../src/i18n/ES/query-builder-resources.ts | 2 +- .../src/i18n/FR/query-builder-resources.ts | 2 +- .../src/i18n/HU/query-builder-resources.ts | 2 +- .../src/i18n/IT/query-builder-resources.ts | 2 +- .../src/i18n/JA/query-builder-resources.ts | 2 +- .../src/i18n/KO/query-builder-resources.ts | 2 +- .../src/i18n/NB/query-builder-resources.ts | 2 +- .../src/i18n/NL/query-builder-resources.ts | 2 +- .../src/i18n/PL/query-builder-resources.ts | 2 +- .../src/i18n/PT/query-builder-resources.ts | 2 +- .../src/i18n/RO/query-builder-resources.ts | 2 +- .../src/i18n/SV/query-builder-resources.ts | 2 +- .../src/i18n/TR/query-builder-resources.ts | 2 +- .../src/i18n/ZH-HANS/query-builder-resources.ts | 2 +- .../src/i18n/ZH-HANT/query-builder-resources.ts | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts b/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts index f67e62ca9a2..60e6f816e1d 100644 --- a/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts +++ b/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts @@ -60,7 +60,7 @@ const QueryBuilderResourceStringsBG_: ExpandRequire Date: Mon, 18 Nov 2024 14:03:22 +0200 Subject: [PATCH 3/6] test(query-builder): fix failing tests due to single field select change --- .../query-builder-functions.spec.ts | 30 ++++++++++++------- .../query-builder.component.spec.ts | 25 +++++++--------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/projects/igniteui-angular/src/lib/query-builder/query-builder-functions.spec.ts b/projects/igniteui-angular/src/lib/query-builder/query-builder-functions.spec.ts index 449df983848..064b916bc4e 100644 --- a/projects/igniteui-angular/src/lib/query-builder/query-builder-functions.spec.ts +++ b/projects/igniteui-angular/src/lib/query-builder/query-builder-functions.spec.ts @@ -212,8 +212,8 @@ export class QueryBuilderFunctions { public static getQueryBuilderEditModeContainer(fix: ComponentFixture, entityContainer = true, level = 0) { const exprContainer = QueryBuilderFunctions.getQueryBuilderExpressionsContainer(fix, level); const editModeContainers = Array.from(exprContainer.querySelectorAll('.igx-filter-tree__inputs')); - const entityEditModeContainer = editModeContainers.find(container => container.querySelector('igx-combo')); - const conditionEditModeContainer = editModeContainers.find(container => container.querySelector('igx-select') && !container.querySelector('igx-combo')); + const entityEditModeContainer = editModeContainers.find(container => container.children.length == 2); + const conditionEditModeContainer = editModeContainers.find(container => container.children.length >= 4); return entityContainer ? entityEditModeContainer : conditionEditModeContainer; } @@ -225,7 +225,7 @@ export class QueryBuilderFunctions { public static getQueryBuilderFieldsCombo(fix: ComponentFixture, level = 0) { const editModeContainer = QueryBuilderFunctions.getQueryBuilderEditModeContainer(fix, true, level); - const fieldCombo = editModeContainer.querySelector('igx-combo'); + const fieldCombo = level == 0 ? editModeContainer.querySelector('igx-combo') : editModeContainer.querySelectorAll('igx-select')[1]; return fieldCombo; } @@ -544,7 +544,7 @@ export class QueryBuilderFunctions { expect(!fieldInputGroup.classList.contains('igx-input-group--disabled')).toBe(fieldComboEnabled, 'incorrect fields combo state'); - if(columnSelectEnabled || operatorSelectEnabled || valueInputEnabled || commitButtonEnabled){ + if (columnSelectEnabled || operatorSelectEnabled || valueInputEnabled || commitButtonEnabled) { QueryBuilderFunctions.verifyEditModeExpressionInputStates(fix, columnSelectEnabled, operatorSelectEnabled, valueInputEnabled, commitButtonEnabled, level); } }; @@ -592,7 +592,7 @@ export class QueryBuilderFunctions { expect(entityInput.value).toBe(entityText); expect(fieldInput.value).toBe(fieldsText); - if(columnText || operatorText || valueText){ + if (columnText || operatorText || valueText) { QueryBuilderFunctions.verifyEditModeExpressionInputValues(fix, columnText, operatorText, valueText, level); } }; @@ -804,9 +804,12 @@ export class QueryBuilderFunctions { tick(); fix.detectChanges(); }); - //close combo drop-down - QueryBuilderFunctions.clickQueryBuilderFieldsCombo(fix); - fix.detectChanges(); + + if (level == 0) { + //close combo drop-down + QueryBuilderFunctions.clickQueryBuilderFieldsCombo(fix); + fix.detectChanges(); + } } public static selectColumnInEditModeExpression(fix, dropdownItemIndex: number, level = 0) { @@ -832,12 +835,17 @@ export class QueryBuilderFunctions { fix.detectChanges(); } - public static addAndValidateChildGroup(fix: ComponentFixture, groupType: number, level: number) { + public static addAndValidateChildGroup(fix: ComponentFixture, groupType: number, level: number) { // Enter values in the nested query QueryBuilderFunctions.selectEntityInEditModeExpression(fix, 0, level); // Select 'Products' entity tick(100); fix.detectChanges(); + // Select return field + QueryBuilderFunctions.selectFieldsInEditModeExpression(fix, [0], level); + tick(100); + fix.detectChanges(); + // Click the initial 'Add Or Group' button. QueryBuilderFunctions.clickQueryBuilderInitialAddGroupButton(fix, groupType, level); tick(100); @@ -863,7 +871,7 @@ export class QueryBuilderFunctions { // Verify all inputs QueryBuilderFunctions.verifyEditModeExpressionInputStates(fix, true, true, false, false, level - 1); // Parent commit button should be disabled QueryBuilderFunctions.verifyEditModeQueryExpressionInputStates(fix, true, true, true, true, true, true, level); - QueryBuilderFunctions.verifyQueryEditModeExpressionInputValues(fix, 'Products', 'Id, ProductName, OrderId, Released', 'ProductName', 'Contains', 'a', level); + QueryBuilderFunctions.verifyQueryEditModeExpressionInputValues(fix, 'Products', 'Id', 'ProductName', 'Contains', 'a', level); //Commit the populated expression. QueryBuilderFunctions.clickQueryBuilderExpressionCommitButton(fix, level); @@ -890,7 +898,7 @@ export class QueryBuilderFunctions { } public static selectEntityAndClickInitialAddGroup(fix: ComponentFixture, entityIndex: number, groupIndex: number) { - QueryBuilderFunctions.selectEntityInEditModeExpression(fix, entityIndex); + QueryBuilderFunctions.selectEntityInEditModeExpression(fix, entityIndex); tick(100); fix.detectChanges(); 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 fd2f8441a91..f9b80b9e701 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 @@ -872,10 +872,7 @@ describe('IgxQueryBuilder', () => { "operator": 1, "entity": "Products", "returnFields": [ - "Id", - "ProductName", - "OrderId", - "Released" + "Id" ] } } @@ -947,10 +944,7 @@ describe('IgxQueryBuilder', () => { "operator": 1, "entity": "Products", "returnFields": [ - "Id", - "ProductName", - "OrderId", - "Released" + "Id" ] } } @@ -1240,7 +1234,7 @@ describe('IgxQueryBuilder', () => { fix.detectChanges(); // Verify tree layout and remaining chip content - let rootGroup = QueryBuilderFunctions.getQueryBuilderTreeRootGroup(fix) as HTMLElement; + let rootGroup = QueryBuilderFunctions.getQueryBuilderTreeRootGroup(fix) as HTMLElement; expect(QueryBuilderFunctions.getQueryBuilderTreeChildItems(rootGroup as HTMLElement).length).toBe(1); QueryBuilderFunctions.verifyExpressionChipContent(fix, [0], 'Downloads', 'Greater Than', '100'); })); @@ -1544,7 +1538,8 @@ describe('IgxQueryBuilder', () => { ControlsFunction.verifyButtonIsDisabled(parentCommitBtn as HTMLElement, false); })); - it(`'In' condition 'commit' button should be disabled if there are no return fields in the nested query.`, fakeAsync(() => { + //Test skipped due to changing the inner query return fields from combo-select to single-select + xit(`'In' condition 'commit' button should be disabled if there are no return fields in the nested query.`, fakeAsync(() => { queryBuilder.expressionTree = QueryBuilderFunctions.generateExpressionTree(); fix.detectChanges(); tick(100); @@ -2013,6 +2008,11 @@ describe('IgxQueryBuilder', () => { tick(100); fix.detectChanges(); + // Select return field + QueryBuilderFunctions.selectFieldsInEditModeExpression(fix, [0], 1); + tick(100); + fix.detectChanges(); + QueryBuilderFunctions.verifyEditModeExpressionInputStates(fix, true, true, false, true); // Parent commit button should be enabled QueryBuilderFunctions.clickQueryBuilderExpressionCommitButton(fix); fix.detectChanges(); @@ -2037,10 +2037,7 @@ describe('IgxQueryBuilder', () => { "operator": 0, "entity": "Products", "returnFields": [ - "Id", - "ProductName", - "OrderId", - "Released" + "Id" ] } } From 3d7358cf6243c421929d96d633854f222dc390ad Mon Sep 17 00:00:00 2001 From: "INFRAGISTICS\\IPetrov" Date: Tue, 19 Nov 2024 11:14:39 +0200 Subject: [PATCH 4/6] test(query-builder): add return filed component for main and nested --- .../query-builder.component.spec.ts | 50 +++++++++---------- 1 file changed, 23 insertions(+), 27 deletions(-) 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 f9b80b9e701..b8b27460ccc 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 @@ -114,6 +114,19 @@ describe('IgxQueryBuilder', () => { ControlsFunction.verifyButtonIsDisabled(button as HTMLElement, false); } })); + + it('Should render combo for main entity return fields and single-select for nested entity return field.', fakeAsync(() => { + QueryBuilderFunctions.selectEntityAndClickInitialAddGroup(fix, 1, 0); + + QueryBuilderFunctions.selectColumnInEditModeExpression(fix, 0); // Select 'OrderId' column. + QueryBuilderFunctions.selectOperatorInEditModeExpression(fix, 10); // Select 'In' operator. + + const mainEntityContainer = QueryBuilderFunctions.getQueryBuilderEditModeContainer(fix, true, 0); + const nestedEntityContainer = QueryBuilderFunctions.getQueryBuilderEditModeContainer(fix, true, 1); + + expect(mainEntityContainer.children[1].tagName).toBe('IGX-COMBO'); + expect(nestedEntityContainer.children[1].tagName).toBe('IGX-SELECT'); + })); }); describe('Interactions', () => { @@ -1536,33 +1549,7 @@ describe('IgxQueryBuilder', () => { // Verify parent is enabled parentCommitBtn = QueryBuilderFunctions.getQueryBuilderExpressionCommitButton(fix); ControlsFunction.verifyButtonIsDisabled(parentCommitBtn as HTMLElement, false); - })); - - //Test skipped due to changing the inner query return fields from combo-select to single-select - xit(`'In' condition 'commit' button should be disabled if there are no return fields in the nested query.`, fakeAsync(() => { - queryBuilder.expressionTree = QueryBuilderFunctions.generateExpressionTree(); - fix.detectChanges(); - tick(100); - fix.detectChanges(); - - // Double-click the parent chip 'Products' to enter edit mode. - QueryBuilderFunctions.clickQueryBuilderTreeExpressionChip(fix, [0], true); - tick(50); - fix.detectChanges(); - - let commitBtn = QueryBuilderFunctions.getQueryBuilderExpressionCommitButton(fix); - ControlsFunction.verifyButtonIsDisabled(commitBtn as HTMLElement, false); - - // Deselect all fields - QueryBuilderFunctions.selectFieldsInEditModeExpression(fix, [0], 1); - commitBtn = QueryBuilderFunctions.getQueryBuilderExpressionCommitButton(fix); - ControlsFunction.verifyButtonIsDisabled(commitBtn as HTMLElement); - - // Select all fields - QueryBuilderFunctions.selectFieldsInEditModeExpression(fix, [0], 1); - commitBtn = QueryBuilderFunctions.getQueryBuilderExpressionCommitButton(fix); - ControlsFunction.verifyButtonIsDisabled(commitBtn as HTMLElement, false); - })); + })); it('Should collapse nested query when it is committed.', fakeAsync(() => { QueryBuilderFunctions.selectEntityAndClickInitialAddGroup(fix, 1, 0); @@ -2003,16 +1990,25 @@ describe('IgxQueryBuilder', () => { QueryBuilderFunctions.selectColumnInEditModeExpression(fix, 0); // Select 'OrderId' column. QueryBuilderFunctions.selectOperatorInEditModeExpression(fix, 10); // Select 'In' operator. + let commitBtn = QueryBuilderFunctions.getQueryBuilderExpressionCommitButton(fix); + ControlsFunction.verifyButtonIsDisabled(commitBtn as HTMLElement, true); + // Enter values in the nested query QueryBuilderFunctions.selectEntityInEditModeExpression(fix, 0, 1); // Select 'Products' entity tick(100); fix.detectChanges(); + commitBtn = QueryBuilderFunctions.getQueryBuilderExpressionCommitButton(fix); + ControlsFunction.verifyButtonIsDisabled(commitBtn as HTMLElement, true); + // Select return field QueryBuilderFunctions.selectFieldsInEditModeExpression(fix, [0], 1); tick(100); fix.detectChanges(); + commitBtn = QueryBuilderFunctions.getQueryBuilderExpressionCommitButton(fix); + ControlsFunction.verifyButtonIsDisabled(commitBtn as HTMLElement, false); + QueryBuilderFunctions.verifyEditModeExpressionInputStates(fix, true, true, false, true); // Parent commit button should be enabled QueryBuilderFunctions.clickQueryBuilderExpressionCommitButton(fix); fix.detectChanges(); From 1bcc3aadba1d639e5f8d581564907905c960de54 Mon Sep 17 00:00:00 2001 From: igdmdimitrov Date: Thu, 21 Nov 2024 16:54:48 +0200 Subject: [PATCH 5/6] chore(*): address PR comments --- .../src/i18n/BG/query-builder-resources.ts | 2 +- .../src/i18n/CS/query-builder-resources.ts | 2 +- .../src/i18n/DA/query-builder-resources.ts | 2 +- .../src/i18n/DE/query-builder-resources.ts | 2 +- .../src/i18n/ES/query-builder-resources.ts | 2 +- .../src/i18n/FR/query-builder-resources.ts | 2 +- .../src/i18n/HU/query-builder-resources.ts | 2 +- .../src/i18n/IT/query-builder-resources.ts | 2 +- .../src/i18n/JA/query-builder-resources.ts | 2 +- .../src/i18n/KO/query-builder-resources.ts | 2 +- .../src/i18n/NB/query-builder-resources.ts | 2 +- .../src/i18n/NL/query-builder-resources.ts | 2 +- .../src/i18n/PL/query-builder-resources.ts | 2 +- .../src/i18n/PT/query-builder-resources.ts | 2 +- .../src/i18n/RO/query-builder-resources.ts | 2 +- .../src/i18n/SV/query-builder-resources.ts | 2 +- .../src/i18n/TR/query-builder-resources.ts | 2 +- .../src/i18n/ZH-HANS/query-builder-resources.ts | 2 +- .../src/i18n/ZH-HANT/query-builder-resources.ts | 2 +- .../src/lib/core/i18n/query-builder-resources.ts | 4 ++-- .../query-builder/query-builder-tree.component.html | 2 +- .../lib/query-builder/query-builder-tree.component.ts | 10 +++------- .../lib/query-builder/query-builder.component.spec.ts | 2 +- 23 files changed, 26 insertions(+), 30 deletions(-) diff --git a/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts b/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts index 60e6f816e1d..b170cc14f9b 100644 --- a/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts +++ b/projects/igniteui-angular-i18n/src/i18n/BG/query-builder-resources.ts @@ -60,7 +60,7 @@ const QueryBuilderResourceStringsBG_: ExpandRequire - + {{ field.field }} diff --git a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts index 601474a5fe4..9f88962fd01 100644 --- a/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts +++ b/projects/igniteui-angular/src/lib/query-builder/query-builder-tree.component.ts @@ -631,11 +631,7 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { } this.fields = this._entityNewValue ? this._entityNewValue.fields : []; - if (this.parentExpression) { - this._selectedReturnFields = []; - } else { - this._selectedReturnFields = this._entityNewValue.fields?.map(f => f.field); - } + this._selectedReturnFields = this.parentExpression ? [] : this._entityNewValue.fields?.map(f => f.field); if (this._expressionTree) { this._expressionTree.entity = this._entityNewValue.name; @@ -1368,11 +1364,11 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy { } public onReturnFieldSelectChanging(event: IComboSelectionChangingEventArgs | ISelectionEventArgs) { - let newSelection; + let newSelection = []; if (event.newSelection instanceof Array) { newSelection = event.newSelection.map(item => item.field) } else { - newSelection = [event.newSelection.value]; + newSelection.push(event.newSelection.value); this._selectedReturnFields = newSelection; } 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 b8b27460ccc..f27428d6905 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 @@ -115,7 +115,7 @@ describe('IgxQueryBuilder', () => { } })); - it('Should render combo for main entity return fields and single-select for nested entity return field.', fakeAsync(() => { + it('Should render combo for main entity return fields and select for nested entity return field.', fakeAsync(() => { QueryBuilderFunctions.selectEntityAndClickInitialAddGroup(fix, 1, 0); QueryBuilderFunctions.selectColumnInEditModeExpression(fix, 0); // Select 'OrderId' column. From 1d1e245b8bbf6770c48fac3d4bd69c522654d560 Mon Sep 17 00:00:00 2001 From: teodosiah Date: Mon, 25 Nov 2024 18:26:32 +0200 Subject: [PATCH 6/6] chore(*): replace *ngIf with @if/@else --- .../lib/query-builder/query-builder-tree.component.html | 9 ++++----- 1 file changed, 4 insertions(+), 5 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 d57239d1f9e..79627fcca99 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 @@ -21,7 +21,7 @@ - + @if(!parentExpression) { - - - + } + @else { - + }