@react-native-oh-tpl/react-native-gesture-handler 2.12.1-0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (849) hide show
  1. package/DrawerLayout/package.json +6 -0
  2. package/LICENSE +21 -0
  3. package/README.md +62 -0
  4. package/RNGestureHandler.podspec +44 -0
  5. package/Swipeable/package.json +6 -0
  6. package/android/build.gradle +209 -0
  7. package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
  8. package/android/fabric/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +29 -0
  9. package/android/fabric/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +12 -0
  10. package/android/gradle.properties +19 -0
  11. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +10 -0
  12. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +50 -0
  13. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +23 -0
  14. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +25 -0
  15. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +16 -0
  16. package/android/paper/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +13 -0
  17. package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +17 -0
  18. package/android/src/main/AndroidManifest.xml +3 -0
  19. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +21 -0
  20. package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +100 -0
  21. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +807 -0
  22. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerInteractionController.kt +8 -0
  23. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +671 -0
  24. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerRegistry.kt +8 -0
  25. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +47 -0
  26. package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +120 -0
  27. package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +100 -0
  28. package/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt +11 -0
  29. package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +257 -0
  30. package/android/src/main/java/com/swmansion/gesturehandler/core/OnTouchEventListener.kt +9 -0
  31. package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +322 -0
  32. package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +103 -0
  33. package/android/src/main/java/com/swmansion/gesturehandler/core/PointerEventsConfig.kt +23 -0
  34. package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt +125 -0
  35. package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt +93 -0
  36. package/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java +558 -0
  37. package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +168 -0
  38. package/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt +10 -0
  39. package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +16 -0
  40. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +423 -0
  41. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +15 -0
  42. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +75 -0
  43. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +74 -0
  44. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +702 -0
  45. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +100 -0
  46. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +142 -0
  47. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +5 -0
  48. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +78 -0
  49. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +51 -0
  50. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +78 -0
  51. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +69 -0
  52. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +51 -0
  53. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/FlingGestureHandlerEventDataBuilder.kt +30 -0
  54. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/GestureHandlerEventDataBuilder.kt +22 -0
  55. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/HoverGestureHandlerEventDataBuilder.kt +30 -0
  56. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/LongPressGestureHandlerEventDataBuilder.kt +33 -0
  57. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/ManualGestureHandlerEventDataBuilder.kt +5 -0
  58. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/NativeGestureHandlerEventDataBuilder.kt +18 -0
  59. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/PanGestureHandlerEventDataBuilder.kt +42 -0
  60. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/PinchGestureHandlerEventDataBuilder.kt +30 -0
  61. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/RotationGestureHandlerEventDataBuilder.kt +30 -0
  62. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/TapGestureHandlerEventDataBuilder.kt +30 -0
  63. package/android/src/main/jni/CMakeLists.txt +37 -0
  64. package/android/src/main/jni/cpp-adapter.cpp +44 -0
  65. package/ios/Handlers/RNFlingHandler.h +4 -0
  66. package/ios/Handlers/RNFlingHandler.m +152 -0
  67. package/ios/Handlers/RNForceTouchHandler.h +4 -0
  68. package/ios/Handlers/RNForceTouchHandler.m +175 -0
  69. package/ios/Handlers/RNHoverHandler.h +12 -0
  70. package/ios/Handlers/RNHoverHandler.m +153 -0
  71. package/ios/Handlers/RNLongPressHandler.h +12 -0
  72. package/ios/Handlers/RNLongPressHandler.m +183 -0
  73. package/ios/Handlers/RNManualHandler.h +4 -0
  74. package/ios/Handlers/RNManualHandler.m +88 -0
  75. package/ios/Handlers/RNNativeViewHandler.h +15 -0
  76. package/ios/Handlers/RNNativeViewHandler.mm +193 -0
  77. package/ios/Handlers/RNPanHandler.h +12 -0
  78. package/ios/Handlers/RNPanHandler.m +331 -0
  79. package/ios/Handlers/RNPinchHandler.h +12 -0
  80. package/ios/Handlers/RNPinchHandler.m +95 -0
  81. package/ios/Handlers/RNRotationHandler.h +12 -0
  82. package/ios/Handlers/RNRotationHandler.m +93 -0
  83. package/ios/Handlers/RNTapHandler.h +12 -0
  84. package/ios/Handlers/RNTapHandler.m +265 -0
  85. package/ios/RNGHTouchEventType.h +9 -0
  86. package/ios/RNGestureHandler.h +90 -0
  87. package/ios/RNGestureHandler.m +493 -0
  88. package/ios/RNGestureHandler.xcodeproj/project.pbxproj +690 -0
  89. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  90. package/ios/RNGestureHandlerActionType.h +10 -0
  91. package/ios/RNGestureHandlerButton.h +19 -0
  92. package/ios/RNGestureHandlerButton.m +77 -0
  93. package/ios/RNGestureHandlerButtonComponentView.h +17 -0
  94. package/ios/RNGestureHandlerButtonComponentView.mm +64 -0
  95. package/ios/RNGestureHandlerButtonManager.h +5 -0
  96. package/ios/RNGestureHandlerButtonManager.m +34 -0
  97. package/ios/RNGestureHandlerDirection.h +8 -0
  98. package/ios/RNGestureHandlerEvents.h +65 -0
  99. package/ios/RNGestureHandlerEvents.m +260 -0
  100. package/ios/RNGestureHandlerManager.h +35 -0
  101. package/ios/RNGestureHandlerManager.mm +367 -0
  102. package/ios/RNGestureHandlerModule.h +7 -0
  103. package/ios/RNGestureHandlerModule.mm +320 -0
  104. package/ios/RNGestureHandlerPointerTracker.h +25 -0
  105. package/ios/RNGestureHandlerPointerTracker.m +243 -0
  106. package/ios/RNGestureHandlerRegistry.h +21 -0
  107. package/ios/RNGestureHandlerRegistry.m +63 -0
  108. package/ios/RNGestureHandlerRootViewComponentView.mm +21 -0
  109. package/ios/RNGestureHandlerState.h +10 -0
  110. package/ios/RNGestureHandlerStateManager.h +5 -0
  111. package/ios/RNManualActivationRecognizer.h +10 -0
  112. package/ios/RNManualActivationRecognizer.m +88 -0
  113. package/ios/RNRootViewGestureRecognizer.h +17 -0
  114. package/ios/RNRootViewGestureRecognizer.m +106 -0
  115. package/jest-utils/package.json +6 -0
  116. package/jestSetup.js +7 -0
  117. package/lib/commonjs/ActionType.js +15 -0
  118. package/lib/commonjs/ActionType.js.map +1 -0
  119. package/lib/commonjs/Directions.js +15 -0
  120. package/lib/commonjs/Directions.js.map +1 -0
  121. package/lib/commonjs/EnableNewWebImplementation.js +35 -0
  122. package/lib/commonjs/EnableNewWebImplementation.js.map +1 -0
  123. package/lib/commonjs/GestureHandlerRootViewContext.js +15 -0
  124. package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -0
  125. package/lib/commonjs/PlatformConstants.js +15 -0
  126. package/lib/commonjs/PlatformConstants.js.map +1 -0
  127. package/lib/commonjs/PlatformConstants.web.js +14 -0
  128. package/lib/commonjs/PlatformConstants.web.js.map +1 -0
  129. package/lib/commonjs/RNGestureHandlerModule.js +29 -0
  130. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -0
  131. package/lib/commonjs/RNGestureHandlerModule.macos.js +149 -0
  132. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -0
  133. package/lib/commonjs/RNGestureHandlerModule.web.js +163 -0
  134. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -0
  135. package/lib/commonjs/RNGestureHandlerModule.windows.js +158 -0
  136. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
  137. package/lib/commonjs/RNRenderer.js +16 -0
  138. package/lib/commonjs/RNRenderer.js.map +1 -0
  139. package/lib/commonjs/RNRenderer.web.js +11 -0
  140. package/lib/commonjs/RNRenderer.web.js.map +1 -0
  141. package/lib/commonjs/State.js +18 -0
  142. package/lib/commonjs/State.js.map +1 -0
  143. package/lib/commonjs/TouchEventType.js +16 -0
  144. package/lib/commonjs/TouchEventType.js.map +1 -0
  145. package/lib/commonjs/components/DrawerLayout.js +566 -0
  146. package/lib/commonjs/components/DrawerLayout.js.map +1 -0
  147. package/lib/commonjs/components/GestureButtons.js +240 -0
  148. package/lib/commonjs/components/GestureButtons.js.map +1 -0
  149. package/lib/commonjs/components/GestureComponents.js +115 -0
  150. package/lib/commonjs/components/GestureComponents.js.map +1 -0
  151. package/lib/commonjs/components/GestureComponents.web.js +52 -0
  152. package/lib/commonjs/components/GestureComponents.web.js.map +1 -0
  153. package/lib/commonjs/components/GestureHandlerButton.js +14 -0
  154. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -0
  155. package/lib/commonjs/components/GestureHandlerButton.web.js +24 -0
  156. package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -0
  157. package/lib/commonjs/components/GestureHandlerRootView.android.js +31 -0
  158. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -0
  159. package/lib/commonjs/components/GestureHandlerRootView.js +31 -0
  160. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -0
  161. package/lib/commonjs/components/GestureHandlerRootView.web.js +25 -0
  162. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -0
  163. package/lib/commonjs/components/Swipeable.js +408 -0
  164. package/lib/commonjs/components/Swipeable.js.map +1 -0
  165. package/lib/commonjs/components/gestureHandlerRootHOC.js +40 -0
  166. package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -0
  167. package/lib/commonjs/components/touchables/GenericTouchable.js +289 -0
  168. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -0
  169. package/lib/commonjs/components/touchables/TouchableHighlight.js +109 -0
  170. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -0
  171. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +100 -0
  172. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -0
  173. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +12 -0
  174. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -0
  175. package/lib/commonjs/components/touchables/TouchableOpacity.js +77 -0
  176. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -0
  177. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +26 -0
  178. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -0
  179. package/lib/commonjs/components/touchables/index.js +40 -0
  180. package/lib/commonjs/components/touchables/index.js.map +1 -0
  181. package/lib/commonjs/getReactNativeVersion.js +22 -0
  182. package/lib/commonjs/getReactNativeVersion.js.map +1 -0
  183. package/lib/commonjs/getReactNativeVersion.web.js +11 -0
  184. package/lib/commonjs/getReactNativeVersion.web.js.map +1 -0
  185. package/lib/commonjs/getShadowNodeFromRef.js +27 -0
  186. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -0
  187. package/lib/commonjs/getShadowNodeFromRef.web.js +15 -0
  188. package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -0
  189. package/lib/commonjs/ghQueueMicrotask.js +12 -0
  190. package/lib/commonjs/ghQueueMicrotask.js.map +1 -0
  191. package/lib/commonjs/handlers/FlingGestureHandler.js +25 -0
  192. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
  193. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +49 -0
  194. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
  195. package/lib/commonjs/handlers/LongPressGestureHandler.js +27 -0
  196. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
  197. package/lib/commonjs/handlers/NativeViewGestureHandler.js +27 -0
  198. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -0
  199. package/lib/commonjs/handlers/PanGestureHandler.js +123 -0
  200. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
  201. package/lib/commonjs/handlers/PinchGestureHandler.js +23 -0
  202. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
  203. package/lib/commonjs/handlers/PressabilityDebugView.js +14 -0
  204. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -0
  205. package/lib/commonjs/handlers/PressabilityDebugView.web.js +12 -0
  206. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -0
  207. package/lib/commonjs/handlers/RotationGestureHandler.js +23 -0
  208. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
  209. package/lib/commonjs/handlers/TapGestureHandler.js +27 -0
  210. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
  211. package/lib/commonjs/handlers/createHandler.js +464 -0
  212. package/lib/commonjs/handlers/createHandler.js.map +1 -0
  213. package/lib/commonjs/handlers/createNativeWrapper.js +74 -0
  214. package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -0
  215. package/lib/commonjs/handlers/gestureHandlerCommon.js +103 -0
  216. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
  217. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +6 -0
  218. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -0
  219. package/lib/commonjs/handlers/gestures/GestureDetector.js +669 -0
  220. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  221. package/lib/commonjs/handlers/gestures/eventReceiver.js +147 -0
  222. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
  223. package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
  224. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
  225. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +65 -0
  226. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  227. package/lib/commonjs/handlers/gestures/gesture.js +241 -0
  228. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
  229. package/lib/commonjs/handlers/gestures/gestureComposition.js +105 -0
  230. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
  231. package/lib/commonjs/handlers/gestures/gestureObjects.js +90 -0
  232. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
  233. package/lib/commonjs/handlers/gestures/gestureStateManager.js +65 -0
  234. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
  235. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +32 -0
  236. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -0
  237. package/lib/commonjs/handlers/gestures/hoverGesture.js +74 -0
  238. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -0
  239. package/lib/commonjs/handlers/gestures/longPressGesture.js +35 -0
  240. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
  241. package/lib/commonjs/handlers/gestures/manualGesture.js +31 -0
  242. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
  243. package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
  244. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
  245. package/lib/commonjs/handlers/gestures/panGesture.js +149 -0
  246. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  247. package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -0
  248. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
  249. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +37 -0
  250. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
  251. package/lib/commonjs/handlers/gestures/rotationGesture.js +45 -0
  252. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
  253. package/lib/commonjs/handlers/gestures/tapGesture.js +60 -0
  254. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
  255. package/lib/commonjs/handlers/handlersRegistry.js +67 -0
  256. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
  257. package/lib/commonjs/index.js +266 -0
  258. package/lib/commonjs/index.js.map +1 -0
  259. package/lib/commonjs/init.js +32 -0
  260. package/lib/commonjs/init.js.map +1 -0
  261. package/lib/commonjs/jestUtils/index.js +20 -0
  262. package/lib/commonjs/jestUtils/index.js.map +1 -0
  263. package/lib/commonjs/jestUtils/jestUtils.js +375 -0
  264. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -0
  265. package/lib/commonjs/mocks.js +66 -0
  266. package/lib/commonjs/mocks.js.map +1 -0
  267. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +15 -0
  268. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
  269. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +15 -0
  270. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
  271. package/lib/commonjs/typeUtils.js +2 -0
  272. package/lib/commonjs/typeUtils.js.map +1 -0
  273. package/lib/commonjs/utils.js +63 -0
  274. package/lib/commonjs/utils.js.map +1 -0
  275. package/lib/commonjs/web/constants.js +16 -0
  276. package/lib/commonjs/web/constants.js.map +1 -0
  277. package/lib/commonjs/web/detectors/RotationGestureDetector.js +165 -0
  278. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
  279. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +156 -0
  280. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
  281. package/lib/commonjs/web/handlers/FlingGestureHandler.js +167 -0
  282. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
  283. package/lib/commonjs/web/handlers/GestureHandler.js +794 -0
  284. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
  285. package/lib/commonjs/web/handlers/HoverGestureHandler.js +62 -0
  286. package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -0
  287. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +151 -0
  288. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
  289. package/lib/commonjs/web/handlers/ManualGestureHandler.js +61 -0
  290. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -0
  291. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +178 -0
  292. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
  293. package/lib/commonjs/web/handlers/PanGestureHandler.js +448 -0
  294. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
  295. package/lib/commonjs/web/handlers/PinchGestureHandler.js +174 -0
  296. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
  297. package/lib/commonjs/web/handlers/RotationGestureHandler.js +186 -0
  298. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
  299. package/lib/commonjs/web/handlers/TapGestureHandler.js +280 -0
  300. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
  301. package/lib/commonjs/web/interfaces.js +55 -0
  302. package/lib/commonjs/web/interfaces.js.map +1 -0
  303. package/lib/commonjs/web/tools/CircularBuffer.js +59 -0
  304. package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -0
  305. package/lib/commonjs/web/tools/EventManager.js +127 -0
  306. package/lib/commonjs/web/tools/EventManager.js.map +1 -0
  307. package/lib/commonjs/web/tools/GestureHandlerDelegate.js +6 -0
  308. package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -0
  309. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +349 -0
  310. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
  311. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +118 -0
  312. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -0
  313. package/lib/commonjs/web/tools/InteractionManager.js +114 -0
  314. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
  315. package/lib/commonjs/web/tools/LeastSquareSolver.js +204 -0
  316. package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -0
  317. package/lib/commonjs/web/tools/NodeManager.js +48 -0
  318. package/lib/commonjs/web/tools/NodeManager.js.map +1 -0
  319. package/lib/commonjs/web/tools/PointerEventManager.js +198 -0
  320. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -0
  321. package/lib/commonjs/web/tools/PointerTracker.js +226 -0
  322. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
  323. package/lib/commonjs/web/tools/TouchEventManager.js +138 -0
  324. package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -0
  325. package/lib/commonjs/web/tools/VelocityTracker.js +111 -0
  326. package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -0
  327. package/lib/commonjs/web/utils.js +15 -0
  328. package/lib/commonjs/web/utils.js.map +1 -0
  329. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +105 -0
  330. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -0
  331. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +53 -0
  332. package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -0
  333. package/lib/commonjs/web_hammer/Errors.js +16 -0
  334. package/lib/commonjs/web_hammer/Errors.js.map +1 -0
  335. package/lib/commonjs/web_hammer/FlingGestureHandler.js +170 -0
  336. package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -0
  337. package/lib/commonjs/web_hammer/GestureHandler.js +579 -0
  338. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
  339. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +54 -0
  340. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -0
  341. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +71 -0
  342. package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -0
  343. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +66 -0
  344. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
  345. package/lib/commonjs/web_hammer/NodeManager.js +46 -0
  346. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
  347. package/lib/commonjs/web_hammer/PanGestureHandler.js +208 -0
  348. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -0
  349. package/lib/commonjs/web_hammer/PinchGestureHandler.js +40 -0
  350. package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -0
  351. package/lib/commonjs/web_hammer/PressGestureHandler.js +188 -0
  352. package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -0
  353. package/lib/commonjs/web_hammer/RotationGestureHandler.js +44 -0
  354. package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -0
  355. package/lib/commonjs/web_hammer/TapGestureHandler.js +192 -0
  356. package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -0
  357. package/lib/commonjs/web_hammer/constants.js +64 -0
  358. package/lib/commonjs/web_hammer/constants.js.map +1 -0
  359. package/lib/commonjs/web_hammer/utils.js +42 -0
  360. package/lib/commonjs/web_hammer/utils.js.map +1 -0
  361. package/lib/module/ActionType.js +7 -0
  362. package/lib/module/ActionType.js.map +1 -0
  363. package/lib/module/Directions.js +7 -0
  364. package/lib/module/Directions.js.map +1 -0
  365. package/lib/module/EnableNewWebImplementation.js +22 -0
  366. package/lib/module/EnableNewWebImplementation.js.map +1 -0
  367. package/lib/module/GestureHandlerRootViewContext.js +3 -0
  368. package/lib/module/GestureHandlerRootViewContext.js.map +1 -0
  369. package/lib/module/PlatformConstants.js +5 -0
  370. package/lib/module/PlatformConstants.js.map +1 -0
  371. package/lib/module/PlatformConstants.web.js +7 -0
  372. package/lib/module/PlatformConstants.web.js.map +1 -0
  373. package/lib/module/RNGestureHandlerModule.js +19 -0
  374. package/lib/module/RNGestureHandlerModule.js.map +1 -0
  375. package/lib/module/RNGestureHandlerModule.macos.js +110 -0
  376. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -0
  377. package/lib/module/RNGestureHandlerModule.web.js +122 -0
  378. package/lib/module/RNGestureHandlerModule.web.js.map +1 -0
  379. package/lib/module/RNGestureHandlerModule.windows.js +118 -0
  380. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
  381. package/lib/module/RNRenderer.js +4 -0
  382. package/lib/module/RNRenderer.js.map +1 -0
  383. package/lib/module/RNRenderer.web.js +4 -0
  384. package/lib/module/RNRenderer.web.js.map +1 -0
  385. package/lib/module/State.js +10 -0
  386. package/lib/module/State.js.map +1 -0
  387. package/lib/module/TouchEventType.js +8 -0
  388. package/lib/module/TouchEventType.js.map +1 -0
  389. package/lib/module/components/DrawerLayout.js +551 -0
  390. package/lib/module/components/DrawerLayout.js.map +1 -0
  391. package/lib/module/components/GestureButtons.js +206 -0
  392. package/lib/module/components/GestureButtons.js.map +1 -0
  393. package/lib/module/components/GestureComponents.js +90 -0
  394. package/lib/module/components/GestureComponents.js.map +1 -0
  395. package/lib/module/components/GestureComponents.web.js +28 -0
  396. package/lib/module/components/GestureComponents.web.js.map +1 -0
  397. package/lib/module/components/GestureHandlerButton.js +3 -0
  398. package/lib/module/components/GestureHandlerButton.js.map +1 -0
  399. package/lib/module/components/GestureHandlerButton.web.js +9 -0
  400. package/lib/module/components/GestureHandlerButton.web.js.map +1 -0
  401. package/lib/module/components/GestureHandlerRootView.android.js +14 -0
  402. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -0
  403. package/lib/module/components/GestureHandlerRootView.js +14 -0
  404. package/lib/module/components/GestureHandlerRootView.js.map +1 -0
  405. package/lib/module/components/GestureHandlerRootView.web.js +9 -0
  406. package/lib/module/components/GestureHandlerRootView.web.js.map +1 -0
  407. package/lib/module/components/Swipeable.js +390 -0
  408. package/lib/module/components/Swipeable.js.map +1 -0
  409. package/lib/module/components/gestureHandlerRootHOC.js +22 -0
  410. package/lib/module/components/gestureHandlerRootHOC.js.map +1 -0
  411. package/lib/module/components/touchables/GenericTouchable.js +273 -0
  412. package/lib/module/components/touchables/GenericTouchable.js.map +1 -0
  413. package/lib/module/components/touchables/TouchableHighlight.js +95 -0
  414. package/lib/module/components/touchables/TouchableHighlight.js.map +1 -0
  415. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +84 -0
  416. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -0
  417. package/lib/module/components/touchables/TouchableNativeFeedback.js +3 -0
  418. package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -0
  419. package/lib/module/components/touchables/TouchableOpacity.js +63 -0
  420. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -0
  421. package/lib/module/components/touchables/TouchableWithoutFeedback.js +10 -0
  422. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -0
  423. package/lib/module/components/touchables/index.js +5 -0
  424. package/lib/module/components/touchables/index.js.map +1 -0
  425. package/lib/module/getReactNativeVersion.js +10 -0
  426. package/lib/module/getReactNativeVersion.js.map +1 -0
  427. package/lib/module/getReactNativeVersion.web.js +4 -0
  428. package/lib/module/getReactNativeVersion.web.js.map +1 -0
  429. package/lib/module/getShadowNodeFromRef.js +20 -0
  430. package/lib/module/getShadowNodeFromRef.js.map +1 -0
  431. package/lib/module/getShadowNodeFromRef.web.js +8 -0
  432. package/lib/module/getShadowNodeFromRef.web.js.map +1 -0
  433. package/lib/module/ghQueueMicrotask.js +5 -0
  434. package/lib/module/ghQueueMicrotask.js.map +1 -0
  435. package/lib/module/handlers/FlingGestureHandler.js +11 -0
  436. package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
  437. package/lib/module/handlers/ForceTouchGestureHandler.js +31 -0
  438. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
  439. package/lib/module/handlers/LongPressGestureHandler.js +13 -0
  440. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
  441. package/lib/module/handlers/NativeViewGestureHandler.js +12 -0
  442. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -0
  443. package/lib/module/handlers/PanGestureHandler.js +107 -0
  444. package/lib/module/handlers/PanGestureHandler.js.map +1 -0
  445. package/lib/module/handlers/PinchGestureHandler.js +10 -0
  446. package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
  447. package/lib/module/handlers/PressabilityDebugView.js +3 -0
  448. package/lib/module/handlers/PressabilityDebugView.js.map +1 -0
  449. package/lib/module/handlers/PressabilityDebugView.web.js +5 -0
  450. package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -0
  451. package/lib/module/handlers/RotationGestureHandler.js +10 -0
  452. package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
  453. package/lib/module/handlers/TapGestureHandler.js +13 -0
  454. package/lib/module/handlers/TapGestureHandler.js.map +1 -0
  455. package/lib/module/handlers/createHandler.js +433 -0
  456. package/lib/module/handlers/createHandler.js.map +1 -0
  457. package/lib/module/handlers/createNativeWrapper.js +62 -0
  458. package/lib/module/handlers/createNativeWrapper.js.map +1 -0
  459. package/lib/module/handlers/gestureHandlerCommon.js +81 -0
  460. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
  461. package/lib/module/handlers/gestureHandlerTypesCompat.js +2 -0
  462. package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -0
  463. package/lib/module/handlers/gestures/GestureDetector.js +619 -0
  464. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  465. package/lib/module/handlers/gestures/eventReceiver.js +131 -0
  466. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
  467. package/lib/module/handlers/gestures/flingGesture.js +24 -0
  468. package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
  469. package/lib/module/handlers/gestures/forceTouchGesture.js +56 -0
  470. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  471. package/lib/module/handlers/gestures/gesture.js +222 -0
  472. package/lib/module/handlers/gestures/gesture.js.map +1 -0
  473. package/lib/module/handlers/gestures/gestureComposition.js +90 -0
  474. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
  475. package/lib/module/handlers/gestures/gestureObjects.js +71 -0
  476. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
  477. package/lib/module/handlers/gestures/gestureStateManager.js +54 -0
  478. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
  479. package/lib/module/handlers/gestures/gestureStateManager.web.js +21 -0
  480. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -0
  481. package/lib/module/handlers/gestures/hoverGesture.js +62 -0
  482. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -0
  483. package/lib/module/handlers/gestures/longPressGesture.js +25 -0
  484. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
  485. package/lib/module/handlers/gestures/manualGesture.js +22 -0
  486. package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
  487. package/lib/module/handlers/gestures/nativeGesture.js +24 -0
  488. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
  489. package/lib/module/handlers/gestures/panGesture.js +140 -0
  490. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  491. package/lib/module/handlers/gestures/pinchGesture.js +36 -0
  492. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
  493. package/lib/module/handlers/gestures/reanimatedWrapper.js +30 -0
  494. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
  495. package/lib/module/handlers/gestures/rotationGesture.js +36 -0
  496. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
  497. package/lib/module/handlers/gestures/tapGesture.js +50 -0
  498. package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
  499. package/lib/module/handlers/handlersRegistry.js +44 -0
  500. package/lib/module/handlers/handlersRegistry.js.map +1 -0
  501. package/lib/module/index.js +25 -0
  502. package/lib/module/index.js.map +1 -0
  503. package/lib/module/init.js +16 -0
  504. package/lib/module/init.js.map +1 -0
  505. package/lib/module/jestUtils/index.js +2 -0
  506. package/lib/module/jestUtils/index.js.map +1 -0
  507. package/lib/module/jestUtils/jestUtils.js +350 -0
  508. package/lib/module/jestUtils/jestUtils.js.map +1 -0
  509. package/lib/module/mocks.js +56 -0
  510. package/lib/module/mocks.js.map +1 -0
  511. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js +3 -0
  512. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
  513. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js +3 -0
  514. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
  515. package/lib/module/typeUtils.js +2 -0
  516. package/lib/module/typeUtils.js.map +1 -0
  517. package/lib/module/utils.js +44 -0
  518. package/lib/module/utils.js.map +1 -0
  519. package/lib/module/web/constants.js +8 -0
  520. package/lib/module/web/constants.js.map +1 -0
  521. package/lib/module/web/detectors/RotationGestureDetector.js +155 -0
  522. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
  523. package/lib/module/web/detectors/ScaleGestureDetector.js +145 -0
  524. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
  525. package/lib/module/web/handlers/FlingGestureHandler.js +152 -0
  526. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
  527. package/lib/module/web/handlers/GestureHandler.js +776 -0
  528. package/lib/module/web/handlers/GestureHandler.js.map +1 -0
  529. package/lib/module/web/handlers/HoverGestureHandler.js +47 -0
  530. package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -0
  531. package/lib/module/web/handlers/LongPressGestureHandler.js +136 -0
  532. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
  533. package/lib/module/web/handlers/ManualGestureHandler.js +49 -0
  534. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -0
  535. package/lib/module/web/handlers/NativeViewGestureHandler.js +163 -0
  536. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
  537. package/lib/module/web/handlers/PanGestureHandler.js +433 -0
  538. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
  539. package/lib/module/web/handlers/PinchGestureHandler.js +159 -0
  540. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -0
  541. package/lib/module/web/handlers/RotationGestureHandler.js +171 -0
  542. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -0
  543. package/lib/module/web/handlers/TapGestureHandler.js +265 -0
  544. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
  545. package/lib/module/web/interfaces.js +45 -0
  546. package/lib/module/web/interfaces.js.map +1 -0
  547. package/lib/module/web/tools/CircularBuffer.js +50 -0
  548. package/lib/module/web/tools/CircularBuffer.js.map +1 -0
  549. package/lib/module/web/tools/EventManager.js +118 -0
  550. package/lib/module/web/tools/EventManager.js.map +1 -0
  551. package/lib/module/web/tools/GestureHandlerDelegate.js +2 -0
  552. package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -0
  553. package/lib/module/web/tools/GestureHandlerOrchestrator.js +335 -0
  554. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
  555. package/lib/module/web/tools/GestureHandlerWebDelegate.js +102 -0
  556. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -0
  557. package/lib/module/web/tools/InteractionManager.js +105 -0
  558. package/lib/module/web/tools/InteractionManager.js.map +1 -0
  559. package/lib/module/web/tools/LeastSquareSolver.js +195 -0
  560. package/lib/module/web/tools/LeastSquareSolver.js.map +1 -0
  561. package/lib/module/web/tools/NodeManager.js +39 -0
  562. package/lib/module/web/tools/NodeManager.js.map +1 -0
  563. package/lib/module/web/tools/PointerEventManager.js +184 -0
  564. package/lib/module/web/tools/PointerEventManager.js.map +1 -0
  565. package/lib/module/web/tools/PointerTracker.js +213 -0
  566. package/lib/module/web/tools/PointerTracker.js.map +1 -0
  567. package/lib/module/web/tools/TouchEventManager.js +124 -0
  568. package/lib/module/web/tools/TouchEventManager.js.map +1 -0
  569. package/lib/module/web/tools/VelocityTracker.js +98 -0
  570. package/lib/module/web/tools/VelocityTracker.js.map +1 -0
  571. package/lib/module/web/utils.js +8 -0
  572. package/lib/module/web/utils.js.map +1 -0
  573. package/lib/module/web_hammer/DiscreteGestureHandler.js +94 -0
  574. package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -0
  575. package/lib/module/web_hammer/DraggingGestureHandler.js +40 -0
  576. package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -0
  577. package/lib/module/web_hammer/Errors.js +7 -0
  578. package/lib/module/web_hammer/Errors.js.map +1 -0
  579. package/lib/module/web_hammer/FlingGestureHandler.js +156 -0
  580. package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -0
  581. package/lib/module/web_hammer/GestureHandler.js +563 -0
  582. package/lib/module/web_hammer/GestureHandler.js.map +1 -0
  583. package/lib/module/web_hammer/IndiscreteGestureHandler.js +44 -0
  584. package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -0
  585. package/lib/module/web_hammer/LongPressGestureHandler.js +58 -0
  586. package/lib/module/web_hammer/LongPressGestureHandler.js.map +1 -0
  587. package/lib/module/web_hammer/NativeViewGestureHandler.js +49 -0
  588. package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
  589. package/lib/module/web_hammer/NodeManager.js +33 -0
  590. package/lib/module/web_hammer/NodeManager.js.map +1 -0
  591. package/lib/module/web_hammer/PanGestureHandler.js +194 -0
  592. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -0
  593. package/lib/module/web_hammer/PinchGestureHandler.js +29 -0
  594. package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -0
  595. package/lib/module/web_hammer/PressGestureHandler.js +174 -0
  596. package/lib/module/web_hammer/PressGestureHandler.js.map +1 -0
  597. package/lib/module/web_hammer/RotationGestureHandler.js +32 -0
  598. package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -0
  599. package/lib/module/web_hammer/TapGestureHandler.js +180 -0
  600. package/lib/module/web_hammer/TapGestureHandler.js.map +1 -0
  601. package/lib/module/web_hammer/constants.js +43 -0
  602. package/lib/module/web_hammer/constants.js.map +1 -0
  603. package/lib/module/web_hammer/utils.js +19 -0
  604. package/lib/module/web_hammer/utils.js.map +1 -0
  605. package/lib/typescript/ActionType.d.ts +7 -0
  606. package/lib/typescript/Directions.d.ts +7 -0
  607. package/lib/typescript/EnableNewWebImplementation.d.ts +3 -0
  608. package/lib/typescript/GestureHandlerRootViewContext.d.ts +3 -0
  609. package/lib/typescript/PlatformConstants.d.ts +5 -0
  610. package/lib/typescript/PlatformConstants.web.d.ts +4 -0
  611. package/lib/typescript/RNGestureHandlerModule.d.ts +13 -0
  612. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +47 -0
  613. package/lib/typescript/RNGestureHandlerModule.web.d.ts +50 -0
  614. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
  615. package/lib/typescript/RNRenderer.d.ts +1 -0
  616. package/lib/typescript/RNRenderer.web.d.ts +3 -0
  617. package/lib/typescript/State.d.ts +9 -0
  618. package/lib/typescript/TouchEventType.d.ts +8 -0
  619. package/lib/typescript/components/DrawerLayout.d.ts +148 -0
  620. package/lib/typescript/components/GestureButtons.d.ts +121 -0
  621. package/lib/typescript/components/GestureComponents.d.ts +22 -0
  622. package/lib/typescript/components/GestureComponents.web.d.ts +8 -0
  623. package/lib/typescript/components/GestureHandlerButton.d.ts +4 -0
  624. package/lib/typescript/components/GestureHandlerButton.web.d.ts +4 -0
  625. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +6 -0
  626. package/lib/typescript/components/GestureHandlerRootView.d.ts +6 -0
  627. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +6 -0
  628. package/lib/typescript/components/Swipeable.d.ts +178 -0
  629. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +3 -0
  630. package/lib/typescript/components/touchables/GenericTouchable.d.ts +68 -0
  631. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +36 -0
  632. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +45 -0
  633. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +2 -0
  634. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +25 -0
  635. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +7 -0
  636. package/lib/typescript/components/touchables/index.d.ts +7 -0
  637. package/lib/typescript/getReactNativeVersion.d.ts +4 -0
  638. package/lib/typescript/getReactNativeVersion.web.d.ts +1 -0
  639. package/lib/typescript/getShadowNodeFromRef.d.ts +1 -0
  640. package/lib/typescript/getShadowNodeFromRef.web.d.ts +1 -0
  641. package/lib/typescript/ghQueueMicrotask.d.ts +1 -0
  642. package/lib/typescript/handlers/FlingGestureHandler.d.ts +34 -0
  643. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +44 -0
  644. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +56 -0
  645. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +28 -0
  646. package/lib/typescript/handlers/PanGestureHandler.d.ts +139 -0
  647. package/lib/typescript/handlers/PinchGestureHandler.d.ts +29 -0
  648. package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
  649. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
  650. package/lib/typescript/handlers/RotationGestureHandler.d.ts +29 -0
  651. package/lib/typescript/handlers/TapGestureHandler.d.ts +57 -0
  652. package/lib/typescript/handlers/createHandler.d.ts +11 -0
  653. package/lib/typescript/handlers/createNativeWrapper.d.ts +3 -0
  654. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +68 -0
  655. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +42 -0
  656. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +19 -0
  657. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +4 -0
  658. package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
  659. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +15 -0
  660. package/lib/typescript/handlers/gestures/gesture.d.ts +110 -0
  661. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  662. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +41 -0
  663. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
  664. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +4 -0
  665. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +32 -0
  666. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
  667. package/lib/typescript/handlers/gestures/manualGesture.d.ts +7 -0
  668. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  669. package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
  670. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +11 -0
  671. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  672. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -0
  673. package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
  674. package/lib/typescript/handlers/handlersRegistry.d.ts +14 -0
  675. package/lib/typescript/index.d.ts +52 -0
  676. package/lib/typescript/init.d.ts +2 -0
  677. package/lib/typescript/jestUtils/index.d.ts +1 -0
  678. package/lib/typescript/jestUtils/jestUtils.d.ts +28 -0
  679. package/lib/typescript/mocks.d.ts +44 -0
  680. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +14 -0
  681. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +6 -0
  682. package/lib/typescript/typeUtils.d.ts +1 -0
  683. package/lib/typescript/utils.d.ts +8 -0
  684. package/lib/typescript/web/constants.d.ts +7 -0
  685. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
  686. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +29 -0
  687. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +27 -0
  688. package/lib/typescript/web/handlers/GestureHandler.d.ts +90 -0
  689. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +10 -0
  690. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +26 -0
  691. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +12 -0
  692. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +24 -0
  693. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +55 -0
  694. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +28 -0
  695. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +29 -0
  696. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +39 -0
  697. package/lib/typescript/web/interfaces.d.ts +141 -0
  698. package/lib/typescript/web/tools/CircularBuffer.d.ts +11 -0
  699. package/lib/typescript/web/tools/EventManager.d.ts +34 -0
  700. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +22 -0
  701. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +29 -0
  702. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +21 -0
  703. package/lib/typescript/web/tools/InteractionManager.d.ts +17 -0
  704. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +12 -0
  705. package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
  706. package/lib/typescript/web/tools/PointerEventManager.d.ts +8 -0
  707. package/lib/typescript/web/tools/PointerTracker.d.ts +53 -0
  708. package/lib/typescript/web/tools/TouchEventManager.d.ts +6 -0
  709. package/lib/typescript/web/tools/VelocityTracker.d.ts +13 -0
  710. package/lib/typescript/web/utils.d.ts +4 -0
  711. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +20 -0
  712. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +15 -0
  713. package/lib/typescript/web_hammer/Errors.d.ts +3 -0
  714. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +43 -0
  715. package/lib/typescript/web_hammer/GestureHandler.d.ts +145 -0
  716. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +40 -0
  717. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +38 -0
  718. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +7 -0
  719. package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
  720. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +56 -0
  721. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +13 -0
  722. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +83 -0
  723. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +13 -0
  724. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +57 -0
  725. package/lib/typescript/web_hammer/constants.d.ts +39 -0
  726. package/lib/typescript/web_hammer/utils.d.ts +9 -0
  727. package/package.json +156 -0
  728. package/src/ActionType.ts +9 -0
  729. package/src/Directions.ts +9 -0
  730. package/src/EnableNewWebImplementation.ts +35 -0
  731. package/src/GestureHandlerRootViewContext.ts +3 -0
  732. package/src/PlatformConstants.ts +8 -0
  733. package/src/PlatformConstants.web.ts +5 -0
  734. package/src/RNGestureHandlerModule.macos.ts +133 -0
  735. package/src/RNGestureHandlerModule.ts +50 -0
  736. package/src/RNGestureHandlerModule.web.ts +146 -0
  737. package/src/RNGestureHandlerModule.windows.ts +144 -0
  738. package/src/RNRenderer.ts +3 -0
  739. package/src/RNRenderer.web.ts +3 -0
  740. package/src/State.ts +13 -0
  741. package/src/TouchEventType.ts +10 -0
  742. package/src/components/DrawerLayout.tsx +743 -0
  743. package/src/components/GestureButtons.tsx +332 -0
  744. package/src/components/GestureComponents.tsx +148 -0
  745. package/src/components/GestureComponents.web.tsx +41 -0
  746. package/src/components/GestureHandlerButton.tsx +5 -0
  747. package/src/components/GestureHandlerButton.web.tsx +6 -0
  748. package/src/components/GestureHandlerRootView.android.tsx +24 -0
  749. package/src/components/GestureHandlerRootView.tsx +23 -0
  750. package/src/components/GestureHandlerRootView.web.tsx +17 -0
  751. package/src/components/Swipeable.tsx +584 -0
  752. package/src/components/gestureHandlerRootHOC.tsx +32 -0
  753. package/src/components/touchables/GenericTouchable.tsx +301 -0
  754. package/src/components/touchables/TouchableHighlight.tsx +115 -0
  755. package/src/components/touchables/TouchableNativeFeedback.android.tsx +91 -0
  756. package/src/components/touchables/TouchableNativeFeedback.tsx +3 -0
  757. package/src/components/touchables/TouchableOpacity.tsx +75 -0
  758. package/src/components/touchables/TouchableWithoutFeedback.tsx +14 -0
  759. package/src/components/touchables/index.ts +7 -0
  760. package/src/getReactNativeVersion.ts +11 -0
  761. package/src/getReactNativeVersion.web.ts +3 -0
  762. package/src/getShadowNodeFromRef.ts +22 -0
  763. package/src/getShadowNodeFromRef.web.ts +7 -0
  764. package/src/ghQueueMicrotask.ts +5 -0
  765. package/src/handlers/FlingGestureHandler.ts +59 -0
  766. package/src/handlers/ForceTouchGestureHandler.ts +90 -0
  767. package/src/handlers/LongPressGestureHandler.ts +88 -0
  768. package/src/handlers/NativeViewGestureHandler.ts +55 -0
  769. package/src/handlers/PanGestureHandler.ts +325 -0
  770. package/src/handlers/PinchGestureHandler.ts +48 -0
  771. package/src/handlers/PressabilityDebugView.tsx +2 -0
  772. package/src/handlers/PressabilityDebugView.web.tsx +4 -0
  773. package/src/handlers/RotationGestureHandler.ts +48 -0
  774. package/src/handlers/TapGestureHandler.ts +94 -0
  775. package/src/handlers/createHandler.tsx +533 -0
  776. package/src/handlers/createNativeWrapper.tsx +80 -0
  777. package/src/handlers/gestureHandlerCommon.ts +250 -0
  778. package/src/handlers/gestureHandlerTypesCompat.ts +106 -0
  779. package/src/handlers/gestures/GestureDetector.tsx +822 -0
  780. package/src/handlers/gestures/eventReceiver.ts +155 -0
  781. package/src/handlers/gestures/flingGesture.ts +27 -0
  782. package/src/handlers/gestures/forceTouchGesture.ts +74 -0
  783. package/src/handlers/gestures/gesture.ts +349 -0
  784. package/src/handlers/gestures/gestureComposition.ts +122 -0
  785. package/src/handlers/gestures/gestureObjects.ts +84 -0
  786. package/src/handlers/gestures/gestureStateManager.ts +62 -0
  787. package/src/handlers/gestures/gestureStateManager.web.ts +24 -0
  788. package/src/handlers/gestures/hoverGesture.ts +83 -0
  789. package/src/handlers/gestures/longPressGesture.ts +28 -0
  790. package/src/handlers/gestures/manualGesture.ts +31 -0
  791. package/src/handlers/gestures/nativeGesture.ts +27 -0
  792. package/src/handlers/gestures/panGesture.ts +152 -0
  793. package/src/handlers/gestures/pinchGesture.ts +51 -0
  794. package/src/handlers/gestures/reanimatedWrapper.ts +56 -0
  795. package/src/handlers/gestures/rotationGesture.ts +51 -0
  796. package/src/handlers/gestures/tapGesture.ts +53 -0
  797. package/src/handlers/handlersRegistry.ts +60 -0
  798. package/src/index.ts +174 -0
  799. package/src/init.ts +18 -0
  800. package/src/jestUtils/index.ts +1 -0
  801. package/src/jestUtils/jestUtils.ts +505 -0
  802. package/src/mocks.ts +67 -0
  803. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +18 -0
  804. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +6 -0
  805. package/src/typeUtils.ts +1 -0
  806. package/src/utils.ts +54 -0
  807. package/src/web/constants.ts +8 -0
  808. package/src/web/detectors/RotationGestureDetector.ts +168 -0
  809. package/src/web/detectors/ScaleGestureDetector.ts +172 -0
  810. package/src/web/handlers/FlingGestureHandler.ts +161 -0
  811. package/src/web/handlers/GestureHandler.ts +849 -0
  812. package/src/web/handlers/HoverGestureHandler.ts +43 -0
  813. package/src/web/handlers/LongPressGestureHandler.ts +125 -0
  814. package/src/web/handlers/ManualGestureHandler.ts +43 -0
  815. package/src/web/handlers/NativeViewGestureHandler.ts +167 -0
  816. package/src/web/handlers/PanGestureHandler.ts +485 -0
  817. package/src/web/handlers/PinchGestureHandler.ts +158 -0
  818. package/src/web/handlers/RotationGestureHandler.ts +172 -0
  819. package/src/web/handlers/TapGestureHandler.ts +273 -0
  820. package/src/web/interfaces.ts +167 -0
  821. package/src/web/tools/CircularBuffer.ts +42 -0
  822. package/src/web/tools/EventManager.ts +104 -0
  823. package/src/web/tools/GestureHandlerDelegate.ts +23 -0
  824. package/src/web/tools/GestureHandlerOrchestrator.ts +389 -0
  825. package/src/web/tools/GestureHandlerWebDelegate.ts +115 -0
  826. package/src/web/tools/InteractionManager.ts +130 -0
  827. package/src/web/tools/LeastSquareSolver.ts +182 -0
  828. package/src/web/tools/NodeManager.ts +43 -0
  829. package/src/web/tools/PointerEventManager.ts +202 -0
  830. package/src/web/tools/PointerTracker.ts +240 -0
  831. package/src/web/tools/TouchEventManager.ts +167 -0
  832. package/src/web/tools/VelocityTracker.ts +98 -0
  833. package/src/web/utils.ts +8 -0
  834. package/src/web_hammer/DiscreteGestureHandler.ts +82 -0
  835. package/src/web_hammer/DraggingGestureHandler.ts +34 -0
  836. package/src/web_hammer/Errors.ts +7 -0
  837. package/src/web_hammer/FlingGestureHandler.ts +134 -0
  838. package/src/web_hammer/GestureHandler.ts +599 -0
  839. package/src/web_hammer/IndiscreteGestureHandler.ts +33 -0
  840. package/src/web_hammer/LongPressGestureHandler.ts +56 -0
  841. package/src/web_hammer/NativeViewGestureHandler.ts +47 -0
  842. package/src/web_hammer/NodeManager.ts +42 -0
  843. package/src/web_hammer/PanGestureHandler.ts +226 -0
  844. package/src/web_hammer/PinchGestureHandler.ts +25 -0
  845. package/src/web_hammer/PressGestureHandler.ts +167 -0
  846. package/src/web_hammer/RotationGestureHandler.ts +25 -0
  847. package/src/web_hammer/TapGestureHandler.ts +172 -0
  848. package/src/web_hammer/constants.ts +48 -0
  849. package/src/web_hammer/utils.ts +24 -0
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _VelocityTracker = _interopRequireDefault(require("./VelocityTracker"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
14
+ const MAX_POINTERS = 20;
15
+
16
+ class PointerTracker {
17
+ constructor() {
18
+ _defineProperty(this, "velocityTracker", new _VelocityTracker.default());
19
+
20
+ _defineProperty(this, "trackedPointers", new Map());
21
+
22
+ _defineProperty(this, "touchEventsIds", new Map());
23
+
24
+ _defineProperty(this, "lastMovedPointerId", void 0);
25
+
26
+ _defineProperty(this, "cachedAverages", {
27
+ x: 0,
28
+ y: 0
29
+ });
30
+
31
+ this.lastMovedPointerId = NaN;
32
+
33
+ for (let i = 0; i < MAX_POINTERS; ++i) {
34
+ this.touchEventsIds.set(i, NaN);
35
+ }
36
+ }
37
+
38
+ addToTracker(event) {
39
+ if (this.trackedPointers.has(event.pointerId)) {
40
+ return;
41
+ }
42
+
43
+ this.lastMovedPointerId = event.pointerId;
44
+ const newElement = {
45
+ lastX: event.x,
46
+ lastY: event.y,
47
+ timeStamp: event.time,
48
+ velocityX: 0,
49
+ velocityY: 0
50
+ };
51
+ this.trackedPointers.set(event.pointerId, newElement);
52
+ this.mapTouchEventId(event.pointerId);
53
+ this.cachedAverages = {
54
+ x: this.getLastAvgX(),
55
+ y: this.getLastAvgY()
56
+ };
57
+ }
58
+
59
+ removeFromTracker(pointerId) {
60
+ this.trackedPointers.delete(pointerId);
61
+ this.removeMappedTouchId(pointerId);
62
+ }
63
+
64
+ track(event) {
65
+ const element = this.trackedPointers.get(event.pointerId);
66
+
67
+ if (!element) {
68
+ return;
69
+ }
70
+
71
+ this.lastMovedPointerId = event.pointerId;
72
+ this.velocityTracker.add(event);
73
+ const [velocityX, velocityY] = this.velocityTracker.getVelocity();
74
+ element.velocityX = velocityX;
75
+ element.velocityY = velocityY;
76
+ element.lastX = event.x;
77
+ element.lastY = event.y;
78
+ this.trackedPointers.set(event.pointerId, element);
79
+ const avgX = this.getLastAvgX();
80
+ const avgY = this.getLastAvgY();
81
+ this.cachedAverages = {
82
+ x: avgX,
83
+ y: avgY
84
+ };
85
+ } //Mapping TouchEvents ID
86
+
87
+
88
+ mapTouchEventId(id) {
89
+ for (const [mappedId, touchId] of this.touchEventsIds) {
90
+ if (isNaN(touchId)) {
91
+ this.touchEventsIds.set(mappedId, id);
92
+ break;
93
+ }
94
+ }
95
+ }
96
+
97
+ removeMappedTouchId(id) {
98
+ const mappedId = this.getMappedTouchEventId(id);
99
+
100
+ if (!isNaN(mappedId)) {
101
+ this.touchEventsIds.set(mappedId, NaN);
102
+ }
103
+ }
104
+
105
+ getMappedTouchEventId(touchEventId) {
106
+ for (const [key, value] of this.touchEventsIds.entries()) {
107
+ if (value === touchEventId) {
108
+ return key;
109
+ }
110
+ }
111
+
112
+ return NaN;
113
+ }
114
+
115
+ getVelocityX(pointerId) {
116
+ var _this$trackedPointers;
117
+
118
+ return (_this$trackedPointers = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers === void 0 ? void 0 : _this$trackedPointers.velocityX;
119
+ }
120
+
121
+ getVelocityY(pointerId) {
122
+ var _this$trackedPointers2;
123
+
124
+ return (_this$trackedPointers2 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers2 === void 0 ? void 0 : _this$trackedPointers2.velocityY;
125
+ }
126
+ /**
127
+ * Returns X coordinate of last moved pointer
128
+ */
129
+
130
+
131
+ getLastX(pointerId) {
132
+ if (pointerId !== undefined) {
133
+ var _this$trackedPointers3;
134
+
135
+ return (_this$trackedPointers3 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers3 === void 0 ? void 0 : _this$trackedPointers3.lastX;
136
+ } else {
137
+ var _this$trackedPointers4;
138
+
139
+ return (_this$trackedPointers4 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers4 === void 0 ? void 0 : _this$trackedPointers4.lastX;
140
+ }
141
+ }
142
+ /**
143
+ * Returns Y coordinate of last moved pointer
144
+ */
145
+
146
+
147
+ getLastY(pointerId) {
148
+ if (pointerId !== undefined) {
149
+ var _this$trackedPointers5;
150
+
151
+ return (_this$trackedPointers5 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers5 === void 0 ? void 0 : _this$trackedPointers5.lastY;
152
+ } else {
153
+ var _this$trackedPointers6;
154
+
155
+ return (_this$trackedPointers6 = this.trackedPointers.get(this.lastMovedPointerId)) === null || _this$trackedPointers6 === void 0 ? void 0 : _this$trackedPointers6.lastY;
156
+ }
157
+ } // Some handlers use these methods to send average values in native event.
158
+ // This may happen when pointers have already been removed from tracker (i.e. pointerup event).
159
+ // In situation when NaN would be sent as a response, we return cached value.
160
+ // That prevents handlers from crashing
161
+
162
+
163
+ getLastAvgX() {
164
+ const avgX = this.getSumX() / this.trackedPointers.size;
165
+ return isNaN(avgX) ? this.cachedAverages.x : avgX;
166
+ }
167
+
168
+ getLastAvgY() {
169
+ const avgY = this.getSumY() / this.trackedPointers.size;
170
+ return isNaN(avgY) ? this.cachedAverages.y : avgY;
171
+ }
172
+
173
+ getSumX(ignoredPointer) {
174
+ let sumX = 0;
175
+ this.trackedPointers.forEach((value, key) => {
176
+ if (key !== ignoredPointer) {
177
+ sumX += value.lastX;
178
+ }
179
+ });
180
+ return sumX;
181
+ }
182
+
183
+ getSumY(ignoredPointer) {
184
+ let sumY = 0;
185
+ this.trackedPointers.forEach((value, key) => {
186
+ if (key !== ignoredPointer) {
187
+ sumY += value.lastY;
188
+ }
189
+ });
190
+ return sumY;
191
+ }
192
+
193
+ getTrackedPointersCount() {
194
+ return this.trackedPointers.size;
195
+ }
196
+
197
+ getTrackedPointersID() {
198
+ const keys = [];
199
+ this.trackedPointers.forEach((_value, key) => {
200
+ keys.push(key);
201
+ });
202
+ return keys;
203
+ }
204
+
205
+ getData() {
206
+ return this.trackedPointers;
207
+ }
208
+
209
+ resetTracker() {
210
+ this.velocityTracker.reset();
211
+ this.trackedPointers.clear();
212
+ this.lastMovedPointerId = NaN;
213
+
214
+ for (let i = 0; i < MAX_POINTERS; ++i) {
215
+ this.touchEventsIds.set(i, NaN);
216
+ }
217
+ }
218
+
219
+ static shareCommonPointers(stPointers, ndPointers) {
220
+ return stPointers.some(pointerId => ndPointers.includes(pointerId));
221
+ }
222
+
223
+ }
224
+
225
+ exports.default = PointerTracker;
226
+ //# sourceMappingURL=PointerTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PointerTracker.ts"],"names":["MAX_POINTERS","PointerTracker","constructor","VelocityTracker","Map","x","y","lastMovedPointerId","NaN","i","touchEventsIds","set","addToTracker","event","trackedPointers","has","pointerId","newElement","lastX","lastY","timeStamp","time","velocityX","velocityY","mapTouchEventId","cachedAverages","getLastAvgX","getLastAvgY","removeFromTracker","delete","removeMappedTouchId","track","element","get","velocityTracker","add","getVelocity","avgX","avgY","id","mappedId","touchId","isNaN","getMappedTouchEventId","touchEventId","key","value","entries","getVelocityX","getVelocityY","getLastX","undefined","getLastY","getSumX","size","getSumY","ignoredPointer","sumX","forEach","sumY","getTrackedPointersCount","getTrackedPointersID","keys","_value","push","getData","resetTracker","reset","clear","shareCommonPointers","stPointers","ndPointers","some","includes"],"mappings":"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","sourcesContent":["import { AdaptedEvent } from '../interfaces';\r\nimport VelocityTracker from './VelocityTracker';\r\n\r\nexport interface TrackerElement {\r\n lastX: number;\r\n lastY: number;\r\n\r\n timeStamp: number;\r\n\r\n velocityX: number;\r\n velocityY: number;\r\n}\r\n\r\nconst MAX_POINTERS = 20;\r\n\r\nexport default class PointerTracker {\r\n private velocityTracker = new VelocityTracker();\r\n private trackedPointers: Map<number, TrackerElement> = new Map<\r\n number,\r\n TrackerElement\r\n >();\r\n\r\n private touchEventsIds: Map<number, number> = new Map<number, number>();\r\n\r\n private lastMovedPointerId: number;\r\n\r\n private cachedAverages: { x: number; y: number } = { x: 0, y: 0 };\r\n\r\n public constructor() {\r\n this.lastMovedPointerId = NaN;\r\n\r\n for (let i = 0; i < MAX_POINTERS; ++i) {\r\n this.touchEventsIds.set(i, NaN);\r\n }\r\n }\r\n\r\n public addToTracker(event: AdaptedEvent): void {\r\n if (this.trackedPointers.has(event.pointerId)) {\r\n return;\r\n }\r\n\r\n this.lastMovedPointerId = event.pointerId;\r\n\r\n const newElement: TrackerElement = {\r\n lastX: event.x,\r\n lastY: event.y,\r\n timeStamp: event.time,\r\n velocityX: 0,\r\n velocityY: 0,\r\n };\r\n\r\n this.trackedPointers.set(event.pointerId, newElement);\r\n this.mapTouchEventId(event.pointerId);\r\n\r\n this.cachedAverages = {\r\n x: this.getLastAvgX(),\r\n y: this.getLastAvgY(),\r\n };\r\n }\r\n\r\n public removeFromTracker(pointerId: number): void {\r\n this.trackedPointers.delete(pointerId);\r\n this.removeMappedTouchId(pointerId);\r\n }\r\n\r\n public track(event: AdaptedEvent): void {\r\n const element: TrackerElement = this.trackedPointers.get(\r\n event.pointerId\r\n ) as TrackerElement;\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n this.lastMovedPointerId = event.pointerId;\r\n\r\n this.velocityTracker.add(event);\r\n const [velocityX, velocityY] = this.velocityTracker.getVelocity();\r\n\r\n element.velocityX = velocityX;\r\n element.velocityY = velocityY;\r\n\r\n element.lastX = event.x;\r\n element.lastY = event.y;\r\n\r\n this.trackedPointers.set(event.pointerId, element);\r\n\r\n const avgX: number = this.getLastAvgX();\r\n const avgY: number = this.getLastAvgY();\r\n\r\n this.cachedAverages = {\r\n x: avgX,\r\n y: avgY,\r\n };\r\n }\r\n\r\n //Mapping TouchEvents ID\r\n private mapTouchEventId(id: number): void {\r\n for (const [mappedId, touchId] of this.touchEventsIds) {\r\n if (isNaN(touchId)) {\r\n this.touchEventsIds.set(mappedId, id);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private removeMappedTouchId(id: number): void {\r\n const mappedId: number = this.getMappedTouchEventId(id);\r\n if (!isNaN(mappedId)) {\r\n this.touchEventsIds.set(mappedId, NaN);\r\n }\r\n }\r\n\r\n public getMappedTouchEventId(touchEventId: number): number {\r\n for (const [key, value] of this.touchEventsIds.entries()) {\r\n if (value === touchEventId) {\r\n return key;\r\n }\r\n }\r\n\r\n return NaN;\r\n }\r\n\r\n public getVelocityX(pointerId: number): number {\r\n return this.trackedPointers.get(pointerId)?.velocityX as number;\r\n }\r\n public getVelocityY(pointerId: number): number {\r\n return this.trackedPointers.get(pointerId)?.velocityY as number;\r\n }\r\n\r\n /**\r\n * Returns X coordinate of last moved pointer\r\n */\r\n public getLastX(): number;\r\n\r\n /**\r\n *\r\n * @param pointerId\r\n * Returns X coordinate of given pointer\r\n */\r\n // eslint-disable-next-line @typescript-eslint/unified-signatures\r\n public getLastX(pointerId: number): number;\r\n\r\n public getLastX(pointerId?: number): number {\r\n if (pointerId !== undefined) {\r\n return this.trackedPointers.get(pointerId)?.lastX as number;\r\n } else {\r\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastX as number;\r\n }\r\n }\r\n\r\n /**\r\n * Returns Y coordinate of last moved pointer\r\n */\r\n public getLastY(): number;\r\n\r\n /**\r\n *\r\n * @param pointerId\r\n * Returns Y coordinate of given pointer\r\n */\r\n // eslint-disable-next-line @typescript-eslint/unified-signatures\r\n public getLastY(pointerId: number): number;\r\n\r\n public getLastY(pointerId?: number): number {\r\n if (pointerId !== undefined) {\r\n return this.trackedPointers.get(pointerId)?.lastY as number;\r\n } else {\r\n return this.trackedPointers.get(this.lastMovedPointerId)?.lastY as number;\r\n }\r\n }\r\n\r\n // Some handlers use these methods to send average values in native event.\r\n // This may happen when pointers have already been removed from tracker (i.e. pointerup event).\r\n // In situation when NaN would be sent as a response, we return cached value.\r\n // That prevents handlers from crashing\r\n public getLastAvgX(): number {\r\n const avgX: number = this.getSumX() / this.trackedPointers.size;\r\n return isNaN(avgX) ? this.cachedAverages.x : avgX;\r\n }\r\n public getLastAvgY(): number {\r\n const avgY: number = this.getSumY() / this.trackedPointers.size;\r\n return isNaN(avgY) ? this.cachedAverages.y : avgY;\r\n }\r\n public getSumX(ignoredPointer?: number): number {\r\n let sumX = 0;\r\n\r\n this.trackedPointers.forEach((value, key) => {\r\n if (key !== ignoredPointer) {\r\n sumX += value.lastX;\r\n }\r\n });\r\n\r\n return sumX;\r\n }\r\n public getSumY(ignoredPointer?: number): number {\r\n let sumY = 0;\r\n\r\n this.trackedPointers.forEach((value, key) => {\r\n if (key !== ignoredPointer) {\r\n sumY += value.lastY;\r\n }\r\n });\r\n\r\n return sumY;\r\n }\r\n public getTrackedPointersCount(): number {\r\n return this.trackedPointers.size;\r\n }\r\n public getTrackedPointersID(): number[] {\r\n const keys: number[] = [];\r\n\r\n this.trackedPointers.forEach((_value, key) => {\r\n keys.push(key);\r\n });\r\n\r\n return keys;\r\n }\r\n\r\n public getData(): Map<number, TrackerElement> {\r\n return this.trackedPointers;\r\n }\r\n\r\n public resetTracker(): void {\r\n this.velocityTracker.reset();\r\n this.trackedPointers.clear();\r\n this.lastMovedPointerId = NaN;\r\n\r\n for (let i = 0; i < MAX_POINTERS; ++i) {\r\n this.touchEventsIds.set(i, NaN);\r\n }\r\n }\r\n\r\n public static shareCommonPointers(\r\n stPointers: number[],\r\n ndPointers: number[]\r\n ): boolean {\r\n return stPointers.some((pointerId) => ndPointers.includes(pointerId));\r\n }\r\n}\r\n"]}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _interfaces = require("../interfaces");
9
+
10
+ var _EventManager = _interopRequireDefault(require("./EventManager"));
11
+
12
+ var _utils = require("../utils");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ class TouchEventManager extends _EventManager.default {
17
+ setListeners() {
18
+ this.view.addEventListener('touchstart', event => {
19
+ for (let i = 0; i < event.changedTouches.length; ++i) {
20
+ const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.DOWN, i, _interfaces.TouchEventType.DOWN); // Here we skip stylus, because in case of anything different than touch we want to handle it by using PointerEvents
21
+ // If we leave stylus to send touch events, handlers will receive every action twice
22
+
23
+ if (!(0, _utils.isPointerInBounds)(this.view, {
24
+ x: adaptedEvent.x,
25
+ y: adaptedEvent.y
26
+ }) || //@ts-ignore touchType field does exist
27
+ event.changedTouches[i].touchType === 'stylus') {
28
+ continue;
29
+ }
30
+
31
+ this.markAsInBounds(adaptedEvent.pointerId);
32
+
33
+ if (++this.activePointersCounter > 1) {
34
+ adaptedEvent.eventType = _interfaces.EventTypes.ADDITIONAL_POINTER_DOWN;
35
+ this.onPointerAdd(adaptedEvent);
36
+ } else {
37
+ this.onPointerDown(adaptedEvent);
38
+ }
39
+ }
40
+ });
41
+ this.view.addEventListener('touchmove', event => {
42
+ for (let i = 0; i < event.changedTouches.length; ++i) {
43
+ const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.MOVE, i, _interfaces.TouchEventType.MOVE); //@ts-ignore touchType field does exist
44
+
45
+ if (event.changedTouches[i].touchType === 'stylus') {
46
+ continue;
47
+ }
48
+
49
+ const inBounds = (0, _utils.isPointerInBounds)(this.view, {
50
+ x: adaptedEvent.x,
51
+ y: adaptedEvent.y
52
+ });
53
+ const pointerIndex = this.pointersInBounds.indexOf(adaptedEvent.pointerId);
54
+
55
+ if (inBounds) {
56
+ if (pointerIndex < 0) {
57
+ adaptedEvent.eventType = _interfaces.EventTypes.ENTER;
58
+ this.onPointerEnter(adaptedEvent);
59
+ this.markAsInBounds(adaptedEvent.pointerId);
60
+ } else {
61
+ this.onPointerMove(adaptedEvent);
62
+ }
63
+ } else {
64
+ if (pointerIndex >= 0) {
65
+ adaptedEvent.eventType = _interfaces.EventTypes.LEAVE;
66
+ this.onPointerLeave(adaptedEvent);
67
+ this.markAsOutOfBounds(adaptedEvent.pointerId);
68
+ } else {
69
+ this.onPointerOutOfBounds(adaptedEvent);
70
+ }
71
+ }
72
+ }
73
+ });
74
+ this.view.addEventListener('touchend', event => {
75
+ for (let i = 0; i < event.changedTouches.length; ++i) {
76
+ // When we call reset on gesture handlers, it also resets their event managers
77
+ // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view
78
+ // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view
79
+ // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly
80
+ if (this.activePointersCounter === 0) {
81
+ break;
82
+ } //@ts-ignore touchType field does exist
83
+
84
+
85
+ if (event.changedTouches[i].touchType === 'stylus') {
86
+ continue;
87
+ }
88
+
89
+ const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.UP, i, _interfaces.TouchEventType.UP);
90
+ this.markAsOutOfBounds(adaptedEvent.pointerId);
91
+
92
+ if (--this.activePointersCounter > 0) {
93
+ adaptedEvent.eventType = _interfaces.EventTypes.ADDITIONAL_POINTER_UP;
94
+ this.onPointerRemove(adaptedEvent);
95
+ } else {
96
+ this.onPointerUp(adaptedEvent);
97
+ }
98
+ }
99
+ });
100
+ this.view.addEventListener('touchcancel', event => {
101
+ for (let i = 0; i < event.changedTouches.length; ++i) {
102
+ const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.CANCEL, i, _interfaces.TouchEventType.CANCELLED); //@ts-ignore touchType field does exist
103
+
104
+ if (event.changedTouches[i].touchType === 'stylus') {
105
+ continue;
106
+ }
107
+
108
+ this.onPointerCancel(adaptedEvent);
109
+ this.markAsOutOfBounds(adaptedEvent.pointerId);
110
+ this.activePointersCounter = 0;
111
+ }
112
+ });
113
+ }
114
+
115
+ mapEvent(event, eventType, index, touchEventType) {
116
+ const rect = this.view.getBoundingClientRect();
117
+ const clientX = event.changedTouches[index].clientX;
118
+ const clientY = event.changedTouches[index].clientY;
119
+ return {
120
+ x: clientX,
121
+ y: clientY,
122
+ offsetX: clientX - rect.left,
123
+ offsetY: clientY - rect.top,
124
+ pointerId: event.changedTouches[index].identifier,
125
+ eventType: eventType,
126
+ pointerType: _interfaces.PointerType.TOUCH,
127
+ buttons: _interfaces.MouseButtons.NONE,
128
+ time: event.timeStamp,
129
+ allTouches: event.touches,
130
+ changedTouches: event.changedTouches,
131
+ touchEventType: touchEventType
132
+ };
133
+ }
134
+
135
+ }
136
+
137
+ exports.default = TouchEventManager;
138
+ //# sourceMappingURL=TouchEventManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["TouchEventManager.ts"],"names":["TouchEventManager","EventManager","setListeners","view","addEventListener","event","i","changedTouches","length","adaptedEvent","mapEvent","EventTypes","DOWN","TouchEventType","x","y","touchType","markAsInBounds","pointerId","activePointersCounter","eventType","ADDITIONAL_POINTER_DOWN","onPointerAdd","onPointerDown","MOVE","inBounds","pointerIndex","pointersInBounds","indexOf","ENTER","onPointerEnter","onPointerMove","LEAVE","onPointerLeave","markAsOutOfBounds","onPointerOutOfBounds","UP","ADDITIONAL_POINTER_UP","onPointerRemove","onPointerUp","CANCEL","CANCELLED","onPointerCancel","index","touchEventType","rect","getBoundingClientRect","clientX","clientY","offsetX","left","offsetY","top","identifier","pointerType","PointerType","TOUCH","buttons","MouseButtons","NONE","time","timeStamp","allTouches","touches"],"mappings":"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","sourcesContent":["import {\r\n AdaptedEvent,\r\n EventTypes,\r\n MouseButtons,\r\n PointerType,\r\n TouchEventType,\r\n} from '../interfaces';\r\nimport EventManager from './EventManager';\r\nimport { isPointerInBounds } from '../utils';\r\n\r\nexport default class TouchEventManager extends EventManager<HTMLElement> {\r\n public setListeners(): void {\r\n this.view.addEventListener('touchstart', (event: TouchEvent) => {\r\n for (let i = 0; i < event.changedTouches.length; ++i) {\r\n const adaptedEvent: AdaptedEvent = this.mapEvent(\r\n event,\r\n EventTypes.DOWN,\r\n i,\r\n TouchEventType.DOWN\r\n );\r\n\r\n // Here we skip stylus, because in case of anything different than touch we want to handle it by using PointerEvents\r\n // If we leave stylus to send touch events, handlers will receive every action twice\r\n if (\r\n !isPointerInBounds(this.view, {\r\n x: adaptedEvent.x,\r\n y: adaptedEvent.y,\r\n }) ||\r\n //@ts-ignore touchType field does exist\r\n event.changedTouches[i].touchType === 'stylus'\r\n ) {\r\n continue;\r\n }\r\n\r\n this.markAsInBounds(adaptedEvent.pointerId);\r\n\r\n if (++this.activePointersCounter > 1) {\r\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\r\n this.onPointerAdd(adaptedEvent);\r\n } else {\r\n this.onPointerDown(adaptedEvent);\r\n }\r\n }\r\n });\r\n\r\n this.view.addEventListener('touchmove', (event: TouchEvent) => {\r\n for (let i = 0; i < event.changedTouches.length; ++i) {\r\n const adaptedEvent: AdaptedEvent = this.mapEvent(\r\n event,\r\n EventTypes.MOVE,\r\n i,\r\n TouchEventType.MOVE\r\n );\r\n //@ts-ignore touchType field does exist\r\n if (event.changedTouches[i].touchType === 'stylus') {\r\n continue;\r\n }\r\n\r\n const inBounds: boolean = isPointerInBounds(this.view, {\r\n x: adaptedEvent.x,\r\n y: adaptedEvent.y,\r\n });\r\n\r\n const pointerIndex: number = this.pointersInBounds.indexOf(\r\n adaptedEvent.pointerId\r\n );\r\n\r\n if (inBounds) {\r\n if (pointerIndex < 0) {\r\n adaptedEvent.eventType = EventTypes.ENTER;\r\n this.onPointerEnter(adaptedEvent);\r\n this.markAsInBounds(adaptedEvent.pointerId);\r\n } else {\r\n this.onPointerMove(adaptedEvent);\r\n }\r\n } else {\r\n if (pointerIndex >= 0) {\r\n adaptedEvent.eventType = EventTypes.LEAVE;\r\n this.onPointerLeave(adaptedEvent);\r\n this.markAsOutOfBounds(adaptedEvent.pointerId);\r\n } else {\r\n this.onPointerOutOfBounds(adaptedEvent);\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.view.addEventListener('touchend', (event: TouchEvent) => {\r\n for (let i = 0; i < event.changedTouches.length; ++i) {\r\n // When we call reset on gesture handlers, it also resets their event managers\r\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\r\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\r\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\r\n if (this.activePointersCounter === 0) {\r\n break;\r\n }\r\n\r\n //@ts-ignore touchType field does exist\r\n if (event.changedTouches[i].touchType === 'stylus') {\r\n continue;\r\n }\r\n\r\n const adaptedEvent: AdaptedEvent = this.mapEvent(\r\n event,\r\n EventTypes.UP,\r\n i,\r\n TouchEventType.UP\r\n );\r\n\r\n this.markAsOutOfBounds(adaptedEvent.pointerId);\r\n\r\n if (--this.activePointersCounter > 0) {\r\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\r\n this.onPointerRemove(adaptedEvent);\r\n } else {\r\n this.onPointerUp(adaptedEvent);\r\n }\r\n }\r\n });\r\n\r\n this.view.addEventListener('touchcancel', (event: TouchEvent) => {\r\n for (let i = 0; i < event.changedTouches.length; ++i) {\r\n const adaptedEvent: AdaptedEvent = this.mapEvent(\r\n event,\r\n EventTypes.CANCEL,\r\n i,\r\n TouchEventType.CANCELLED\r\n );\r\n\r\n //@ts-ignore touchType field does exist\r\n if (event.changedTouches[i].touchType === 'stylus') {\r\n continue;\r\n }\r\n\r\n this.onPointerCancel(adaptedEvent);\r\n this.markAsOutOfBounds(adaptedEvent.pointerId);\r\n this.activePointersCounter = 0;\r\n }\r\n });\r\n }\r\n\r\n protected mapEvent(\r\n event: TouchEvent,\r\n eventType: EventTypes,\r\n index: number,\r\n touchEventType: TouchEventType\r\n ): AdaptedEvent {\r\n const rect = this.view.getBoundingClientRect();\r\n const clientX = event.changedTouches[index].clientX;\r\n const clientY = event.changedTouches[index].clientY;\r\n\r\n return {\r\n x: clientX,\r\n y: clientY,\r\n offsetX: clientX - rect.left,\r\n offsetY: clientY - rect.top,\r\n pointerId: event.changedTouches[index].identifier,\r\n eventType: eventType,\r\n pointerType: PointerType.TOUCH,\r\n buttons: MouseButtons.NONE,\r\n time: event.timeStamp,\r\n allTouches: event.touches,\r\n changedTouches: event.changedTouches,\r\n touchEventType: touchEventType,\r\n };\r\n }\r\n}\r\n"]}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _CircularBuffer = _interopRequireDefault(require("./CircularBuffer"));
9
+
10
+ var _LeastSquareSolver = _interopRequireDefault(require("./LeastSquareSolver"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ class VelocityTracker {
17
+ constructor() {
18
+ _defineProperty(this, "assumePointerMoveStoppedMilliseconds", 40);
19
+
20
+ _defineProperty(this, "historySize", 20);
21
+
22
+ _defineProperty(this, "horizonMilliseconds", 300);
23
+
24
+ _defineProperty(this, "minSampleSize", 3);
25
+
26
+ _defineProperty(this, "samples", void 0);
27
+
28
+ this.samples = new _CircularBuffer.default(this.historySize);
29
+ }
30
+
31
+ add(event) {
32
+ this.samples.push(event);
33
+ } /// Returns an estimate of the velocity of the object being tracked by the
34
+ /// tracker given the current information available to the tracker.
35
+ ///
36
+ /// Information is added using [addPosition].
37
+ ///
38
+ /// Returns null if there is no data on which to base an estimate.
39
+
40
+
41
+ getVelocityEstimate() {
42
+ const x = [];
43
+ const y = [];
44
+ const w = [];
45
+ const time = [];
46
+ let sampleCount = 0;
47
+ let index = this.samples.size - 1;
48
+ const newestSample = this.samples.get(index);
49
+
50
+ if (!newestSample) {
51
+ return null;
52
+ }
53
+
54
+ let previousSample = newestSample; // Starting with the most recent PointAtTime sample, iterate backwards while
55
+ // the samples represent continuous motion.
56
+
57
+ while (sampleCount < this.samples.size) {
58
+ const sample = this.samples.get(index);
59
+ const age = newestSample.time - sample.time;
60
+ const delta = Math.abs(sample.time - previousSample.time);
61
+ previousSample = sample;
62
+
63
+ if (age > this.horizonMilliseconds || delta > this.assumePointerMoveStoppedMilliseconds) {
64
+ break;
65
+ }
66
+
67
+ x.push(sample.x);
68
+ y.push(sample.y);
69
+ w.push(1);
70
+ time.push(-age);
71
+ sampleCount++;
72
+ index--;
73
+ }
74
+
75
+ if (sampleCount >= this.minSampleSize) {
76
+ const xSolver = new _LeastSquareSolver.default(time, x, w);
77
+ const xFit = xSolver.solve(2);
78
+
79
+ if (xFit !== null) {
80
+ const ySolver = new _LeastSquareSolver.default(time, y, w);
81
+ const yFit = ySolver.solve(2);
82
+
83
+ if (yFit !== null) {
84
+ const xVelocity = xFit.coefficients[1] * 1000;
85
+ const yVelocity = yFit.coefficients[1] * 1000;
86
+ return [xVelocity, yVelocity];
87
+ }
88
+ }
89
+ }
90
+
91
+ return null;
92
+ }
93
+
94
+ getVelocity() {
95
+ const estimate = this.getVelocityEstimate();
96
+
97
+ if (estimate !== null) {
98
+ return estimate;
99
+ }
100
+
101
+ return [0, 0];
102
+ }
103
+
104
+ reset() {
105
+ this.samples.clear();
106
+ }
107
+
108
+ }
109
+
110
+ exports.default = VelocityTracker;
111
+ //# sourceMappingURL=VelocityTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["VelocityTracker.ts"],"names":["VelocityTracker","constructor","samples","CircularBuffer","historySize","add","event","push","getVelocityEstimate","x","y","w","time","sampleCount","index","size","newestSample","get","previousSample","sample","age","delta","Math","abs","horizonMilliseconds","assumePointerMoveStoppedMilliseconds","minSampleSize","xSolver","LeastSquareSolver","xFit","solve","ySolver","yFit","xVelocity","coefficients","yVelocity","getVelocity","estimate","reset","clear"],"mappings":"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","sourcesContent":["import { AdaptedEvent } from '../interfaces';\r\nimport CircularBuffer from './CircularBuffer';\r\nimport LeastSquareSolver from './LeastSquareSolver';\r\n\r\nexport default class VelocityTracker {\r\n private assumePointerMoveStoppedMilliseconds = 40;\r\n private historySize = 20;\r\n private horizonMilliseconds = 300;\r\n private minSampleSize = 3;\r\n\r\n private samples: CircularBuffer<AdaptedEvent>;\r\n\r\n constructor() {\r\n this.samples = new CircularBuffer<AdaptedEvent>(this.historySize);\r\n }\r\n\r\n public add(event: AdaptedEvent): void {\r\n this.samples.push(event);\r\n }\r\n\r\n /// Returns an estimate of the velocity of the object being tracked by the\r\n /// tracker given the current information available to the tracker.\r\n ///\r\n /// Information is added using [addPosition].\r\n ///\r\n /// Returns null if there is no data on which to base an estimate.\r\n private getVelocityEstimate(): [number, number] | null {\r\n const x = [];\r\n const y = [];\r\n const w = [];\r\n const time = [];\r\n\r\n let sampleCount = 0;\r\n let index = this.samples.size - 1;\r\n const newestSample = this.samples.get(index);\r\n if (!newestSample) {\r\n return null;\r\n }\r\n\r\n let previousSample = newestSample;\r\n\r\n // Starting with the most recent PointAtTime sample, iterate backwards while\r\n // the samples represent continuous motion.\r\n while (sampleCount < this.samples.size) {\r\n const sample = this.samples.get(index);\r\n\r\n const age = newestSample.time - sample.time;\r\n const delta = Math.abs(sample.time - previousSample.time);\r\n previousSample = sample;\r\n\r\n if (\r\n age > this.horizonMilliseconds ||\r\n delta > this.assumePointerMoveStoppedMilliseconds\r\n ) {\r\n break;\r\n }\r\n\r\n x.push(sample.x);\r\n y.push(sample.y);\r\n w.push(1);\r\n time.push(-age);\r\n\r\n sampleCount++;\r\n index--;\r\n }\r\n\r\n if (sampleCount >= this.minSampleSize) {\r\n const xSolver = new LeastSquareSolver(time, x, w);\r\n const xFit = xSolver.solve(2);\r\n\r\n if (xFit !== null) {\r\n const ySolver = new LeastSquareSolver(time, y, w);\r\n const yFit = ySolver.solve(2);\r\n\r\n if (yFit !== null) {\r\n const xVelocity = xFit.coefficients[1] * 1000;\r\n const yVelocity = yFit.coefficients[1] * 1000;\r\n\r\n return [xVelocity, yVelocity];\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getVelocity(): [number, number] {\r\n const estimate = this.getVelocityEstimate();\r\n if (estimate !== null) {\r\n return estimate;\r\n }\r\n return [0, 0];\r\n }\r\n\r\n public reset(): void {\r\n this.samples.clear();\r\n }\r\n}\r\n"]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isPointerInBounds = isPointerInBounds;
7
+
8
+ function isPointerInBounds(view, {
9
+ x,
10
+ y
11
+ }) {
12
+ const rect = view.getBoundingClientRect();
13
+ return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
14
+ }
15
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["utils.ts"],"names":["isPointerInBounds","view","x","y","rect","getBoundingClientRect","left","right","top","bottom"],"mappings":";;;;;;;AAAO,SAASA,iBAAT,CACLC,IADK,EAEL;AAAEC,EAAAA,CAAF;AAAKC,EAAAA;AAAL,CAFK,EAGI;AACT,QAAMC,IAAa,GAAGH,IAAI,CAACI,qBAAL,EAAtB;AAEA,SAAOH,CAAC,IAAIE,IAAI,CAACE,IAAV,IAAkBJ,CAAC,IAAIE,IAAI,CAACG,KAA5B,IAAqCJ,CAAC,IAAIC,IAAI,CAACI,GAA/C,IAAsDL,CAAC,IAAIC,IAAI,CAACK,MAAvE;AACD","sourcesContent":["export function isPointerInBounds(\r\n view: HTMLElement,\r\n { x, y }: { x: number; y: number }\r\n): boolean {\r\n const rect: DOMRect = view.getBoundingClientRect();\r\n\r\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\r\n}\r\n"]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _GestureHandler = _interopRequireDefault(require("./GestureHandler"));
9
+
10
+ var _utils = require("./utils");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ /* eslint-disable eslint-comments/no-unlimited-disable */
15
+
16
+ /* eslint-disable */
17
+ class DiscreteGestureHandler extends _GestureHandler.default {
18
+ get isDiscrete() {
19
+ return true;
20
+ }
21
+
22
+ get shouldEnableGestureOnSetup() {
23
+ return true;
24
+ }
25
+
26
+ shouldFailUnderCustomCriteria({
27
+ x,
28
+ y,
29
+ deltaX,
30
+ deltaY
31
+ }, {
32
+ maxDeltaX,
33
+ maxDeltaY,
34
+ maxDistSq,
35
+ shouldCancelWhenOutside
36
+ }) {
37
+ if (shouldCancelWhenOutside) {
38
+ if (!this.isPointInView({
39
+ x,
40
+ y
41
+ })) {
42
+ return true;
43
+ }
44
+ }
45
+
46
+ return (0, _utils.TEST_MAX_IF_NOT_NAN)(Math.abs(deltaX), maxDeltaX) || (0, _utils.TEST_MAX_IF_NOT_NAN)(Math.abs(deltaY), maxDeltaY) || (0, _utils.TEST_MAX_IF_NOT_NAN)(Math.abs(deltaY * deltaY + deltaX * deltaX), maxDistSq);
47
+ }
48
+
49
+ transformNativeEvent({
50
+ center: {
51
+ x,
52
+ y
53
+ }
54
+ }) {
55
+ // @ts-ignore FIXME(TS)
56
+ const rect = this.view.getBoundingClientRect();
57
+ return {
58
+ absoluteX: x,
59
+ absoluteY: y,
60
+ x: x - rect.left,
61
+ y: y - rect.top
62
+ };
63
+ }
64
+
65
+ isGestureEnabledForEvent({
66
+ minPointers,
67
+ maxPointers,
68
+ maxDeltaX,
69
+ maxDeltaY,
70
+ maxDistSq,
71
+ shouldCancelWhenOutside
72
+ }, _recognizer, {
73
+ maxPointers: pointerLength,
74
+ center,
75
+ deltaX,
76
+ deltaY
77
+ }) {
78
+ const validPointerCount = pointerLength >= minPointers && pointerLength <= maxPointers;
79
+
80
+ if (this.shouldFailUnderCustomCriteria({ ...center,
81
+ deltaX,
82
+ deltaY
83
+ }, {
84
+ maxDeltaX,
85
+ maxDeltaY,
86
+ maxDistSq,
87
+ shouldCancelWhenOutside
88
+ }) || // A user probably won't land a multi-pointer tap on the first tick (so we cannot just cancel each time)
89
+ // but if the gesture is running and the user adds or subtracts another pointer then it should fail.
90
+ !validPointerCount && this.isGestureRunning) {
91
+ return {
92
+ failed: true
93
+ };
94
+ }
95
+
96
+ return {
97
+ success: validPointerCount
98
+ };
99
+ }
100
+
101
+ }
102
+
103
+ var _default = DiscreteGestureHandler;
104
+ exports.default = _default;
105
+ //# sourceMappingURL=DiscreteGestureHandler.js.map