Skip to content

Commit 880e5fa

Browse files
committed
feat(overlay): remove outlet from query builder
1 parent f2cee75 commit 880e5fa

File tree

4 files changed

+13
-58
lines changed

4 files changed

+13
-58
lines changed

projects/igniteui-angular/query-builder/src/query-builder/query-builder-functions.spec.ts

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -308,14 +308,9 @@ export class QueryBuilderFunctions {
308308
return buttonsContainers[buttonsIndex];
309309
}
310310

311-
public static getQueryBuilderOutlet(queryBuilderElement: HTMLElement) {
312-
const outlet = queryBuilderElement.querySelector(':scope > .igx-query-builder__outlet');
313-
return outlet;
314-
}
315-
316311
public static getQueryBuilderSelectDropdown(queryBuilderElement: HTMLElement, index = 0) {
317-
const outlet = QueryBuilderFunctions.getQueryBuilderOutlet(queryBuilderElement);
318-
const selectDropdown = outlet.querySelectorAll(`.${QueryBuilderSelectors.DROP_DOWN_LIST_SCROLL}`).item(index);
312+
const selectDropdown = Array.from(document.querySelectorAll(`.${QueryBuilderSelectors.DROP_DOWN_LIST_SCROLL}`))
313+
.filter(item => (item as HTMLElement).checkVisibility())[index];
319314
return selectDropdown;
320315
}
321316

