1- import { Directive , ElementRef , Input , Inject , Renderer , OnDestroy } from '@angular/core' ;
1+ import { Directive , ElementRef , Input , Inject , Renderer , OnDestroy , OnInit } from '@angular/core' ;
22import { TreeModel } from '../tree.types' ;
33import { NodeDraggableService } from './node-draggable.service' ;
44import { CapturedNode } from './captured-node' ;
@@ -7,7 +7,7 @@ import { NodeDraggableEvent } from './draggable.types';
77@Directive ( {
88 selector : '[nodeDraggable]'
99} )
10- export class NodeDraggableDirective implements OnDestroy {
10+ export class NodeDraggableDirective implements OnDestroy , OnInit {
1111 public static DATA_TRANSFER_STUB_DATA : string = 'some browsers enable drag-n-drop only when dataTransfer has data' ;
1212
1313 @Input ( )
@@ -24,15 +24,18 @@ export class NodeDraggableDirective implements OnDestroy {
2424 @Inject ( Renderer ) private renderer : Renderer ) {
2525
2626 this . nodeNativeElement = element . nativeElement ;
27+ }
2728
28- renderer . setElementAttribute ( this . nodeNativeElement , 'draggable' , 'true' ) ;
29-
30- this . disposersForDragListeners . push ( renderer . listen ( this . nodeNativeElement , 'dragstart' , this . handleDragStart . bind ( this ) ) ) ;
31- this . disposersForDragListeners . push ( renderer . listen ( this . nodeNativeElement , 'dragenter' , this . handleDragEnter . bind ( this ) ) ) ;
32- this . disposersForDragListeners . push ( renderer . listen ( this . nodeNativeElement , 'dragover' , this . handleDragOver . bind ( this ) ) ) ;
33- this . disposersForDragListeners . push ( renderer . listen ( this . nodeNativeElement , 'dragleave' , this . handleDragLeave . bind ( this ) ) ) ;
34- this . disposersForDragListeners . push ( renderer . listen ( this . nodeNativeElement , 'drop' , this . handleDrop . bind ( this ) ) ) ;
35- this . disposersForDragListeners . push ( renderer . listen ( this . nodeNativeElement , 'dragend' , this . handleDragEnd . bind ( this ) ) ) ;
29+ public ngOnInit ( ) : void {
30+ if ( ! this . tree . options . static ) {
31+ this . renderer . setElementAttribute ( this . nodeNativeElement , 'draggable' , 'true' ) ;
32+ this . disposersForDragListeners . push ( this . renderer . listen ( this . nodeNativeElement , 'dragenter' , this . handleDragEnter . bind ( this ) ) ) ;
33+ this . disposersForDragListeners . push ( this . renderer . listen ( this . nodeNativeElement , 'dragover' , this . handleDragOver . bind ( this ) ) ) ;
34+ this . disposersForDragListeners . push ( this . renderer . listen ( this . nodeNativeElement , 'dragstart' , this . handleDragStart . bind ( this ) ) ) ;
35+ this . disposersForDragListeners . push ( this . renderer . listen ( this . nodeNativeElement , 'dragleave' , this . handleDragLeave . bind ( this ) ) ) ;
36+ this . disposersForDragListeners . push ( this . renderer . listen ( this . nodeNativeElement , 'drop' , this . handleDrop . bind ( this ) ) ) ;
37+ this . disposersForDragListeners . push ( this . renderer . listen ( this . nodeNativeElement , 'dragend' , this . handleDragEnd . bind ( this ) ) ) ;
38+ }
3639 }
3740
3841 public ngOnDestroy ( ) : void {
0 commit comments