UNPKG

9.31 kBTypeScriptView Raw
1// Type definitions for Hammer.js 2.0.8
2// Project: http://hammerjs.github.io/
3// Definitions by: Han Lin Yap <https://github.com/codler>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6declare var Hammer:HammerStatic;
7
8declare module "hammerjs" {
9 export = Hammer;
10}
11
12interface HammerStatic
13{
14 new( element:HTMLElement | SVGElement, options?:HammerOptions ): HammerManager;
15
16 defaults:HammerDefaults;
17
18 VERSION: number;
19
20 INPUT_START: 1;
21 INPUT_MOVE: 2;
22 INPUT_END: 4;
23 INPUT_CANCEL: 8;
24
25 STATE_POSSIBLE: 1;
26 STATE_BEGAN: 2;
27 STATE_CHANGED: 4;
28 STATE_ENDED: 8;
29 STATE_RECOGNIZED: 8; // same as STATE_ENDED
30 STATE_CANCELLED: 16;
31 STATE_FAILED: 32;
32
33 DIRECTION_NONE: 1;
34 DIRECTION_LEFT: 2;
35 DIRECTION_RIGHT: 4;
36 DIRECTION_UP: 8;
37 DIRECTION_DOWN: 16;
38 DIRECTION_HORIZONTAL: 6; // DIRECTION_LEFT | DIRECTION_RIGHT
39 DIRECTION_VERTICAL: 24; // DIRECTION_UP | DIRECTION_DOWN
40 DIRECTION_ALL: 30; // DIRECTION_HORIZONTAL | DIRECTION_VERTICAL
41
42 Manager: HammerManagerConstructor;
43 Input: HammerInput;
44 TouchAction: TouchAction;
45
46 TouchInput: TouchInput;
47 MouseInput: MouseInput;
48 PointerEventInput: PointerEventInput;
49 TouchMouseInput: TouchMouseInput;
50 SingleTouchInput: SingleTouchInput;
51
52 Recognizer: RecognizerStatic;
53 AttrRecognizer: AttrRecognizerStatic;
54 Tap: TapRecognizerStatic;
55 Pan: PanRecognizerStatic;
56 Swipe: SwipeRecognizerStatic;
57 Pinch: PinchRecognizerStatic;
58 Rotate: RotateRecognizerStatic;
59 Press: PressRecognizerStatic;
60
61 on( target:EventTarget, types:string, handler:Function ):void;
62 off( target:EventTarget, types:string, handler:Function ):void;
63 each( obj:any, iterator:Function, context:any ): void;
64 merge( dest:any, src:any ): any;
65 extend( dest:any, src:any, merge:boolean ): any;
66 inherit( child:Function, base:Function, properties:any ):any;
67 bindFn( fn:Function, context:any ):Function;
68 prefixed( obj:any, property:string ):string;
69}
70
71type RecognizerTuple =
72 [RecognizerStatic]
73 | [RecognizerStatic, RecognizerOptions]
74 | [RecognizerStatic, RecognizerOptions, string | string[]]
75 | [RecognizerStatic, RecognizerOptions, string | string[], (string | Recognizer) | (string | Recognizer)[]];
76
77interface HammerDefaults extends HammerOptions
78{
79 domEvents:boolean;
80 enable:boolean;
81 preset:RecognizerTuple[];
82 touchAction:string;
83 cssProps:CssProps;
84
85 inputClass:HammerInput;
86 inputTarget:EventTarget;
87}
88
89interface CssProps
90{
91 contentZooming:string;
92 tapHighlightColor:string;
93 touchCallout:string;
94 touchSelect:string;
95 userDrag:string;
96 userSelect:string;
97}
98
99interface HammerOptions
100{
101 cssProps?:CssProps | undefined;
102 domEvents?:boolean | undefined;
103 enable?:boolean | ((manager: HammerManager) => boolean) | undefined;
104 preset?:RecognizerTuple[] | undefined;
105 touchAction?:string | undefined;
106 recognizers?:RecognizerTuple[] | undefined;
107
108 inputClass?:HammerInput | undefined;
109 inputTarget?:EventTarget | undefined;
110}
111
112interface HammerManagerConstructor {
113 new( element:EventTarget, options?:HammerOptions ):HammerManager;
114}
115
116interface HammerListener {
117 (event:HammerInput): void
118}
119
120interface HammerManager
121{
122 add( recogniser:Recognizer ):Recognizer;
123 add( recogniser:Recognizer ):HammerManager;
124 add( recogniser:Recognizer[] ):Recognizer;
125 add( recogniser:Recognizer[] ):HammerManager;
126 destroy():void;
127 emit( event:string, data:any ):void;
128 get( recogniser:Recognizer ):Recognizer;
129 get( recogniser:string ):Recognizer;
130 off( events:string, handler?:HammerListener ):void;
131 on( events:string, handler:HammerListener ):void;
132 recognize( inputData:any ):void;
133 remove( recogniser:Recognizer ):HammerManager;
134 remove( recogniser:string ):HammerManager;
135 set( options:HammerOptions ):HammerManager;
136 stop( force:boolean ):void;
137}
138
139declare class HammerInput
140{
141 constructor( manager:HammerManager, callback:Function );
142
143 destroy():void;
144 handler():void;
145 init():void;
146
147 /** Name of the event. Like panstart. */
148 type:string;
149
150 /** Movement of the X axis. */
151 deltaX:number;
152
153 /** Movement of the Y axis. */
154 deltaY:number;
155
156 /** Total time in ms since the first input. */
157 deltaTime:number;
158
159 /** Distance moved. */
160 distance:number;
161
162 /** Angle moved. */
163 angle:number;
164
165 /** Velocity on the X axis, in px/ms. */
166 velocityX:number;
167
168 /** Velocity on the Y axis, in px/ms */
169 velocityY:number;
170
171 /** Highest velocityX/Y value. */
172 velocity:number;
173
174 overallVelocity:number;
175
176 overallVelocityX:number;
177
178 overallVelocityY:number;
179
180 /** Direction moved. Matches the DIRECTION constants. */
181 direction:number;
182
183 /** Direction moved from it's starting point. Matches the DIRECTION constants. */
184 offsetDirection:number;
185
186 /** Scaling that has been done when multi-touch. 1 on a single touch. */
187 scale:number;
188
189 /** Rotation that has been done when multi-touch. 0 on a single touch. */
190 rotation:number;
191
192 /** Center position for multi-touch, or just the single pointer. */
193 center:HammerPoint;
194
195 /** Source event object, type TouchEvent, MouseEvent or PointerEvent. */
196 srcEvent:TouchEvent | MouseEvent | PointerEvent;
197
198 /** Target that received the event. */
199 target:HTMLElement;
200
201 /** Primary pointer type, could be touch, mouse, pen or kinect. */
202 pointerType:string;
203
204 /** Event type, matches the INPUT constants. */
205 eventType: HammerStatic['INPUT_START'] |
206 HammerStatic['INPUT_MOVE'] |
207 HammerStatic['INPUT_END'] |
208 HammerStatic['INPUT_CANCEL'];
209
210 /** true when the first input. */
211 isFirst:boolean;
212
213 /** true when the final (last) input. */
214 isFinal:boolean;
215
216 /** Array with all pointers, including the ended pointers (touchend, mouseup). */
217 pointers:any[];
218
219 /** Array with all new/moved/lost pointers. */
220 changedPointers:any[];
221
222 /** Maximum number of pointers detected in the gesture */
223 maxPointers:number;
224
225 /** Timestamp of a gesture */
226 timeStamp:number;
227
228 /** Reference to the srcEvent.preventDefault() method. Only for experts! */
229 preventDefault:Function;
230}
231
232declare class MouseInput extends HammerInput
233{
234 constructor( manager:HammerManager, callback:Function );
235}
236
237declare class PointerEventInput extends HammerInput
238{
239 constructor( manager:HammerManager, callback:Function );
240}
241
242declare class SingleTouchInput extends HammerInput
243{
244 constructor( manager:HammerManager, callback:Function );
245}
246
247declare class TouchInput extends HammerInput
248{
249 constructor( manager:HammerManager, callback:Function );
250}
251
252declare class TouchMouseInput extends HammerInput
253{
254 constructor( manager:HammerManager, callback:Function );
255}
256
257interface RecognizerOptions {
258 direction?: number | undefined;
259 enable?: boolean | ((recognizer: Recognizer, inputData: HammerInput) => boolean) | undefined;
260 event?: string | undefined;
261 interval?: number | undefined;
262 pointers?: number | undefined;
263 posThreshold?: number | undefined;
264 taps?: number | undefined
265 threshold?: number | undefined;
266 time?: number | undefined;
267 velocity?: number | undefined;
268}
269
270interface RecognizerStatic
271{
272 new( options?:RecognizerOptions ):Recognizer;
273}
274
275interface Recognizer
276{
277 defaults:any;
278
279 canEmit():boolean;
280 canRecognizeWith( otherRecognizer:Recognizer ):boolean;
281 dropRecognizeWith( otherRecognizer:Recognizer | Recognizer[] | string):Recognizer;
282 dropRequireFailure( otherRecognizer:Recognizer | Recognizer[] | string):Recognizer;
283 emit( input:HammerInput ):void;
284 getTouchAction():any[];
285 hasRequireFailures():boolean;
286 process( inputData:HammerInput ):string;
287 recognize( inputData:HammerInput ):void;
288 recognizeWith( otherRecognizer:Recognizer | Recognizer[] | string):Recognizer;
289 requireFailure( otherRecognizer:Recognizer | Recognizer[] | string):Recognizer;
290 reset():void;
291 set( options?:RecognizerOptions ):Recognizer;
292 tryEmit( input:HammerInput ):void;
293}
294
295interface AttrRecognizerStatic
296{
297 attrTest( input:HammerInput ):boolean;
298 process( input:HammerInput ):any;
299}
300
301interface AttrRecognizer extends Recognizer
302{
303 new( options?:RecognizerOptions ):AttrRecognizer;
304}
305
306interface PanRecognizerStatic
307{
308 new( options?:RecognizerOptions ):PanRecognizer;
309}
310
311interface PanRecognizer extends AttrRecognizer
312{
313}
314
315interface PinchRecognizerStatic
316{
317 new( options?:RecognizerOptions ):PinchRecognizer;
318}
319
320interface PinchRecognizer extends AttrRecognizer
321{
322}
323
324interface PressRecognizerStatic
325{
326 new( options?:RecognizerOptions ):PressRecognizer;
327}
328
329interface PressRecognizer extends AttrRecognizer
330{
331}
332
333interface RotateRecognizerStatic
334{
335 new( options?:RecognizerOptions ):RotateRecognizer;
336}
337
338interface RotateRecognizer extends AttrRecognizer
339{
340}
341
342interface SwipeRecognizerStatic
343{
344 new( options?:RecognizerOptions ):SwipeRecognizer;
345}
346
347interface SwipeRecognizer extends AttrRecognizer
348{
349}
350
351interface TapRecognizerStatic
352{
353 new( options?:RecognizerOptions ):TapRecognizer;
354}
355
356interface TapRecognizer extends AttrRecognizer
357{
358}
359
360declare class TouchAction
361{
362 constructor( manager:HammerManager, value:string );
363
364 compute():string;
365 preventDefaults( input:HammerInput ):void;
366 preventSrc( srcEvent:any ):void;
367 set( value:string ):void;
368 update():void;
369}
370
371interface HammerPoint
372{
373 x: number;
374 y: number;
375}
376
\No newline at end of file