Merge pull request #17690 from jaydubu/draggabilly

add types for 'draggabilly'
This commit is contained in:
Ron Buckton
2017-07-05 16:49:42 -07:00
committed by GitHub
4 changed files with 115 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
import Draggabilly from 'draggabilly';
const elem = document.querySelector('.draggable') as Element;
const draggieA = new Draggabilly('.test');
const draggieB = new Draggabilly(elem);
const draggie = new Draggabilly(elem, {
axis: 'x',
containment: true,
grid: [20, 20],
handle: '.handle'
});
const draggiePosX: number = draggie.position.x;
const draggiePosY: number = draggie.position.y;
draggie.on( 'dragMove', (event, pointer, moveVector) => {
const pointerPageX: number = pointer.pageX;
const pointePageY: number = pointer.pageY;
const moveVectorX: number = moveVector.x;
const moveVectorY: number = moveVector.y;
});
draggie.on( 'dragStart', (event, pointer) => {});
draggie.on( 'dragEnd', (event, pointer) => {});
draggie.on( 'pointerDown', (event, pointer) => {});
draggie.on( 'pointerMove', (event, pointer, moveVector) => {});
draggie.on( 'pointerUp', (event, pointer) => {});
draggie.on( 'staticClick', (event, pointer) => {});
draggie.off('dragMove', (event, pointer, moveVector) => {});
draggie.once('dragMove', (event, pointer, moveVector) => {});
draggie.enable();
draggie.disable();
draggie.destroy();
+45
View File
@@ -0,0 +1,45 @@
// Type definitions for draggabilly 2.1
// Project: http://draggabilly.desandro.com/
// Definitions by: Jason Wu <https://github.com/jaydubu/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
export interface Position {
x: number;
y: number;
}
export interface DraggabillyOptions {
axis?: 'x' | 'y';
containment?: Element | string | boolean;
grid?: [number, number];
handle?: string;
}
export type DraggabillyClickEventName = 'dragStart' | 'dragEnd' | 'pointerDown' | 'pointerUp' | 'staticClick';
export type DraggabillyMoveEventName = 'dragMove' | 'pointerMove';
export default class Draggabilly {
position: Position;
constructor(element: Element | string, options?: DraggabillyOptions);
on(eventName: DraggabillyClickEventName, listener: (event: Event, pointer: MouseEvent | Touch) => void): Draggabilly;
on(eventName: DraggabillyMoveEventName, listener: (event: Event, pointer: MouseEvent | Touch, moveVector: Position) => void): Draggabilly;
off(eventName: DraggabillyClickEventName, listener: (event: Event, pointer: MouseEvent | Touch) => void): Draggabilly;
off(eventName: DraggabillyMoveEventName, listener: (event: Event, pointer: MouseEvent | Touch, moveVector: Position) => void): Draggabilly;
once(eventName: DraggabillyClickEventName, listener: (event: Event, pointer: MouseEvent | Touch) => void): Draggabilly;
once(eventName: DraggabillyMoveEventName, listener: (event: Event, pointer: MouseEvent | Touch, moveVector: Position) => void): Draggabilly;
enable(): void;
disable(): void;
destroy(): void;
}
+23
View File
@@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"draggabilly-tests.ts"
]
}
+1
View File
@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }