@@ -96,6 +96,7 @@ export interface KtdGridEnterLeaveEvent {
9696 grid : KtdGridComponent ;
9797 event : PointingDeviceEvent ;
9898 source : DragRef ;
99+ dragInfo : PointerEventInfo ;
99100}
100101
101102export function getDragResizeEventData ( dragRef : DragRef , layout : KtdGridLayout ) : KtdDragResizeEvent {
@@ -551,19 +552,17 @@ export class KtdGridComponent implements OnChanges, AfterContentInit, AfterConte
551552 ) . subscribe ( ( { event, draggableItem} ) => {
552553 this . gridService . startDrag ( event , draggableItem . _dragRef , 'drag' ) ;
553554 } ) ,
554-
555- this . dragEntered . subscribe ( ( { event, } ) => {
556- this . startRestoreDragSequence ( event ) ;
555+ this . dragEntered . subscribe ( ( { event, dragInfo } ) => {
556+ this . startRestoreDragSequence ( event , dragInfo ) ;
557557 } ) ,
558- this . dragExited . subscribe ( ( ) => {
559- this . pauseDragSequence ( ) ;
558+ this . dragExited . subscribe ( ( { dragInfo } ) => {
559+ this . pauseDragSequence ( dragInfo ) ;
560560 } ) ,
561561 this . gridService . pointerBeforeEnd$ . subscribe ( ( { dragInfo} ) => {
562562 if ( this . drag !== null && dragInfo !== null ) {
563563 this . updateLayout ( dragInfo ) ;
564564 this . stopDragSequence ( dragInfo ) ;
565565 }
566- console . log ( this . drag , dragInfo ) ;
567566 } ) ,
568567 this . gridService . pointerEnd$ . subscribe ( ( ) => {
569568 this . drag = null ;
@@ -574,9 +573,13 @@ export class KtdGridComponent implements OnChanges, AfterContentInit, AfterConte
574573 /**
575574 * Starts the drag sequence when a drag event is triggered. It will restore paused drag sequence if it's already started.
576575 * @param event The event that triggered the drag sequence.
576+ * @param dragInfo The drag info.
577577 */
578- private startRestoreDragSequence ( event : PointingDeviceEvent ) : void {
579- const dragInfo = this . gridService . drag ! ;
578+ private startRestoreDragSequence ( event : PointingDeviceEvent , dragInfo : PointerEventInfo ) : void {
579+ if ( this . drag !== null && dragInfo . type === 'resize' ) {
580+ return ;
581+ }
582+
580583 const scrollableParent = typeof this . scrollableParent === 'string' ? document . getElementById ( this . scrollableParent ) : this . scrollableParent ;
581584
582585 // TODO (enhancement): consider move this 'side effect' observable inside the main drag loop.
@@ -593,12 +596,6 @@ export class KtdGridComponent implements OnChanges, AfterContentInit, AfterConte
593596 takeUntil ( this . gridService . pointerEnd$ ) ,
594597 ) . subscribe ( ) ) ;
595598
596- if ( this . drag != null ) {
597- this . drag . dragSubscription = this . createDragResizeLoop ( scrollableParent , dragInfo ) ;
598- this . drag . scrollSubscription = scrollSubscription ;
599- return ;
600- }
601-
602599 this . drag = {
603600 dragSubscription : this . createDragResizeLoop ( scrollableParent , dragInfo ) ,
604601 scrollSubscription,
@@ -614,18 +611,17 @@ export class KtdGridComponent implements OnChanges, AfterContentInit, AfterConte
614611 } ;
615612 }
616613
617- private pauseDragSequence ( ) : void {
618- const dragInfo = this . gridService . drag ! ;
614+ private pauseDragSequence ( dragInfo : PointerEventInfo ) : void {
619615
620616 // If the drag is a resize, we don't need to pause the drag sequence.
621617 if ( dragInfo . type === 'resize' ) {
622618 return ;
623619 }
624620
625621 if ( this . drag != null ) {
622+ this . destroyPlaceholder ( ) ;
626623 this . drag . dragSubscription . unsubscribe ( ) ;
627624 this . drag . scrollSubscription . unsubscribe ( ) ;
628- this . destroyPlaceholder ( ) ;
629625 }
630626 }
631627
@@ -754,14 +750,11 @@ export class KtdGridComponent implements OnChanges, AfterContentInit, AfterConte
754750 ) ;
755751 }
756752
757- // TODO: Call this only when the drag ended, when the drag is paused do nothing.
758753 private stopDragSequence ( dragInfo : PointerEventInfo ) : void {
759754 if ( this . drag === null ) {
760755 return ;
761756 }
762757
763- console . log ( 'stopDragSequence' ) ;
764-
765758 // Remove drag classes
766759 this . renderer . removeClass ( dragInfo . dragRef . elementRef . nativeElement , 'no-transitions' ) ;
767760 this . renderer . removeClass ( dragInfo . dragRef . elementRef . nativeElement , 'ktd-grid-item-dragging' ) ;
0 commit comments