Skip to content

Commit 985b5aa

Browse files
committed
refactor(query-builder): change how drag service is provided
1 parent 346255f commit 985b5aa

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

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

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,15 @@ const Z_INDEX_TO_SET = 10010; //overlay z-index is 10005
88

99
/** @hidden @internal */
1010
@Injectable()
11-
export class IgxQueryBuilderDragService {
12-
constructor(
13-
@Inject(IgxQueryBuilderTreeComponent)
14-
private _queryBuilderTreeComponent: IgxQueryBuilderTreeComponent,
15-
private _queryBuilderTreeComponentElRef: ElementRef,
16-
@Inject(IgxQueryBuilderTreeComponent)
17-
private _queryBuilderTreeComponentDeleteItem: (expressionItem: ExpressionItem) => void,
18-
@Inject(IgxQueryBuilderTreeComponent)
19-
private _queryBuilderFocusChipAfterDrag: (index: number) => void,
20-
) { }
21-
11+
export class IgxQueryBuilderDragService {
2212
public dropGhostChipNode: Node;
2313
private sourceExpressionItem: ExpressionItem;
2414
private sourceElement: HTMLElement;
2515
private targetExpressionItem: ExpressionItem;
2616
private targetElement: HTMLElement;
2717
private dropUnder: boolean;
18+
private _queryBuilderTreeComponent: IgxQueryBuilderTreeComponent;
19+
private _queryBuilderTreeComponentElRef: ElementRef;
2820
private _ghostChipMousemoveSubscription$: Subscription;
2921
private _keyboardSubscription$: Subscription;
3022
private _keyDragOffsetIndex: number = 0;
@@ -52,6 +44,12 @@ export class IgxQueryBuilderDragService {
5244
return this._queryBuilderTreeComponentElRef.nativeElement.querySelector(`.${QueryBuilderSelectors.FILTER_TREE}`);
5345
}
5446

47+
48+
public register(tree: IgxQueryBuilderTreeComponent, el: ElementRef) {
49+
this._queryBuilderTreeComponent = tree;
50+
this._queryBuilderTreeComponentElRef = el;
51+
}
52+
5553
/** When chip is picked up for dragging
5654
*
5755
* @param sourceDragElement The HTML element of the chip that's been dragged
@@ -173,7 +171,7 @@ export class IgxQueryBuilderDragService {
173171

174172
this.moveDraggedChipToNewLocation(this.sourceExpressionItem, this.targetExpressionItem, this.dropUnder);
175173

176-
this._queryBuilderFocusChipAfterDrag(dropLocationIndex);
174+
this._queryBuilderTreeComponent.focusChipAfterDrag(dropLocationIndex);
177175

178176
this.resetDragAndDrop(true);
179177

@@ -354,7 +352,7 @@ export class IgxQueryBuilderDragService {
354352
appendToExpressionItem.parent.children.splice(index + (dropUnder ? 1 : 0), 0, dragCopy);
355353

356354
//Delete from old place
357-
this._queryBuilderTreeComponentDeleteItem(sourceExpressionItem);
355+
this._queryBuilderTreeComponent.deleteItem(sourceExpressionItem);
358356
}
359357

360358
/** Reset Drag&Drop vars. Optionally the drag source vars too*/

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

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ const DEFAULT_CHIP_FOCUS_DELAY = 50;
9999
IgxTooltipTargetDirective,
100100
NgClass,
101101
NgTemplateOutlet
102+
],
103+
providers: [
104+
IgxQueryBuilderDragService
102105
]
103106
})
104107
export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
@@ -519,11 +522,12 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
519522
}
520523

521524
constructor(public cdr: ChangeDetectorRef,
525+
public dragService: IgxQueryBuilderDragService,
522526
protected platform: PlatformUtil,
523-
protected el: ElementRef,
524527
private elRef: ElementRef,
525528
@Inject(LOCALE_ID) protected _localeId: string) {
526529
this.locale = this.locale || this._localeId;
530+
this.dragService.register(this, elRef);
527531
}
528532

529533
/**
@@ -842,7 +846,10 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
842846
}
843847
}
844848

845-
private deleteItem = (expressionItem: ExpressionItem, skipEmit: boolean = false) => {
849+
/**
850+
* @hidden @internal
851+
*/
852+
public deleteItem = (expressionItem: ExpressionItem, skipEmit: boolean = false) => {
846853
if (!expressionItem.parent) {
847854
this.rootGroup = null;
848855
this.currentGroup = null;
@@ -1025,15 +1032,13 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
10251032
this.deleteItem(expressionItem);
10261033
}
10271034

1028-
private focusChipAfterDrag = (index: number) => {
1029-
this._lastFocusedChipIndex = index;
1030-
this.focusEditedExpressionChip();
1031-
}
1032-
10331035
/**
10341036
* @hidden @internal
10351037
*/
1036-
public dragService: IgxQueryBuilderDragService = new IgxQueryBuilderDragService(this, this.el, this.deleteItem, this.focusChipAfterDrag);
1038+
public focusChipAfterDrag = (index: number) => {
1039+
this._lastFocusedChipIndex = index;
1040+
this.focusEditedExpressionChip();
1041+
}
10371042

10381043
/**
10391044
* @hidden @internal

0 commit comments

Comments
 (0)