@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,702 @@
1
+ package com.swmansion.gesturehandler.react
2
+
3
+ import android.content.Context
4
+ import android.util.Log
5
+ import android.view.MotionEvent
6
+ import com.facebook.react.ReactRootView
7
+ import com.facebook.react.bridge.JSApplicationIllegalArgumentException
8
+ import com.facebook.react.bridge.ReactApplicationContext
9
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
10
+ import com.facebook.react.bridge.ReactMethod
11
+ import com.facebook.react.bridge.ReadableMap
12
+ import com.facebook.react.bridge.ReadableType
13
+ import com.facebook.react.bridge.WritableMap
14
+ import com.facebook.react.module.annotations.ReactModule
15
+ import com.facebook.react.uimanager.PixelUtil
16
+ import com.facebook.react.uimanager.events.Event
17
+ import com.facebook.soloader.SoLoader
18
+ import com.swmansion.common.GestureHandlerStateManager
19
+ import com.swmansion.gesturehandler.BuildConfig
20
+ import com.swmansion.gesturehandler.ReanimatedEventDispatcher
21
+ import com.swmansion.gesturehandler.core.FlingGestureHandler
22
+ import com.swmansion.gesturehandler.core.GestureHandler
23
+ import com.swmansion.gesturehandler.core.HoverGestureHandler
24
+ import com.swmansion.gesturehandler.core.LongPressGestureHandler
25
+ import com.swmansion.gesturehandler.core.ManualGestureHandler
26
+ import com.swmansion.gesturehandler.core.NativeViewGestureHandler
27
+ import com.swmansion.gesturehandler.core.OnTouchEventListener
28
+ import com.swmansion.gesturehandler.core.PanGestureHandler
29
+ import com.swmansion.gesturehandler.core.PinchGestureHandler
30
+ import com.swmansion.gesturehandler.core.RotationGestureHandler
31
+ import com.swmansion.gesturehandler.core.TapGestureHandler
32
+ import com.swmansion.gesturehandler.dispatchEvent
33
+ import com.swmansion.gesturehandler.react.eventbuilders.FlingGestureHandlerEventDataBuilder
34
+ import com.swmansion.gesturehandler.react.eventbuilders.GestureHandlerEventDataBuilder
35
+ import com.swmansion.gesturehandler.react.eventbuilders.HoverGestureHandlerEventDataBuilder
36
+ import com.swmansion.gesturehandler.react.eventbuilders.LongPressGestureHandlerEventDataBuilder
37
+ import com.swmansion.gesturehandler.react.eventbuilders.ManualGestureHandlerEventDataBuilder
38
+ import com.swmansion.gesturehandler.react.eventbuilders.NativeGestureHandlerEventDataBuilder
39
+ import com.swmansion.gesturehandler.react.eventbuilders.PanGestureHandlerEventDataBuilder
40
+ import com.swmansion.gesturehandler.react.eventbuilders.PinchGestureHandlerEventDataBuilder
41
+ import com.swmansion.gesturehandler.react.eventbuilders.RotationGestureHandlerEventDataBuilder
42
+ import com.swmansion.gesturehandler.react.eventbuilders.TapGestureHandlerEventDataBuilder
43
+
44
+ // NativeModule.onCatalystInstanceDestroy() was deprecated in favor of NativeModule.invalidate()
45
+ // ref: https://github.com/facebook/react-native/commit/18c8417290823e67e211bde241ae9dde27b72f17
46
+
47
+ // UIManagerModule.resolveRootTagFromReactTag() was deprecated and will be removed in the next RN release
48
+ // ref: https://github.com/facebook/react-native/commit/acbf9e18ea666b07c1224a324602a41d0a66985e
49
+ @Suppress("DEPRECATION")
50
+ @ReactModule(name = RNGestureHandlerModule.MODULE_NAME)
51
+ class RNGestureHandlerModule(reactContext: ReactApplicationContext?) :
52
+ ReactContextBaseJavaModule(reactContext), GestureHandlerStateManager {
53
+ private abstract class HandlerFactory<T : GestureHandler<T>> {
54
+ abstract val type: Class<T>
55
+ abstract val name: String
56
+ abstract fun create(context: Context?): T
57
+ open fun configure(handler: T, config: ReadableMap) {
58
+ handler.resetConfig()
59
+ if (config.hasKey(KEY_SHOULD_CANCEL_WHEN_OUTSIDE)) {
60
+ handler.setShouldCancelWhenOutside(config.getBoolean(KEY_SHOULD_CANCEL_WHEN_OUTSIDE))
61
+ }
62
+ if (config.hasKey(KEY_ENABLED)) {
63
+ handler.setEnabled(config.getBoolean(KEY_ENABLED))
64
+ }
65
+ if (config.hasKey(KEY_HIT_SLOP)) {
66
+ handleHitSlopProperty(handler, config)
67
+ }
68
+ if (config.hasKey(KEY_NEEDS_POINTER_DATA)) {
69
+ handler.needsPointerData = config.getBoolean(KEY_NEEDS_POINTER_DATA)
70
+ }
71
+ if (config.hasKey(KEY_MANUAL_ACTIVATION)) {
72
+ handler.setManualActivation(config.getBoolean(KEY_MANUAL_ACTIVATION))
73
+ }
74
+ }
75
+
76
+ abstract fun createEventBuilder(handler: T): GestureHandlerEventDataBuilder<T>
77
+ }
78
+
79
+ private class NativeViewGestureHandlerFactory : HandlerFactory<NativeViewGestureHandler>() {
80
+ override val type = NativeViewGestureHandler::class.java
81
+ override val name = "NativeViewGestureHandler"
82
+
83
+ override fun create(context: Context?): NativeViewGestureHandler {
84
+ return NativeViewGestureHandler()
85
+ }
86
+
87
+ override fun configure(handler: NativeViewGestureHandler, config: ReadableMap) {
88
+ super.configure(handler, config)
89
+ if (config.hasKey(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)) {
90
+ handler.setShouldActivateOnStart(
91
+ config.getBoolean(KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START)
92
+ )
93
+ }
94
+ if (config.hasKey(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION)) {
95
+ handler.setDisallowInterruption(config.getBoolean(KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION))
96
+ }
97
+ }
98
+
99
+ override fun createEventBuilder(handler: NativeViewGestureHandler) = NativeGestureHandlerEventDataBuilder(handler)
100
+ }
101
+
102
+ private class TapGestureHandlerFactory : HandlerFactory<TapGestureHandler>() {
103
+ override val type = TapGestureHandler::class.java
104
+ override val name = "TapGestureHandler"
105
+
106
+ override fun create(context: Context?): TapGestureHandler {
107
+ return TapGestureHandler()
108
+ }
109
+
110
+ override fun configure(handler: TapGestureHandler, config: ReadableMap) {
111
+ super.configure(handler, config)
112
+ if (config.hasKey(KEY_TAP_NUMBER_OF_TAPS)) {
113
+ handler.setNumberOfTaps(config.getInt(KEY_TAP_NUMBER_OF_TAPS))
114
+ }
115
+ if (config.hasKey(KEY_TAP_MAX_DURATION_MS)) {
116
+ handler.setMaxDurationMs(config.getInt(KEY_TAP_MAX_DURATION_MS).toLong())
117
+ }
118
+ if (config.hasKey(KEY_TAP_MAX_DELAY_MS)) {
119
+ handler.setMaxDelayMs(config.getInt(KEY_TAP_MAX_DELAY_MS).toLong())
120
+ }
121
+ if (config.hasKey(KEY_TAP_MAX_DELTA_X)) {
122
+ handler.setMaxDx(PixelUtil.toPixelFromDIP(config.getDouble(KEY_TAP_MAX_DELTA_X)))
123
+ }
124
+ if (config.hasKey(KEY_TAP_MAX_DELTA_Y)) {
125
+ handler.setMaxDy(PixelUtil.toPixelFromDIP(config.getDouble(KEY_TAP_MAX_DELTA_Y)))
126
+ }
127
+ if (config.hasKey(KEY_TAP_MAX_DIST)) {
128
+ handler.setMaxDist(PixelUtil.toPixelFromDIP(config.getDouble(KEY_TAP_MAX_DIST)))
129
+ }
130
+ if (config.hasKey(KEY_TAP_MIN_POINTERS)) {
131
+ handler.setMinNumberOfPointers(config.getInt(KEY_TAP_MIN_POINTERS))
132
+ }
133
+ }
134
+
135
+ override fun createEventBuilder(handler: TapGestureHandler) = TapGestureHandlerEventDataBuilder(handler)
136
+ }
137
+
138
+ private class LongPressGestureHandlerFactory : HandlerFactory<LongPressGestureHandler>() {
139
+ override val type = LongPressGestureHandler::class.java
140
+ override val name = "LongPressGestureHandler"
141
+
142
+ override fun create(context: Context?): LongPressGestureHandler {
143
+ return LongPressGestureHandler((context)!!)
144
+ }
145
+
146
+ override fun configure(handler: LongPressGestureHandler, config: ReadableMap) {
147
+ super.configure(handler, config)
148
+ if (config.hasKey(KEY_LONG_PRESS_MIN_DURATION_MS)) {
149
+ handler.minDurationMs = config.getInt(KEY_LONG_PRESS_MIN_DURATION_MS).toLong()
150
+ }
151
+ if (config.hasKey(KEY_LONG_PRESS_MAX_DIST)) {
152
+ handler.setMaxDist(PixelUtil.toPixelFromDIP(config.getDouble(KEY_LONG_PRESS_MAX_DIST)))
153
+ }
154
+ }
155
+
156
+ override fun createEventBuilder(handler: LongPressGestureHandler) = LongPressGestureHandlerEventDataBuilder(handler)
157
+ }
158
+
159
+ private class PanGestureHandlerFactory : HandlerFactory<PanGestureHandler>() {
160
+ override val type = PanGestureHandler::class.java
161
+ override val name = "PanGestureHandler"
162
+
163
+ override fun create(context: Context?): PanGestureHandler {
164
+ return PanGestureHandler(context)
165
+ }
166
+
167
+ override fun configure(handler: PanGestureHandler, config: ReadableMap) {
168
+ super.configure(handler, config)
169
+ var hasCustomActivationCriteria = false
170
+ if (config.hasKey(KEY_PAN_ACTIVE_OFFSET_X_START)) {
171
+ handler.setActiveOffsetXStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_X_START)))
172
+ hasCustomActivationCriteria = true
173
+ }
174
+ if (config.hasKey(KEY_PAN_ACTIVE_OFFSET_X_END)) {
175
+ handler.setActiveOffsetXEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_X_END)))
176
+ hasCustomActivationCriteria = true
177
+ }
178
+ if (config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_X_START)) {
179
+ handler.setFailOffsetXStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_X_START)))
180
+ hasCustomActivationCriteria = true
181
+ }
182
+ if (config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_X_END)) {
183
+ handler.setFailOffsetXEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_X_END)))
184
+ hasCustomActivationCriteria = true
185
+ }
186
+ if (config.hasKey(KEY_PAN_ACTIVE_OFFSET_Y_START)) {
187
+ handler.setActiveOffsetYStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_Y_START)))
188
+ hasCustomActivationCriteria = true
189
+ }
190
+ if (config.hasKey(KEY_PAN_ACTIVE_OFFSET_Y_END)) {
191
+ handler.setActiveOffsetYEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_ACTIVE_OFFSET_Y_END)))
192
+ hasCustomActivationCriteria = true
193
+ }
194
+ if (config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_Y_START)) {
195
+ handler.setFailOffsetYStart(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_Y_START)))
196
+ hasCustomActivationCriteria = true
197
+ }
198
+ if (config.hasKey(KEY_PAN_FAIL_OFFSET_RANGE_Y_END)) {
199
+ handler.setFailOffsetYEnd(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_FAIL_OFFSET_RANGE_Y_END)))
200
+ hasCustomActivationCriteria = true
201
+ }
202
+ if (config.hasKey(KEY_PAN_MIN_VELOCITY)) {
203
+ // This value is actually in DPs/ms, but we can use the same function as for converting
204
+ // from DPs to pixels as the unit we're converting is in the numerator
205
+ handler.setMinVelocity(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_VELOCITY)))
206
+ hasCustomActivationCriteria = true
207
+ }
208
+ if (config.hasKey(KEY_PAN_MIN_VELOCITY_X)) {
209
+ handler.setMinVelocityX(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_VELOCITY_X)))
210
+ hasCustomActivationCriteria = true
211
+ }
212
+ if (config.hasKey(KEY_PAN_MIN_VELOCITY_Y)) {
213
+ handler.setMinVelocityY(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_VELOCITY_Y)))
214
+ hasCustomActivationCriteria = true
215
+ }
216
+
217
+ // PanGestureHandler sets minDist by default, if there are custom criteria specified we want
218
+ // to reset that setting and use provided criteria instead.
219
+ if (config.hasKey(KEY_PAN_MIN_DIST)) {
220
+ handler.setMinDist(PixelUtil.toPixelFromDIP(config.getDouble(KEY_PAN_MIN_DIST)))
221
+ } else if (hasCustomActivationCriteria) {
222
+ handler.setMinDist(Float.MAX_VALUE)
223
+ }
224
+ if (config.hasKey(KEY_PAN_MIN_POINTERS)) {
225
+ handler.setMinPointers(config.getInt(KEY_PAN_MIN_POINTERS))
226
+ }
227
+ if (config.hasKey(KEY_PAN_MAX_POINTERS)) {
228
+ handler.setMaxPointers(config.getInt(KEY_PAN_MAX_POINTERS))
229
+ }
230
+ if (config.hasKey(KEY_PAN_AVG_TOUCHES)) {
231
+ handler.setAverageTouches(config.getBoolean(KEY_PAN_AVG_TOUCHES))
232
+ }
233
+ if (config.hasKey(KEY_PAN_ACTIVATE_AFTER_LONG_PRESS)) {
234
+ handler.setActivateAfterLongPress(config.getInt(KEY_PAN_ACTIVATE_AFTER_LONG_PRESS).toLong())
235
+ }
236
+ }
237
+
238
+ override fun createEventBuilder(handler: PanGestureHandler) = PanGestureHandlerEventDataBuilder(handler)
239
+ }
240
+
241
+ private class PinchGestureHandlerFactory : HandlerFactory<PinchGestureHandler>() {
242
+ override val type = PinchGestureHandler::class.java
243
+ override val name = "PinchGestureHandler"
244
+
245
+ override fun create(context: Context?): PinchGestureHandler {
246
+ return PinchGestureHandler()
247
+ }
248
+
249
+ override fun createEventBuilder(handler: PinchGestureHandler) = PinchGestureHandlerEventDataBuilder(handler)
250
+ }
251
+
252
+ private class FlingGestureHandlerFactory : HandlerFactory<FlingGestureHandler>() {
253
+ override val type = FlingGestureHandler::class.java
254
+ override val name = "FlingGestureHandler"
255
+
256
+ override fun create(context: Context?): FlingGestureHandler {
257
+ return FlingGestureHandler()
258
+ }
259
+
260
+ override fun configure(handler: FlingGestureHandler, config: ReadableMap) {
261
+ super.configure(handler, config)
262
+ if (config.hasKey(KEY_NUMBER_OF_POINTERS)) {
263
+ handler.numberOfPointersRequired = config.getInt(KEY_NUMBER_OF_POINTERS)
264
+ }
265
+ if (config.hasKey(KEY_DIRECTION)) {
266
+ handler.direction = config.getInt(KEY_DIRECTION)
267
+ }
268
+ }
269
+
270
+ override fun createEventBuilder(handler: FlingGestureHandler) = FlingGestureHandlerEventDataBuilder(handler)
271
+ }
272
+
273
+ private class RotationGestureHandlerFactory : HandlerFactory<RotationGestureHandler>() {
274
+ override val type = RotationGestureHandler::class.java
275
+ override val name = "RotationGestureHandler"
276
+
277
+ override fun create(context: Context?): RotationGestureHandler {
278
+ return RotationGestureHandler()
279
+ }
280
+
281
+ override fun createEventBuilder(handler: RotationGestureHandler) = RotationGestureHandlerEventDataBuilder(handler)
282
+ }
283
+
284
+ private class ManualGestureHandlerFactory : HandlerFactory<ManualGestureHandler>() {
285
+ override val type = ManualGestureHandler::class.java
286
+ override val name = "ManualGestureHandler"
287
+
288
+ override fun create(context: Context?): ManualGestureHandler {
289
+ return ManualGestureHandler()
290
+ }
291
+
292
+ override fun createEventBuilder(handler: ManualGestureHandler) = ManualGestureHandlerEventDataBuilder(handler)
293
+ }
294
+
295
+ private class HoverGestureHandlerFactory : HandlerFactory<HoverGestureHandler>() {
296
+ override val type = HoverGestureHandler::class.java
297
+ override val name = "HoverGestureHandler"
298
+
299
+ override fun create(context: Context?): HoverGestureHandler {
300
+ return HoverGestureHandler()
301
+ }
302
+
303
+ override fun createEventBuilder(handler: HoverGestureHandler) = HoverGestureHandlerEventDataBuilder(handler)
304
+ }
305
+
306
+ private val eventListener = object : OnTouchEventListener {
307
+ override fun <T : GestureHandler<T>> onHandlerUpdate(handler: T, event: MotionEvent) {
308
+ this@RNGestureHandlerModule.onHandlerUpdate(handler)
309
+ }
310
+
311
+ override fun <T : GestureHandler<T>> onStateChange(handler: T, newState: Int, oldState: Int) {
312
+ this@RNGestureHandlerModule.onStateChange(handler, newState, oldState)
313
+ }
314
+
315
+ override fun <T : GestureHandler<T>> onTouchEvent(handler: T) {
316
+ this@RNGestureHandlerModule.onTouchEvent(handler)
317
+ }
318
+ }
319
+ private val handlerFactories = arrayOf<HandlerFactory<*>>(
320
+ NativeViewGestureHandlerFactory(),
321
+ TapGestureHandlerFactory(),
322
+ LongPressGestureHandlerFactory(),
323
+ PanGestureHandlerFactory(),
324
+ PinchGestureHandlerFactory(),
325
+ RotationGestureHandlerFactory(),
326
+ FlingGestureHandlerFactory(),
327
+ ManualGestureHandlerFactory(),
328
+ HoverGestureHandlerFactory(),
329
+ )
330
+ val registry: RNGestureHandlerRegistry = RNGestureHandlerRegistry()
331
+ private val interactionManager = RNGestureHandlerInteractionManager()
332
+ private val roots: MutableList<RNGestureHandlerRootHelper> = ArrayList()
333
+ private val reanimatedEventDispatcher = ReanimatedEventDispatcher()
334
+ override fun getName() = MODULE_NAME
335
+
336
+ @ReactMethod
337
+ @Suppress("UNCHECKED_CAST")
338
+ fun <T : GestureHandler<T>> createGestureHandler(
339
+ handlerName: String,
340
+ handlerTag: Int,
341
+ config: ReadableMap,
342
+ ) {
343
+ for (handlerFactory in handlerFactories as Array<HandlerFactory<T>>) {
344
+ if (handlerFactory.name == handlerName) {
345
+ val handler = handlerFactory.create(reactApplicationContext).apply {
346
+ tag = handlerTag
347
+ setOnTouchEventListener(eventListener)
348
+ }
349
+ registry.registerHandler(handler)
350
+ interactionManager.configureInteractions(handler, config)
351
+ handlerFactory.configure(handler, config)
352
+ return
353
+ }
354
+ }
355
+ throw JSApplicationIllegalArgumentException("Invalid handler name $handlerName")
356
+ }
357
+
358
+ @ReactMethod
359
+ fun attachGestureHandler(handlerTag: Int, viewTag: Int, actionType: Int) {
360
+ // We don't have to handle view flattening in any special way since handlers are stored as
361
+ // a map: viewTag -> [handler]. If the view with attached handlers was to be flattened
362
+ // then that viewTag simply wouldn't be visited when traversing the view hierarchy in the
363
+ // Orchestrator effectively ignoring all handlers attached to flattened views.
364
+ if (!registry.attachHandlerToView(handlerTag, viewTag, actionType)) {
365
+ throw JSApplicationIllegalArgumentException("Handler with tag $handlerTag does not exists")
366
+ }
367
+ }
368
+
369
+ @ReactMethod
370
+ @Suppress("UNCHECKED_CAST")
371
+ fun <T : GestureHandler<T>> updateGestureHandler(handlerTag: Int, config: ReadableMap) {
372
+ val handler = registry.getHandler(handlerTag) as T?
373
+ if (handler != null) {
374
+ val factory = findFactoryForHandler(handler)
375
+ if (factory != null) {
376
+ interactionManager.dropRelationsForHandlerWithTag(handlerTag)
377
+ interactionManager.configureInteractions(handler, config)
378
+ factory.configure(handler, config)
379
+ }
380
+ }
381
+ }
382
+
383
+ @ReactMethod
384
+ fun dropGestureHandler(handlerTag: Int) {
385
+ interactionManager.dropRelationsForHandlerWithTag(handlerTag)
386
+ registry.dropHandler(handlerTag)
387
+ }
388
+
389
+ @ReactMethod
390
+ fun handleSetJSResponder(viewTag: Int, blockNativeResponder: Boolean) {
391
+ val rootView = findRootHelperForViewAncestor(viewTag)
392
+ rootView?.handleSetJSResponder(viewTag, blockNativeResponder)
393
+ }
394
+
395
+ @ReactMethod
396
+ fun handleClearJSResponder() {
397
+ }
398
+
399
+ override fun setGestureHandlerState(handlerTag: Int, newState: Int) {
400
+ registry.getHandler(handlerTag)?.let { handler ->
401
+ when (newState) {
402
+ GestureHandler.STATE_ACTIVE -> handler.activate(force = true)
403
+ GestureHandler.STATE_BEGAN -> handler.begin()
404
+ GestureHandler.STATE_END -> handler.end()
405
+ GestureHandler.STATE_FAILED -> handler.fail()
406
+ GestureHandler.STATE_CANCELLED -> handler.cancel()
407
+ }
408
+ }
409
+ }
410
+
411
+ @ReactMethod(isBlockingSynchronousMethod = true)
412
+ fun install(): Boolean {
413
+ return try {
414
+ SoLoader.loadLibrary("gesturehandler")
415
+ val jsContext = reactApplicationContext.javaScriptContextHolder!!
416
+ decorateRuntime(jsContext.get())
417
+ true
418
+ } catch (exception: Exception) {
419
+ Log.w("[RNGestureHandler]", "Could not install JSI bindings.")
420
+ false
421
+ }
422
+ }
423
+
424
+ private external fun decorateRuntime(jsiPtr: Long)
425
+
426
+ override fun getConstants(): Map<String, Any> {
427
+ return mapOf(
428
+ "State" to mapOf(
429
+ "UNDETERMINED" to GestureHandler.STATE_UNDETERMINED,
430
+ "BEGAN" to GestureHandler.STATE_BEGAN,
431
+ "ACTIVE" to GestureHandler.STATE_ACTIVE,
432
+ "CANCELLED" to GestureHandler.STATE_CANCELLED,
433
+ "FAILED" to GestureHandler.STATE_FAILED,
434
+ "END" to GestureHandler.STATE_END
435
+ ),
436
+ "Direction" to mapOf(
437
+ "RIGHT" to GestureHandler.DIRECTION_RIGHT,
438
+ "LEFT" to GestureHandler.DIRECTION_LEFT,
439
+ "UP" to GestureHandler.DIRECTION_UP,
440
+ "DOWN" to GestureHandler.DIRECTION_DOWN
441
+ )
442
+ )
443
+ }
444
+
445
+ override fun onCatalystInstanceDestroy() {
446
+ registry.dropAllHandlers()
447
+ interactionManager.reset()
448
+ synchronized(roots) {
449
+ while (roots.isNotEmpty()) {
450
+ val sizeBefore: Int = roots.size
451
+ val root: RNGestureHandlerRootHelper = roots[0]
452
+ root.tearDown()
453
+ if (roots.size >= sizeBefore) {
454
+ throw IllegalStateException("Expected root helper to get unregistered while tearing down")
455
+ }
456
+ }
457
+ }
458
+ super.onCatalystInstanceDestroy()
459
+ }
460
+
461
+ fun registerRootHelper(root: RNGestureHandlerRootHelper) {
462
+ synchronized(roots) {
463
+ if (root in roots) {
464
+ throw IllegalStateException("Root helper$root already registered")
465
+ }
466
+ roots.add(root)
467
+ }
468
+ }
469
+
470
+ fun unregisterRootHelper(root: RNGestureHandlerRootHelper) {
471
+ synchronized(roots) { roots.remove(root) }
472
+ }
473
+
474
+ private fun findRootHelperForViewAncestor(viewTag: Int): RNGestureHandlerRootHelper? {
475
+ // TODO: remove resolveRootTagFromReactTag as it's deprecated and unavailable on FabricUIManager
476
+ val uiManager = reactApplicationContext.UIManager
477
+ val rootViewTag = uiManager.resolveRootTagFromReactTag(viewTag)
478
+ if (rootViewTag < 1) {
479
+ return null
480
+ }
481
+ synchronized(roots) {
482
+ return roots.firstOrNull {
483
+ it.rootView is ReactRootView && it.rootView.rootViewTag == rootViewTag
484
+ }
485
+ }
486
+ }
487
+
488
+ @Suppress("UNCHECKED_CAST")
489
+ private fun <T : GestureHandler<T>> findFactoryForHandler(handler: GestureHandler<T>): HandlerFactory<T>? =
490
+ handlerFactories.firstOrNull { it.type == handler.javaClass } as HandlerFactory<T>?
491
+
492
+ private fun <T : GestureHandler<T>> onHandlerUpdate(handler: T) {
493
+ // triggers onUpdate and onChange callbacks on the JS side
494
+
495
+ if (handler.tag < 0) {
496
+ // root containers use negative tags, we don't need to dispatch events for them to the JS
497
+ return
498
+ }
499
+ if (handler.state == GestureHandler.STATE_ACTIVE) {
500
+ val handlerFactory = findFactoryForHandler(handler) ?: return
501
+
502
+ if (handler.actionType == GestureHandler.ACTION_TYPE_REANIMATED_WORKLET) {
503
+ // Reanimated worklet
504
+ val event = RNGestureHandlerEvent.obtain(handler, handlerFactory.createEventBuilder(handler))
505
+ sendEventForReanimated(event)
506
+ } else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT) {
507
+ // Animated with useNativeDriver: true
508
+ val event = RNGestureHandlerEvent.obtain(
509
+ handler,
510
+ handlerFactory.createEventBuilder(handler),
511
+ useTopPrefixedName = BuildConfig.REACT_NATIVE_MINOR_VERSION >= 71
512
+ )
513
+ sendEventForNativeAnimatedEvent(event)
514
+ } else if (handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API) {
515
+ // JS function, Animated.event with useNativeDriver: false using old API
516
+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
517
+ val data = RNGestureHandlerEvent.createEventData(handlerFactory.createEventBuilder(handler))
518
+ sendEventForDeviceEvent(RNGestureHandlerEvent.EVENT_NAME, data)
519
+ } else {
520
+ val event = RNGestureHandlerEvent.obtain(handler, handlerFactory.createEventBuilder(handler))
521
+ sendEventForDirectEvent(event)
522
+ }
523
+ } else if (handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_NEW_API) {
524
+ // JS function, Animated.event with useNativeDriver: false using new API
525
+ val data = RNGestureHandlerEvent.createEventData(handlerFactory.createEventBuilder(handler))
526
+ sendEventForDeviceEvent(RNGestureHandlerEvent.EVENT_NAME, data)
527
+ }
528
+ }
529
+ }
530
+
531
+ private fun <T : GestureHandler<T>> onStateChange(handler: T, newState: Int, oldState: Int) {
532
+ // triggers onBegin, onStart, onEnd, onFinalize callbacks on the JS side
533
+
534
+ if (handler.tag < 0) {
535
+ // root containers use negative tags, we don't need to dispatch events for them to the JS
536
+ return
537
+ }
538
+ val handlerFactory = findFactoryForHandler(handler) ?: return
539
+
540
+ if (handler.actionType == GestureHandler.ACTION_TYPE_REANIMATED_WORKLET) {
541
+ // Reanimated worklet
542
+ val event = RNGestureHandlerStateChangeEvent.obtain(handler, newState, oldState, handlerFactory.createEventBuilder(handler))
543
+ sendEventForReanimated(event)
544
+ } else if (handler.actionType == GestureHandler.ACTION_TYPE_NATIVE_ANIMATED_EVENT ||
545
+ handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_OLD_API
546
+ ) {
547
+ // JS function or Animated.event with useNativeDriver: false with old API
548
+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
549
+ val data = RNGestureHandlerStateChangeEvent.createEventData(handlerFactory.createEventBuilder(handler), newState, oldState)
550
+ sendEventForDeviceEvent(RNGestureHandlerStateChangeEvent.EVENT_NAME, data)
551
+ } else {
552
+ val event = RNGestureHandlerStateChangeEvent.obtain(handler, newState, oldState, handlerFactory.createEventBuilder(handler))
553
+ sendEventForDirectEvent(event)
554
+ }
555
+ } else if (handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_NEW_API) {
556
+ // JS function or Animated.event with useNativeDriver: false with new API
557
+ val data = RNGestureHandlerStateChangeEvent.createEventData(handlerFactory.createEventBuilder(handler), newState, oldState)
558
+ sendEventForDeviceEvent(RNGestureHandlerStateChangeEvent.EVENT_NAME, data)
559
+ }
560
+ }
561
+
562
+ private fun <T : GestureHandler<T>> onTouchEvent(handler: T) {
563
+ // triggers onTouchesDown, onTouchesMove, onTouchesUp, onTouchesCancelled callbacks on the JS side
564
+
565
+ if (handler.tag < 0) {
566
+ // root containers use negative tags, we don't need to dispatch events for them to the JS
567
+ return
568
+ }
569
+ if (handler.state == GestureHandler.STATE_BEGAN || handler.state == GestureHandler.STATE_ACTIVE ||
570
+ handler.state == GestureHandler.STATE_UNDETERMINED || handler.view != null
571
+ ) {
572
+ if (handler.actionType == GestureHandler.ACTION_TYPE_REANIMATED_WORKLET) {
573
+ // Reanimated worklet
574
+ val event = RNGestureHandlerTouchEvent.obtain(handler)
575
+ sendEventForReanimated(event)
576
+ } else if (handler.actionType == GestureHandler.ACTION_TYPE_JS_FUNCTION_NEW_API) {
577
+ // JS function, Animated.event with useNativeDriver: false with new API
578
+ val data = RNGestureHandlerTouchEvent.createEventData(handler)
579
+ sendEventForDeviceEvent(RNGestureHandlerEvent.EVENT_NAME, data)
580
+ }
581
+ }
582
+ }
583
+
584
+ private fun <T : Event<T>>sendEventForReanimated(event: T) {
585
+ // Delivers the event to Reanimated.
586
+ if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
587
+ // Send event directly to Reanimated
588
+ reanimatedEventDispatcher.sendEvent(event, reactApplicationContext)
589
+ } else {
590
+ // In the old architecture, Reanimated subscribes for specific direct events.
591
+ sendEventForDirectEvent(event)
592
+ }
593
+ }
594
+
595
+ private fun sendEventForNativeAnimatedEvent(event: RNGestureHandlerEvent) {
596
+ // Delivers the event to NativeAnimatedModule.
597
+ // TODO: send event directly to NativeAnimated[Turbo]Module
598
+ // ReactContext.dispatchEvent is an extension function, depending on the architecture it will
599
+ // dispatch event using UIManagerModule or FabricUIManager.
600
+ reactApplicationContext.dispatchEvent(event)
601
+ }
602
+
603
+ private fun <T : Event<T>>sendEventForDirectEvent(event: T) {
604
+ // Delivers the event to JS as a direct event. This method is called only on Paper.
605
+ reactApplicationContext.dispatchEvent(event)
606
+ }
607
+
608
+ private fun sendEventForDeviceEvent(eventName: String, data: WritableMap) {
609
+ // Delivers the event to JS as a device event.
610
+ reactApplicationContext.deviceEventEmitter.emit(eventName, data)
611
+ }
612
+
613
+ companion object {
614
+ const val MODULE_NAME = "RNGestureHandlerModule"
615
+ private const val KEY_SHOULD_CANCEL_WHEN_OUTSIDE = "shouldCancelWhenOutside"
616
+ private const val KEY_ENABLED = "enabled"
617
+ private const val KEY_NEEDS_POINTER_DATA = "needsPointerData"
618
+ private const val KEY_MANUAL_ACTIVATION = "manualActivation"
619
+ private const val KEY_HIT_SLOP = "hitSlop"
620
+ private const val KEY_HIT_SLOP_LEFT = "left"
621
+ private const val KEY_HIT_SLOP_TOP = "top"
622
+ private const val KEY_HIT_SLOP_RIGHT = "right"
623
+ private const val KEY_HIT_SLOP_BOTTOM = "bottom"
624
+ private const val KEY_HIT_SLOP_VERTICAL = "vertical"
625
+ private const val KEY_HIT_SLOP_HORIZONTAL = "horizontal"
626
+ private const val KEY_HIT_SLOP_WIDTH = "width"
627
+ private const val KEY_HIT_SLOP_HEIGHT = "height"
628
+ private const val KEY_NATIVE_VIEW_SHOULD_ACTIVATE_ON_START = "shouldActivateOnStart"
629
+ private const val KEY_NATIVE_VIEW_DISALLOW_INTERRUPTION = "disallowInterruption"
630
+ private const val KEY_TAP_NUMBER_OF_TAPS = "numberOfTaps"
631
+ private const val KEY_TAP_MAX_DURATION_MS = "maxDurationMs"
632
+ private const val KEY_TAP_MAX_DELAY_MS = "maxDelayMs"
633
+ private const val KEY_TAP_MAX_DELTA_X = "maxDeltaX"
634
+ private const val KEY_TAP_MAX_DELTA_Y = "maxDeltaY"
635
+ private const val KEY_TAP_MAX_DIST = "maxDist"
636
+ private const val KEY_TAP_MIN_POINTERS = "minPointers"
637
+ private const val KEY_LONG_PRESS_MIN_DURATION_MS = "minDurationMs"
638
+ private const val KEY_LONG_PRESS_MAX_DIST = "maxDist"
639
+ private const val KEY_PAN_ACTIVE_OFFSET_X_START = "activeOffsetXStart"
640
+ private const val KEY_PAN_ACTIVE_OFFSET_X_END = "activeOffsetXEnd"
641
+ private const val KEY_PAN_FAIL_OFFSET_RANGE_X_START = "failOffsetXStart"
642
+ private const val KEY_PAN_FAIL_OFFSET_RANGE_X_END = "failOffsetXEnd"
643
+ private const val KEY_PAN_ACTIVE_OFFSET_Y_START = "activeOffsetYStart"
644
+ private const val KEY_PAN_ACTIVE_OFFSET_Y_END = "activeOffsetYEnd"
645
+ private const val KEY_PAN_FAIL_OFFSET_RANGE_Y_START = "failOffsetYStart"
646
+ private const val KEY_PAN_FAIL_OFFSET_RANGE_Y_END = "failOffsetYEnd"
647
+ private const val KEY_PAN_MIN_DIST = "minDist"
648
+ private const val KEY_PAN_MIN_VELOCITY = "minVelocity"
649
+ private const val KEY_PAN_MIN_VELOCITY_X = "minVelocityX"
650
+ private const val KEY_PAN_MIN_VELOCITY_Y = "minVelocityY"
651
+ private const val KEY_PAN_MIN_POINTERS = "minPointers"
652
+ private const val KEY_PAN_MAX_POINTERS = "maxPointers"
653
+ private const val KEY_PAN_AVG_TOUCHES = "avgTouches"
654
+ private const val KEY_PAN_ACTIVATE_AFTER_LONG_PRESS = "activateAfterLongPress"
655
+ private const val KEY_NUMBER_OF_POINTERS = "numberOfPointers"
656
+ private const val KEY_DIRECTION = "direction"
657
+
658
+ private fun handleHitSlopProperty(handler: GestureHandler<*>, config: ReadableMap) {
659
+ if (config.getType(KEY_HIT_SLOP) == ReadableType.Number) {
660
+ val hitSlop = PixelUtil.toPixelFromDIP(config.getDouble(KEY_HIT_SLOP))
661
+ handler.setHitSlop(hitSlop, hitSlop, hitSlop, hitSlop, GestureHandler.HIT_SLOP_NONE, GestureHandler.HIT_SLOP_NONE)
662
+ } else {
663
+ val hitSlop = config.getMap(KEY_HIT_SLOP)!!
664
+ var left = GestureHandler.HIT_SLOP_NONE
665
+ var top = GestureHandler.HIT_SLOP_NONE
666
+ var right = GestureHandler.HIT_SLOP_NONE
667
+ var bottom = GestureHandler.HIT_SLOP_NONE
668
+ var width = GestureHandler.HIT_SLOP_NONE
669
+ var height = GestureHandler.HIT_SLOP_NONE
670
+ if (hitSlop.hasKey(KEY_HIT_SLOP_HORIZONTAL)) {
671
+ val horizontalPad = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_HORIZONTAL))
672
+ right = horizontalPad
673
+ left = right
674
+ }
675
+ if (hitSlop.hasKey(KEY_HIT_SLOP_VERTICAL)) {
676
+ val verticalPad = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_VERTICAL))
677
+ bottom = verticalPad
678
+ top = bottom
679
+ }
680
+ if (hitSlop.hasKey(KEY_HIT_SLOP_LEFT)) {
681
+ left = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_LEFT))
682
+ }
683
+ if (hitSlop.hasKey(KEY_HIT_SLOP_TOP)) {
684
+ top = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_TOP))
685
+ }
686
+ if (hitSlop.hasKey(KEY_HIT_SLOP_RIGHT)) {
687
+ right = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_RIGHT))
688
+ }
689
+ if (hitSlop.hasKey(KEY_HIT_SLOP_BOTTOM)) {
690
+ bottom = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_BOTTOM))
691
+ }
692
+ if (hitSlop.hasKey(KEY_HIT_SLOP_WIDTH)) {
693
+ width = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_WIDTH))
694
+ }
695
+ if (hitSlop.hasKey(KEY_HIT_SLOP_HEIGHT)) {
696
+ height = PixelUtil.toPixelFromDIP(hitSlop.getDouble(KEY_HIT_SLOP_HEIGHT))
697
+ }
698
+ handler.setHitSlop(left, top, right, bottom, width, height)
699
+ }
700
+ }
701
+ }
702
+ }