Adam Shaw 7 лет назад
Родитель
Сommit
6ff374dc94
4 измененных файлов с 26 добавлено и 18 удалено
  1. 2 2
      src/dnd/ElementMirror.ts
  2. 2 2
      src/dnd/FeaturefulElementDragging.ts
  3. 16 14
      src/dnd/PointerDragging.ts
  4. 6 0
      src/dnd/tsconfig.json

+ 2 - 2
src/dnd/ElementMirror.ts

@@ -22,7 +22,7 @@ export default class ElementMirror {
   // TODO: wire up
   revertDuration: number = 1000
 
-  start(sourceEl, left, top) {
+  start(sourceEl: HTMLElement, left: number, top: number) {
     this.sourceEl = sourceEl
     this.origX = left
     this.origY = top
@@ -31,7 +31,7 @@ export default class ElementMirror {
     this.updateElPosition()
   }
 
-  handleMove(left, top) {
+  handleMove(left: number, top: number) {
     this.deltaX = left - this.origX
     this.deltaY = top - this.origY
     this.updateElPosition()

+ 2 - 2
src/dnd/FeaturefulElementDragging.ts

@@ -150,7 +150,7 @@ export default class FeaturefulElementDragging extends ElementDragging {
     }
   }
 
-  tryStopDrag(ev) {
+  tryStopDrag(ev: PointerDragEvent) {
     // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events
     // that come from the document to fire beforehand. much more convenient this way.
     this.mirror.stop(
@@ -159,7 +159,7 @@ export default class FeaturefulElementDragging extends ElementDragging {
     )
   }
 
-  stopDrag(ev) {
+  stopDrag(ev: PointerDragEvent) {
     this.isDragging = false
     this.emitter.trigger('dragend', ev)
   }

+ 16 - 14
src/dnd/PointerDragging.ts

@@ -197,7 +197,7 @@ export default class PointerDragging {
 // Event Normalization
 // ----------------------------------------------------------------------------------------------------
 
-function createEventFromMouse(ev, subjectEl: HTMLElement): PointerDragEvent {
+function createEventFromMouse(ev: MouseEvent, subjectEl: HTMLElement): PointerDragEvent {
   return {
     origEvent: ev,
     isTouch: false,
@@ -207,26 +207,28 @@ function createEventFromMouse(ev, subjectEl: HTMLElement): PointerDragEvent {
   }
 }
 
-function createEventFromTouch(ev, subjectEl: HTMLElement): PointerDragEvent {
-  let pev = {
-    origEvent: ev,
-    isTouch: true,
-    subjectEl
-  } as PointerDragEvent
-
+function createEventFromTouch(ev: TouchEvent, subjectEl: HTMLElement): PointerDragEvent {
   let touches = ev.touches
+  let pageX
+  let pageY
 
   // if touch coords available, prefer,
   // because FF would give bad ev.pageX ev.pageY
   if (touches && touches.length) {
-    pev.pageX = touches[0].pageX
-    pev.pageY = touches[0].pageY
+    pageX = touches[0].pageX
+    pageY = touches[0].pageY
   } else {
-    pev.pageX = ev.pageX
-    pev.pageY = ev.pageY
+    pageX = (ev as any).pageX
+    pageY = (ev as any).pageY
   }
 
-  return pev
+  return {
+    origEvent: ev,
+    isTouch: true,
+    subjectEl,
+    pageX,
+    pageY
+  }
 }
 
 // Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)
@@ -267,7 +269,7 @@ function listenerDestroyed() {
   }
 }
 
-function onWindowTouchMove(ev) {
+function onWindowTouchMove(ev: UIEvent) {
   if (isWindowTouchMoveCancelled) {
     ev.preventDefault()
   }

+ 6 - 0
src/dnd/tsconfig.json

@@ -0,0 +1,6 @@
+{
+  "extends": "../../tsconfig",
+  "compilerOptions": {
+    "noImplicitAny": true
+  }
+}