@@ -504,8 +499,8 @@ export class QueryBuilderFunctions {
504499
* Click 'add condition' or 'add group' item
505500
*/
506501
public static clickQueryBuilderTreeAddOption(fix: ComponentFixture<any>, index: number) {
507-
const outlet = Array.from(fix.debugElement.nativeElement.querySelectorAll(`.igx-drop-down__list-scroll`)).filter(item => (item as HTMLElement).checkVisibility())[0];
508-
const item = Array.from((outlet as HTMLElement).querySelectorAll('.igx-drop-down__item'))[index] as HTMLElement;
502+
const dropdownList = Array.from(document.querySelectorAll(`.igx-drop-down__list-scroll`)).filter(item => (item as HTMLElement).checkVisibility())[0];
503+
const item = Array.from((dropdownList as HTMLElement).querySelectorAll('.igx-drop-down__item'))[index] as HTMLElement;
509504
UIInteractions.simulateClickAndSelectEvent(item)
510505
tick(100);
511506
fix.detectChanges();
@@ -751,8 +746,8 @@ export class QueryBuilderFunctions {
751746
QueryBuilderFunctions.clickQueryBuilderEntitySelect(fix, level);
752747
fix.detectChanges();
753748

754-
const outlet = Array.from(fix.debugElement.nativeElement.querySelectorAll(`.igx-drop-down__list-scroll`)).filter(item => (item as HTMLElement).checkVisibility())[0];
755-
const item = Array.from((outlet as HTMLElement).querySelectorAll('.igx-drop-down__item'))[dropdownItemIndex] as HTMLElement;
749+
const dropdownList = Array.from(document.querySelectorAll(`.igx-drop-down__list-scroll`)).filter(item => (item as HTMLElement).checkVisibility())[0];
750+
const item = Array.from((dropdownList as HTMLElement).querySelectorAll('.igx-drop-down__item'))[dropdownItemIndex] as HTMLElement;
756751
UIInteractions.simulateClickAndSelectEvent(item)
757752
tick();
758753
fix.detectChanges();
@@ -762,9 +757,9 @@ export class QueryBuilderFunctions {
762757
QueryBuilderFunctions.clickQueryBuilderFieldsCombo(fix, level);
763758
fix.detectChanges();
764759

765-
const outlet = Array.from(fix.debugElement.nativeElement.querySelectorAll(`.igx-drop-down__list-scroll`)).filter(item => (item as HTMLElement).checkVisibility())[0];
760+
const dropdownList = Array.from(document.querySelectorAll(`.igx-drop-down__list-scroll`)).filter(item => (item as HTMLElement).checkVisibility())[0];
766761
deselectItemIndexes.forEach(index => {
767-
const item = Array.from((outlet as HTMLElement).querySelectorAll('.igx-drop-down__item'))[index] as HTMLElement;
762+
const item = Array.from((dropdownList as HTMLElement).querySelectorAll('.igx-drop-down__item'))[index] as HTMLElement;
768763
UIInteractions.simulateClickAndSelectEvent(item)
769764
tick();
770765
fix.detectChanges();

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -580,13 +580,6 @@
580580
}
581581
</div>
582582

583-
<div
584-
#overlayOutlet
585-
igxOverlayOutlet
586-
class="igx-query-builder__outlet"
587-
(pointerdown)="onOutletPointerDown($event)"
588-
></div>
589-
590583
<igx-dialog
591584
#entityChangeDialog
592585
title="{{ this.resourceStrings.igx_query_builder_dialog_title }}"

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

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import {
3232
VerticalAlignment,
3333
AbsoluteScrollStrategy,
3434
AutoPositionStrategy,
35-
CloseScrollStrategy,
3635
ConnectedPositioningStrategy,
3736
IgxPickerToggleComponent,
3837
IgxPickerClearComponent,
@@ -106,7 +105,6 @@ const DEFAULT_CHIP_FOCUS_DELAY = 50;
106105
IgxIconComponent,
107106
IgxInputDirective,
108107
IgxInputGroupComponent,
109-
IgxOverlayOutletDirective,
110108
IgxPickerClearComponent,
111109
IgxPickerToggleComponent,
112110
IgxPrefixDirective,
@@ -360,9 +358,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
360358
@ViewChild('expressionsContainer')
361359
private expressionsContainer: ElementRef;
362360

363-
@ViewChild('overlayOutlet', { read: IgxOverlayOutletDirective, static: true })
364-
private overlayOutlet: IgxOverlayOutletDirective;
365-
366361
@ViewChildren(IgxQueryBuilderTreeComponent)
367362
private innerQueries: QueryList<IgxQueryBuilderTreeComponent>;
368363

@@ -528,18 +523,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
528523
return _level;
529524
}
530525

531-
private _positionSettings = {
532-
horizontalStartPoint: HorizontalAlignment.Right,
533-
verticalStartPoint: VerticalAlignment.Top
534-
};
535-
536-
private _overlaySettings: OverlaySettings = {
537-
closeOnOutsideClick: false,
538-
modal: false,
539-
positionStrategy: new ConnectedPositioningStrategy(this._positionSettings),
540-
scrollStrategy: new CloseScrollStrategy()
541-
};
542-
543526
/** @hidden */
544527
protected isAdvancedFiltering(): boolean {
545528
return (this.entities?.length === 1 && !this.entities[0]?.name) ||
@@ -570,14 +553,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
570553
* @hidden @internal
571554
*/
572555
public ngAfterViewInit(): void {
573-
this._overlaySettings.outlet = this.overlayOutlet;
574-
this.entitySelectOverlaySettings.outlet = this.overlayOutlet;
575-
this.fieldSelectOverlaySettings.outlet = this.overlayOutlet;
576-
this.conditionSelectOverlaySettings.outlet = this.overlayOutlet;
577-
this.returnFieldSelectOverlaySettings.outlet = this.overlayOutlet;
578-
this.addExpressionDropDownOverlaySettings.outlet = this.overlayOutlet;
579-
this.groupContextMenuDropDownOverlaySettings.outlet = this.overlayOutlet;
580-
581556
if (this.isAdvancedFiltering() && this.entities?.length === 1) {
582557
this.selectedEntity = this.entities[0].name;
583558
if (this._selectedEntity.fields.find(f => f.field === this.expectedReturnField)) {
@@ -1391,14 +1366,6 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
13911366
}
13921367
}
13931368

1394-
/**
1395-
* @hidden @internal
1396-
*/
1397-
public onOutletPointerDown(event) {
1398-
// This prevents closing the select's dropdown when clicking the scroll
1399-
event.preventDefault();
1400-
}
1401-
14021369
/**
14031370
* @hidden @internal
14041371
*/

projects/igniteui-angular/query-builder/src/query-builder/query-builder.component.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ describe('IgxQueryBuilder', () => {
5252

5353
expect(queryBuilder.expressionTree).toBeUndefined();
5454

55-
expect(queryTreeElement.children.length).toEqual(3);
55+
expect(queryTreeElement.children.length).toEqual(2);
5656
const bodyElement = queryTreeElement.children[0];
5757
expect(bodyElement).toHaveClass(QueryBuilderSelectors.QUERY_BUILDER_BODY);
5858
expect(bodyElement.children.length).toEqual(1);
@@ -456,9 +456,9 @@ describe('IgxQueryBuilder', () => {
456456
QueryBuilderFunctions.clickQueryBuilderFieldsCombo(fix);
457457
fix.detectChanges();
458458

459-
// TO DO: refactor when overlay issue is fixed
460-
const outlet = fix.debugElement.queryAll(By.css(`.igx-drop-down__list-scroll`))[1].nativeElement;
461-
const dropdownItems = Array.from(outlet.querySelectorAll('.igx-drop-down__item'));;
459+
const dropdownList = Array.from(document.querySelectorAll(`.igx-drop-down__list-scroll`))
460+
.filter(item => (item as HTMLElement).checkVisibility())[0] as HTMLElement;
461+
const dropdownItems = Array.from(dropdownList.querySelectorAll('.igx-drop-down__item'));
462462
expect(dropdownItems.length).toBe(5);
463463
expect((dropdownItems[0] as HTMLElement).innerText).toBe('Select All');
464464
expect((dropdownItems[1] as HTMLElement).innerText).toBe('Id');
@@ -1822,7 +1822,7 @@ describe('IgxQueryBuilder', () => {
18221822
const actionArea = bodyElement.children[0].querySelector('.igx-query-builder__root-actions');
18231823
expect(actionArea).toBeNull();
18241824
expect(bodyElement.children[1].children[1].children[1].children[1].children[6].children[1]).toHaveClass(QueryBuilderSelectors.QUERY_BUILDER_TREE);
1825-
expect(bodyElement.children[1].children[1].children[1].children[1].children[6].children[1].children.length).toEqual(3);
1825+
expect(bodyElement.children[1].children[1].children[1].children[1].children[6].children[1].children.length).toEqual(2);
18261826
const tree = bodyElement.children[1].children[1].children[1].children[1].children[6].children[1].querySelector('.igx-filter-tree__expression');
18271827
expect(tree).toBeNull();
18281828
}));

0 commit comments

Comments
 (0)