From 1bc27dd241338b9c40d968e8f3f55e1f67bcdbef Mon Sep 17 00:00:00 2001 From: jalal246 Date: Thu, 15 Jul 2021 13:39:06 +0200 Subject: [PATCH 1/2] init --- packages/dnd/src/Draggable/Base.ts | 2 +- packages/dnd/src/Draggable/Draggable.ts | 14 +++++--------- packages/dnd/src/Draggable/types.ts | 2 +- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/dnd/src/Draggable/Base.ts b/packages/dnd/src/Draggable/Base.ts index 0007cc77b..c73dc9ceb 100644 --- a/packages/dnd/src/Draggable/Base.ts +++ b/packages/dnd/src/Draggable/Base.ts @@ -31,7 +31,7 @@ class Base extends AbstractDraggable implements DraggableBaseInterface { - tempIndex: number; + tempIndex: number | null; operationID: string; diff --git a/packages/dnd/src/Draggable/Draggable.ts b/packages/dnd/src/Draggable/Draggable.ts index e71bf2144..7acdea842 100644 --- a/packages/dnd/src/Draggable/Draggable.ts +++ b/packages/dnd/src/Draggable/Draggable.ts @@ -96,16 +96,12 @@ class Draggable extends Base implements DraggableDnDInterface { !$.allowLeavingFromBottom); } - private getLastElmIndex() { - return this.siblingsList!.length - 1; - } - private isFirstOrOutside() { - return this.siblingsList !== null && this.tempIndex <= 0; + return this.siblingsList !== null && this.tempIndex === null; } private isLastELm() { - return this.tempIndex === this.getLastElmIndex(); + return this.tempIndex === this.siblingsList!.length - 1; } private axesRightFilter(x: number, minRight: number) { @@ -134,14 +130,14 @@ class Draggable extends Base implements DraggableDnDInterface { } private axesBottomFilter(y: number, bottom: number) { - return (this.tempIndex < 0 || this.isLastELm()) && + return (this.tempIndex === null || this.isLastELm()) && y - this.innerOffsetY + this.draggedElm.offset.height >= bottom ? bottom + this.innerOffsetY - this.draggedElm.offset.height : y; } private axesTopFilter(y: number, maxTop: number) { - return this.tempIndex <= 0 && y - this.innerOffsetY <= maxTop + return this.tempIndex === null && y - this.innerOffsetY <= maxTop ? maxTop + this.innerOffsetY : y; } @@ -212,7 +208,7 @@ class Draggable extends Base implements DraggableDnDInterface { */ return ( (this.isLastELm() && this.tempOffset.currentTop > $.maxBottom) || - (this.tempIndex < 0 && this.tempOffset.currentTop < $.maxTop) + (this.tempIndex == null && this.tempOffset.currentTop < $.maxTop) ); } diff --git a/packages/dnd/src/Draggable/types.ts b/packages/dnd/src/Draggable/types.ts index 75bca38f6..4fa96f32c 100644 --- a/packages/dnd/src/Draggable/types.ts +++ b/packages/dnd/src/Draggable/types.ts @@ -46,7 +46,7 @@ export interface Restrictions { export interface DraggableBaseInterface extends AbstractDraggableInterface { - tempIndex: number; + tempIndex: number|null; operationID: string; opts: FinalDndOpts; From 768f6ea1240c61020051bc278397a748ee595395 Mon Sep 17 00:00:00 2001 From: jalal246 Date: Thu, 15 Jul 2021 13:47:41 +0200 Subject: [PATCH 2/2] wip --- packages/dnd/src/Draggable/Draggable.ts | 10 ++++++---- packages/dnd/src/Draggable/types.ts | 2 +- packages/dnd/src/Droppable/Droppable.ts | 9 +++++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/dnd/src/Draggable/Draggable.ts b/packages/dnd/src/Draggable/Draggable.ts index 7acdea842..0556de3d6 100644 --- a/packages/dnd/src/Draggable/Draggable.ts +++ b/packages/dnd/src/Draggable/Draggable.ts @@ -354,11 +354,13 @@ class Draggable extends Base implements DraggableDnDInterface { this.draggedElm.transformElm(); - if (this.siblingsList) { - this.draggedElm.assignNewPosition(this.siblingsList, this.tempIndex); - } + if (this.tempIndex !== null) { + if (this.siblingsList) { + this.draggedElm.assignNewPosition(this.siblingsList, this.tempIndex); + } - this.draggedElm.order.self = this.tempIndex; + this.draggedElm.order.self = this.tempIndex; + } } endDragging() { diff --git a/packages/dnd/src/Draggable/types.ts b/packages/dnd/src/Draggable/types.ts index 4fa96f32c..a890f110c 100644 --- a/packages/dnd/src/Draggable/types.ts +++ b/packages/dnd/src/Draggable/types.ts @@ -46,7 +46,7 @@ export interface Restrictions { export interface DraggableBaseInterface extends AbstractDraggableInterface { - tempIndex: number|null; + tempIndex: number | null; operationID: string; opts: FinalDndOpts; diff --git a/packages/dnd/src/Droppable/Droppable.ts b/packages/dnd/src/Droppable/Droppable.ts index 4f2994056..e87011f05 100644 --- a/packages/dnd/src/Droppable/Droppable.ts +++ b/packages/dnd/src/Droppable/Droppable.ts @@ -311,7 +311,8 @@ class Droppable { } private switchElement() { - const elmIndex = this.draggable.tempIndex + -1 * this.effectedElemDirection; + const elmIndex = + this.draggable.tempIndex! + -1 * this.effectedElemDirection; const id = this.draggable.siblingsList![elmIndex]; if (this.isIDEligible2Move(id)) { @@ -322,10 +323,10 @@ class Droppable { } private liftUp() { - const from = this.draggable.tempIndex + 1; + const from = this.draggable.tempIndex! + 1; - this.leftAtIndex = this.draggable.tempIndex; - this.draggable.tempIndex = -1; + this.leftAtIndex = this.draggable.tempIndex!; + this.draggable.tempIndex = null; for (let i = from; i < this.draggable.siblingsList!.length; i += 1) { /**