Skip to content

Commit 1a0d413

Browse files
committed
refactor(query-builder): change how drag service is provided
1 parent 9b10757 commit 1a0d413

File tree

2 files changed

+26
-27
lines changed

2 files changed

+26
-27
lines changed

projects/igniteui-angular/src/lib/query-builder/query-builder-drag.service.ts

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { filter, fromEvent, sampleTime, Subscription } from 'rxjs';
22
import { IgxQueryBuilderTreeComponent } from './query-builder-tree.component';
3-
import { ElementRef, Inject, Injectable } from '@angular/core';
3+
import { ElementRef, Injectable } from '@angular/core';
44
import { ExpressionGroupItem, ExpressionItem, ExpressionOperandItem, QueryBuilderSelectors } from './query-builder.common';
55
import { IgxChipComponent } from '../chips/chip.component';
66

@@ -10,19 +10,12 @@ const Z_INDEX_TO_SET = 10010; //overlay z-index is 10005
1010
/** @hidden @internal */
1111
@Injectable()
1212
export class IgxQueryBuilderDragService {
13-
constructor(
14-
@Inject(IgxQueryBuilderTreeComponent)
15-
private _queryBuilderTreeComponent: IgxQueryBuilderTreeComponent,
16-
private _queryBuilderTreeComponentElRef: ElementRef,
17-
@Inject(IgxQueryBuilderTreeComponent)
18-
private _deleteExpression: (expressionItem: ExpressionItem) => void,
19-
@Inject(IgxQueryBuilderTreeComponent)
20-
private _focusChipAfterDrag: (index: number) => void,
21-
) { }
22-
13+
2314
/** The ExpressionItem that's actually the drop ghost's content */
2415
public dropGhostExpression: ExpressionItem;
2516
public isKeyboardDrag: boolean;
17+
private _queryBuilderTreeComponent: IgxQueryBuilderTreeComponent;
18+
private _queryBuilderTreeComponentElRef: ElementRef;
2619
private _sourceExpressionItem: ExpressionItem;
2720
private _sourceElement: HTMLElement;
2821
private _targetExpressionItem: ExpressionItem;
@@ -51,6 +44,12 @@ export class IgxQueryBuilderDragService {
5144
return this._queryBuilderTreeComponentElRef.nativeElement.querySelector(`.${QueryBuilderSelectors.FILTER_TREE}`);
5245
}
5346

47+
48+
public register(tree: IgxQueryBuilderTreeComponent, el: ElementRef) {
49+
this._queryBuilderTreeComponent = tree;
50+
this._queryBuilderTreeComponentElRef = el;
51+
}
52+
5453
/** When chip is picked up for dragging
5554
*
5655
* @param sourceDragElement The HTML element of the chip that's been dragged
@@ -179,10 +178,10 @@ export class IgxQueryBuilderDragService {
179178
const [dropLocationIndex, _] = this.countChipsBeforeDropLocation(this._queryBuilderTreeComponent.rootGroup);
180179

181180
//Delete from old place
182-
this._deleteExpression(this._sourceExpressionItem);
181+
this._queryBuilderTreeComponent.deleteItem(this._sourceExpressionItem);
183182
this.dropGhostExpression = null;
184183

185-
this._focusChipAfterDrag(dropLocationIndex);
184+
this._queryBuilderTreeComponent.focusChipAfterDrag(dropLocationIndex);
186185

187186
this.resetDragAndDrop(true);
188187

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

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ const DEFAULT_CHIP_FOCUS_DELAY = 50;
9999
IgxTooltipTargetDirective,
100100
NgClass,
101101
NgTemplateOutlet
102-
]
102+
],
103+
providers: [
104+
IgxQueryBuilderDragService
105+
],
103106
})
104107
export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
105108
/**
@@ -531,11 +534,12 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
531534
}
532535

533536
constructor(public cdr: ChangeDetectorRef,
537+
public dragService: IgxQueryBuilderDragService,
534538
protected platform: PlatformUtil,
535-
protected el: ElementRef,
536539
private elRef: ElementRef,
537540
@Inject(LOCALE_ID) protected _localeId: string) {
538541
this.locale = this.locale || this._localeId;
542+
this.dragService.register(this, elRef);
539543
}
540544

541545
/**
@@ -852,7 +856,10 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
852856
}
853857
}
854858

855-
private deleteItem = (expressionItem: ExpressionItem, skipEmit: boolean = false) => {
859+
/**
860+
* @hidden @internal
861+
*/
862+
public deleteItem = (expressionItem: ExpressionItem, skipEmit: boolean = false) => {
856863
if (!expressionItem.parent) {
857864
this.rootGroup = null;
858865
this.currentGroup = null;
@@ -1035,20 +1042,13 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
10351042
this.deleteItem(expressionItem);
10361043
}
10371044

1038-
private focusChipAfterDrag = (index: number) => {
1039-
this._lastFocusedChipIndex = index;
1040-
this.focusEditedExpressionChip();
1041-
}
1042-
10431045
/**
10441046
* @hidden @internal
10451047
*/
1046-
public dragService: IgxQueryBuilderDragService = new IgxQueryBuilderDragService(
1047-
this,
1048-
this.el,
1049-
this.deleteItem,
1050-
this.focusChipAfterDrag);
1051-
1048+
public focusChipAfterDrag = (index: number) => {
1049+
this._lastFocusedChipIndex = index;
1050+
this.focusEditedExpressionChip();
1051+
}
10521052
/**
10531053
* @hidden @internal
10541054
*/

0 commit comments

Comments
 (0)