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