Skip to content

Commit a5c69f4

Browse files
committed
refactor(query-builder): change how drag service is provided
1 parent 9898d98 commit a5c69f4

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
/**
@@ -840,7 +844,10 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
840844
}
841845
}
842846

843-
private deleteItem = (expressionItem: ExpressionItem, skipEmit: boolean = false) => {
847+
/**
848+
* @hidden @internal
849+
*/
850+
public deleteItem = (expressionItem: ExpressionItem, skipEmit: boolean = false) => {
844851
if (!expressionItem.parent) {
845852
this.rootGroup = null;
846853
this.currentGroup = null;
@@ -1023,15 +1030,13 @@ export class IgxQueryBuilderTreeComponent implements AfterViewInit, OnDestroy {
10231030
this.deleteItem(expressionItem);
10241031
}
10251032

1026-
private focusChipAfterDrag = (index: number) => {
1027-
this._lastFocusedChipIndex = index;
1028-
this.focusEditedExpressionChip();
1029-
}
1030-
10311033
/**
10321034
* @hidden @internal
10331035
*/
1034-
public dragService: IgxQueryBuilderDragService = new IgxQueryBuilderDragService(this, this.el, this.deleteItem, this.focusChipAfterDrag);
1036+
public focusChipAfterDrag = (index: number) => {
1037+
this._lastFocusedChipIndex = index;
1038+
this.focusEditedExpressionChip();
1039+
}
10351040

10361041
/**
10371042
* @hidden @internal

0 commit comments

Comments
 (0)