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 @@
1
+ {"version":3,"sources":["ScaleGestureDetector.ts"],"names":["DEFAULT_TOUCH_SLOP","EventTypes","ScaleGestureDetector","constructor","callbacks","onScaleBegin","onScale","onScaleEnd","spanSlop","minSpan","onTouchEvent","event","tracker","adaptEvent","currentTime","time","action","eventType","numOfPointers","getTrackedPointersCount","streamComplete","UP","ADDITIONAL_POINTER_UP","CANCEL","DOWN","inProgress","initialSpan","configChanged","ADDITIONAL_POINTER_DOWN","pointerUp","ignoredPointer","pointerId","undefined","div","sumX","getSumX","sumY","getSumY","focusX","focusY","devSumX","devSumY","getData","forEach","value","key","Math","abs","lastX","lastY","devX","devY","spanX","spanY","span","hypot","wasInProgress","prevSpan","currentSpan","prevTime","MOVE","getCurrentSpan","getFocusX","getFocusY","getTimeDelta","getScaleFactor"],"mappings":"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","sourcesContent":["import { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedPointerEvent, EventTypes } from '../interfaces';\n\nimport PointerTracker from '../tools/PointerTracker';\n\nexport interface ScaleGestureListener {\n onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n onScale: (\n detector: ScaleGestureDetector,\n event: AdaptedPointerEvent\n ) => boolean;\n onScaleEnd: (\n detector: ScaleGestureDetector,\n event: AdaptedPointerEvent\n ) => void;\n}\n\nexport default class ScaleGestureDetector implements ScaleGestureListener {\n public onScaleBegin: (detector: ScaleGestureDetector) => boolean;\n public onScale: (\n detector: ScaleGestureDetector,\n event: AdaptedPointerEvent\n ) => boolean;\n public onScaleEnd: (\n detector: ScaleGestureDetector,\n event: AdaptedPointerEvent\n ) => void;\n\n private focusX!: number;\n private focusY!: number;\n\n private currentSpan!: number;\n private prevSpan!: number;\n private initialSpan!: number;\n\n private currentTime!: number;\n private prevTime!: number;\n\n private inProgress = false;\n\n private spanSlop: number;\n private minSpan: number;\n\n public constructor(callbacks: ScaleGestureListener) {\n this.onScaleBegin = callbacks.onScaleBegin;\n this.onScale = callbacks.onScale;\n this.onScaleEnd = callbacks.onScaleEnd;\n\n this.spanSlop = DEFAULT_TOUCH_SLOP * 2;\n this.minSpan = 0;\n }\n\n public onTouchEvent(\n event: AdaptedPointerEvent,\n tracker: PointerTracker\n ): boolean {\n this.adaptEvent(event, tracker);\n\n this.currentTime = event.time;\n\n const action: EventTypes = event.eventType;\n const numOfPointers = tracker.getTrackedPointersCount();\n\n const streamComplete: boolean =\n action === EventTypes.UP ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.CANCEL;\n\n if (action === EventTypes.DOWN || streamComplete) {\n if (this.inProgress) {\n this.onScaleEnd(this, event);\n this.inProgress = false;\n this.initialSpan = 0;\n }\n\n if (streamComplete) {\n return true;\n }\n }\n\n const configChanged: boolean =\n action === EventTypes.DOWN ||\n action === EventTypes.ADDITIONAL_POINTER_UP ||\n action === EventTypes.ADDITIONAL_POINTER_DOWN;\n\n const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;\n\n const ignoredPointer: number | undefined = pointerUp\n ? event.pointerId\n : undefined;\n\n //Determine focal point\n\n const div: number = pointerUp ? numOfPointers - 1 : numOfPointers;\n\n const sumX = tracker.getSumX(ignoredPointer);\n const sumY = tracker.getSumY(ignoredPointer);\n\n const focusX = sumX / div;\n const focusY = sumY / div;\n\n //Determine average deviation from focal point\n\n let devSumX = 0;\n let devSumY = 0;\n\n tracker.getData().forEach((value, key) => {\n if (key === ignoredPointer) {\n return;\n }\n\n devSumX += Math.abs(value.lastX - focusX);\n devSumY += Math.abs(value.lastY - focusY);\n });\n\n const devX: number = devSumX / div;\n const devY: number = devSumY / div;\n\n const spanX: number = devX * 2;\n const spanY: number = devY * 2;\n\n const span = Math.hypot(spanX, spanY);\n\n //Begin/end events\n const wasInProgress: boolean = this.inProgress;\n this.focusX = focusX;\n this.focusY = focusY;\n\n if (this.inProgress && (span < this.minSpan || configChanged)) {\n this.onScaleEnd(this, event);\n this.inProgress = false;\n this.initialSpan = span;\n }\n\n if (configChanged) {\n this.initialSpan = this.prevSpan = this.currentSpan = span;\n }\n\n if (\n !this.inProgress &&\n span >= this.minSpan &&\n (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)\n ) {\n this.prevSpan = this.currentSpan = span;\n this.prevTime = this.currentTime;\n this.inProgress = this.onScaleBegin(this);\n }\n\n //Handle motion\n if (action !== EventTypes.MOVE) {\n return true;\n }\n\n this.currentSpan = span;\n\n if (this.inProgress && !this.onScale(this, event)) {\n return true;\n }\n\n this.prevSpan = this.currentSpan;\n this.prevTime = this.currentTime;\n\n return true;\n }\n\n private adaptEvent(\n event: AdaptedPointerEvent,\n tracker: PointerTracker\n ): void {\n if (\n tracker.getTrackedPointersCount() > 1 &&\n event.eventType === EventTypes.DOWN\n ) {\n event.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n }\n\n if (\n tracker.getTrackedPointersCount() > 1 &&\n event.eventType === EventTypes.UP\n ) {\n event.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n }\n }\n\n public getCurrentSpan(): number {\n return this.currentSpan;\n }\n\n public getFocusX(): number {\n return this.focusX;\n }\n\n public getFocusY(): number {\n return this.focusY;\n }\n\n public getTimeDelta(): number {\n return this.currentTime - this.prevTime;\n }\n\n public getScaleFactor(numOfPointers: number): number {\n if (numOfPointers < 2) {\n return 1;\n }\n\n return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;\n }\n}\n"]}
@@ -0,0 +1,139 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
3
+ import { State } from '../../State';
4
+ import { Direction } from '../constants';
5
+ import GestureHandler from './GestureHandler';
6
+ const DEFAULT_MAX_DURATION_MS = 800;
7
+ const DEFAULT_MIN_ACCEPTABLE_DELTA = 160;
8
+ const DEFAULT_DIRECTION = Direction.RIGHT;
9
+ const DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;
10
+ export default class FlingGestureHandler extends GestureHandler {
11
+ constructor(...args) {
12
+ super(...args);
13
+
14
+ _defineProperty(this, "numberOfPointersRequired", DEFAULT_NUMBER_OF_TOUCHES_REQUIRED);
15
+
16
+ _defineProperty(this, "direction", DEFAULT_DIRECTION);
17
+
18
+ _defineProperty(this, "maxDurationMs", DEFAULT_MAX_DURATION_MS);
19
+
20
+ _defineProperty(this, "minAcceptableDelta", DEFAULT_MIN_ACCEPTABLE_DELTA);
21
+
22
+ _defineProperty(this, "delayTimeout", void 0);
23
+
24
+ _defineProperty(this, "startX", 0);
25
+
26
+ _defineProperty(this, "startY", 0);
27
+
28
+ _defineProperty(this, "maxNumberOfPointersSimultaneously", 0);
29
+ }
30
+
31
+ init(ref, propsRef) {
32
+ super.init(ref, propsRef);
33
+ }
34
+
35
+ updateGestureConfig({
36
+ enabled = true,
37
+ ...props
38
+ }) {
39
+ super.updateGestureConfig({
40
+ enabled: enabled,
41
+ ...props
42
+ });
43
+ this.enabled = enabled;
44
+
45
+ if (this.config.direction) {
46
+ this.direction = this.config.direction;
47
+ }
48
+
49
+ if (this.config.numberOfPointers) {
50
+ this.numberOfPointersRequired = this.config.numberOfPointers;
51
+ }
52
+ }
53
+
54
+ transformNativeEvent(event) {
55
+ return {
56
+ x: event.offsetX,
57
+ y: event.offsetY,
58
+ absoluteX: event.x,
59
+ absoluteY: event.y
60
+ };
61
+ }
62
+
63
+ startFling(event) {
64
+ this.startX = event.x;
65
+ this.startY = event.y;
66
+ this.begin(event);
67
+ this.maxNumberOfPointersSimultaneously = 1;
68
+ this.delayTimeout = setTimeout(() => this.fail(event), this.maxDurationMs);
69
+ }
70
+
71
+ tryEndFling(event) {
72
+ if (this.maxNumberOfPointersSimultaneously === this.numberOfPointersRequired && (this.direction & Direction.RIGHT && event.x - this.startX > this.minAcceptableDelta || this.direction & Direction.LEFT && this.startX - event.x > this.minAcceptableDelta || this.direction & Direction.UP && this.startY - event.y > this.minAcceptableDelta || this.direction & Direction.DOWN && event.y - this.startY > this.minAcceptableDelta)) {
73
+ clearTimeout(this.delayTimeout);
74
+ this.activate(event);
75
+ return true;
76
+ }
77
+
78
+ return false;
79
+ }
80
+
81
+ endFling(event) {
82
+ if (!this.tryEndFling(event)) {
83
+ this.fail(event);
84
+ }
85
+ }
86
+
87
+ onPointerDown(event) {
88
+ super.onPointerDown(event);
89
+ this.tracker.addToTracker(event);
90
+
91
+ if (this.currentState === State.UNDETERMINED) {
92
+ this.startFling(event);
93
+ }
94
+
95
+ if (this.currentState !== State.BEGAN) {
96
+ return;
97
+ }
98
+
99
+ this.tryEndFling(event);
100
+
101
+ if (this.tracker.getTrackedPointersCount() > this.maxNumberOfPointersSimultaneously) {
102
+ this.maxNumberOfPointersSimultaneously = this.tracker.getTrackedPointersCount();
103
+ }
104
+ }
105
+
106
+ onPointerMove(event) {
107
+ this.tracker.track(event);
108
+
109
+ if (this.currentState !== State.BEGAN) {
110
+ return;
111
+ }
112
+
113
+ this.tryEndFling(event);
114
+ super.onPointerMove(event);
115
+ }
116
+
117
+ onPointerUp(event) {
118
+ this.tracker.removeFromTracker(event.pointerId);
119
+
120
+ if (this.currentState !== State.BEGAN) {
121
+ return;
122
+ }
123
+
124
+ this.endFling(event);
125
+ }
126
+
127
+ activate(event, force) {
128
+ super.activate(event, force);
129
+ this.end(event);
130
+ }
131
+
132
+ resetConfig() {
133
+ super.resetConfig();
134
+ this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;
135
+ this.direction = DEFAULT_DIRECTION;
136
+ }
137
+
138
+ }
139
+ //# sourceMappingURL=FlingGestureHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FlingGestureHandler.ts"],"names":["State","Direction","GestureHandler","DEFAULT_MAX_DURATION_MS","DEFAULT_MIN_ACCEPTABLE_DELTA","DEFAULT_DIRECTION","RIGHT","DEFAULT_NUMBER_OF_TOUCHES_REQUIRED","FlingGestureHandler","init","ref","propsRef","updateGestureConfig","enabled","props","config","direction","numberOfPointers","numberOfPointersRequired","transformNativeEvent","event","x","offsetX","y","offsetY","absoluteX","absoluteY","startFling","startX","startY","begin","maxNumberOfPointersSimultaneously","delayTimeout","setTimeout","fail","maxDurationMs","tryEndFling","minAcceptableDelta","LEFT","UP","DOWN","clearTimeout","activate","endFling","onPointerDown","tracker","addToTracker","currentState","UNDETERMINED","BEGAN","getTrackedPointersCount","onPointerMove","track","onPointerUp","removeFromTracker","pointerId","force","end","resetConfig"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { Direction } from '../constants';\nimport { AdaptedPointerEvent } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MAX_DURATION_MS = 800;\nconst DEFAULT_MIN_ACCEPTABLE_DELTA = 160;\nconst DEFAULT_DIRECTION = Direction.RIGHT;\nconst DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;\n\nexport default class FlingGestureHandler extends GestureHandler {\n private numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n private direction = DEFAULT_DIRECTION;\n\n private maxDurationMs = DEFAULT_MAX_DURATION_MS;\n private minAcceptableDelta = DEFAULT_MIN_ACCEPTABLE_DELTA;\n private delayTimeout!: number;\n\n private startX = 0;\n private startY = 0;\n\n private maxNumberOfPointersSimultaneously = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n this.enabled = enabled;\n\n if (this.config.direction) {\n this.direction = this.config.direction;\n }\n\n if (this.config.numberOfPointers) {\n this.numberOfPointersRequired = this.config.numberOfPointers;\n }\n }\n\n protected transformNativeEvent(event: AdaptedPointerEvent) {\n return {\n x: event.offsetX,\n y: event.offsetY,\n absoluteX: event.x,\n absoluteY: event.y,\n };\n }\n\n private startFling(event: AdaptedPointerEvent): void {\n this.startX = event.x;\n this.startY = event.y;\n\n this.begin(event);\n\n this.maxNumberOfPointersSimultaneously = 1;\n\n this.delayTimeout = setTimeout(() => this.fail(event), this.maxDurationMs);\n }\n\n private tryEndFling(event: AdaptedPointerEvent): boolean {\n if (\n this.maxNumberOfPointersSimultaneously ===\n this.numberOfPointersRequired &&\n ((this.direction & Direction.RIGHT &&\n event.x - this.startX > this.minAcceptableDelta) ||\n (this.direction & Direction.LEFT &&\n this.startX - event.x > this.minAcceptableDelta) ||\n (this.direction & Direction.UP &&\n this.startY - event.y > this.minAcceptableDelta) ||\n (this.direction & Direction.DOWN &&\n event.y - this.startY > this.minAcceptableDelta))\n ) {\n clearTimeout(this.delayTimeout);\n this.activate(event);\n\n return true;\n }\n\n return false;\n }\n\n private endFling(event: AdaptedPointerEvent) {\n if (!this.tryEndFling(event)) {\n this.fail(event);\n }\n }\n\n protected onPointerDown(event: AdaptedPointerEvent): void {\n super.onPointerDown(event);\n\n this.tracker.addToTracker(event);\n\n if (this.currentState === State.UNDETERMINED) {\n this.startFling(event);\n }\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling(event);\n\n if (\n this.tracker.getTrackedPointersCount() >\n this.maxNumberOfPointersSimultaneously\n ) {\n this.maxNumberOfPointersSimultaneously = this.tracker.getTrackedPointersCount();\n }\n }\n\n protected onPointerMove(event: AdaptedPointerEvent): void {\n this.tracker.track(event);\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling(event);\n\n super.onPointerMove(event);\n }\n\n protected onPointerUp(event: AdaptedPointerEvent): void {\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.endFling(event);\n }\n\n protected activate(event: AdaptedPointerEvent, force?: boolean): void {\n super.activate(event, force);\n this.end(event);\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n this.direction = DEFAULT_DIRECTION;\n }\n}\n"]}
@@ -0,0 +1,521 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
3
+ /* eslint-disable @typescript-eslint/no-empty-function */
4
+ import { findNodeHandle } from 'react-native';
5
+ import { State } from '../../State';
6
+ import EventManager from '../tools/EventManager';
7
+ import GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';
8
+ import PointerTracker from '../tools/PointerTracker';
9
+ export default class GestureHandler {
10
+ // Orchestrator properties
11
+ constructor() {
12
+ _defineProperty(this, "lastSentState", null);
13
+
14
+ _defineProperty(this, "currentState", State.UNDETERMINED);
15
+
16
+ _defineProperty(this, "shouldCancellWhenOutside", false);
17
+
18
+ _defineProperty(this, "hasCustomActivationCriteria", void 0);
19
+
20
+ _defineProperty(this, "enabled", false);
21
+
22
+ _defineProperty(this, "ref", void 0);
23
+
24
+ _defineProperty(this, "propsRef", void 0);
25
+
26
+ _defineProperty(this, "config", {
27
+ enabled: false
28
+ });
29
+
30
+ _defineProperty(this, "handlerTag", void 0);
31
+
32
+ _defineProperty(this, "view", null);
33
+
34
+ _defineProperty(this, "eventManager", void 0);
35
+
36
+ _defineProperty(this, "tracker", new PointerTracker());
37
+
38
+ _defineProperty(this, "interactionManager", void 0);
39
+
40
+ _defineProperty(this, "activationIndex", 0);
41
+
42
+ _defineProperty(this, "awaiting", false);
43
+
44
+ _defineProperty(this, "active", false);
45
+
46
+ _defineProperty(this, "shouldResetProgress", false);
47
+
48
+ _defineProperty(this, "sendEvent", (event, newState, oldState) => {
49
+ const {
50
+ onGestureHandlerEvent,
51
+ onGestureHandlerStateChange
52
+ } = this.propsRef.current;
53
+ const resultEvent = this.transformEventData(event, newState, oldState); // In the new API oldState field has to be undefined, unless we send event state changed
54
+ // Here the order is flipped to avoid workarounds such as making backup of the state and setting it to undefined first, then changing it back
55
+ // Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once
56
+ // However, this may cause trouble in the future (but for now we don't know that)
57
+
58
+ if (this.lastSentState !== newState) {
59
+ this.lastSentState = newState;
60
+ invokeNullableMethod(onGestureHandlerStateChange, resultEvent);
61
+ }
62
+
63
+ if (this.currentState === State.ACTIVE) {
64
+ resultEvent.nativeEvent.oldState = undefined;
65
+ invokeNullableMethod(onGestureHandlerEvent, resultEvent);
66
+ }
67
+ });
68
+
69
+ this.hasCustomActivationCriteria = false;
70
+ } //
71
+ // Initializing handler
72
+ //
73
+
74
+
75
+ init(ref, propsRef) {
76
+ this.propsRef = propsRef;
77
+ this.ref = ref;
78
+ this.currentState = State.UNDETERMINED;
79
+ this.setView(ref);
80
+ this.setEventManager();
81
+ }
82
+
83
+ setView(ref) {
84
+ if (!ref) {
85
+ this.view = null;
86
+ return;
87
+ }
88
+
89
+ this.view = findNodeHandle(ref);
90
+ this.view.style['touchAction'] = 'none';
91
+ this.view.style['webkitUserSelect'] = 'none';
92
+ this.view.style['userSelect'] = 'none'; //@ts-ignore This one disables default events on Safari
93
+
94
+ this.view.style['WebkitTouchCallout'] = 'none';
95
+ }
96
+
97
+ setEventManager() {
98
+ if (!this.view) {
99
+ return;
100
+ }
101
+
102
+ this.eventManager = new EventManager(this.view);
103
+ this.eventManager.setOnPointerDown(this.onPointerDown.bind(this));
104
+ this.eventManager.setOnPointerUp(this.onPointerUp.bind(this));
105
+ this.eventManager.setOnPointerMove(this.onPointerMove.bind(this));
106
+ this.eventManager.setOnPointerEnter(this.onPointerEnter.bind(this));
107
+ this.eventManager.setOnPointerOut(this.onPointerOut.bind(this));
108
+ this.eventManager.setOnPointerCancel(this.onPointerCancel.bind(this));
109
+ this.eventManager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));
110
+ this.eventManager.setListeners();
111
+ }
112
+
113
+ setInteractionManager(manager) {
114
+ this.interactionManager = manager;
115
+ } //
116
+ // Resetting handler
117
+ //
118
+
119
+
120
+ onCancel() {}
121
+
122
+ onReset() {}
123
+
124
+ resetProgress() {}
125
+
126
+ reset() {
127
+ this.tracker.resetTracker();
128
+ this.onReset();
129
+ this.currentState = State.UNDETERMINED;
130
+ } //
131
+ // State logic
132
+ //
133
+
134
+
135
+ moveToState(newState, event) {
136
+ if (this.currentState === newState) {
137
+ return;
138
+ }
139
+
140
+ const oldState = this.currentState;
141
+ this.currentState = newState;
142
+ GestureHandlerOrchestrator.getInstance().onHandlerStateChange(this, newState, oldState, event);
143
+ this.onStateChange(newState, oldState);
144
+ }
145
+
146
+ onStateChange(_newState, _oldState) {}
147
+
148
+ begin(event) {
149
+ if (!this.checkHitSlop(event)) {
150
+ return;
151
+ }
152
+
153
+ if (this.currentState === State.UNDETERMINED) {
154
+ this.moveToState(State.BEGAN, event);
155
+ }
156
+ }
157
+
158
+ fail(event) {
159
+ if (this.currentState === State.ACTIVE || this.currentState === State.BEGAN) {
160
+ this.moveToState(State.FAILED, event);
161
+ }
162
+
163
+ this.resetProgress();
164
+ }
165
+
166
+ cancel(event) {
167
+ if (this.currentState === State.ACTIVE || this.currentState === State.UNDETERMINED || this.currentState === State.BEGAN) {
168
+ this.onCancel();
169
+ this.moveToState(State.CANCELLED, event);
170
+ }
171
+ }
172
+
173
+ activate(event, _force = false) {
174
+ if (this.currentState === State.UNDETERMINED || this.currentState === State.BEGAN) {
175
+ this.moveToState(State.ACTIVE, event);
176
+ }
177
+ }
178
+
179
+ end(event) {
180
+ if (this.currentState === State.BEGAN || this.currentState === State.ACTIVE) {
181
+ this.moveToState(State.END, event);
182
+ }
183
+
184
+ this.resetProgress();
185
+ } //
186
+ // Methods for orchestrator
187
+ //
188
+
189
+
190
+ isAwaiting() {
191
+ return this.awaiting;
192
+ }
193
+
194
+ setAwaiting(value) {
195
+ this.awaiting = value;
196
+ }
197
+
198
+ isActive() {
199
+ return this.active;
200
+ }
201
+
202
+ setActive(value) {
203
+ this.active = value;
204
+ }
205
+
206
+ getShouldResetProgress() {
207
+ return this.shouldResetProgress;
208
+ }
209
+
210
+ setShouldResetProgress(value) {
211
+ this.shouldResetProgress = value;
212
+ }
213
+
214
+ getActivationIndex() {
215
+ return this.activationIndex;
216
+ }
217
+
218
+ setActivationIndex(value) {
219
+ this.activationIndex = value;
220
+ }
221
+
222
+ shouldWaitForHandlerFailure(handler) {
223
+ if (handler === this) {
224
+ return false;
225
+ }
226
+
227
+ return this.interactionManager.shouldWaitForHandlerFailure(this, handler);
228
+ }
229
+
230
+ shouldRequireToWaitForFailure(handler) {
231
+ if (handler === this) {
232
+ return false;
233
+ }
234
+
235
+ return this.interactionManager.shouldRequireHandlerToWaitForFailure(this, handler);
236
+ }
237
+
238
+ shouldRecognizeSimultaneously(handler) {
239
+ if (handler === this) {
240
+ return true;
241
+ }
242
+
243
+ return this.interactionManager.shouldRecognizeSimultaneously(this, handler);
244
+ }
245
+
246
+ shouldBeCancelledByOther(handler) {
247
+ if (handler === this) {
248
+ return false;
249
+ }
250
+
251
+ return this.interactionManager.shouldHandlerBeCancelledBy(this, handler);
252
+ } //
253
+ // Event actions
254
+ //
255
+
256
+
257
+ onPointerDown(_event) {
258
+ GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);
259
+ } // Adding another pointer to existing ones
260
+
261
+
262
+ onPointerAdd(_event) {}
263
+
264
+ onPointerUp(_event) {} // Removing pointer, when there is more than one pointers
265
+
266
+
267
+ onPointerRemove(_event) {}
268
+
269
+ onPointerMove(event) {
270
+ this.tryToSendMoveEvent(event, false);
271
+ }
272
+
273
+ onPointerOut(_event) {}
274
+
275
+ onPointerEnter(_event) {}
276
+
277
+ onPointerCancel(_event) {}
278
+
279
+ onPointerOutOfBounds(event) {
280
+ this.tryToSendMoveEvent(event, true);
281
+ }
282
+
283
+ tryToSendMoveEvent(event, out) {
284
+ if (this.currentState === State.ACTIVE && (!out || out && !this.shouldCancellWhenOutside)) {
285
+ this.sendEvent(event, this.currentState, this.currentState);
286
+ }
287
+ } //
288
+ // Events Sending
289
+ //
290
+
291
+
292
+ transformEventData(event, newState, oldState) {
293
+ var _this$eventManager;
294
+
295
+ return {
296
+ nativeEvent: {
297
+ numberOfPointers: this.tracker.getTrackedPointersCount(),
298
+ state: newState,
299
+ pointerInside: (_this$eventManager = this.eventManager) === null || _this$eventManager === void 0 ? void 0 : _this$eventManager.isPointerInBounds({
300
+ x: event.x,
301
+ y: event.y
302
+ }),
303
+ ...this.transformNativeEvent(event),
304
+ handlerTag: this.handlerTag,
305
+ target: this.ref,
306
+ oldState: newState !== oldState ? oldState : undefined
307
+ },
308
+ timeStamp: Date.now()
309
+ };
310
+ }
311
+
312
+ transformNativeEvent(_event) {
313
+ return {};
314
+ } //
315
+ // Handling config
316
+ //
317
+
318
+
319
+ updateGestureConfig({
320
+ enabled = true,
321
+ ...props
322
+ }) {
323
+ this.config = {
324
+ enabled,
325
+ ...props
326
+ };
327
+ this.validateHitSlops();
328
+ }
329
+
330
+ checkCustomActivationCriteria(criterias) {
331
+ for (const key in this.config) {
332
+ if (criterias.indexOf(key) >= 0) {
333
+ this.hasCustomActivationCriteria = true;
334
+ }
335
+ }
336
+ }
337
+
338
+ validateHitSlops() {
339
+ if (!this.config.hitSlop) {
340
+ return;
341
+ }
342
+
343
+ if (this.config.hitSlop.left !== undefined && this.config.hitSlop.right !== undefined && this.config.hitSlop.width !== undefined) {
344
+ throw new Error('HitSlop Error: Cannot define left, right and width at the same time');
345
+ }
346
+
347
+ if (this.config.hitSlop.width !== undefined && this.config.hitSlop.left === undefined && this.config.hitSlop.right === undefined) {
348
+ throw new Error('HitSlop Error: When width is defined, either left or right has to be defined');
349
+ }
350
+
351
+ if (this.config.hitSlop.height !== undefined && this.config.hitSlop.top !== undefined && this.config.hitSlop.bottom !== undefined) {
352
+ throw new Error('HitSlop Error: Cannot define top, bottom and height at the same time');
353
+ }
354
+
355
+ if (this.config.hitSlop.height !== undefined && this.config.hitSlop.top === undefined && this.config.hitSlop.bottom === undefined) {
356
+ throw new Error('HitSlop Error: When height is defined, either top or bottom has to be defined');
357
+ }
358
+ }
359
+
360
+ checkHitSlop(event) {
361
+ if (!this.config.hitSlop || !this.view) {
362
+ return true;
363
+ }
364
+
365
+ const width = this.view.getBoundingClientRect().width;
366
+ const height = this.view.getBoundingClientRect().height;
367
+ let left = 0;
368
+ let top = 0;
369
+ let right = width;
370
+ let bottom = height;
371
+
372
+ if (this.config.hitSlop.horizontal !== undefined) {
373
+ left -= this.config.hitSlop.horizontal;
374
+ right += this.config.hitSlop.horizontal;
375
+ }
376
+
377
+ if (this.config.hitSlop.vertical !== undefined) {
378
+ top -= this.config.hitSlop.vertical;
379
+ bottom += this.config.hitSlop.vertical;
380
+ }
381
+
382
+ if (this.config.hitSlop.left !== undefined) {
383
+ left = -this.config.hitSlop.left;
384
+ }
385
+
386
+ if (this.config.hitSlop.right !== undefined) {
387
+ right = width + this.config.hitSlop.right;
388
+ }
389
+
390
+ if (this.config.hitSlop.top !== undefined) {
391
+ top = -this.config.hitSlop.top;
392
+ }
393
+
394
+ if (this.config.hitSlop.bottom !== undefined) {
395
+ bottom = width + this.config.hitSlop.bottom;
396
+ }
397
+
398
+ if (this.config.hitSlop.width !== undefined) {
399
+ if (this.config.hitSlop.left !== undefined) {
400
+ right = left + this.config.hitSlop.width;
401
+ } else if (this.config.hitSlop.right !== undefined) {
402
+ left = right - this.config.hitSlop.width;
403
+ }
404
+ }
405
+
406
+ if (this.config.hitSlop.height !== undefined) {
407
+ if (this.config.hitSlop.top !== undefined) {
408
+ bottom = top + this.config.hitSlop.height;
409
+ } else if (this.config.hitSlop.bottom !== undefined) {
410
+ top = bottom - this.config.hitSlop.height;
411
+ }
412
+ }
413
+
414
+ if (event.offsetX >= left && event.offsetX <= right && event.offsetY >= top && event.offsetY <= bottom) {
415
+ return true;
416
+ }
417
+
418
+ return false;
419
+ }
420
+
421
+ resetConfig() {} //
422
+ // Getters and setters
423
+ //
424
+
425
+
426
+ getTag() {
427
+ return this.handlerTag;
428
+ }
429
+
430
+ setTag(tag) {
431
+ this.handlerTag = tag;
432
+ }
433
+
434
+ getConfig() {
435
+ return this.config;
436
+ }
437
+
438
+ getShouldEnableGestureOnSetup() {
439
+ throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');
440
+ }
441
+
442
+ getView() {
443
+ return this.view;
444
+ }
445
+
446
+ getEventManager() {
447
+ return this.eventManager;
448
+ }
449
+
450
+ getTracker() {
451
+ return this.tracker;
452
+ }
453
+
454
+ getTrackedPointersID() {
455
+ return this.tracker.getTrackedPointersID();
456
+ }
457
+
458
+ getState() {
459
+ return this.currentState;
460
+ }
461
+
462
+ setShouldCancelWhenOutside(flag) {
463
+ this.shouldCancellWhenOutside = flag;
464
+ }
465
+
466
+ getShouldCancelWhenOutside() {
467
+ return this.shouldCancellWhenOutside;
468
+ }
469
+
470
+ }
471
+
472
+ function invokeNullableMethod(method, event) {
473
+ if (!method) {
474
+ return;
475
+ }
476
+
477
+ if (typeof method === 'function') {
478
+ method(event);
479
+ return;
480
+ }
481
+
482
+ if ('__getHandler' in method && typeof method.__getHandler === 'function') {
483
+ const handler = method.__getHandler();
484
+
485
+ invokeNullableMethod(handler, event);
486
+ return;
487
+ }
488
+
489
+ if (!('__nodeConfig' in method)) {
490
+ return;
491
+ }
492
+
493
+ const {
494
+ argMapping
495
+ } = method.__nodeConfig;
496
+
497
+ if (!Array.isArray(argMapping)) {
498
+ return;
499
+ }
500
+
501
+ for (const [index, [key, value]] of argMapping.entries()) {
502
+ if (!(key in event.nativeEvent)) {
503
+ continue;
504
+ } // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
505
+
506
+
507
+ const nativeValue = event.nativeEvent[key]; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
508
+
509
+ if (value !== null && value !== void 0 && value.setValue) {
510
+ //Reanimated API
511
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
512
+ value.setValue(nativeValue);
513
+ } else {
514
+ //RN Animated API
515
+ method.__nodeConfig.argMapping[index] = [key, nativeValue];
516
+ }
517
+ }
518
+
519
+ return;
520
+ }
521
+ //# sourceMappingURL=GestureHandler.js.map