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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,807 @@
1
+ package com.swmansion.gesturehandler.core
2
+
3
+ import android.app.Activity
4
+ import android.content.Context
5
+ import android.content.ContextWrapper
6
+ import android.graphics.PointF
7
+ import android.graphics.Rect
8
+ import android.view.MotionEvent
9
+ import android.view.MotionEvent.PointerCoords
10
+ import android.view.MotionEvent.PointerProperties
11
+ import android.view.View
12
+ import android.view.Window
13
+ import com.facebook.react.bridge.Arguments
14
+ import com.facebook.react.bridge.UiThreadUtil
15
+ import com.facebook.react.bridge.WritableArray
16
+ import com.facebook.react.uimanager.PixelUtil
17
+ import com.swmansion.gesturehandler.BuildConfig
18
+ import com.swmansion.gesturehandler.react.RNGestureHandlerTouchEvent
19
+ import java.lang.IllegalStateException
20
+ import java.util.*
21
+
22
+ open class GestureHandler<ConcreteGestureHandlerT : GestureHandler<ConcreteGestureHandlerT>> {
23
+ private val trackedPointerIDs = IntArray(MAX_POINTERS_COUNT)
24
+ private var trackedPointersIDsCount = 0
25
+ private val windowOffset = IntArray(2) { 0 }
26
+ var tag = 0
27
+ var view: View? = null
28
+ private set
29
+ var state = STATE_UNDETERMINED
30
+ private set
31
+ var x = 0f
32
+ private set
33
+ var y = 0f
34
+ private set
35
+ var isWithinBounds = false
36
+ private set
37
+ var isEnabled = true
38
+ private set
39
+ var actionType = 0
40
+
41
+ var changedTouchesPayload: WritableArray? = null
42
+ private set
43
+ var allTouchesPayload: WritableArray? = null
44
+ private set
45
+ var touchEventType = RNGestureHandlerTouchEvent.EVENT_UNDETERMINED
46
+ private set
47
+ var trackedPointersCount = 0
48
+ private set
49
+ private val trackedPointers: Array<PointerData?> = Array(MAX_POINTERS_COUNT) { null }
50
+ var needsPointerData = false
51
+
52
+ private var hitSlop: FloatArray? = null
53
+ var eventCoalescingKey: Short = 0
54
+ private set
55
+ var lastAbsolutePositionX = 0f
56
+ private set
57
+ var lastAbsolutePositionY = 0f
58
+ private set
59
+
60
+ private var manualActivation = false
61
+
62
+ private var lastEventOffsetX = 0f
63
+ private var lastEventOffsetY = 0f
64
+ private var shouldCancelWhenOutside = false
65
+ var numberOfPointers = 0
66
+ private set
67
+ protected var orchestrator: GestureHandlerOrchestrator? = null
68
+ private var onTouchEventListener: OnTouchEventListener? = null
69
+ private var interactionController: GestureHandlerInteractionController? = null
70
+
71
+ @Suppress("UNCHECKED_CAST")
72
+ protected fun self(): ConcreteGestureHandlerT = this as ConcreteGestureHandlerT
73
+
74
+ protected inline fun applySelf(block: ConcreteGestureHandlerT.() -> Unit): ConcreteGestureHandlerT =
75
+ self().apply { block() }
76
+
77
+ // properties set and accessed only by the orchestrator
78
+ var activationIndex = 0
79
+ var isActive = false
80
+ var isAwaiting = false
81
+ var shouldResetProgress = false
82
+
83
+ open fun dispatchStateChange(newState: Int, prevState: Int) {
84
+ onTouchEventListener?.onStateChange(self(), newState, prevState)
85
+ }
86
+
87
+ open fun dispatchHandlerUpdate(event: MotionEvent) {
88
+ onTouchEventListener?.onHandlerUpdate(self(), event)
89
+ }
90
+
91
+ open fun dispatchTouchEvent() {
92
+ if (changedTouchesPayload != null) {
93
+ onTouchEventListener?.onTouchEvent(self())
94
+ }
95
+ }
96
+
97
+ open fun resetConfig() {
98
+ needsPointerData = false
99
+ manualActivation = false
100
+ shouldCancelWhenOutside = false
101
+ isEnabled = true
102
+ hitSlop = null
103
+ }
104
+
105
+ fun hasCommonPointers(other: GestureHandler<*>): Boolean {
106
+ for (i in trackedPointerIDs.indices) {
107
+ if (trackedPointerIDs[i] != -1 && other.trackedPointerIDs[i] != -1) {
108
+ return true
109
+ }
110
+ }
111
+ return false
112
+ }
113
+
114
+ fun setShouldCancelWhenOutside(shouldCancelWhenOutside: Boolean): ConcreteGestureHandlerT =
115
+ applySelf { this.shouldCancelWhenOutside = shouldCancelWhenOutside }
116
+
117
+ fun setEnabled(enabled: Boolean): ConcreteGestureHandlerT = applySelf {
118
+ // Don't cancel handler when not changing the value of the isEnabled, executing it always caused
119
+ // handlers to be cancelled on re-render because that's the moment when the config is updated.
120
+ // If the enabled prop "changed" from true to true the handler would get cancelled.
121
+ if (view != null && isEnabled != enabled) {
122
+ // If view is set then handler is in "active" state. In that case we want to "cancel" handler
123
+ // when it changes enabled state so that it gets cleared from the orchestrator
124
+ UiThreadUtil.runOnUiThread { cancel() }
125
+ }
126
+ isEnabled = enabled
127
+ }
128
+
129
+ fun setManualActivation(manualActivation: Boolean): ConcreteGestureHandlerT =
130
+ applySelf { this.manualActivation = manualActivation }
131
+
132
+ fun setHitSlop(
133
+ leftPad: Float,
134
+ topPad: Float,
135
+ rightPad: Float,
136
+ bottomPad: Float,
137
+ width: Float,
138
+ height: Float,
139
+ ): ConcreteGestureHandlerT = applySelf {
140
+ if (hitSlop == null) {
141
+ hitSlop = FloatArray(6)
142
+ }
143
+ hitSlop!![HIT_SLOP_LEFT_IDX] = leftPad
144
+ hitSlop!![HIT_SLOP_TOP_IDX] = topPad
145
+ hitSlop!![HIT_SLOP_RIGHT_IDX] = rightPad
146
+ hitSlop!![HIT_SLOP_BOTTOM_IDX] = bottomPad
147
+ hitSlop!![HIT_SLOP_WIDTH_IDX] = width
148
+ hitSlop!![HIT_SLOP_HEIGHT_IDX] = height
149
+ require(!(hitSlopSet(width) && hitSlopSet(leftPad) && hitSlopSet(rightPad))) { "Cannot have all of left, right and width defined" }
150
+ require(!(hitSlopSet(width) && !hitSlopSet(leftPad) && !hitSlopSet(rightPad))) { "When width is set one of left or right pads need to be defined" }
151
+ require(!(hitSlopSet(height) && hitSlopSet(bottomPad) && hitSlopSet(topPad))) { "Cannot have all of top, bottom and height defined" }
152
+ require(!(hitSlopSet(height) && !hitSlopSet(bottomPad) && !hitSlopSet(topPad))) { "When height is set one of top or bottom pads need to be defined" }
153
+ }
154
+
155
+ fun setHitSlop(padding: Float): ConcreteGestureHandlerT {
156
+ return setHitSlop(padding, padding, padding, padding, HIT_SLOP_NONE, HIT_SLOP_NONE)
157
+ }
158
+
159
+ fun setInteractionController(controller: GestureHandlerInteractionController?): ConcreteGestureHandlerT =
160
+ applySelf { interactionController = controller }
161
+
162
+ fun prepare(view: View?, orchestrator: GestureHandlerOrchestrator?) {
163
+ check(!(this.view != null || this.orchestrator != null)) { "Already prepared or hasn't been reset" }
164
+ Arrays.fill(trackedPointerIDs, -1)
165
+ trackedPointersIDsCount = 0
166
+ state = STATE_UNDETERMINED
167
+ this.view = view
168
+ this.orchestrator = orchestrator
169
+
170
+ val decorView = getWindow(view?.context)?.decorView
171
+ if (decorView != null) {
172
+ val frame = Rect()
173
+ decorView.getWindowVisibleDisplayFrame(frame)
174
+ windowOffset[0] = frame.left
175
+ windowOffset[1] = frame.top
176
+ } else {
177
+ windowOffset[0] = 0
178
+ windowOffset[1] = 0
179
+ }
180
+
181
+ onPrepare()
182
+ }
183
+
184
+ protected open fun onPrepare() {}
185
+
186
+ private fun getWindow(context: Context?): Window? {
187
+ if (context == null) return null
188
+ if (context is Activity) return context.window
189
+ if (context is ContextWrapper) return getWindow(context.baseContext)
190
+
191
+ return null
192
+ }
193
+
194
+ private fun findNextLocalPointerId(): Int {
195
+ var localPointerId = 0
196
+ while (localPointerId < trackedPointersIDsCount) {
197
+ var i = 0
198
+ while (i < trackedPointerIDs.size) {
199
+ if (trackedPointerIDs[i] == localPointerId) {
200
+ break
201
+ }
202
+ i++
203
+ }
204
+ if (i == trackedPointerIDs.size) {
205
+ return localPointerId
206
+ }
207
+ localPointerId++
208
+ }
209
+ return localPointerId
210
+ }
211
+
212
+ fun startTrackingPointer(pointerId: Int) {
213
+ if (trackedPointerIDs[pointerId] == -1) {
214
+ trackedPointerIDs[pointerId] = findNextLocalPointerId()
215
+ trackedPointersIDsCount++
216
+ }
217
+ }
218
+
219
+ fun stopTrackingPointer(pointerId: Int) {
220
+ if (trackedPointerIDs[pointerId] != -1) {
221
+ trackedPointerIDs[pointerId] = -1
222
+ trackedPointersIDsCount--
223
+ }
224
+ }
225
+
226
+ private fun needAdapt(event: MotionEvent): Boolean {
227
+ if (event.pointerCount != trackedPointersIDsCount) {
228
+ return true
229
+ }
230
+
231
+ for (i in trackedPointerIDs.indices) {
232
+ val trackedPointer = trackedPointerIDs[i]
233
+ if (trackedPointer != -1 && trackedPointer != i) {
234
+ return true
235
+ }
236
+ }
237
+ return false
238
+ }
239
+
240
+ private fun adaptEvent(event: MotionEvent): MotionEvent {
241
+ if (!needAdapt(event)) {
242
+ return event
243
+ }
244
+ var action = event.actionMasked
245
+ var actionIndex = -1
246
+ if (action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_POINTER_DOWN) {
247
+ actionIndex = event.actionIndex
248
+ val actionPointer = event.getPointerId(actionIndex)
249
+ action = if (trackedPointerIDs[actionPointer] != -1) {
250
+ if (trackedPointersIDsCount == 1) MotionEvent.ACTION_DOWN else MotionEvent.ACTION_POINTER_DOWN
251
+ } else {
252
+ MotionEvent.ACTION_MOVE
253
+ }
254
+ } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) {
255
+ actionIndex = event.actionIndex
256
+ val actionPointer = event.getPointerId(actionIndex)
257
+ action = if (trackedPointerIDs[actionPointer] != -1) {
258
+ if (trackedPointersIDsCount == 1) MotionEvent.ACTION_UP else MotionEvent.ACTION_POINTER_UP
259
+ } else {
260
+ MotionEvent.ACTION_MOVE
261
+ }
262
+ }
263
+ initPointerProps(trackedPointersIDsCount)
264
+ var count = 0
265
+ val deltaX = event.rawX - event.x
266
+ val deltaY = event.rawY - event.y
267
+ event.offsetLocation(deltaX, deltaY)
268
+ var index = 0
269
+ val size = event.pointerCount
270
+ while (index < size) {
271
+ val origPointerId = event.getPointerId(index)
272
+ if (trackedPointerIDs[origPointerId] != -1) {
273
+ event.getPointerProperties(index, pointerProps[count])
274
+ pointerProps[count]!!.id = trackedPointerIDs[origPointerId]
275
+ event.getPointerCoords(index, pointerCoords[count])
276
+ if (index == actionIndex) {
277
+ action = action or (count shl MotionEvent.ACTION_POINTER_INDEX_SHIFT)
278
+ }
279
+ count++
280
+ }
281
+ index++
282
+ }
283
+
284
+ // introduced in 1.11.0, remove if crashes are not reported
285
+ if (pointerProps.isEmpty() || pointerCoords.isEmpty()) {
286
+ throw IllegalStateException("pointerCoords.size=${pointerCoords.size}, pointerProps.size=${pointerProps.size}")
287
+ }
288
+
289
+ val result: MotionEvent
290
+ try {
291
+ result = MotionEvent.obtain(
292
+ event.downTime,
293
+ event.eventTime,
294
+ action,
295
+ count,
296
+ pointerProps, /* props are copied and hence it is safe to use static array here */
297
+ pointerCoords, /* same applies to coords */
298
+ event.metaState,
299
+ event.buttonState,
300
+ event.xPrecision,
301
+ event.yPrecision,
302
+ event.deviceId,
303
+ event.edgeFlags,
304
+ event.source,
305
+ event.flags
306
+ )
307
+ } catch (e: IllegalArgumentException) {
308
+ throw AdaptEventException(this, event, e)
309
+ }
310
+ event.offsetLocation(-deltaX, -deltaY)
311
+ result.offsetLocation(-deltaX, -deltaY)
312
+ return result
313
+ }
314
+
315
+ // exception to help debug https://github.com/software-mansion/react-native-gesture-handler/issues/1188
316
+ class AdaptEventException(
317
+ handler: GestureHandler<*>,
318
+ event: MotionEvent,
319
+ e: IllegalArgumentException
320
+ ) : Exception(
321
+ """
322
+ handler: ${handler::class.simpleName}
323
+ state: ${handler.state}
324
+ view: ${handler.view}
325
+ orchestrator: ${handler.orchestrator}
326
+ isEnabled: ${handler.isEnabled}
327
+ isActive: ${handler.isActive}
328
+ isAwaiting: ${handler.isAwaiting}
329
+ trackedPointersCount: ${handler.trackedPointersIDsCount}
330
+ trackedPointers: ${handler.trackedPointerIDs.joinToString(separator = ", ")}
331
+ while handling event: $event
332
+ """.trimIndent(),
333
+ e
334
+ )
335
+
336
+ fun handle(transformedEvent: MotionEvent, sourceEvent: MotionEvent) {
337
+ if (!isEnabled ||
338
+ state == STATE_CANCELLED ||
339
+ state == STATE_FAILED ||
340
+ state == STATE_END ||
341
+ trackedPointersIDsCount < 1
342
+ ) {
343
+ return
344
+ }
345
+
346
+ // a workaround for https://github.com/software-mansion/react-native-gesture-handler/issues/1188
347
+ val (adaptedTransformedEvent, adaptedSourceEvent) = if (BuildConfig.DEBUG) {
348
+ arrayOf(adaptEvent(transformedEvent), adaptEvent(sourceEvent))
349
+ } else {
350
+ try {
351
+ arrayOf(adaptEvent(transformedEvent), adaptEvent(sourceEvent))
352
+ } catch (e: AdaptEventException) {
353
+ fail()
354
+ return
355
+ }
356
+ }
357
+
358
+ x = adaptedTransformedEvent.x
359
+ y = adaptedTransformedEvent.y
360
+ numberOfPointers = adaptedTransformedEvent.pointerCount
361
+ isWithinBounds = isWithinBounds(view, x, y)
362
+ if (shouldCancelWhenOutside && !isWithinBounds) {
363
+ if (state == STATE_ACTIVE) {
364
+ cancel()
365
+ } else if (state == STATE_BEGAN) {
366
+ fail()
367
+ }
368
+ return
369
+ }
370
+ lastAbsolutePositionX = GestureUtils.getLastPointerX(adaptedTransformedEvent, true)
371
+ lastAbsolutePositionY = GestureUtils.getLastPointerY(adaptedTransformedEvent, true)
372
+ lastEventOffsetX = adaptedTransformedEvent.rawX - adaptedTransformedEvent.x
373
+ lastEventOffsetY = adaptedTransformedEvent.rawY - adaptedTransformedEvent.y
374
+ if (sourceEvent.action == MotionEvent.ACTION_HOVER_ENTER ||
375
+ sourceEvent.action == MotionEvent.ACTION_HOVER_MOVE ||
376
+ sourceEvent.action == MotionEvent.ACTION_HOVER_EXIT
377
+ ) {
378
+ onHandleHover(adaptedTransformedEvent, adaptedSourceEvent)
379
+ } else {
380
+ onHandle(adaptedTransformedEvent, adaptedSourceEvent)
381
+ }
382
+ if (adaptedTransformedEvent != transformedEvent) {
383
+ adaptedTransformedEvent.recycle()
384
+ }
385
+ if (adaptedSourceEvent != sourceEvent) {
386
+ adaptedSourceEvent.recycle()
387
+ }
388
+ }
389
+
390
+ private fun dispatchTouchDownEvent(event: MotionEvent) {
391
+ changedTouchesPayload = null
392
+ touchEventType = RNGestureHandlerTouchEvent.EVENT_TOUCH_DOWN
393
+ val pointerId = event.getPointerId(event.actionIndex)
394
+ val offsetX = event.rawX - event.x
395
+ val offsetY = event.rawY - event.y
396
+
397
+ trackedPointers[pointerId] = PointerData(
398
+ pointerId,
399
+ event.getX(event.actionIndex),
400
+ event.getY(event.actionIndex),
401
+ event.getX(event.actionIndex) + offsetX - windowOffset[0],
402
+ event.getY(event.actionIndex) + offsetY - windowOffset[1],
403
+ )
404
+ trackedPointersCount++
405
+ addChangedPointer(trackedPointers[pointerId]!!)
406
+ extractAllPointersData()
407
+
408
+ dispatchTouchEvent()
409
+ }
410
+
411
+ private fun dispatchTouchUpEvent(event: MotionEvent) {
412
+ extractAllPointersData()
413
+ changedTouchesPayload = null
414
+ touchEventType = RNGestureHandlerTouchEvent.EVENT_TOUCH_UP
415
+ val pointerId = event.getPointerId(event.actionIndex)
416
+ val offsetX = event.rawX - event.x
417
+ val offsetY = event.rawY - event.y
418
+
419
+ trackedPointers[pointerId] = PointerData(
420
+ pointerId,
421
+ event.getX(event.actionIndex),
422
+ event.getY(event.actionIndex),
423
+ event.getX(event.actionIndex) + offsetX - windowOffset[0],
424
+ event.getY(event.actionIndex) + offsetY - windowOffset[1],
425
+ )
426
+ addChangedPointer(trackedPointers[pointerId]!!)
427
+ trackedPointers[pointerId] = null
428
+ trackedPointersCount--
429
+
430
+ dispatchTouchEvent()
431
+ }
432
+
433
+ private fun dispatchTouchMoveEvent(event: MotionEvent) {
434
+ changedTouchesPayload = null
435
+ touchEventType = RNGestureHandlerTouchEvent.EVENT_TOUCH_MOVE
436
+ val offsetX = event.rawX - event.x
437
+ val offsetY = event.rawY - event.y
438
+ var pointersAdded = 0
439
+
440
+ for (i in 0 until event.pointerCount) {
441
+ val pointerId = event.getPointerId(i)
442
+ val pointer = trackedPointers[pointerId] ?: continue
443
+
444
+ if (pointer.x != event.getX(i) || pointer.y != event.getY(i)) {
445
+ pointer.x = event.getX(i)
446
+ pointer.y = event.getY(i)
447
+ pointer.absoluteX = event.getX(i) + offsetX - windowOffset[0]
448
+ pointer.absoluteY = event.getY(i) + offsetY - windowOffset[1]
449
+
450
+ addChangedPointer(pointer)
451
+ pointersAdded++
452
+ }
453
+ }
454
+
455
+ // only data about pointers that have changed their position is sent, it makes no sense to send
456
+ // an empty move event (especially when this method is called during down/up event and there is
457
+ // only info about one pointer)
458
+ if (pointersAdded > 0) {
459
+ extractAllPointersData()
460
+ dispatchTouchEvent()
461
+ }
462
+ }
463
+
464
+ fun updatePointerData(event: MotionEvent) {
465
+ if (event.actionMasked == MotionEvent.ACTION_DOWN || event.actionMasked == MotionEvent.ACTION_POINTER_DOWN) {
466
+ dispatchTouchDownEvent(event)
467
+ dispatchTouchMoveEvent(event)
468
+ } else if (event.actionMasked == MotionEvent.ACTION_UP || event.actionMasked == MotionEvent.ACTION_POINTER_UP) {
469
+ dispatchTouchMoveEvent(event)
470
+ dispatchTouchUpEvent(event)
471
+ } else if (event.actionMasked == MotionEvent.ACTION_MOVE) {
472
+ dispatchTouchMoveEvent(event)
473
+ }
474
+ }
475
+
476
+ private fun extractAllPointersData() {
477
+ allTouchesPayload = null
478
+
479
+ for (pointerData in trackedPointers) {
480
+ if (pointerData != null) {
481
+ addPointerToAll(pointerData)
482
+ }
483
+ }
484
+ }
485
+
486
+ private fun cancelPointers() {
487
+ touchEventType = RNGestureHandlerTouchEvent.EVENT_TOUCH_CANCELLED
488
+ changedTouchesPayload = null
489
+ extractAllPointersData()
490
+
491
+ for (pointer in trackedPointers) {
492
+ pointer?.let {
493
+ addChangedPointer(it)
494
+ }
495
+ }
496
+
497
+ trackedPointersCount = 0
498
+ trackedPointers.fill(null)
499
+
500
+ dispatchTouchEvent()
501
+ }
502
+
503
+ private fun addChangedPointer(pointerData: PointerData) {
504
+ if (changedTouchesPayload == null) {
505
+ changedTouchesPayload = Arguments.createArray()
506
+ }
507
+
508
+ changedTouchesPayload!!.pushMap(createPointerData(pointerData))
509
+ }
510
+
511
+ private fun addPointerToAll(pointerData: PointerData) {
512
+ if (allTouchesPayload == null) {
513
+ allTouchesPayload = Arguments.createArray()
514
+ }
515
+
516
+ allTouchesPayload!!.pushMap(createPointerData(pointerData))
517
+ }
518
+
519
+ private fun createPointerData(pointerData: PointerData) = Arguments.createMap().apply {
520
+ putInt("id", pointerData.pointerId)
521
+ putDouble("x", PixelUtil.toDIPFromPixel(pointerData.x).toDouble())
522
+ putDouble("y", PixelUtil.toDIPFromPixel(pointerData.y).toDouble())
523
+ putDouble("absoluteX", PixelUtil.toDIPFromPixel(pointerData.absoluteX).toDouble())
524
+ putDouble("absoluteY", PixelUtil.toDIPFromPixel(pointerData.absoluteY).toDouble())
525
+ }
526
+
527
+ fun consumeChangedTouchesPayload(): WritableArray? {
528
+ val result = changedTouchesPayload
529
+ changedTouchesPayload = null
530
+ return result
531
+ }
532
+
533
+ fun consumeAllTouchesPayload(): WritableArray? {
534
+ val result = allTouchesPayload
535
+ allTouchesPayload = null
536
+ return result
537
+ }
538
+
539
+ private fun moveToState(newState: Int) {
540
+ UiThreadUtil.assertOnUiThread()
541
+ if (state == newState) {
542
+ return
543
+ }
544
+
545
+ // if there are tracked pointers and the gesture is about to end, send event cancelling all pointers
546
+ if (trackedPointersCount > 0 && (newState == STATE_END || newState == STATE_CANCELLED || newState == STATE_FAILED)) {
547
+ cancelPointers()
548
+ }
549
+
550
+ val oldState = state
551
+ state = newState
552
+ if (state == STATE_ACTIVE) {
553
+ // Generate a unique coalescing-key each time the gesture-handler becomes active. All events will have
554
+ // the same coalescing-key allowing EventDispatcher to coalesce RNGestureHandlerEvents when events are
555
+ // generated faster than they can be treated by JS thread
556
+ eventCoalescingKey = nextEventCoalescingKey++
557
+ }
558
+ orchestrator!!.onHandlerStateChange(this, newState, oldState)
559
+ onStateChange(newState, oldState)
560
+ }
561
+
562
+ fun wantEvents(): Boolean {
563
+ return isEnabled &&
564
+ state != STATE_FAILED &&
565
+ state != STATE_CANCELLED &&
566
+ state != STATE_END &&
567
+ trackedPointersIDsCount > 0
568
+ }
569
+
570
+ open fun shouldRequireToWaitForFailure(handler: GestureHandler<*>): Boolean {
571
+ if (handler === this) {
572
+ return false
573
+ }
574
+
575
+ return interactionController?.shouldRequireHandlerToWaitForFailure(this, handler) ?: false
576
+ }
577
+
578
+ fun shouldWaitForHandlerFailure(handler: GestureHandler<*>): Boolean {
579
+ if (handler === this) {
580
+ return false
581
+ }
582
+
583
+ return interactionController?.shouldWaitForHandlerFailure(this, handler) ?: false
584
+ }
585
+
586
+ open fun shouldRecognizeSimultaneously(handler: GestureHandler<*>): Boolean {
587
+ if (handler === this) {
588
+ return true
589
+ }
590
+
591
+ return interactionController?.shouldRecognizeSimultaneously(this, handler) ?: false
592
+ }
593
+
594
+ open fun shouldBeCancelledBy(handler: GestureHandler<*>): Boolean {
595
+ if (handler === this) {
596
+ return false
597
+ }
598
+
599
+ return interactionController?.shouldHandlerBeCancelledBy(this, handler) ?: false
600
+ }
601
+
602
+ fun isWithinBounds(view: View?, posX: Float, posY: Float): Boolean {
603
+ var left = 0f
604
+ var top = 0f
605
+ var right = view!!.width.toFloat()
606
+ var bottom = view.height.toFloat()
607
+ hitSlop?.let { hitSlop ->
608
+ val padLeft = hitSlop[HIT_SLOP_LEFT_IDX]
609
+ val padTop = hitSlop[HIT_SLOP_TOP_IDX]
610
+ val padRight = hitSlop[HIT_SLOP_RIGHT_IDX]
611
+ val padBottom = hitSlop[HIT_SLOP_BOTTOM_IDX]
612
+ if (hitSlopSet(padLeft)) {
613
+ left -= padLeft
614
+ }
615
+ if (hitSlopSet(padTop)) {
616
+ top -= padTop
617
+ }
618
+ if (hitSlopSet(padRight)) {
619
+ right += padRight
620
+ }
621
+ if (hitSlopSet(padBottom)) {
622
+ bottom += padBottom
623
+ }
624
+ val width = hitSlop[HIT_SLOP_WIDTH_IDX]
625
+ val height = hitSlop[HIT_SLOP_HEIGHT_IDX]
626
+ if (hitSlopSet(width)) {
627
+ if (!hitSlopSet(padLeft)) {
628
+ left = right - width
629
+ } else if (!hitSlopSet(padRight)) {
630
+ right = left + width
631
+ }
632
+ }
633
+ if (hitSlopSet(height)) {
634
+ if (!hitSlopSet(padTop)) {
635
+ top = bottom - height
636
+ } else if (!hitSlopSet(padBottom)) {
637
+ bottom = top + height
638
+ }
639
+ }
640
+ }
641
+ return posX in left..right && posY in top..bottom
642
+ }
643
+
644
+ fun cancel() {
645
+ if (state == STATE_ACTIVE || state == STATE_UNDETERMINED || state == STATE_BEGAN) {
646
+ onCancel()
647
+ moveToState(STATE_CANCELLED)
648
+ }
649
+ }
650
+
651
+ fun fail() {
652
+ if (state == STATE_ACTIVE || state == STATE_UNDETERMINED || state == STATE_BEGAN) {
653
+ moveToState(STATE_FAILED)
654
+ }
655
+ }
656
+
657
+ fun activate() = activate(force = false)
658
+
659
+ open fun activate(force: Boolean) {
660
+ if ((!manualActivation || force) && (state == STATE_UNDETERMINED || state == STATE_BEGAN)) {
661
+ moveToState(STATE_ACTIVE)
662
+ }
663
+ }
664
+
665
+ fun begin() {
666
+ if (state == STATE_UNDETERMINED) {
667
+ moveToState(STATE_BEGAN)
668
+ }
669
+ }
670
+
671
+ fun end() {
672
+ if (state == STATE_BEGAN || state == STATE_ACTIVE) {
673
+ moveToState(STATE_END)
674
+ }
675
+ }
676
+
677
+ // responsible for resetting the state of handler upon activation (may be called more than once
678
+ // if the handler is waiting for failure of other one)
679
+ open fun resetProgress() {}
680
+
681
+ protected open fun onHandle(event: MotionEvent, sourceEvent: MotionEvent) {
682
+ moveToState(STATE_FAILED)
683
+ }
684
+
685
+ protected open fun onHandleHover(event: MotionEvent, sourceEvent: MotionEvent) {}
686
+
687
+ protected open fun onStateChange(newState: Int, previousState: Int) {}
688
+ protected open fun onReset() {}
689
+ protected open fun onCancel() {}
690
+
691
+ /**
692
+ * Transforms a point in the coordinate space of the wrapperView (GestureHandlerRootView) to
693
+ * coordinate space of the view the gesture is attached to.
694
+ *
695
+ * If the gesture handler is not currently attached to a view, it will return (NaN, NaN).
696
+ *
697
+ * This method modifies and transforms the received point.
698
+ */
699
+ protected fun transformPoint(point: PointF): PointF {
700
+ return orchestrator?.transformPointToViewCoords(this.view, point) ?: run {
701
+ point.x = Float.NaN
702
+ point.y = Float.NaN
703
+ point
704
+ }
705
+ }
706
+ fun reset() {
707
+ view = null
708
+ orchestrator = null
709
+ Arrays.fill(trackedPointerIDs, -1)
710
+ trackedPointersIDsCount = 0
711
+
712
+ trackedPointersCount = 0
713
+ trackedPointers.fill(null)
714
+ touchEventType = RNGestureHandlerTouchEvent.EVENT_UNDETERMINED
715
+ onReset()
716
+ }
717
+
718
+ fun withMarkedAsInBounds(closure: () -> Unit) {
719
+ isWithinBounds = true
720
+ closure()
721
+ isWithinBounds = false
722
+ }
723
+
724
+ fun setOnTouchEventListener(listener: OnTouchEventListener?): GestureHandler<*> {
725
+ onTouchEventListener = listener
726
+ return this
727
+ }
728
+
729
+ override fun toString(): String {
730
+ val viewString = if (view == null) null else view!!.javaClass.simpleName
731
+ return this.javaClass.simpleName + "@[" + tag + "]:" + viewString
732
+ }
733
+
734
+ val lastRelativePositionX: Float
735
+ get() = lastAbsolutePositionX
736
+ val lastRelativePositionY: Float
737
+ get() = lastAbsolutePositionY
738
+
739
+ val lastPositionInWindowX: Float
740
+ get() = lastAbsolutePositionX + lastEventOffsetX - windowOffset[0]
741
+ val lastPositionInWindowY: Float
742
+ get() = lastAbsolutePositionY + lastEventOffsetY - windowOffset[1]
743
+
744
+ companion object {
745
+ const val STATE_UNDETERMINED = 0
746
+ const val STATE_FAILED = 1
747
+ const val STATE_BEGAN = 2
748
+ const val STATE_CANCELLED = 3
749
+ const val STATE_ACTIVE = 4
750
+ const val STATE_END = 5
751
+ const val HIT_SLOP_NONE = Float.NaN
752
+ private const val HIT_SLOP_LEFT_IDX = 0
753
+ private const val HIT_SLOP_TOP_IDX = 1
754
+ private const val HIT_SLOP_RIGHT_IDX = 2
755
+ private const val HIT_SLOP_BOTTOM_IDX = 3
756
+ private const val HIT_SLOP_WIDTH_IDX = 4
757
+ private const val HIT_SLOP_HEIGHT_IDX = 5
758
+ const val DIRECTION_RIGHT = 1
759
+ const val DIRECTION_LEFT = 2
760
+ const val DIRECTION_UP = 4
761
+ const val DIRECTION_DOWN = 8
762
+ const val ACTION_TYPE_REANIMATED_WORKLET = 1
763
+ const val ACTION_TYPE_NATIVE_ANIMATED_EVENT = 2
764
+ const val ACTION_TYPE_JS_FUNCTION_OLD_API = 3
765
+ const val ACTION_TYPE_JS_FUNCTION_NEW_API = 4
766
+ private const val MAX_POINTERS_COUNT = 12
767
+ private lateinit var pointerProps: Array<PointerProperties?>
768
+ private lateinit var pointerCoords: Array<PointerCoords?>
769
+ private fun initPointerProps(size: Int) {
770
+ var size = size
771
+ if (!Companion::pointerProps.isInitialized) {
772
+ pointerProps = arrayOfNulls(MAX_POINTERS_COUNT)
773
+ pointerCoords = arrayOfNulls(MAX_POINTERS_COUNT)
774
+ }
775
+ while (size > 0 && pointerProps[size - 1] == null) {
776
+ pointerProps[size - 1] = PointerProperties()
777
+ pointerCoords[size - 1] = PointerCoords()
778
+ size--
779
+ }
780
+ }
781
+
782
+ private var nextEventCoalescingKey: Short = 0
783
+ private fun hitSlopSet(value: Float): Boolean {
784
+ return !java.lang.Float.isNaN(value)
785
+ }
786
+
787
+ fun stateToString(state: Int): String? {
788
+ when (state) {
789
+ STATE_UNDETERMINED -> return "UNDETERMINED"
790
+ STATE_ACTIVE -> return "ACTIVE"
791
+ STATE_FAILED -> return "FAILED"
792
+ STATE_BEGAN -> return "BEGIN"
793
+ STATE_CANCELLED -> return "CANCELLED"
794
+ STATE_END -> return "END"
795
+ }
796
+ return null
797
+ }
798
+ }
799
+
800
+ private data class PointerData(
801
+ val pointerId: Int,
802
+ var x: Float,
803
+ var y: Float,
804
+ var absoluteX: Float,
805
+ var absoluteY: Float
806
+ )
807
+ }