react-native-gesture-handler 2.4.1 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (382) hide show
  1. package/README.md +4 -2
  2. package/RNGestureHandler.podspec +17 -5
  3. package/android/build.gradle +71 -15
  4. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +2 -1
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +9 -5
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +32 -6
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +5 -2
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +105 -23
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +30 -2
  10. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +3 -2
  11. package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +1 -1
  12. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +0 -8
  13. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +74 -84
  14. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +7 -1
  15. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +5 -1
  16. package/android/src/main/jni/CMakeLists.txt +59 -0
  17. package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +12 -9
  18. package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +1 -0
  19. package/ios/Handlers/RNFlingHandler.m +43 -1
  20. package/ios/Handlers/{RNNativeViewHandler.m → RNNativeViewHandler.mm} +13 -1
  21. package/ios/Handlers/RNPanHandler.m +27 -0
  22. package/ios/RNGestureHandler.h +1 -0
  23. package/ios/RNGestureHandler.m +22 -4
  24. package/ios/RNGestureHandlerButtonComponentView.mm +1 -1
  25. package/ios/RNGestureHandlerManager.mm +10 -7
  26. package/ios/RNGestureHandlerModule.mm +4 -1
  27. package/ios/RNGestureHandlerRootViewComponentView.mm +1 -1
  28. package/ios/RNManualActivationRecognizer.m +10 -3
  29. package/ios/RNRootViewGestureRecognizer.m +12 -1
  30. package/lib/commonjs/EnableExperimentalWebImplementation.js +24 -0
  31. package/lib/commonjs/EnableExperimentalWebImplementation.js.map +1 -0
  32. package/lib/commonjs/RNGestureHandlerModule.macos.js +138 -0
  33. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -0
  34. package/lib/commonjs/RNGestureHandlerModule.web.js +87 -25
  35. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  36. package/lib/commonjs/RNRenderer.js +16 -0
  37. package/lib/commonjs/RNRenderer.js.map +1 -0
  38. package/lib/commonjs/RNRenderer.web.js +11 -0
  39. package/lib/commonjs/RNRenderer.web.js.map +1 -0
  40. package/lib/commonjs/components/DrawerLayout.js +41 -12
  41. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  42. package/lib/commonjs/components/GestureButtons.js +42 -9
  43. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  44. package/lib/commonjs/components/GestureComponents.js +41 -4
  45. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  46. package/lib/commonjs/components/GestureComponents.web.js +7 -2
  47. package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
  48. package/lib/commonjs/components/Swipeable.js +3 -1
  49. package/lib/commonjs/components/Swipeable.js.map +1 -1
  50. package/lib/commonjs/components/touchables/GenericTouchable.js +5 -1
  51. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  52. package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  53. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +2 -1
  54. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
  55. package/lib/commonjs/handlers/PanGestureHandler.js +1 -1
  56. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  57. package/lib/commonjs/handlers/PressabilityDebugView.js +14 -0
  58. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -0
  59. package/lib/commonjs/handlers/PressabilityDebugView.web.js +12 -0
  60. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -0
  61. package/lib/commonjs/handlers/createHandler.js +33 -12
  62. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  63. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  64. package/lib/commonjs/handlers/gestures/GestureDetector.js +150 -75
  65. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  66. package/lib/commonjs/handlers/gestures/gesture.js +13 -2
  67. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  68. package/lib/commonjs/handlers/gestures/gestureStateManager.js +13 -9
  69. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
  70. package/lib/commonjs/handlers/gestures/panGesture.js +5 -0
  71. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  72. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +7 -0
  73. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
  74. package/lib/commonjs/index.js +14 -0
  75. package/lib/commonjs/index.js.map +1 -1
  76. package/lib/commonjs/utils.js +6 -3
  77. package/lib/commonjs/utils.js.map +1 -1
  78. package/lib/commonjs/web/constants.js +3 -51
  79. package/lib/commonjs/web/constants.js.map +1 -1
  80. package/lib/commonjs/web/detectors/RotationGestureDetector.js +169 -0
  81. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
  82. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +167 -0
  83. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
  84. package/lib/commonjs/web/handlers/FlingGestureHandler.js +154 -0
  85. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
  86. package/lib/commonjs/web/handlers/GestureHandler.js +538 -0
  87. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
  88. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +147 -0
  89. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
  90. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +116 -0
  91. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
  92. package/lib/commonjs/web/handlers/PanGestureHandler.js +451 -0
  93. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
  94. package/lib/commonjs/web/handlers/PinchGestureHandler.js +171 -0
  95. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
  96. package/lib/commonjs/web/handlers/RotationGestureHandler.js +187 -0
  97. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
  98. package/lib/commonjs/web/handlers/TapGestureHandler.js +296 -0
  99. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
  100. package/lib/commonjs/web/interfaces.js +34 -0
  101. package/lib/commonjs/web/interfaces.js.map +1 -0
  102. package/lib/commonjs/web/tools/EventManager.js +169 -0
  103. package/lib/commonjs/web/tools/EventManager.js.map +1 -0
  104. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +283 -0
  105. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
  106. package/lib/commonjs/web/tools/InteractionManager.js +102 -0
  107. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
  108. package/lib/commonjs/web/tools/NodeManager.js +48 -0
  109. package/lib/commonjs/web/tools/NodeManager.js.map +1 -0
  110. package/lib/commonjs/web/tools/PointerTracker.js +132 -0
  111. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
  112. package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
  113. package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
  114. package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js +0 -0
  115. package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
  116. package/lib/commonjs/{web → web_hammer}/Errors.js +0 -0
  117. package/lib/commonjs/{web → web_hammer}/Errors.js.map +0 -0
  118. package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js +0 -0
  119. package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
  120. package/lib/commonjs/{web → web_hammer}/GestureHandler.js +83 -42
  121. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
  122. package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
  123. package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
  124. package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js +0 -0
  125. package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
  126. package/lib/commonjs/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
  127. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
  128. package/lib/commonjs/{web → web_hammer}/NodeManager.js +0 -0
  129. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
  130. package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js +0 -0
  131. package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js.map +0 -0
  132. package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js +0 -0
  133. package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
  134. package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js +0 -0
  135. package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js.map +0 -0
  136. package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js +0 -0
  137. package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
  138. package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js +0 -0
  139. package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js.map +0 -0
  140. package/lib/commonjs/web_hammer/constants.js +64 -0
  141. package/lib/commonjs/web_hammer/constants.js.map +1 -0
  142. package/lib/commonjs/{web → web_hammer}/utils.js +0 -0
  143. package/lib/commonjs/{web → web_hammer}/utils.js.map +1 -1
  144. package/lib/module/EnableExperimentalWebImplementation.js +15 -0
  145. package/lib/module/EnableExperimentalWebImplementation.js.map +1 -0
  146. package/lib/module/RNGestureHandlerModule.macos.js +102 -0
  147. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -0
  148. package/lib/module/RNGestureHandlerModule.web.js +73 -24
  149. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  150. package/lib/module/RNRenderer.js +4 -0
  151. package/lib/module/RNRenderer.js.map +1 -0
  152. package/lib/module/RNRenderer.web.js +4 -0
  153. package/lib/module/RNRenderer.web.js.map +1 -0
  154. package/lib/module/components/DrawerLayout.js +41 -12
  155. package/lib/module/components/DrawerLayout.js.map +1 -1
  156. package/lib/module/components/GestureButtons.js +43 -9
  157. package/lib/module/components/GestureButtons.js.map +1 -1
  158. package/lib/module/components/GestureComponents.js +39 -4
  159. package/lib/module/components/GestureComponents.js.map +1 -1
  160. package/lib/module/components/GestureComponents.web.js +6 -2
  161. package/lib/module/components/GestureComponents.web.js.map +1 -1
  162. package/lib/module/components/Swipeable.js +3 -1
  163. package/lib/module/components/Swipeable.js.map +1 -1
  164. package/lib/module/components/touchables/GenericTouchable.js +5 -1
  165. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  166. package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  167. package/lib/module/handlers/ForceTouchGestureHandler.js +1 -1
  168. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
  169. package/lib/module/handlers/PanGestureHandler.js +1 -1
  170. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  171. package/lib/module/handlers/PressabilityDebugView.js +3 -0
  172. package/lib/module/handlers/PressabilityDebugView.js.map +1 -0
  173. package/lib/module/handlers/PressabilityDebugView.web.js +5 -0
  174. package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -0
  175. package/lib/module/handlers/createHandler.js +35 -14
  176. package/lib/module/handlers/createHandler.js.map +1 -1
  177. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  178. package/lib/module/handlers/gestures/GestureDetector.js +147 -74
  179. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  180. package/lib/module/handlers/gestures/gesture.js +13 -2
  181. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  182. package/lib/module/handlers/gestures/gestureStateManager.js +13 -9
  183. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
  184. package/lib/module/handlers/gestures/panGesture.js +5 -0
  185. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  186. package/lib/module/handlers/gestures/reanimatedWrapper.js +7 -0
  187. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  188. package/lib/module/index.js +2 -1
  189. package/lib/module/index.js.map +1 -1
  190. package/lib/module/utils.js +2 -1
  191. package/lib/module/utils.js.map +1 -1
  192. package/lib/module/web/constants.js +1 -36
  193. package/lib/module/web/constants.js.map +1 -1
  194. package/lib/module/web/detectors/RotationGestureDetector.js +159 -0
  195. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
  196. package/lib/module/web/detectors/ScaleGestureDetector.js +156 -0
  197. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
  198. package/lib/module/web/handlers/FlingGestureHandler.js +139 -0
  199. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
  200. package/lib/module/web/handlers/GestureHandler.js +521 -0
  201. package/lib/module/web/handlers/GestureHandler.js.map +1 -0
  202. package/lib/module/web/handlers/LongPressGestureHandler.js +133 -0
  203. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
  204. package/lib/module/web/handlers/NativeViewGestureHandler.js +103 -0
  205. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
  206. package/lib/module/web/handlers/PanGestureHandler.js +434 -0
  207. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
  208. package/lib/module/web/handlers/PinchGestureHandler.js +155 -0
  209. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -0
  210. package/lib/module/web/handlers/RotationGestureHandler.js +171 -0
  211. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -0
  212. package/lib/module/web/handlers/TapGestureHandler.js +281 -0
  213. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
  214. package/lib/module/web/interfaces.js +26 -0
  215. package/lib/module/web/interfaces.js.map +1 -0
  216. package/lib/module/web/tools/EventManager.js +160 -0
  217. package/lib/module/web/tools/EventManager.js.map +1 -0
  218. package/lib/module/web/tools/GestureHandlerOrchestrator.js +270 -0
  219. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
  220. package/lib/module/web/tools/InteractionManager.js +93 -0
  221. package/lib/module/web/tools/InteractionManager.js.map +1 -0
  222. package/lib/module/web/tools/NodeManager.js +39 -0
  223. package/lib/module/web/tools/NodeManager.js.map +1 -0
  224. package/lib/module/web/tools/PointerTracker.js +122 -0
  225. package/lib/module/web/tools/PointerTracker.js.map +1 -0
  226. package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
  227. package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
  228. package/lib/module/{web → web_hammer}/DraggingGestureHandler.js +0 -0
  229. package/lib/module/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
  230. package/lib/module/{web → web_hammer}/Errors.js +0 -0
  231. package/lib/module/{web → web_hammer}/Errors.js.map +0 -0
  232. package/lib/module/{web → web_hammer}/FlingGestureHandler.js +0 -0
  233. package/lib/module/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
  234. package/lib/module/{web → web_hammer}/GestureHandler.js +83 -42
  235. package/lib/module/web_hammer/GestureHandler.js.map +1 -0
  236. package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
  237. package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
  238. package/lib/module/{web → web_hammer}/LongPressGestureHandler.js +0 -0
  239. package/lib/module/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
  240. package/lib/module/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
  241. package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
  242. package/lib/module/{web → web_hammer}/NodeManager.js +0 -0
  243. package/lib/module/web_hammer/NodeManager.js.map +1 -0
  244. package/lib/module/{web → web_hammer}/PanGestureHandler.js +0 -0
  245. package/lib/module/{web → web_hammer}/PanGestureHandler.js.map +0 -0
  246. package/lib/module/{web → web_hammer}/PinchGestureHandler.js +0 -0
  247. package/lib/module/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
  248. package/lib/module/{web → web_hammer}/PressGestureHandler.js +0 -0
  249. package/lib/module/{web → web_hammer}/PressGestureHandler.js.map +0 -0
  250. package/lib/module/{web → web_hammer}/RotationGestureHandler.js +0 -0
  251. package/lib/module/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
  252. package/lib/module/{web → web_hammer}/TapGestureHandler.js +0 -0
  253. package/lib/module/{web → web_hammer}/TapGestureHandler.js.map +0 -0
  254. package/lib/module/web_hammer/constants.js +43 -0
  255. package/lib/module/web_hammer/constants.js.map +1 -0
  256. package/lib/module/{web → web_hammer}/utils.js +0 -0
  257. package/lib/module/{web → web_hammer}/utils.js.map +1 -1
  258. package/lib/typescript/EnableExperimentalWebImplementation.d.ts +2 -0
  259. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +44 -0
  260. package/lib/typescript/RNGestureHandlerModule.web.d.ts +29 -18
  261. package/lib/typescript/RNRenderer.d.ts +1 -0
  262. package/lib/typescript/RNRenderer.web.d.ts +3 -0
  263. package/lib/typescript/components/DrawerLayout.d.ts +4 -1
  264. package/lib/typescript/components/GestureButtons.d.ts +22 -0
  265. package/lib/typescript/components/GestureComponents.d.ts +7 -3
  266. package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
  267. package/lib/typescript/components/Swipeable.d.ts +1 -1
  268. package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -0
  269. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +2 -2
  270. package/lib/typescript/handlers/PanGestureHandler.d.ts +2 -1
  271. package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
  272. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
  273. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +1 -0
  274. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -1
  275. package/lib/typescript/handlers/gestures/gesture.d.ts +3 -0
  276. package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -0
  277. package/lib/typescript/index.d.ts +2 -1
  278. package/lib/typescript/web/constants.d.ts +1 -33
  279. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
  280. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +30 -0
  281. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +31 -0
  282. package/lib/typescript/web/handlers/GestureHandler.d.ts +84 -0
  283. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +33 -0
  284. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +16 -0
  285. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +68 -0
  286. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +30 -0
  287. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +30 -0
  288. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +49 -0
  289. package/lib/typescript/web/interfaces.d.ts +97 -0
  290. package/lib/typescript/web/tools/EventManager.d.ts +28 -0
  291. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +28 -0
  292. package/lib/typescript/web/tools/InteractionManager.d.ts +13 -0
  293. package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
  294. package/lib/typescript/web/tools/PointerTracker.d.ts +28 -0
  295. package/lib/typescript/{web → web_hammer}/DiscreteGestureHandler.d.ts +0 -0
  296. package/lib/typescript/{web → web_hammer}/DraggingGestureHandler.d.ts +0 -0
  297. package/lib/typescript/{web → web_hammer}/Errors.d.ts +0 -0
  298. package/lib/typescript/{web → web_hammer}/FlingGestureHandler.d.ts +1 -0
  299. package/lib/typescript/{web → web_hammer}/GestureHandler.d.ts +6 -0
  300. package/lib/typescript/{web → web_hammer}/IndiscreteGestureHandler.d.ts +1 -0
  301. package/lib/typescript/{web → web_hammer}/LongPressGestureHandler.d.ts +1 -0
  302. package/lib/typescript/{web → web_hammer}/NativeViewGestureHandler.d.ts +1 -0
  303. package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
  304. package/lib/typescript/{web → web_hammer}/PanGestureHandler.d.ts +1 -0
  305. package/lib/typescript/{web → web_hammer}/PinchGestureHandler.d.ts +0 -0
  306. package/lib/typescript/{web → web_hammer}/PressGestureHandler.d.ts +2 -0
  307. package/lib/typescript/{web → web_hammer}/RotationGestureHandler.d.ts +0 -0
  308. package/lib/typescript/{web → web_hammer}/TapGestureHandler.d.ts +1 -0
  309. package/lib/typescript/web_hammer/constants.d.ts +39 -0
  310. package/lib/typescript/{web → web_hammer}/utils.d.ts +0 -0
  311. package/package.json +1 -1
  312. package/src/EnableExperimentalWebImplementation.ts +18 -0
  313. package/src/RNGestureHandlerModule.macos.ts +114 -0
  314. package/src/RNGestureHandlerModule.web.ts +89 -26
  315. package/src/RNRenderer.ts +3 -0
  316. package/src/RNRenderer.web.ts +3 -0
  317. package/src/components/DrawerLayout.tsx +37 -14
  318. package/src/components/GestureButtons.tsx +64 -0
  319. package/src/components/GestureComponents.tsx +66 -6
  320. package/src/components/GestureComponents.web.tsx +5 -0
  321. package/src/components/Swipeable.tsx +3 -1
  322. package/src/components/touchables/GenericTouchable.tsx +2 -0
  323. package/src/fabric/RNGestureHandlerButtonNativeComponent.ts +1 -0
  324. package/src/handlers/ForceTouchGestureHandler.ts +3 -2
  325. package/src/handlers/PanGestureHandler.ts +2 -0
  326. package/src/handlers/PressabilityDebugView.tsx +2 -0
  327. package/src/handlers/PressabilityDebugView.web.tsx +4 -0
  328. package/src/handlers/{createHandler.ts → createHandler.tsx} +45 -19
  329. package/src/handlers/gestureHandlerCommon.ts +2 -0
  330. package/src/handlers/gestures/GestureDetector.tsx +185 -93
  331. package/src/handlers/gestures/gesture.ts +16 -0
  332. package/src/handlers/gestures/gestureStateManager.ts +13 -8
  333. package/src/handlers/gestures/panGesture.ts +5 -0
  334. package/src/handlers/gestures/reanimatedWrapper.ts +7 -0
  335. package/src/index.ts +3 -0
  336. package/src/utils.ts +3 -1
  337. package/src/web/constants.ts +1 -41
  338. package/src/web/detectors/RotationGestureDetector.ts +199 -0
  339. package/src/web/detectors/ScaleGestureDetector.ts +208 -0
  340. package/src/web/handlers/FlingGestureHandler.ts +146 -0
  341. package/src/web/handlers/GestureHandler.ts +572 -0
  342. package/src/web/handlers/LongPressGestureHandler.ts +122 -0
  343. package/src/web/handlers/NativeViewGestureHandler.ts +109 -0
  344. package/src/web/handlers/PanGestureHandler.ts +488 -0
  345. package/src/web/handlers/PinchGestureHandler.ts +162 -0
  346. package/src/web/handlers/RotationGestureHandler.ts +181 -0
  347. package/src/web/handlers/TapGestureHandler.ts +275 -0
  348. package/src/web/interfaces.ts +114 -0
  349. package/src/web/tools/EventManager.ts +186 -0
  350. package/src/web/tools/GestureHandlerOrchestrator.ts +329 -0
  351. package/src/web/tools/InteractionManager.ts +108 -0
  352. package/src/web/tools/NodeManager.ts +43 -0
  353. package/src/web/tools/PointerTracker.ts +130 -0
  354. package/src/{web → web_hammer}/DiscreteGestureHandler.ts +0 -0
  355. package/src/{web → web_hammer}/DraggingGestureHandler.ts +0 -0
  356. package/src/{web → web_hammer}/Errors.ts +0 -0
  357. package/src/{web → web_hammer}/FlingGestureHandler.ts +0 -0
  358. package/src/{web → web_hammer}/GestureHandler.ts +102 -55
  359. package/src/{web → web_hammer}/IndiscreteGestureHandler.ts +0 -0
  360. package/src/{web → web_hammer}/LongPressGestureHandler.ts +0 -0
  361. package/src/{web → web_hammer}/NativeViewGestureHandler.ts +4 -0
  362. package/src/{web → web_hammer}/NodeManager.ts +6 -3
  363. package/src/{web → web_hammer}/PanGestureHandler.ts +0 -0
  364. package/src/{web → web_hammer}/PinchGestureHandler.ts +0 -0
  365. package/src/{web → web_hammer}/PressGestureHandler.ts +0 -0
  366. package/src/{web → web_hammer}/RotationGestureHandler.ts +0 -0
  367. package/src/{web → web_hammer}/TapGestureHandler.ts +0 -0
  368. package/src/web_hammer/constants.ts +48 -0
  369. package/src/{web → web_hammer}/utils.ts +1 -1
  370. package/android/src/main/jni/Android.mk +0 -53
  371. package/android/src/main/jni/OnLoad.cpp +0 -9
  372. package/android/src/main/jni/RNGestureHandlerComponentsRegistry.cpp +0 -71
  373. package/android/src/main/jni/RNGestureHandlerComponentsRegistry.h +0 -34
  374. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  375. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
  376. package/lib/commonjs/web/GestureHandler.js.map +0 -1
  377. package/lib/commonjs/web/NativeViewGestureHandler.js.map +0 -1
  378. package/lib/commonjs/web/NodeManager.js.map +0 -1
  379. package/lib/module/web/GestureHandler.js.map +0 -1
  380. package/lib/module/web/NativeViewGestureHandler.js.map +0 -1
  381. package/lib/module/web/NodeManager.js.map +0 -1
  382. package/lib/typescript/web/NodeManager.d.ts +0 -8
