From a998df79c8a4e6eacb840227f1840912359d4860 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 17 Jul 2020 16:33:02 +0300 Subject: [PATCH] feat(components/tree): add drop position to drop event --- .../tree/src/lib/components/tree.component.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts index 5c39c47057..a3d2368dac 100644 --- a/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts +++ b/npm/ng-packs/packages/components/tree/src/lib/components/tree.component.ts @@ -7,9 +7,11 @@ import { TemplateRef, ViewEncapsulation, } from '@angular/core'; -import { NzFormatEmitEvent } from 'ng-zorro-antd/tree'; +import { NzFormatEmitEvent, NzFormatBeforeDropEvent } from 'ng-zorro-antd/tree'; import { of } from 'rxjs'; +export type DropEvent = NzFormatEmitEvent & { pos: -1 | 0 | 1 }; + @Component({ selector: 'abp-tree', templateUrl: 'tree.component.html', @@ -20,11 +22,13 @@ import { of } from 'rxjs'; encapsulation: ViewEncapsulation.None, }) export class TreeComponent { + dropPosition: -1 | 0 | 1; + @ContentChild('menu') menu: TemplateRef; @Output() readonly checkedKeysChange = new EventEmitter(); @Output() readonly expandedKeysChange = new EventEmitter(); @Output() readonly selectedNodeChange = new EventEmitter(); - @Output() readonly dropOver = new EventEmitter(); + @Output() readonly dropOver = new EventEmitter(); @Input() draggable: boolean; @Input() checkable: boolean; @Input() checkStrictly: boolean; @@ -33,7 +37,10 @@ export class TreeComponent { @Input() expandedKeys: string[] = []; @Input() selectedNode: any; @Input() isNodeSelected = node => this.selectedNode?.id === node.key; - @Input() beforeDrop = () => of(false); + @Input() beforeDrop = (event: NzFormatBeforeDropEvent) => { + this.dropPosition = event.pos; + return of(false); + }; onSelectedNodeChange(node) { this.selectedNode = node.origin.entity; @@ -50,9 +57,10 @@ export class TreeComponent { this.expandedKeysChange.emit(event.keys); } - onDrop(event: NzFormatEmitEvent) { + onDrop(event: DropEvent) { event.event.stopPropagation(); event.event.preventDefault(); + event.pos = this.dropPosition; this.dropOver.emit(event); }