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":["GestureHandler.ts"],"names":["findNodeHandle","State","EventManager","GestureHandlerOrchestrator","PointerTracker","GestureHandler","constructor","UNDETERMINED","enabled","event","newState","oldState","onGestureHandlerEvent","onGestureHandlerStateChange","propsRef","current","resultEvent","transformEventData","lastSentState","invokeNullableMethod","currentState","ACTIVE","nativeEvent","undefined","hasCustomActivationCriteria","init","ref","setView","setEventManager","view","style","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","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"]}
@@ -0,0 +1,133 @@
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 GestureHandler from './GestureHandler';
5
+ const DEFAULT_MIN_DURATION_MS = 500;
6
+ const DEFAULT_MAX_DIST_DP = 10;
7
+ const SCALING_FACTOR = 10;
8
+ export default class LongPressGestureHandler extends GestureHandler {
9
+ constructor(...args) {
10
+ super(...args);
11
+
12
+ _defineProperty(this, "minDurationMs", DEFAULT_MIN_DURATION_MS);
13
+
14
+ _defineProperty(this, "defaultMaxDistSq", DEFAULT_MAX_DIST_DP * SCALING_FACTOR);
15
+
16
+ _defineProperty(this, "maxDistSq", this.defaultMaxDistSq);
17
+
18
+ _defineProperty(this, "startX", 0);
19
+
20
+ _defineProperty(this, "startY", 0);
21
+
22
+ _defineProperty(this, "startTime", 0);
23
+
24
+ _defineProperty(this, "previousTime", 0);
25
+
26
+ _defineProperty(this, "activationTimeout", void 0);
27
+ }
28
+
29
+ init(ref, propsRef) {
30
+ super.init(ref, propsRef);
31
+ this.setShouldCancelWhenOutside(true);
32
+ }
33
+
34
+ transformNativeEvent(event) {
35
+ return {
36
+ x: event.offsetX,
37
+ y: event.offsetY,
38
+ absoluteX: event.x,
39
+ absoluteY: event.y,
40
+ duration: Date.now() - this.startTime
41
+ };
42
+ }
43
+
44
+ updateGestureConfig({
45
+ enabled = true,
46
+ ...props
47
+ }) {
48
+ super.updateGestureConfig({
49
+ enabled: enabled,
50
+ ...props
51
+ });
52
+ this.enabled = enabled;
53
+
54
+ if (this.config.minDurationMs !== undefined) {
55
+ this.minDurationMs = this.config.minDurationMs;
56
+ }
57
+
58
+ if (this.config.maxDist !== undefined) {
59
+ this.maxDistSq = this.config.maxDist * this.config.maxDist;
60
+ }
61
+ }
62
+
63
+ resetConfig() {
64
+ super.resetConfig();
65
+ this.minDurationMs = DEFAULT_MIN_DURATION_MS;
66
+ this.maxDistSq = this.defaultMaxDistSq;
67
+ }
68
+
69
+ onStateChange(_newState, _oldState) {
70
+ clearTimeout(this.activationTimeout);
71
+ }
72
+
73
+ onPointerDown(event) {
74
+ super.onPointerDown(event);
75
+ this.tryBegin(event);
76
+ this.tryActivate(event);
77
+ this.checkDistanceFail(event);
78
+ }
79
+
80
+ onPointerUp(event) {
81
+ super.onPointerUp(event);
82
+
83
+ if (this.currentState === State.ACTIVE) {
84
+ this.end(event);
85
+ } else {
86
+ this.fail(event);
87
+ }
88
+ }
89
+
90
+ onPointerMove(event) {
91
+ this.checkDistanceFail(event);
92
+ }
93
+
94
+ tryBegin(event) {
95
+ if (this.currentState !== State.UNDETERMINED) {
96
+ return;
97
+ }
98
+
99
+ this.previousTime = Date.now();
100
+ this.startTime = this.previousTime;
101
+ this.begin(event);
102
+ this.startX = event.x;
103
+ this.startY = event.y;
104
+ }
105
+
106
+ tryActivate(event) {
107
+ if (this.minDurationMs > 0) {
108
+ this.activationTimeout = setTimeout(() => {
109
+ this.activate(event);
110
+ }, this.minDurationMs);
111
+ } else if (this.minDurationMs === 0) {
112
+ this.activate(event);
113
+ }
114
+ }
115
+
116
+ checkDistanceFail(event) {
117
+ const dx = event.x - this.startX;
118
+ const dy = event.y - this.startY;
119
+ const distSq = dx * dx + dy * dy;
120
+
121
+ if (distSq <= this.maxDistSq) {
122
+ return;
123
+ }
124
+
125
+ if (this.currentState === State.ACTIVE) {
126
+ this.cancel(event);
127
+ } else {
128
+ this.fail(event);
129
+ }
130
+ }
131
+
132
+ }
133
+ //# sourceMappingURL=LongPressGestureHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["LongPressGestureHandler.ts"],"names":["State","GestureHandler","DEFAULT_MIN_DURATION_MS","DEFAULT_MAX_DIST_DP","SCALING_FACTOR","LongPressGestureHandler","defaultMaxDistSq","init","ref","propsRef","setShouldCancelWhenOutside","transformNativeEvent","event","x","offsetX","y","offsetY","absoluteX","absoluteY","duration","Date","now","startTime","updateGestureConfig","enabled","props","config","minDurationMs","undefined","maxDist","maxDistSq","resetConfig","onStateChange","_newState","_oldState","clearTimeout","activationTimeout","onPointerDown","tryBegin","tryActivate","checkDistanceFail","onPointerUp","currentState","ACTIVE","end","fail","onPointerMove","UNDETERMINED","previousTime","begin","startX","startY","setTimeout","activate","dx","dy","distSq","cancel"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { AdaptedPointerEvent } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MIN_DURATION_MS = 500;\nconst DEFAULT_MAX_DIST_DP = 10;\nconst SCALING_FACTOR = 10;\n\nexport default class LongPressGestureHandler extends GestureHandler {\n private minDurationMs = DEFAULT_MIN_DURATION_MS;\n private defaultMaxDistSq = DEFAULT_MAX_DIST_DP * SCALING_FACTOR;\n\n private maxDistSq = this.defaultMaxDistSq;\n private startX = 0;\n private startY = 0;\n\n private startTime = 0;\n private previousTime = 0;\n\n private activationTimeout: number | undefined;\n\n public init(ref: number, propsRef: React.RefObject<unknown>) {\n super.init(ref, propsRef);\n this.setShouldCancelWhenOutside(true);\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 duration: Date.now() - this.startTime,\n };\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.minDurationMs !== undefined) {\n this.minDurationMs = this.config.minDurationMs;\n }\n\n if (this.config.maxDist !== undefined) {\n this.maxDistSq = this.config.maxDist * this.config.maxDist;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n this.minDurationMs = DEFAULT_MIN_DURATION_MS;\n this.maxDistSq = this.defaultMaxDistSq;\n }\n\n protected onStateChange(_newState: State, _oldState: State): void {\n clearTimeout(this.activationTimeout);\n }\n\n protected onPointerDown(event: AdaptedPointerEvent): void {\n super.onPointerDown(event);\n this.tryBegin(event);\n this.tryActivate(event);\n this.checkDistanceFail(event);\n }\n\n protected onPointerUp(event: AdaptedPointerEvent): void {\n super.onPointerUp(event);\n\n if (this.currentState === State.ACTIVE) {\n this.end(event);\n } else {\n this.fail(event);\n }\n }\n\n protected onPointerMove(event: AdaptedPointerEvent): void {\n this.checkDistanceFail(event);\n }\n\n private tryBegin(event: AdaptedPointerEvent): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.previousTime = Date.now();\n this.startTime = this.previousTime;\n\n this.begin(event);\n\n this.startX = event.x;\n this.startY = event.y;\n }\n\n private tryActivate(event: AdaptedPointerEvent): void {\n if (this.minDurationMs > 0) {\n this.activationTimeout = setTimeout(() => {\n this.activate(event);\n }, this.minDurationMs);\n } else if (this.minDurationMs === 0) {\n this.activate(event);\n }\n }\n\n private checkDistanceFail(event: AdaptedPointerEvent): void {\n const dx = event.x - this.startX;\n const dy = event.y - this.startY;\n const distSq = dx * dx + dy * dy;\n\n if (distSq <= this.maxDistSq) {\n return;\n }\n\n if (this.currentState === State.ACTIVE) {\n this.cancel(event);\n } else {\n this.fail(event);\n }\n }\n}\n"]}
@@ -0,0 +1,103 @@
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 GestureHandler from './GestureHandler';
5
+ export default class NativeViewGestureHandler extends GestureHandler {
6
+ constructor(...args) {
7
+ super(...args);
8
+
9
+ _defineProperty(this, "buttonRole", void 0);
10
+
11
+ _defineProperty(this, "disallowInterruption", false);
12
+ }
13
+
14
+ init(ref, propsRef) {
15
+ super.init(ref, propsRef);
16
+ this.setShouldCancelWhenOutside(true);
17
+
18
+ if (!this.view) {
19
+ return;
20
+ }
21
+
22
+ this.view.style['touchAction'] = 'auto';
23
+ this.view.style['webkitUserSelect'] = 'auto';
24
+ this.view.style['userSelect'] = 'auto'; //@ts-ignore Turns on defualt touch behavior on Safari
25
+
26
+ this.view.style['WebkitTouchCallout'] = 'auto';
27
+
28
+ if (this.view.hasAttribute('role')) {
29
+ this.buttonRole = true;
30
+ } else {
31
+ this.buttonRole = false;
32
+ }
33
+ }
34
+
35
+ resetConfig() {
36
+ super.resetConfig();
37
+ }
38
+
39
+ onPointerDown(event) {
40
+ super.onPointerDown(event);
41
+ this.tracker.addToTracker(event);
42
+
43
+ if (this.currentState === State.UNDETERMINED) {
44
+ this.begin(event);
45
+
46
+ if (this.buttonRole) {
47
+ this.activate(event);
48
+ }
49
+ }
50
+ }
51
+
52
+ onPointerMove(_event) {//
53
+ }
54
+
55
+ onPointerOut(event) {
56
+ this.cancel(event);
57
+ }
58
+
59
+ onPointerUp(event) {
60
+ this.tracker.removeFromTracker(event.pointerId);
61
+
62
+ if (!this.buttonRole) {
63
+ this.activate(event);
64
+ }
65
+
66
+ if (this.tracker.getTrackedPointersCount() === 0) {
67
+ this.end(event);
68
+ }
69
+ }
70
+
71
+ onPointerCancel(event) {
72
+ this.cancel(event);
73
+ this.reset();
74
+ }
75
+
76
+ shouldRecognizeSimultaneously(handler) {
77
+ if (super.shouldRecognizeSimultaneously(handler)) {
78
+ return true;
79
+ }
80
+
81
+ if (handler instanceof NativeViewGestureHandler && handler.getState() === State.ACTIVE && handler.disallowsInterruption()) {
82
+ return false;
83
+ }
84
+
85
+ const canBeInterrupted = !this.disallowInterruption;
86
+
87
+ if (this.currentState === State.ACTIVE && handler.getState() === State.ACTIVE && canBeInterrupted) {
88
+ return false;
89
+ }
90
+
91
+ return this.currentState === State.ACTIVE && canBeInterrupted && handler.getTag() > 0;
92
+ }
93
+
94
+ shouldBeCancelledByOther(_handler) {
95
+ return !this.disallowInterruption;
96
+ }
97
+
98
+ disallowsInterruption() {
99
+ return this.disallowInterruption;
100
+ }
101
+
102
+ }
103
+ //# sourceMappingURL=NativeViewGestureHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["State","GestureHandler","NativeViewGestureHandler","init","ref","propsRef","setShouldCancelWhenOutside","view","style","hasAttribute","buttonRole","resetConfig","onPointerDown","event","tracker","addToTracker","currentState","UNDETERMINED","begin","activate","onPointerMove","_event","onPointerOut","cancel","onPointerUp","removeFromTracker","pointerId","getTrackedPointersCount","end","onPointerCancel","reset","shouldRecognizeSimultaneously","handler","getState","ACTIVE","disallowsInterruption","canBeInterrupted","disallowInterruption","getTag","shouldBeCancelledByOther","_handler"],"mappings":";;AAAA,SAASA,KAAT,QAAsB,aAAtB;AAGA,OAAOC,cAAP,MAA2B,kBAA3B;AACA,eAAe,MAAMC,wBAAN,SAAuCD,cAAvC,CAAsD;AAAA;AAAA;;AAAA;;AAAA,kDAGpC,KAHoC;AAAA;;AAK5DE,EAAAA,IAAI,CAACC,GAAD,EAAcC,QAAd,EAAwD;AACjE,UAAMF,IAAN,CAAWC,GAAX,EAAgBC,QAAhB;AAEA,SAAKC,0BAAL,CAAgC,IAAhC;;AAEA,QAAI,CAAC,KAAKC,IAAV,EAAgB;AACd;AACD;;AAED,SAAKA,IAAL,CAAUC,KAAV,CAAgB,aAAhB,IAAiC,MAAjC;AACA,SAAKD,IAAL,CAAUC,KAAV,CAAgB,kBAAhB,IAAsC,MAAtC;AACA,SAAKD,IAAL,CAAUC,KAAV,CAAgB,YAAhB,IAAgC,MAAhC,CAXiE,CAajE;;AACA,SAAKD,IAAL,CAAUC,KAAV,CAAgB,oBAAhB,IAAwC,MAAxC;;AAEA,QAAI,KAAKD,IAAL,CAAUE,YAAV,CAAuB,MAAvB,CAAJ,EAAoC;AAClC,WAAKC,UAAL,GAAkB,IAAlB;AACD,KAFD,MAEO;AACL,WAAKA,UAAL,GAAkB,KAAlB;AACD;AACF;;AAESC,EAAAA,WAAW,GAAS;AAC5B,UAAMA,WAAN;AACD;;AAESC,EAAAA,aAAa,CAACC,KAAD,EAAmC;AACxD,UAAMD,aAAN,CAAoBC,KAApB;AACA,SAAKC,OAAL,CAAaC,YAAb,CAA0BF,KAA1B;;AAEA,QAAI,KAAKG,YAAL,KAAsBhB,KAAK,CAACiB,YAAhC,EAA8C;AAC5C,WAAKC,KAAL,CAAWL,KAAX;;AACA,UAAI,KAAKH,UAAT,EAAqB;AACnB,aAAKS,QAAL,CAAcN,KAAd;AACD;AACF;AACF;;AAESO,EAAAA,aAAa,CAACC,MAAD,EAAoC,CACzD;AACD;;AAESC,EAAAA,YAAY,CAACT,KAAD,EAAmC;AACvD,SAAKU,MAAL,CAAYV,KAAZ;AACD;;AAESW,EAAAA,WAAW,CAACX,KAAD,EAAmC;AACtD,SAAKC,OAAL,CAAaW,iBAAb,CAA+BZ,KAAK,CAACa,SAArC;;AACA,QAAI,CAAC,KAAKhB,UAAV,EAAsB;AACpB,WAAKS,QAAL,CAAcN,KAAd;AACD;;AACD,QAAI,KAAKC,OAAL,CAAaa,uBAAb,OAA2C,CAA/C,EAAkD;AAChD,WAAKC,GAAL,CAASf,KAAT;AACD;AACF;;AAESgB,EAAAA,eAAe,CAAChB,KAAD,EAAmC;AAC1D,SAAKU,MAAL,CAAYV,KAAZ;AACA,SAAKiB,KAAL;AACD;;AAEMC,EAAAA,6BAA6B,CAACC,OAAD,EAAmC;AACrE,QAAI,MAAMD,6BAAN,CAAoCC,OAApC,CAAJ,EAAkD;AAChD,aAAO,IAAP;AACD;;AAED,QACEA,OAAO,YAAY9B,wBAAnB,IACA8B,OAAO,CAACC,QAAR,OAAuBjC,KAAK,CAACkC,MAD7B,IAEAF,OAAO,CAACG,qBAAR,EAHF,EAIE;AACA,aAAO,KAAP;AACD;;AAED,UAAMC,gBAAgB,GAAG,CAAC,KAAKC,oBAA/B;;AAEA,QACE,KAAKrB,YAAL,KAAsBhB,KAAK,CAACkC,MAA5B,IACAF,OAAO,CAACC,QAAR,OAAuBjC,KAAK,CAACkC,MAD7B,IAEAE,gBAHF,EAIE;AACA,aAAO,KAAP;AACD;;AAED,WACE,KAAKpB,YAAL,KAAsBhB,KAAK,CAACkC,MAA5B,IACAE,gBADA,IAEAJ,OAAO,CAACM,MAAR,KAAmB,CAHrB;AAKD;;AAEMC,EAAAA,wBAAwB,CAACC,QAAD,EAAoC;AACjE,WAAO,CAAC,KAAKH,oBAAb;AACD;;AAEMF,EAAAA,qBAAqB,GAAY;AACtC,WAAO,KAAKE,oBAAZ;AACD;;AAvGkE","sourcesContent":["import { State } from '../../State';\nimport { AdaptedPointerEvent } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nexport default class NativeViewGestureHandler extends GestureHandler {\n private buttonRole!: boolean;\n\n private disallowInterruption = false;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(true);\n\n if (!this.view) {\n return;\n }\n\n this.view.style['touchAction'] = 'auto';\n this.view.style['webkitUserSelect'] = 'auto';\n this.view.style['userSelect'] = 'auto';\n\n //@ts-ignore Turns on defualt touch behavior on Safari\n this.view.style['WebkitTouchCallout'] = 'auto';\n\n if (this.view.hasAttribute('role')) {\n this.buttonRole = true;\n } else {\n this.buttonRole = false;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n }\n\n protected onPointerDown(event: AdaptedPointerEvent): void {\n super.onPointerDown(event);\n this.tracker.addToTracker(event);\n\n if (this.currentState === State.UNDETERMINED) {\n this.begin(event);\n if (this.buttonRole) {\n this.activate(event);\n }\n }\n }\n\n protected onPointerMove(_event: AdaptedPointerEvent): void {\n //\n }\n\n protected onPointerOut(event: AdaptedPointerEvent): void {\n this.cancel(event);\n }\n\n protected onPointerUp(event: AdaptedPointerEvent): void {\n this.tracker.removeFromTracker(event.pointerId);\n if (!this.buttonRole) {\n this.activate(event);\n }\n if (this.tracker.getTrackedPointersCount() === 0) {\n this.end(event);\n }\n }\n\n protected onPointerCancel(event: AdaptedPointerEvent): void {\n this.cancel(event);\n this.reset();\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (super.shouldRecognizeSimultaneously(handler)) {\n return true;\n }\n\n if (\n handler instanceof NativeViewGestureHandler &&\n handler.getState() === State.ACTIVE &&\n handler.disallowsInterruption()\n ) {\n return false;\n }\n\n const canBeInterrupted = !this.disallowInterruption;\n\n if (\n this.currentState === State.ACTIVE &&\n handler.getState() === State.ACTIVE &&\n canBeInterrupted\n ) {\n return false;\n }\n\n return (\n this.currentState === State.ACTIVE &&\n canBeInterrupted &&\n handler.getTag() > 0\n );\n }\n\n public shouldBeCancelledByOther(_handler: GestureHandler): boolean {\n return !this.disallowInterruption;\n }\n\n public disallowsInterruption(): boolean {\n return this.disallowInterruption;\n }\n}\n"]}