@@ -0,0 +1,30 @@
1
+ import { AdaptedPointerEvent } from '../interfaces';
2
+ import GestureHandler from './GestureHandler';
3
+ export default class PinchGestureHandler extends GestureHandler {
4
+ private scale;
5
+ private velocity;
6
+ private startingSpan;
7
+ private spanSlop;
8
+ private scaleDetectorListener;
9
+ private scaleGestureDetector;
10
+ init(ref: number, propsRef: React.RefObject<unknown>): void;
11
+ updateGestureConfig({ enabled, ...props }: {
12
+ [x: string]: any;
13
+ enabled?: boolean | undefined;
14
+ }): void;
15
+ protected transformNativeEvent(_event: AdaptedPointerEvent): {
16
+ focalX: number;
17
+ focalY: number;
18
+ velocity: number;
19
+ scale: number;
20
+ };
21
+ protected onPointerDown(event: AdaptedPointerEvent): void;
22
+ protected onPointerUp(event: AdaptedPointerEvent): void;
23
+ protected onPointerMove(event: AdaptedPointerEvent): void;
24
+ protected onPointerOutOfBounds(_event: AdaptedPointerEvent): void;
25
+ protected onPointerCancel(_event: AdaptedPointerEvent): void;
26
+ private tryBegin;
27
+ protected activate(event: AdaptedPointerEvent, force?: boolean): void;
28
+ protected onReset(): void;
29
+ protected resetProgress(): void;
30
+ }
@@ -0,0 +1,30 @@
1
+ import { AdaptedPointerEvent } from '../interfaces';
2
+ import GestureHandler from './GestureHandler';
3
+ export default class RotationGestureHandler extends GestureHandler {
4
+ private rotation;
5
+ private velocity;
6
+ private cachedAnchorX;
7
+ private cachedAnchorY;
8
+ private rotationGestureListener;
9
+ private rotationGestureDetector;
10
+ init(ref: number, propsRef: React.RefObject<unknown>): void;
11
+ updateGestureConfig({ enabled, ...props }: {
12
+ [x: string]: any;
13
+ enabled?: boolean | undefined;
14
+ }): void;
15
+ protected transformNativeEvent(_event: AdaptedPointerEvent): {
16
+ rotation: number;
17
+ anchorX: number;
18
+ anchorY: number;
19
+ velocity: number;
20
+ };
21
+ getAnchorX(): number;
22
+ getAnchorY(): number;
23
+ protected onPointerDown(event: AdaptedPointerEvent): void;
24
+ protected onPointerMove(event: AdaptedPointerEvent): void;
25
+ protected onPointerUp(event: AdaptedPointerEvent): void;
26
+ protected onPointerCancel(event: AdaptedPointerEvent): void;
27
+ protected tryBegin(event: AdaptedPointerEvent): void;
28
+ protected activate(event: AdaptedPointerEvent, _force?: boolean): void;
29
+ protected onReset(): void;
30
+ }
@@ -0,0 +1,49 @@
1
+ import { AdaptedPointerEvent } from '../interfaces';
2
+ import GestureHandler from './GestureHandler';
3
+ export default class TapGestureHandler extends GestureHandler {
4
+ private maxDeltaX;
5
+ private maxDeltaY;
6
+ private maxDistSq;
7
+ private maxDurationMs;
8
+ private maxDelayMs;
9
+ private numberOfTaps;
10
+ private minNumberOfPointers;
11
+ private currentMaxNumberOfPointers;
12
+ private startX;
13
+ private startY;
14
+ private offsetX;
15
+ private offsetY;
16
+ private lastX;
17
+ private lastY;
18
+ private waitTimeout;
19
+ private delayTimeout;
20
+ private tapsSoFar;
21
+ init(ref: number, propsRef: React.RefObject<unknown>): void;
22
+ updateGestureConfig({ enabled, ...props }: {
23
+ [x: string]: any;
24
+ enabled?: boolean | undefined;
25
+ }): void;
26
+ protected resetConfig(): void;
27
+ protected transformNativeEvent(event: AdaptedPointerEvent): {
28
+ x: number;
29
+ y: number;
30
+ absoluteX: number;
31
+ absoluteY: number;
32
+ };
33
+ private clearTimeouts;
34
+ private startTap;
35
+ private endTap;
36
+ protected onPointerDown(event: AdaptedPointerEvent): void;
37
+ protected onPointerAdd(_event: AdaptedPointerEvent): void;
38
+ protected onPointerUp(event: AdaptedPointerEvent): void;
39
+ protected onPointerRemove(_event: AdaptedPointerEvent): void;
40
+ protected onPointerMove(event: AdaptedPointerEvent): void;
41
+ protected onPointerOutOfBounds(event: AdaptedPointerEvent): void;
42
+ protected onPointerCancel(event: AdaptedPointerEvent): void;
43
+ private updateState;
44
+ private trySettingPosition;
45
+ private shouldFail;
46
+ protected activate(event: AdaptedPointerEvent): void;
47
+ protected onCancel(): void;
48
+ protected resetProgress(): void;
49
+ }
@@ -0,0 +1,97 @@
1
+ import { Directions } from '../Directions';
2
+ import { State } from '../State';
3
+ export interface HitSlop {
4
+ left?: number;
5
+ right?: number;
6
+ top?: number;
7
+ bottom?: number;
8
+ horizontal?: number;
9
+ vertical?: number;
10
+ width?: number;
11
+ height?: number;
12
+ }
13
+ export interface Handler {
14
+ handlerTag: number;
15
+ }
16
+ declare type ConfigArgs = number | boolean | HitSlop | Directions | Handler[] | null | undefined;
17
+ export interface Config extends Record<string, ConfigArgs> {
18
+ enabled?: boolean;
19
+ simultaneousHandlers?: Handler[] | null;
20
+ waitFor?: Handler[] | null;
21
+ hitSlop?: HitSlop;
22
+ minPointers?: number;
23
+ maxPointers?: number;
24
+ minDist?: number;
25
+ minDistSq?: number;
26
+ minVelocity?: number;
27
+ minVelocityX?: number;
28
+ minVelocityY?: number;
29
+ minVelocitySq?: number;
30
+ maxDist?: number;
31
+ maxDistSq?: number;
32
+ failOffsetXStart?: number;
33
+ failOffsetYStart?: number;
34
+ failOffsetXEnd?: number;
35
+ failOffsetYEnd?: number;
36
+ activeOffsetXStart?: number;
37
+ activeOffsetXEnd?: number;
38
+ activeOffsetYStart?: number;
39
+ activeOffsetYEnd?: number;
40
+ numberOfPointers?: number;
41
+ minDurationMs?: number;
42
+ numberOfTaps?: number;
43
+ maxDurationMs?: number;
44
+ maxDelayMs?: number;
45
+ maxDeltaX?: number;
46
+ maxDeltaY?: number;
47
+ direction?: Directions;
48
+ }
49
+ declare type NativeEventArgs = number | State | boolean | undefined;
50
+ interface NativeEvent extends Record<string, NativeEventArgs> {
51
+ numberOfPointers: number;
52
+ state: State;
53
+ pointerInside: boolean | undefined;
54
+ handlerTag: number;
55
+ target: number;
56
+ oldState?: State;
57
+ }
58
+ export interface ResultEvent extends Record<string, NativeEvent | number> {
59
+ nativeEvent: NativeEvent;
60
+ timeStamp: number;
61
+ }
62
+ export interface PropsRef {
63
+ onGestureHandlerEvent: () => void;
64
+ onGestureHandlerStateChange: () => void;
65
+ }
66
+ export interface AdaptedPointerEvent {
67
+ x: number;
68
+ y: number;
69
+ offsetX: number;
70
+ offsetY: number;
71
+ pointerId: number;
72
+ eventType: EventTypes;
73
+ pointerType: string;
74
+ buttons: number;
75
+ time: number;
76
+ }
77
+ export declare enum MouseButtons {
78
+ NONE = 0,
79
+ LEFT = 1,
80
+ RIGHT = 2,
81
+ LEFT_RIGHT = 3,
82
+ SCROLL = 4,
83
+ SCROLL_LEFT = 5,
84
+ SCROLL_RIGHT = 6,
85
+ SCROLL_LEFT_RIGHT = 7
86
+ }
87
+ export declare enum EventTypes {
88
+ DOWN = 0,
89
+ ADDITIONAL_POINTER_DOWN = 1,
90
+ UP = 2,
91
+ ADDITIONAL_POINTER_UP = 3,
92
+ MOVE = 4,
93
+ ENTER = 5,
94
+ OUT = 6,
95
+ CANCEL = 7
96
+ }
97
+ export {};
@@ -0,0 +1,28 @@
1
+ import { AdaptedPointerEvent } from '../interfaces';
2
+ export default class EventManager {
3
+ private activePointers;
4
+ private readonly view;
5
+ constructor(view: HTMLElement);
6
+ setListeners(): void;
7
+ private onPointerDown;
8
+ private onPointerUp;
9
+ private onPointerMove;
10
+ private onPointerOut;
11
+ private onPointerEnter;
12
+ private onPointerCancel;
13
+ private onPointerOutOfBounds;
14
+ setOnPointerDown(callback: (event: AdaptedPointerEvent) => void): void;
15
+ setOnPointerUp(callback: (event: AdaptedPointerEvent) => void): void;
16
+ setOnPointerMove(callback: (event: AdaptedPointerEvent) => void): void;
17
+ setOnPointerOut(callback: (event: AdaptedPointerEvent) => void): void;
18
+ setOnPointerEnter(callback: (event: AdaptedPointerEvent) => void): void;
19
+ setOnPointerCancel(callback: (event: AdaptedPointerEvent) => void): void;
20
+ setOnPointerOutOfBounds(callback: (event: AdaptedPointerEvent) => void): void;
21
+ private mapEvent;
22
+ isPointerInBounds({ x, y }: {
23
+ x: number;
24
+ y: number;
25
+ }): boolean;
26
+ private addActivePointer;
27
+ private removeActivePointer;
28
+ }
@@ -0,0 +1,28 @@
1
+ import { State } from '../../State';
2
+ import { AdaptedPointerEvent } from '../interfaces';
3
+ import GestureHandler from '../handlers/GestureHandler';
4
+ export default class GestureHandlerOrchestrator {
5
+ private static instance;
6
+ private gestureHandlers;
7
+ private awaitingHandlers;
8
+ private handlersToCancel;
9
+ private handlingChangeSemaphore;
10
+ private activationIndex;
11
+ private constructor();
12
+ private scheduleFinishedHandlersCleanup;
13
+ private cleanHandler;
14
+ private cleanupFinishedHandlers;
15
+ private hasOtherHandlerToWaitFor;
16
+ private tryActivate;
17
+ private cleanupAwaitingHandlers;
18
+ onHandlerStateChange(handler: GestureHandler, newState: State, oldState: State, event: AdaptedPointerEvent): void;
19
+ private makeActive;
20
+ private addAwaitingHandler;
21
+ recordHandlerIfNotPresent(handler: GestureHandler): void;
22
+ private shouldHandlerWaitForOther;
23
+ private canRunSimultaneously;
24
+ private shouldHandlerBeCancelledBy;
25
+ private checkOverlap;
26
+ private isFinished;
27
+ static getInstance(): GestureHandlerOrchestrator;
28
+ }
@@ -0,0 +1,13 @@
1
+ import GestureHandler from '../handlers/GestureHandler';
2
+ import { Config } from '../interfaces';
3
+ export default class InteractionManager {
4
+ private readonly waitForRelations;
5
+ private readonly simultaneousRelations;
6
+ configureInteractions(handler: GestureHandler, config: Config): void;
7
+ shouldWaitForHandlerFailure(handler: GestureHandler, otherHandler: GestureHandler): boolean;
8
+ shouldRecognizeSimultaneously(handler: GestureHandler, otherHandler: GestureHandler): boolean;
9
+ shouldRequireHandlerToWaitForFailure(_handler: GestureHandler, _otherHandler: GestureHandler): boolean;
10
+ shouldHandlerBeCancelledBy(_handler: GestureHandler, _otherHandler: GestureHandler): boolean;
11
+ dropRelationsForHandlerWithTag(handlerTag: number): void;
12
+ reset(): void;
13
+ }
@@ -0,0 +1,11 @@
1
+ import { ValueOf } from '../../typeUtils';
2
+ import { Gestures } from '../../RNGestureHandlerModule.web';
3
+ export default class NodeManager {
4
+ private static gestures;
5
+ static getHandler(tag: number): import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/NativeViewGestureHandler").default;
6
+ static createGestureHandler(handlerTag: number, handler: InstanceType<ValueOf<typeof Gestures>>): void;
7
+ static dropGestureHandler(handlerTag: number): void;
8
+ static getNodes(): {
9
+ [x: number]: import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/NativeViewGestureHandler").default;
10
+ };
11
+ }
@@ -0,0 +1,28 @@
1
+ import { AdaptedPointerEvent } from '../interfaces';
2
+ interface TrackerElement {
3
+ lastX: number;
4
+ lastY: number;
5
+ timeStamp: number;
6
+ velocityX: number;
7
+ velocityY: number;
8
+ }
9
+ export default class PointerTracker {
10
+ private trackedPointers;
11
+ addToTracker(event: AdaptedPointerEvent): void;
12
+ removeFromTracker(pointerId: number): void;
13
+ track(event: AdaptedPointerEvent): void;
14
+ getVelocityX(pointerId: number): number;
15
+ getVelocityY(pointerId: number): number;
16
+ getLastX(pointerId: number): number;
17
+ getLastY(pointerId: number): number;
18
+ getLastAvgX(): number;
19
+ getLastAvgY(): number;
20
+ getSumX(ignoredPointer?: number): number;
21
+ getSumY(ignoredPointer?: number): number;
22
+ getTrackedPointersCount(): number;
23
+ getTrackedPointersID(): number[];
24
+ getData(): Map<number, TrackerElement>;
25
+ resetTracker(): void;
26
+ static shareCommonPointers(stPointers: number[], ndPointers: number[]): boolean;
27
+ }
28
+ export {};
File without changes
@@ -37,6 +37,7 @@ declare class FlingGestureHandler extends DraggingGestureHandler {
37
37
  activeOffsetYStart: number;
38
38
  activeOffsetYEnd: number;
39
39
  waitFor: any[] | null;
40
+ simultaneousHandlers: any[] | null;
40
41
  }>;
