@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,168 @@
1
+ package com.swmansion.gesturehandler.core
2
+
3
+ import android.os.Handler
4
+ import android.os.Looper
5
+ import android.view.MotionEvent
6
+ import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerX
7
+ import com.swmansion.gesturehandler.core.GestureUtils.getLastPointerY
8
+ import kotlin.math.abs
9
+
10
+ class TapGestureHandler : GestureHandler<TapGestureHandler>() {
11
+ private var maxDeltaX = MAX_VALUE_IGNORE
12
+ private var maxDeltaY = MAX_VALUE_IGNORE
13
+ private var maxDistSq = MAX_VALUE_IGNORE
14
+ private var maxDurationMs = DEFAULT_MAX_DURATION_MS
15
+ private var maxDelayMs = DEFAULT_MAX_DELAY_MS
16
+ private var numberOfTaps = DEFAULT_NUMBER_OF_TAPS
17
+ private var minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS
18
+ private var currentMaxNumberOfPointers = 1
19
+ private var startX = 0f
20
+ private var startY = 0f
21
+ private var offsetX = 0f
22
+ private var offsetY = 0f
23
+ private var lastX = 0f
24
+ private var lastY = 0f
25
+ private var handler: Handler? = null
26
+ private var tapsSoFar = 0
27
+ private val failDelayed = Runnable { fail() }
28
+
29
+ init {
30
+ setShouldCancelWhenOutside(true)
31
+ }
32
+
33
+ override fun resetConfig() {
34
+ super.resetConfig()
35
+ maxDeltaX = MAX_VALUE_IGNORE
36
+ maxDeltaY = MAX_VALUE_IGNORE
37
+ maxDistSq = MAX_VALUE_IGNORE
38
+ maxDurationMs = DEFAULT_MAX_DURATION_MS
39
+ maxDelayMs = DEFAULT_MAX_DELAY_MS
40
+ numberOfTaps = DEFAULT_NUMBER_OF_TAPS
41
+ minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS
42
+ }
43
+
44
+ fun setNumberOfTaps(numberOfTaps: Int) = apply {
45
+ this.numberOfTaps = numberOfTaps
46
+ }
47
+
48
+ fun setMaxDelayMs(maxDelayMs: Long) = apply {
49
+ this.maxDelayMs = maxDelayMs
50
+ }
51
+
52
+ fun setMaxDurationMs(maxDurationMs: Long) = apply {
53
+ this.maxDurationMs = maxDurationMs
54
+ }
55
+
56
+ fun setMaxDx(deltaX: Float) = apply {
57
+ maxDeltaX = deltaX
58
+ }
59
+
60
+ fun setMaxDy(deltaY: Float) = apply {
61
+ maxDeltaY = deltaY
62
+ }
63
+
64
+ fun setMaxDist(maxDist: Float) = apply {
65
+ maxDistSq = maxDist * maxDist
66
+ }
67
+
68
+ fun setMinNumberOfPointers(minNumberOfPointers: Int) = apply {
69
+ this.minNumberOfPointers = minNumberOfPointers
70
+ }
71
+
72
+ private fun startTap() {
73
+ if (handler == null) {
74
+ handler = Handler(Looper.getMainLooper()) // TODO: lazy init (handle else branch correctly)
75
+ } else {
76
+ handler!!.removeCallbacksAndMessages(null)
77
+ }
78
+ handler!!.postDelayed(failDelayed, maxDurationMs)
79
+ }
80
+
81
+ private fun endTap() {
82
+ if (handler == null) {
83
+ handler = Handler(Looper.getMainLooper())
84
+ } else {
85
+ handler!!.removeCallbacksAndMessages(null)
86
+ }
87
+ if (++tapsSoFar == numberOfTaps && currentMaxNumberOfPointers >= minNumberOfPointers) {
88
+ activate()
89
+ } else {
90
+ handler!!.postDelayed(failDelayed, maxDelayMs)
91
+ }
92
+ }
93
+
94
+ private fun shouldFail(): Boolean {
95
+ val dx = lastX - startX + offsetX
96
+ if (maxDeltaX != MAX_VALUE_IGNORE && abs(dx) > maxDeltaX) {
97
+ return true
98
+ }
99
+ val dy = lastY - startY + offsetY
100
+ if (maxDeltaY != MAX_VALUE_IGNORE && abs(dy) > maxDeltaY) {
101
+ return true
102
+ }
103
+ val dist = dy * dy + dx * dx
104
+ return maxDistSq != MAX_VALUE_IGNORE && dist > maxDistSq
105
+ }
106
+
107
+ override fun onHandle(event: MotionEvent, sourceEvent: MotionEvent) {
108
+ val state = state
109
+ val action = sourceEvent.actionMasked
110
+ if (state == STATE_UNDETERMINED) {
111
+ offsetX = 0f
112
+ offsetY = 0f
113
+ startX = getLastPointerX(sourceEvent, true)
114
+ startY = getLastPointerY(sourceEvent, true)
115
+ }
116
+ if (action == MotionEvent.ACTION_POINTER_UP || action == MotionEvent.ACTION_POINTER_DOWN) {
117
+ offsetX += lastX - startX
118
+ offsetY += lastY - startY
119
+ lastX = getLastPointerX(sourceEvent, true)
120
+ lastY = getLastPointerY(sourceEvent, true)
121
+ startX = lastX
122
+ startY = lastY
123
+ } else {
124
+ lastX = getLastPointerX(sourceEvent, true)
125
+ lastY = getLastPointerY(sourceEvent, true)
126
+ }
127
+ if (currentMaxNumberOfPointers < sourceEvent.pointerCount) {
128
+ currentMaxNumberOfPointers = sourceEvent.pointerCount
129
+ }
130
+ if (shouldFail()) {
131
+ fail()
132
+ } else if (state == STATE_UNDETERMINED) {
133
+ if (action == MotionEvent.ACTION_DOWN) {
134
+ begin()
135
+ }
136
+ startTap()
137
+ } else if (state == STATE_BEGAN) {
138
+ if (action == MotionEvent.ACTION_UP) {
139
+ endTap()
140
+ } else if (action == MotionEvent.ACTION_DOWN) {
141
+ startTap()
142
+ }
143
+ }
144
+ }
145
+
146
+ override fun activate(force: Boolean) {
147
+ super.activate(force)
148
+ end()
149
+ }
150
+
151
+ override fun onCancel() {
152
+ handler?.removeCallbacksAndMessages(null)
153
+ }
154
+
155
+ override fun onReset() {
156
+ tapsSoFar = 0
157
+ currentMaxNumberOfPointers = 0
158
+ handler?.removeCallbacksAndMessages(null)
159
+ }
160
+
161
+ companion object {
162
+ private const val MAX_VALUE_IGNORE = Float.MIN_VALUE
163
+ private const val DEFAULT_MAX_DURATION_MS: Long = 500
164
+ private const val DEFAULT_MAX_DELAY_MS: Long = 200
165
+ private const val DEFAULT_NUMBER_OF_TAPS = 1
166
+ private const val DEFAULT_MIN_NUMBER_OF_POINTERS = 1
167
+ }
168
+ }
@@ -0,0 +1,10 @@
1
+ package com.swmansion.gesturehandler.core
2
+
3
+ import android.view.View
4
+ import android.view.ViewGroup
5
+
6
+ interface ViewConfigurationHelper {
7
+ fun getPointerEventsConfigForView(view: View): PointerEventsConfig
8
+ fun getChildInDrawingOrderAtIndex(parent: ViewGroup, index: Int): View
9
+ fun isViewClippingChildren(view: ViewGroup): Boolean
10
+ }
@@ -0,0 +1,16 @@
1
+ package com.swmansion.gesturehandler.react
2
+
3
+ import android.content.Context
4
+ import android.view.accessibility.AccessibilityManager
5
+ import com.facebook.react.bridge.ReactContext
6
+ import com.facebook.react.modules.core.DeviceEventManagerModule
7
+ import com.facebook.react.uimanager.UIManagerModule
8
+
9
+ val ReactContext.deviceEventEmitter: DeviceEventManagerModule.RCTDeviceEventEmitter
10
+ get() = this.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
11
+
12
+ val ReactContext.UIManager: UIManagerModule
13
+ get() = this.getNativeModule(UIManagerModule::class.java)!!
14
+
15
+ fun Context.isScreenReaderOn() =
16
+ (getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager).isTouchExplorationEnabled
@@ -0,0 +1,423 @@
1
+ package com.swmansion.gesturehandler.react
2
+
3
+ import android.annotation.SuppressLint
4
+ import android.annotation.TargetApi
5
+ import android.content.Context
6
+ import android.content.res.ColorStateList
7
+ import android.graphics.Color
8
+ import android.graphics.drawable.Drawable
9
+ import android.graphics.drawable.LayerDrawable
10
+ import android.graphics.drawable.PaintDrawable
11
+ import android.graphics.drawable.RippleDrawable
12
+ import android.graphics.drawable.ShapeDrawable
13
+ import android.graphics.drawable.shapes.RectShape
14
+ import android.os.Build
15
+ import android.util.TypedValue
16
+ import android.view.KeyEvent
17
+ import android.view.MotionEvent
18
+ import android.view.View
19
+ import android.view.View.OnClickListener
20
+ import android.view.ViewGroup
21
+ import android.view.ViewParent
22
+ import androidx.core.view.children
23
+ import com.facebook.react.module.annotations.ReactModule
24
+ import com.facebook.react.uimanager.PixelUtil
25
+ import com.facebook.react.uimanager.ThemedReactContext
26
+ import com.facebook.react.uimanager.ViewGroupManager
27
+ import com.facebook.react.uimanager.ViewManagerDelegate
28
+ import com.facebook.react.uimanager.ViewProps
29
+ import com.facebook.react.uimanager.annotations.ReactProp
30
+ import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerDelegate
31
+ import com.facebook.react.viewmanagers.RNGestureHandlerButtonManagerInterface
32
+ import com.swmansion.gesturehandler.core.NativeViewGestureHandler
33
+ import com.swmansion.gesturehandler.react.RNGestureHandlerButtonViewManager.ButtonViewGroup
34
+
35
+ @ReactModule(name = RNGestureHandlerButtonViewManager.REACT_CLASS)
36
+ class RNGestureHandlerButtonViewManager : ViewGroupManager<ButtonViewGroup>(), RNGestureHandlerButtonManagerInterface<ButtonViewGroup> {
37
+ private val mDelegate: ViewManagerDelegate<ButtonViewGroup>
38
+
39
+ init {
40
+ mDelegate = RNGestureHandlerButtonManagerDelegate<ButtonViewGroup, RNGestureHandlerButtonViewManager>(this)
41
+ }
42
+
43
+ override fun getName() = REACT_CLASS
44
+
45
+ public override fun createViewInstance(context: ThemedReactContext) = ButtonViewGroup(context)
46
+
47
+ @TargetApi(Build.VERSION_CODES.M)
48
+ @ReactProp(name = "foreground")
49
+ override fun setForeground(view: ButtonViewGroup, useDrawableOnForeground: Boolean) {
50
+ view.useDrawableOnForeground = useDrawableOnForeground
51
+ }
52
+
53
+ @ReactProp(name = "borderless")
54
+ override fun setBorderless(view: ButtonViewGroup, useBorderlessDrawable: Boolean) {
55
+ view.useBorderlessDrawable = useBorderlessDrawable
56
+ }
57
+
58
+ @ReactProp(name = "enabled")
59
+ override fun setEnabled(view: ButtonViewGroup, enabled: Boolean) {
60
+ view.isEnabled = enabled
61
+ }
62
+
63
+ @ReactProp(name = ViewProps.BORDER_RADIUS)
64
+ override fun setBorderRadius(view: ButtonViewGroup, borderRadius: Float) {
65
+ view.borderRadius = borderRadius
66
+ }
67
+
68
+ @ReactProp(name = "rippleColor")
69
+ override fun setRippleColor(view: ButtonViewGroup, rippleColor: Int?) {
70
+ view.rippleColor = rippleColor
71
+ }
72
+
73
+ @ReactProp(name = "rippleRadius")
74
+ override fun setRippleRadius(view: ButtonViewGroup, rippleRadius: Int) {
75
+ view.rippleRadius = rippleRadius
76
+ }
77
+
78
+ @ReactProp(name = "exclusive")
79
+ override fun setExclusive(view: ButtonViewGroup, exclusive: Boolean) {
80
+ view.exclusive = exclusive
81
+ }
82
+
83
+ @ReactProp(name = "touchSoundDisabled")
84
+ override fun setTouchSoundDisabled(view: ButtonViewGroup, touchSoundDisabled: Boolean) {
85
+ view.isSoundEffectsEnabled = !touchSoundDisabled
86
+ }
87
+
88
+ override fun onAfterUpdateTransaction(view: ButtonViewGroup) {
89
+ view.updateBackground()
90
+ }
91
+
92
+ override fun getDelegate(): ViewManagerDelegate<ButtonViewGroup>? {
93
+ return mDelegate
94
+ }
95
+
96
+ class ButtonViewGroup(context: Context?) :
97
+ ViewGroup(context),
98
+ NativeViewGestureHandler.NativeViewGestureHandlerHook {
99
+ // Using object because of handling null representing no value set.
100
+ var rippleColor: Int? = null
101
+ set(color) = withBackgroundUpdate {
102
+ field = color
103
+ }
104
+
105
+ var rippleRadius: Int? = null
106
+ set(radius) = withBackgroundUpdate {
107
+ field = radius
108
+ }
109
+ var useDrawableOnForeground = false
110
+ set(useForeground) = withBackgroundUpdate {
111
+ field = useForeground
112
+ }
113
+ var useBorderlessDrawable = false
114
+ var borderRadius = 0f
115
+ set(radius) = withBackgroundUpdate {
116
+ field = radius * resources.displayMetrics.density
117
+ }
118
+ var exclusive = true
119
+
120
+ private var _backgroundColor = Color.TRANSPARENT
121
+ private var needBackgroundUpdate = false
122
+ private var lastEventTime = -1L
123
+ private var lastAction = -1
124
+ private var receivedKeyEvent = false
125
+
126
+ var isTouched = false
127
+
128
+ init {
129
+ // we attach empty click listener to trigger tap sounds (see View#performClick())
130
+ setOnClickListener(dummyClickListener)
131
+ isClickable = true
132
+ isFocusable = true
133
+ needBackgroundUpdate = true
134
+ clipChildren = false
135
+ }
136
+
137
+ private inline fun withBackgroundUpdate(block: () -> Unit) {
138
+ block()
139
+ needBackgroundUpdate = true
140
+ }
141
+
142
+ override fun setBackgroundColor(color: Int) = withBackgroundUpdate {
143
+ _backgroundColor = color
144
+ }
145
+
146
+ override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
147
+ if (super.onInterceptTouchEvent(ev)) {
148
+ return true
149
+ }
150
+ // We call `onTouchEvent` and wait until button changes state to `pressed`, if it's pressed
151
+ // we return true so that the gesture handler can activate.
152
+ onTouchEvent(ev)
153
+ return isPressed
154
+ }
155
+
156
+ /**
157
+ * Buttons in RN are wrapped in NativeViewGestureHandler which manages
158
+ * calling onTouchEvent after activation of the handler. Problem is, in order to verify that
159
+ * underlying button implementation is interested in receiving touches we have to call onTouchEvent
160
+ * and check if button is pressed.
161
+ *
162
+ * This leads to invoking onTouchEvent twice which isn't idempotent in View - it calls OnClickListener
163
+ * and plays sound effect if OnClickListener was set.
164
+ *
165
+ * To mitigate this behavior we use lastEventTime and lastAction variables to check that we already handled
166
+ * the event in [onInterceptTouchEvent]. We assume here that different events
167
+ * will have different event times or actions.
168
+ * Events with same event time can occur on some devices for different actions.
169
+ * (e.g. move and up in one gesture; move and cancel)
170
+ *
171
+ * Reference:
172
+ * [com.swmansion.gesturehandler.NativeViewGestureHandler.onHandle] */
173
+ @SuppressLint("ClickableViewAccessibility")
174
+ override fun onTouchEvent(event: MotionEvent): Boolean {
175
+ if (event.action == MotionEvent.ACTION_CANCEL) {
176
+ tryFreeingResponder()
177
+ return super.onTouchEvent(event)
178
+ }
179
+
180
+ val eventTime = event.eventTime
181
+ val action = event.action
182
+ // always true when lastEventTime or lastAction have default value (-1)
183
+ if (lastEventTime != eventTime || lastAction != action) {
184
+ lastEventTime = eventTime
185
+ lastAction = action
186
+ return super.onTouchEvent(event)
187
+ }
188
+ return false
189
+ }
190
+
191
+ private fun updateBackgroundColor(backgroundColor: Int, borderRadius: Float, selectable: Drawable?) {
192
+ val colorDrawable = PaintDrawable(backgroundColor)
193
+
194
+ if (borderRadius != 0f) {
195
+ colorDrawable.setCornerRadius(borderRadius)
196
+ }
197
+
198
+ val layerDrawable = LayerDrawable(if (selectable != null) arrayOf(colorDrawable, selectable) else arrayOf(colorDrawable))
199
+ background = layerDrawable
200
+ }
201
+
202
+ fun updateBackground() {
203
+ if (!needBackgroundUpdate) {
204
+ return
205
+ }
206
+ needBackgroundUpdate = false
207
+
208
+ if (_backgroundColor == Color.TRANSPARENT) {
209
+ // reset background
210
+ background = null
211
+ }
212
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
213
+ // reset foreground
214
+ foreground = null
215
+ }
216
+
217
+ val selectable = createSelectableDrawable()
218
+
219
+ if (borderRadius != 0f) {
220
+ // Radius-connected lines below ought to be considered
221
+ // as a temporary solution. It do not allow to set
222
+ // different radius on each corner. However, I suppose it's fairly
223
+ // fine for button-related use cases.
224
+ // Therefore it might be used as long as:
225
+ // 1. ReactViewManager is not a generic class with a possibility to handle another ViewGroup
226
+ // 2. There's no way to force native behavior of ReactViewGroup's superclass's onTouchEvent
227
+ if (selectable is RippleDrawable) {
228
+ val mask = PaintDrawable(Color.WHITE)
229
+ mask.setCornerRadius(borderRadius)
230
+ selectable.setDrawableByLayerId(android.R.id.mask, mask)
231
+ }
232
+ }
233
+
234
+ if (useDrawableOnForeground && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
235
+ foreground = selectable
236
+ if (_backgroundColor != Color.TRANSPARENT) {
237
+ updateBackgroundColor(_backgroundColor, borderRadius, null)
238
+ }
239
+ } else if (_backgroundColor == Color.TRANSPARENT && rippleColor == null) {
240
+ background = selectable
241
+ } else {
242
+ updateBackgroundColor(_backgroundColor, borderRadius, selectable)
243
+ }
244
+ }
245
+
246
+ private fun createSelectableDrawable(): Drawable? {
247
+ // don't create ripple drawable at all when it's not supposed to be visible
248
+ if (rippleColor == Color.TRANSPARENT) {
249
+ return null
250
+ }
251
+
252
+ val states = arrayOf(intArrayOf(android.R.attr.state_enabled))
253
+ val rippleRadius = rippleRadius
254
+ val colorStateList = if (rippleColor != null) {
255
+ val colors = intArrayOf(rippleColor!!)
256
+ ColorStateList(states, colors)
257
+ } else {
258
+ // if rippleColor is null, reapply the default color
259
+ context.theme.resolveAttribute(android.R.attr.colorControlHighlight, resolveOutValue, true)
260
+ val colors = intArrayOf(resolveOutValue.data)
261
+ ColorStateList(states, colors)
262
+ }
263
+
264
+ val drawable = RippleDrawable(
265
+ colorStateList,
266
+ null,
267
+ if (useBorderlessDrawable) null else ShapeDrawable(RectShape())
268
+ )
269
+
270
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && rippleRadius != null) {
271
+ drawable.radius = PixelUtil.toPixelFromDIP(rippleRadius.toFloat()).toInt()
272
+ }
273
+
274
+ return drawable
275
+ }
276
+
277
+ override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) {
278
+ // No-op
279
+ }
280
+
281
+ override fun drawableHotspotChanged(x: Float, y: Float) {
282
+ if (touchResponder == null || touchResponder === this) {
283
+ super.drawableHotspotChanged(x, y)
284
+ }
285
+ }
286
+
287
+ override fun canBegin(): Boolean {
288
+ val isResponder = tryGrabbingResponder()
289
+ if (isResponder) {
290
+ isTouched = true
291
+ }
292
+ return isResponder
293
+ }
294
+
295
+ override fun afterGestureEnd(event: MotionEvent) {
296
+ tryFreeingResponder()
297
+ isTouched = false
298
+ }
299
+
300
+ private fun tryFreeingResponder() {
301
+ if (touchResponder === this) {
302
+ touchResponder = null
303
+ soundResponder = this
304
+ }
305
+ }
306
+
307
+ private fun tryGrabbingResponder(): Boolean {
308
+ if (isChildTouched()) {
309
+ return false
310
+ }
311
+
312
+ if (touchResponder == null) {
313
+ touchResponder = this
314
+ return true
315
+ }
316
+ return if (exclusive) {
317
+ touchResponder === this
318
+ } else {
319
+ !(touchResponder?.exclusive ?: false)
320
+ }
321
+ }
322
+
323
+ private fun isChildTouched(children: Sequence<View> = this.children): Boolean {
324
+ for (child in children) {
325
+ if (child is ButtonViewGroup && (child.isTouched || child.isPressed)) {
326
+ return true
327
+ } else if (child is ViewGroup) {
328
+ if (isChildTouched(child.children)) {
329
+ return true
330
+ }
331
+ }
332
+ }
333
+
334
+ return false
335
+ }
336
+
337
+ override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
338
+ receivedKeyEvent = true
339
+ return super.onKeyUp(keyCode, event)
340
+ }
341
+
342
+ override fun performClick(): Boolean {
343
+ // don't preform click when a child button is pressed (mainly to prevent sound effect of
344
+ // a parent button from playing)
345
+ return if (!isChildTouched()) {
346
+
347
+ if (context.isScreenReaderOn()) {
348
+ findGestureHandlerRootView()?.activateNativeHandlers(this)
349
+ } else if (receivedKeyEvent) {
350
+ findGestureHandlerRootView()?.activateNativeHandlers(this)
351
+ receivedKeyEvent = false
352
+ }
353
+
354
+ if (soundResponder === this) {
355
+ tryFreeingResponder()
356
+ soundResponder = null
357
+ super.performClick()
358
+ } else {
359
+ false
360
+ }
361
+ } else {
362
+ false
363
+ }
364
+ }
365
+
366
+ override fun setPressed(pressed: Boolean) {
367
+ // there is a possibility of this method being called before NativeViewGestureHandler has
368
+ // opportunity to call canStart, in that case we need to grab responder in case the gesture
369
+ // will activate
370
+ // when canStart is called eventually, tryGrabbingResponder will return true if the button
371
+ // already is a responder
372
+ if (pressed) {
373
+ if (tryGrabbingResponder()) {
374
+ soundResponder = this
375
+ }
376
+ }
377
+ // button can be pressed alongside other button if both are non-exclusive and it doesn't have
378
+ // any pressed children (to prevent pressing the parent when children is pressed).
379
+ val canBePressedAlongsideOther = !exclusive && touchResponder?.exclusive != true && !isChildTouched()
380
+
381
+ if (!pressed || touchResponder === this || canBePressedAlongsideOther) {
382
+ // we set pressed state only for current responder or any non-exclusive button when responder
383
+ // is null or non-exclusive, assuming it doesn't have pressed children
384
+ isTouched = pressed
385
+ super.setPressed(pressed)
386
+ }
387
+ if (!pressed && touchResponder === this) {
388
+ // if the responder is no longer pressed we release button responder
389
+ isTouched = false
390
+ }
391
+ }
392
+
393
+ override fun dispatchDrawableHotspotChanged(x: Float, y: Float) {
394
+ // No-op
395
+ // by default Viewgroup would pass hotspot change events
396
+ }
397
+
398
+ private fun findGestureHandlerRootView(): RNGestureHandlerRootView? {
399
+ var parent: ViewParent? = this.parent
400
+ var gestureHandlerRootView: RNGestureHandlerRootView? = null
401
+
402
+ while (parent != null) {
403
+ if (parent is RNGestureHandlerRootView) {
404
+ gestureHandlerRootView = parent
405
+ }
406
+ parent = parent.parent
407
+ }
408
+
409
+ return gestureHandlerRootView
410
+ }
411
+
412
+ companion object {
413
+ var resolveOutValue = TypedValue()
414
+ var touchResponder: ButtonViewGroup? = null
415
+ var soundResponder: ButtonViewGroup? = null
416
+ var dummyClickListener = OnClickListener { }
417
+ }
418
+ }
419
+
420
+ companion object {
421
+ const val REACT_CLASS = "RNGestureHandlerButton"
422
+ }
423
+ }
@@ -0,0 +1,15 @@
1
+ package com.swmansion.gesturehandler.react
2
+
3
+ import android.content.Context
4
+ import android.util.AttributeSet
5
+ import com.facebook.react.ReactRootView
6
+
7
+ @Deprecated(message = "Use <GestureHandlerRootView /> component instead. Check gesture handler installation instructions in documentation for more information.")
8
+ class RNGestureHandlerEnabledRootView : ReactRootView {
9
+ constructor(context: Context?) : super(context) {}
10
+ constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) {}
11
+
12
+ init {
13
+ throw UnsupportedOperationException("Your application is configured to use RNGestureHandlerEnabledRootView which is no longer supported. You can see how to migrate to <GestureHandlerRootView /> here: https://docs.swmansion.com/react-native-gesture-handler/docs/guides/migrating-off-rnghenabledroot")
14
+ }
15
+ }