hammerjs.d.ts 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. // Type definitions for Hammer.js 2.0.4
  2. // Project: http://hammerjs.github.io/
  3. // Definitions by: Philip Bulley <https://github.com/milkisevil/>, Han Lin Yap <https://github.com/codler>
  4. // Definitions: https://github.com/borisyankov/DefinitelyTyped
  5. declare var Hammer:HammerStatic;
  6. declare module "Hammer" {
  7. export = Hammer;
  8. }
  9. interface HammerStatic
  10. {
  11. new( element:HTMLElement, options?:any ): HammerManager;
  12. defaults:HammerDefaults;
  13. VERSION: number;
  14. INPUT_START: number;
  15. INPUT_MOVE: number;
  16. INPUT_END: number;
  17. INPUT_CANCEL: number;
  18. STATE_POSSIBLE: number;
  19. STATE_BEGAN: number;
  20. STATE_CHANGED: number;
  21. STATE_ENDED: number;
  22. STATE_RECOGNIZED: number;
  23. STATE_CANCELLED: number;
  24. STATE_FAILED: number;
  25. DIRECTION_NONE: number;
  26. DIRECTION_LEFT: number;
  27. DIRECTION_RIGHT: number;
  28. DIRECTION_UP: number;
  29. DIRECTION_DOWN: number;
  30. DIRECTION_HORIZONTAL: number;
  31. DIRECTION_VERTICAL: number;
  32. DIRECTION_ALL: number;
  33. Manager: HammerManager;
  34. Input: HammerInput;
  35. TouchAction: TouchAction;
  36. TouchInput: TouchInput;
  37. MouseInput: MouseInput;
  38. PointerEventInput: PointerEventInput;
  39. TouchMouseInput: TouchMouseInput;
  40. SingleTouchInput: SingleTouchInput;
  41. Recognizer: RecognizerStatic;
  42. AttrRecognizer: AttrRecognizerStatic;
  43. Tap: TapRecognizerStatic;
  44. Pan: PanRecognizerStatic;
  45. Swipe: SwipeRecognizerStatic;
  46. Pinch: PinchRecognizerStatic;
  47. Rotate: RotateRecognizerStatic;
  48. Press: PressRecognizerStatic;
  49. on( target:EventTarget, types:string, handler:Function ):void;
  50. off( target:EventTarget, types:string, handler:Function ):void;
  51. each( obj:any, iterator:Function, context:any ): void;
  52. merge( dest:any, src:any ): any;
  53. extend( dest:any, src:any, merge:boolean ): any;
  54. inherit( child:Function, base:Function, properties:any ):any;
  55. bindFn( fn:Function, context:any ):Function;
  56. prefixed( obj:any, property:string ):string;
  57. }
  58. interface HammerDefaults
  59. {
  60. domEvents:boolean;
  61. enable:boolean;
  62. preset:any[];
  63. touchAction:string;
  64. cssProps:CssProps;
  65. inputClass():void;
  66. inputTarget():void;
  67. }
  68. interface CssProps
  69. {
  70. contentZooming:string;
  71. tapHighlightColor:string;
  72. touchCallout:string;
  73. touchSelect:string;
  74. userDrag:string;
  75. userSelect:string;
  76. }
  77. interface HammerOptions extends HammerDefaults
  78. {
  79. }
  80. interface HammerManager
  81. {
  82. new( element:HTMLElement, options?:any ):HammerManager;
  83. add( recogniser:Recognizer ):Recognizer;
  84. add( recogniser:Recognizer ):HammerManager;
  85. add( recogniser:Recognizer[] ):Recognizer;
  86. add( recogniser:Recognizer[] ):HammerManager;
  87. destroy():void;
  88. emit( event:string, data:any ):void;
  89. get( recogniser:Recognizer ):Recognizer;
  90. get( recogniser:string ):Recognizer;
  91. off( events:string, handler:( event:HammerInput ) => void ):void;
  92. on( events:string, handler:( event:HammerInput ) => void ):void;
  93. recognize( inputData:any ):void;
  94. remove( recogniser:Recognizer ):HammerManager;
  95. remove( recogniser:string ):HammerManager;
  96. set( options:HammerOptions ):HammerManager;
  97. stop( force:boolean ):void;
  98. }
  99. declare class HammerInput
  100. {
  101. constructor( manager:HammerManager, callback:Function );
  102. destroy():void;
  103. handler():void;
  104. init():void;
  105. /** Name of the event. Like panstart. */
  106. type:string;
  107. /** Movement of the X axis. */
  108. deltaX:number;
  109. /** Movement of the Y axis. */
  110. deltaY:number;
  111. /** Total time in ms since the first input. */
  112. deltaTime:number;
  113. /** Distance moved. */
  114. distance:number;
  115. /** Angle moved. */
  116. angle:number;
  117. /** Velocity on the X axis, in px/ms. */
  118. velocityX:number;
  119. /** Velocity on the Y axis, in px/ms */
  120. velocityY:number;
  121. /** Highest velocityX/Y value. */
  122. velocity:number;
  123. /** Direction moved. Matches the DIRECTION constants. */
  124. direction:number;
  125. /** Direction moved from it's starting point. Matches the DIRECTION constants. */
  126. offsetDirection:string;
  127. /** Scaling that has been done when multi-touch. 1 on a single touch. */
  128. scale:number;
  129. /** Rotation that has been done when multi-touch. 0 on a single touch. */
  130. rotation:number;
  131. /** Center position for multi-touch, or just the single pointer. */
  132. center:HammerPoint;
  133. /** Source event object, type TouchEvent, MouseEvent or PointerEvent. */
  134. srcEvent:TouchEvent | MouseEvent | PointerEvent;
  135. /** Target that received the event. */
  136. target:HTMLElement;
  137. /** Primary pointer type, could be touch, mouse, pen or kinect. */
  138. pointerType:string;
  139. /** Event type, matches the INPUT constants. */
  140. eventType:string;
  141. /** true when the first input. */
  142. isFirst:boolean;
  143. /** true when the final (last) input. */
  144. isFinal:boolean;
  145. /** Array with all pointers, including the ended pointers (touchend, mouseup). */
  146. pointers:any[];
  147. /** Array with all new/moved/lost pointers. */
  148. changedPointers:any[];
  149. /** Reference to the srcEvent.preventDefault() method. Only for experts! */
  150. preventDefault:Function;
  151. }
  152. declare class MouseInput extends HammerInput
  153. {
  154. constructor( manager:HammerManager, callback:Function );
  155. }
  156. declare class PointerEventInput extends HammerInput
  157. {
  158. constructor( manager:HammerManager, callback:Function );
  159. }
  160. declare class SingleTouchInput extends HammerInput
  161. {
  162. constructor( manager:HammerManager, callback:Function );
  163. }
  164. declare class TouchInput extends HammerInput
  165. {
  166. constructor( manager:HammerManager, callback:Function );
  167. }
  168. declare class TouchMouseInput extends HammerInput
  169. {
  170. constructor( manager:HammerManager, callback:Function );
  171. }
  172. interface RecognizerStatic
  173. {
  174. new( options?:any ):Recognizer;
  175. }
  176. interface Recognizer
  177. {
  178. defaults:any;
  179. canEmit():boolean;
  180. canRecognizeWith( otherRecognizer:Recognizer ):boolean;
  181. dropRecognizeWith( otherRecognizer:Recognizer ):Recognizer;
  182. dropRecognizeWith( otherRecognizer:string ):Recognizer;
  183. dropRequireFailure( otherRecognizer:Recognizer ):Recognizer;
  184. dropRequireFailure( otherRecognizer:string ):Recognizer;
  185. emit( input:HammerInput ):void;
  186. getTouchAction():any[];
  187. hasRequireFailures():boolean;
  188. process( inputData:HammerInput ):string;
  189. recognize( inputData:HammerInput ):void;
  190. recognizeWith( otherRecognizer:Recognizer ):Recognizer;
  191. recognizeWith( otherRecognizer:string ):Recognizer;
  192. requireFailure( otherRecognizer:Recognizer ):Recognizer;
  193. requireFailure( otherRecognizer:string ):Recognizer;
  194. reset():void;
  195. set( options?:any ):Recognizer;
  196. tryEmit( input:HammerInput ):void;
  197. }
  198. interface AttrRecognizerStatic
  199. {
  200. attrTest( input:HammerInput ):boolean;
  201. process( input:HammerInput ):any;
  202. }
  203. interface AttrRecognizer extends Recognizer
  204. {
  205. new( options?:any ):AttrRecognizer;
  206. }
  207. interface PanRecognizerStatic
  208. {
  209. new( options?:any ):PanRecognizer;
  210. }
  211. interface PanRecognizer extends AttrRecognizer
  212. {
  213. }
  214. interface PinchRecognizerStatic
  215. {
  216. new( options?:any ):PinchRecognizer;
  217. }
  218. interface PinchRecognizer extends AttrRecognizer
  219. {
  220. }
  221. interface PressRecognizerStatic
  222. {
  223. new( options?:any ):PressRecognizer;
  224. }
  225. interface PressRecognizer extends AttrRecognizer
  226. {
  227. }
  228. interface RotateRecognizerStatic
  229. {
  230. new( options?:any ):RotateRecognizer;
  231. }
  232. interface RotateRecognizer extends AttrRecognizer
  233. {
  234. }
  235. interface SwipeRecognizerStatic
  236. {
  237. new( options?:any ):SwipeRecognizer;
  238. }
  239. interface SwipeRecognizer
  240. {
  241. }
  242. interface TapRecognizerStatic
  243. {
  244. new( options?:any ):TapRecognizer;
  245. }
  246. interface TapRecognizer extends AttrRecognizer
  247. {
  248. }
  249. declare class TouchAction
  250. {
  251. constructor( manager:HammerManager, value:string );
  252. compute():string;
  253. preventDefaults( input:HammerInput ):void;
  254. preventSrc( srcEvent:any ):void;
  255. set( value:string ):void;
  256. update():void;
  257. }
  258. interface HammerPoint
  259. {
  260. x: number;
  261. y: number;
  262. }