41
42
  }
42
43
  export default FlingGestureHandler;
@@ -21,6 +21,7 @@ export declare type Config = Partial<{
21
21
  activeOffsetYStart: number;
22
22
  activeOffsetYEnd: number;
23
23
  waitFor: any[] | null;
24
+ simultaneousHandlers: any[] | null;
24
25
  }>;
25
26
  declare abstract class GestureHandler {
26
27
  handlerTag: any;
@@ -43,6 +44,7 @@ declare abstract class GestureHandler {
43
44
  private ref;
44
45
  abstract get name(): string;
45
46
  get id(): string;
47
+ get isNative(): boolean;
46
48
  get isDiscrete(): boolean;
47
49
  get shouldEnableGestureOnSetup(): boolean;
48
50
  constructor();
@@ -65,6 +67,7 @@ declare abstract class GestureHandler {
65
67
  activeOffsetYStart: number;
66
68
  activeOffsetYEnd: number;
67
69
  waitFor: any[] | null;
70
+ simultaneousHandlers: any[] | null;
68
71
  }>;
69
72
  onWaitingEnded(_gesture: this): void;
70
73
  removePendingGesture(id: string): void;
@@ -98,6 +101,7 @@ declare abstract class GestureHandler {
98
101
  activeOffsetYStart: number;
99
102
  activeOffsetYEnd: number;
100
103
  waitFor: any[] | null;
104
+ simultaneousHandlers: any[] | null;
101
105
  }>;
102
106
  destroy: () => void;
103
107
  isPointInView: ({ x, y }: {
@@ -124,6 +128,7 @@ declare abstract class GestureHandler {
124
128
  forceInvalidate(event: HammerInputExt): void;
125
129
  cancelEvent(event: HammerInputExt): void;
126
130
  onRawEvent({ isFirst }: HammerInputExt): void;
131
+ shouldUseTouchEvents(config: Config): boolean;
127
132
  setView(ref: Parameters<typeof findNodeHandle>['0'], propsRef: any): void;
128
133
  setupEvents(): void;
129
134
  onStart({ deltaX, deltaY, rotation }: HammerInputExt): void;
@@ -135,5 +140,6 @@ declare abstract class GestureHandler {
135
140
  };
136
141
  sync: () => void;
137
142
  simulateCancelEvent(_inputData: any): void;
143
+ ensureConfig(config: Config): Required<Config>;
138
144
  }
139
145
  export default GestureHandler;
@@ -27,6 +27,7 @@ declare abstract class IndiscreteGestureHandler extends GestureHandler {
27
27
  activeOffsetYStart: number;
28
28
  activeOffsetYEnd: number;
29
29
  waitFor: any[] | null;
30
+ simultaneousHandlers: any[] | null;
30
31
  }>;
31
32
  isGestureEnabledForEvent({ minPointers, maxPointers }: any, _recognizer: any, { maxPointers: pointerLength }: any): {
32
33
  failed: boolean;
@@ -24,6 +24,7 @@ declare class LongPressGestureHandler extends PressGestureHandler {
24
24
  activeOffsetYStart: number;
25
25
  activeOffsetYEnd: number;
26
26
  waitFor: any[] | null;
27
+ simultaneousHandlers: any[] | null;
27
28
  }> | {
28
29
  shouldCancelWhenOutside: boolean;
29
30
  maxDistSq: number;
@@ -1,6 +1,7 @@
1
1
  import { HammerInputExt } from './GestureHandler';
2
2
  import PressGestureHandler from './PressGestureHandler';
3
3
  declare class NativeViewGestureHandler extends PressGestureHandler {
4
+ get isNative(): boolean;
4
5
  onRawEvent(ev: HammerInputExt): void;
5
6
  }
6
7
  export default NativeViewGestureHandler;
@@ -0,0 +1,8 @@
1
+ import { ValueOf } from '../typeUtils';
2
+ import { HammerGestures } from '../RNGestureHandlerModule.web';
3
+ export declare function getHandler(tag: number): import("./NativeViewGestureHandler").default | import("./PanGestureHandler").default | import("./TapGestureHandler").default | import("./LongPressGestureHandler").default | import("./PinchGestureHandler").default | import("./RotationGestureHandler").default | import("./FlingGestureHandler").default;
4
+ export declare function createGestureHandler(handlerTag: number, handler: InstanceType<ValueOf<typeof HammerGestures>>): void;
5
+ export declare function dropGestureHandler(handlerTag: number): void;
6
+ export declare function getNodes(): {
7
+ [x: number]: import("./NativeViewGestureHandler").default | import("./PanGestureHandler").default | import("./TapGestureHandler").default | import("./LongPressGestureHandler").default | import("./PinchGestureHandler").default | import("./RotationGestureHandler").default | import("./FlingGestureHandler").default;
8
+ };
@@ -30,6 +30,7 @@ declare class PanGestureHandler extends DraggingGestureHandler {
30
30
  activeOffsetYStart: number;
31
31
  activeOffsetYEnd: number;
32
32
  waitFor: any[] | null;
33
+ simultaneousHandlers: any[] | null;
33
34
  }>;
34
35
  shouldFailUnderCustomCriteria({ deltaX, deltaY }: HammerInputExt, criteria: any): boolean;
35
36
  shouldActivateUnderCustomCriteria({ deltaX, deltaY, velocity }: any, criteria: any): boolean;
@@ -34,6 +34,7 @@ declare class PressGestureHandler extends DiscreteGestureHandler {
34
34
  activeOffsetYStart: number;
35
35
  activeOffsetYEnd: number;
36
36
  waitFor: any[] | null;
37
+ simultaneousHandlers: any[] | null;
37
38
  }> | {
38
39
  shouldCancelWhenOutside: boolean;
39
40
  maxDistSq: number;
@@ -76,6 +77,7 @@ declare class PressGestureHandler extends DiscreteGestureHandler {
76
77
  activeOffsetYStart: number;
77
78
  activeOffsetYEnd: number;
78
79
  waitFor: any[] | null;
80
+ simultaneousHandlers: any[] | null;
79
81
  }>;
80
82
  }
81
83
  export default PressGestureHandler;
@@ -49,6 +49,7 @@ declare class TapGestureHandler extends DiscreteGestureHandler {
49
49
  activeOffsetYStart: number;
50
50
  activeOffsetYEnd: number;
51
51
  waitFor: any[] | null;
52
+ simultaneousHandlers: any[] | null;
52
53
  }>;
53
54
  onGestureEnded(...props: any): void;
54
55
  onWaitingEnded(_gesture: any): void;
@@ -0,0 +1,39 @@
1
+ export declare const CONTENT_TOUCHES_DELAY = 240;
2
+ export declare const CONTENT_TOUCHES_QUICK_TAP_END_DELAY = 50;
3
+ export declare const MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD = 0.1;
4
+ export declare const MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD = 7;
5
+ export declare const DEG_RAD: number;
6
+ export declare const EventMap: {
7
+ readonly 1: 2;
8
+ readonly 2: 4;
9
+ readonly 4: 5;
10
+ readonly 8: 1;
11
+ };
12
+ export declare const Direction: {
13
+ RIGHT: number;
14
+ LEFT: number;
15
+ UP: number;
16
+ DOWN: number;
17
+ };
18
+ export declare const DirectionMap: {
19
+ 4: number;
20
+ 2: number;
21
+ 8: number;
22
+ 16: number;
23
+ };
24
+ export declare const HammerInputNames: {
25
+ 1: string;
26
+ 2: string;
27
+ 4: string;
28
+ 8: string;
29
+ };
30
+ export declare const HammerDirectionNames: {
31
+ 6: string;
32
+ 8: string;
33
+ 16: string;
34
+ 24: string;
35
+ 1: string;
36
+ 30: string;
37
+ 4: string;
38
+ 2: string;
39
+ };
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-handler",
3
- "version": "2.4.1",
3
+ "version": "2.6.0",
4
4
  "description": "Experimental implementation of a new declarative API for gesture handling in react-native",
5
5
  "scripts": {
6
6
  "prepare": "bob build",
@@ -0,0 +1,18 @@
1
+ let EXPERIMENTAL_WEB_IMPLEMENTATION = false;
2
+ let getWasCalled = false;
3
+
4
+ export function enableExperimentalWebImplementation(shouldEnable = true): void {
5
+ if (getWasCalled) {
6
+ console.error(
7
+ 'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'
8
+ );
9
+ return;
10
+ }
11
+
12
+ EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;
13
+ }
14
+
15
+ export function isExperimentalWebImplementationEnabled(): boolean {
16
+ getWasCalled = true;
17
+ return EXPERIMENTAL_WEB_IMPLEMENTATION;
18
+ }
@@ -0,0 +1,114 @@
1
+ import { ActionType } from './ActionType';
2
+ import { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';
3
+
4
+ //GestureHandlers
5
+ import InteractionManager from './web/tools/InteractionManager';
6
+ import NodeManager from './web/tools/NodeManager';
7
+ import PanGestureHandler from './web/handlers/PanGestureHandler';
8
+ import TapGestureHandler from './web/handlers/TapGestureHandler';
9
+ import LongPressGestureHandler from './web/handlers/LongPressGestureHandler';
10
+ import PinchGestureHandler from './web/handlers/PinchGestureHandler';
11
+ import RotationGestureHandler from './web/handlers/RotationGestureHandler';
12
+ import FlingGestureHandler from './web/handlers/FlingGestureHandler';
13
+ import NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';
14
+
15
+ //Hammer Handlers
16
+ import * as HammerNodeManager from './web_hammer/NodeManager';
17
+ import HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';
18
+ import HammerPanGestureHandler from './web_hammer/PanGestureHandler';
19
+ import HammerTapGestureHandler from './web_hammer/TapGestureHandler';
20
+ import HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';
21
+ import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
22
+ import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
23
+ import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
24
+ import { Config } from './web_hammer/GestureHandler';
25
+
26
+ export const Gestures = {
27
+ NativeViewGestureHandler,
28
+ PanGestureHandler,
29
+ TapGestureHandler,
30
+ LongPressGestureHandler,
31
+ PinchGestureHandler,
32
+ RotationGestureHandler,
33
+ FlingGestureHandler,
34
+ };
35
+
36
+ export const HammerGestures = {
37
+ NativeViewGestureHandler: HammerNativeViewGestureHandler,
38
+ PanGestureHandler: HammerPanGestureHandler,
39
+ TapGestureHandler: HammerTapGestureHandler,
40
+ LongPressGestureHandler: HammerLongPressGestureHandler,
41
+ PinchGestureHandler: HammerPinchGestureHandler,
42
+ RotationGestureHandler: HammerRotationGestureHandler,
43
+ FlingGestureHandler: HammerFlingGestureHandler,
44
+ };
45
+
46
+ export default {
47
+ // Direction,
48
+ handleSetJSResponder(tag: number, blockNativeResponder: boolean) {
49
+ console.warn('handleSetJSResponder: ', tag, blockNativeResponder);
50
+ },
51
+ handleClearJSResponder() {
52
+ console.warn('handleClearJSResponder: ');
53
+ },
54
+ createGestureHandler<T>(
55
+ handlerName: keyof typeof Gestures,
56
+ handlerTag: number,
57
+ config: T
58
+ ) {
59
+ if (isExperimentalWebImplementationEnabled()) {
60
+ if (!(handlerName in Gestures)) return;
61
+
62
+ const interactionManager = new InteractionManager();
63
+
64
+ const GestureClass = Gestures[handlerName];
65
+ NodeManager.createGestureHandler(handlerTag, new GestureClass());
66
+ interactionManager.configureInteractions(
67
+ NodeManager.getHandler(handlerTag),
68
+ (config as unknown) as Config
69
+ );
70
+ } else {
71
+ if (!(handlerName in HammerGestures)) return;
72
+
73
+ const GestureClass = HammerGestures[handlerName];
74
+ HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
75
+ }
76
+
77
+ this.updateGestureHandler(handlerTag, config);
78
+ },
79
+ attachGestureHandler(
80
+ handlerTag: number,
81
+ newView: number, //ref
82
+ _actionType: ActionType,
83
+ propsRef: React.RefObject<unknown>
84
+ ) {
85
+ if (isExperimentalWebImplementationEnabled()) {
86
+ NodeManager.getHandler(handlerTag).init(newView, propsRef);
87
+ } else {
88
+ HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);
89
+ }
90
+ },
91
+ updateGestureHandler(handlerTag: number, newConfig: any) {
92
+ if (isExperimentalWebImplementationEnabled()) {
93
+ NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
94
+ } else {
95
+ HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
96
+ }
97
+ },
98
+ getGestureHandlerNode(handlerTag: number) {
99
+ if (isExperimentalWebImplementationEnabled()) {
100
+ return NodeManager.getHandler(handlerTag);
101
+ } else {
102
+ return HammerNodeManager.getHandler(handlerTag);
103
+ }
104
+ },
105
+ dropGestureHandler(handlerTag: number) {
106
+ if (isExperimentalWebImplementationEnabled()) {
107
+ NodeManager.dropGestureHandler(handlerTag);
108
+ } else {
109
+ HammerNodeManager.dropGestureHandler(handlerTag);
110
+ }
111
+ },
112
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
113
+ flushOperations() {},
114
+ };