react-native-gesture-handler 2.26.0 → 2.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +69 -0
  2. package/android/src/main/jni/CMakeLists.txt +7 -26
  3. package/lib/commonjs/components/Pressable/Pressable.js +139 -188
  4. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  5. package/lib/commonjs/components/Pressable/StateMachine.js +38 -0
  6. package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -0
  7. package/lib/commonjs/components/Pressable/stateDefinitions.js +88 -0
  8. package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -0
  9. package/lib/commonjs/components/Pressable/utils.js +1 -1
  10. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  11. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +12 -0
  12. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  13. package/lib/commonjs/handlers/gestures/gestureObjects.js +3 -1
  14. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  15. package/lib/commonjs/web/detectors/RotationGestureDetector.js +3 -0
  16. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  17. package/lib/commonjs/web/handlers/FlingGestureHandler.js +3 -0
  18. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  19. package/lib/commonjs/web/handlers/GestureHandler.js +6 -6
  20. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  21. package/lib/commonjs/web/handlers/PanGestureHandler.js +24 -33
  22. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  23. package/lib/commonjs/web/handlers/TapGestureHandler.js +15 -17
  24. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  25. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +1 -1
  26. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  27. package/lib/commonjs/web/tools/PointerEventManager.js +1 -1
  28. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  29. package/lib/commonjs/web/tools/PointerTracker.js +12 -11
  30. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  31. package/lib/commonjs/web/tools/Vector.js +1 -1
  32. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  33. package/lib/module/components/Pressable/Pressable.js +141 -190
  34. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  35. package/lib/module/components/Pressable/StateMachine.js +34 -0
  36. package/lib/module/components/Pressable/StateMachine.js.map +1 -0
  37. package/lib/module/components/Pressable/stateDefinitions.js +83 -0
  38. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -0
  39. package/lib/module/components/Pressable/utils.js +1 -1
  40. package/lib/module/components/Pressable/utils.js.map +1 -1
  41. package/lib/module/handlers/gestures/forceTouchGesture.js +13 -0
  42. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  43. package/lib/module/handlers/gestures/gestureObjects.js +3 -1
  44. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  45. package/lib/module/web/detectors/RotationGestureDetector.js +3 -0
  46. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  47. package/lib/module/web/handlers/FlingGestureHandler.js +3 -0
  48. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  49. package/lib/module/web/handlers/GestureHandler.js +6 -6
  50. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  51. package/lib/module/web/handlers/PanGestureHandler.js +24 -33
  52. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  53. package/lib/module/web/handlers/TapGestureHandler.js +15 -17
  54. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  55. package/lib/module/web/tools/GestureHandlerOrchestrator.js +1 -1
  56. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  57. package/lib/module/web/tools/PointerEventManager.js +1 -1
  58. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  59. package/lib/module/web/tools/PointerTracker.js +12 -11
  60. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  61. package/lib/module/web/tools/Vector.js +1 -1
  62. package/lib/module/web/tools/Vector.js.map +1 -1
  63. package/lib/typescript/ActionType.d.ts +0 -1
  64. package/lib/typescript/ActionType.js +6 -0
  65. package/lib/typescript/Directions.d.ts +0 -1
  66. package/lib/typescript/Directions.js +18 -0
  67. package/lib/typescript/EnableNewWebImplementation.d.ts +0 -1
  68. package/lib/typescript/EnableNewWebImplementation.js +30 -0
  69. package/lib/typescript/GestureHandlerRootViewContext.d.ts +0 -1
  70. package/lib/typescript/GestureHandlerRootViewContext.js +2 -0
  71. package/lib/typescript/PlatformConstants.d.ts +0 -1
  72. package/lib/typescript/PlatformConstants.js +3 -0
  73. package/lib/typescript/PlatformConstants.web.d.ts +0 -1
  74. package/lib/typescript/PlatformConstants.web.js +5 -0
  75. package/lib/typescript/PointerType.d.ts +0 -1
  76. package/lib/typescript/PointerType.js +8 -0
  77. package/lib/typescript/RNGestureHandlerModule.d.ts +0 -1
  78. package/lib/typescript/RNGestureHandlerModule.js +4 -0
  79. package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -1
  80. package/lib/typescript/RNGestureHandlerModule.web.js +92 -0
  81. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +0 -1
  82. package/lib/typescript/RNGestureHandlerModule.windows.js +47 -0
  83. package/lib/typescript/RNRenderer.d.ts +0 -1
  84. package/lib/typescript/RNRenderer.js +3 -0
  85. package/lib/typescript/RNRenderer.web.d.ts +0 -1
  86. package/lib/typescript/RNRenderer.web.js +3 -0
  87. package/lib/typescript/State.d.ts +0 -1
  88. package/lib/typescript/State.js +9 -0
  89. package/lib/typescript/TouchEventType.d.ts +0 -1
  90. package/lib/typescript/TouchEventType.js +7 -0
  91. package/lib/typescript/components/DrawerLayout.d.ts +0 -1
  92. package/lib/typescript/components/DrawerLayout.js +417 -0
  93. package/lib/typescript/components/GestureButtons.d.ts +0 -1
  94. package/lib/typescript/components/GestureButtons.js +165 -0
  95. package/lib/typescript/components/GestureButtonsProps.d.ts +0 -1
  96. package/lib/typescript/components/GestureButtonsProps.js +1 -0
  97. package/lib/typescript/components/GestureComponents.d.ts +0 -1
  98. package/lib/typescript/components/GestureComponents.js +67 -0
  99. package/lib/typescript/components/GestureComponents.web.d.ts +0 -1
  100. package/lib/typescript/components/GestureComponents.web.js +21 -0
  101. package/lib/typescript/components/GestureHandlerButton.d.ts +0 -1
  102. package/lib/typescript/components/GestureHandlerButton.js +2 -0
  103. package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -1
  104. package/lib/typescript/components/GestureHandlerButton.web.js +3 -0
  105. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +0 -1
  106. package/lib/typescript/components/GestureHandlerRootView.android.js +17 -0
  107. package/lib/typescript/components/GestureHandlerRootView.d.ts +0 -1
  108. package/lib/typescript/components/GestureHandlerRootView.js +16 -0
  109. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +0 -1
  110. package/lib/typescript/components/GestureHandlerRootView.web.js +11 -0
  111. package/lib/typescript/components/Pressable/Pressable.d.ts +1 -3
  112. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  113. package/lib/typescript/components/Pressable/Pressable.js +231 -0
  114. package/lib/typescript/components/Pressable/PressableProps.d.ts +15 -2
  115. package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
  116. package/lib/typescript/components/Pressable/PressableProps.js +1 -0
  117. package/lib/typescript/components/Pressable/StateMachine.d.ts +14 -0
  118. package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -0
  119. package/lib/typescript/components/Pressable/StateMachine.js +34 -0
  120. package/lib/typescript/components/Pressable/index.d.ts +0 -1
  121. package/lib/typescript/components/Pressable/index.js +1 -0
  122. package/lib/typescript/components/Pressable/stateDefinitions.d.ts +9 -0
  123. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -0
  124. package/lib/typescript/components/Pressable/stateDefinitions.js +104 -0
  125. package/lib/typescript/components/Pressable/utils.d.ts +3 -7
  126. package/lib/typescript/components/Pressable/utils.d.ts.map +1 -1
  127. package/lib/typescript/components/Pressable/utils.js +80 -0
  128. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +0 -1
  129. package/lib/typescript/components/ReanimatedDrawerLayout.js +364 -0
  130. package/lib/typescript/components/ReanimatedSwipeable.d.ts +0 -1
  131. package/lib/typescript/components/ReanimatedSwipeable.js +400 -0
  132. package/lib/typescript/components/Swipeable.d.ts +0 -1
  133. package/lib/typescript/components/Swipeable.js +287 -0
  134. package/lib/typescript/components/Text.d.ts +0 -1
  135. package/lib/typescript/components/Text.js +38 -0
  136. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +0 -1
  137. package/lib/typescript/components/gestureHandlerRootHOC.js +18 -0
  138. package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +0 -1
  139. package/lib/typescript/components/touchables/ExtraButtonProps.js +1 -0
  140. package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -1
  141. package/lib/typescript/components/touchables/GenericTouchable.js +221 -0
  142. package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +0 -1
  143. package/lib/typescript/components/touchables/GenericTouchableProps.js +1 -0
  144. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +0 -1
  145. package/lib/typescript/components/touchables/TouchableHighlight.js +75 -0
  146. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +0 -1
  147. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +65 -0
  148. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +0 -1
  149. package/lib/typescript/components/touchables/TouchableNativeFeedback.js +6 -0
  150. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +0 -1
  151. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +1 -0
  152. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +0 -1
  153. package/lib/typescript/components/touchables/TouchableOpacity.js +51 -0
  154. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +0 -1
  155. package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +10 -0
  156. package/lib/typescript/components/touchables/index.d.ts +0 -1
  157. package/lib/typescript/components/touchables/index.js +4 -0
  158. package/lib/typescript/components/utils.d.ts +0 -1
  159. package/lib/typescript/components/utils.js +11 -0
  160. package/lib/typescript/findNodeHandle.d.ts +0 -1
  161. package/lib/typescript/findNodeHandle.js +2 -0
  162. package/lib/typescript/findNodeHandle.web.d.ts +0 -1
  163. package/lib/typescript/findNodeHandle.web.js +31 -0
  164. package/lib/typescript/getShadowNodeFromRef.d.ts +0 -1
  165. package/lib/typescript/getShadowNodeFromRef.js +45 -0
  166. package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
  167. package/lib/typescript/getShadowNodeFromRef.web.js +7 -0
  168. package/lib/typescript/ghQueueMicrotask.d.ts +0 -1
  169. package/lib/typescript/ghQueueMicrotask.js +7 -0
  170. package/lib/typescript/handlers/FlingGestureHandler.d.ts +0 -1
  171. package/lib/typescript/handlers/FlingGestureHandler.js +19 -0
  172. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +0 -1
  173. package/lib/typescript/handlers/ForceTouchGestureHandler.js +37 -0
  174. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +3 -1
  175. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts.map +1 -1
  176. package/lib/typescript/handlers/GestureHandlerEventPayload.js +1 -0
  177. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +0 -1
  178. package/lib/typescript/handlers/LongPressGestureHandler.js +22 -0
  179. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +0 -1
  180. package/lib/typescript/handlers/NativeViewGestureHandler.js +20 -0
  181. package/lib/typescript/handlers/PanGestureHandler.d.ts +0 -1
  182. package/lib/typescript/handlers/PanGestureHandler.js +128 -0
  183. package/lib/typescript/handlers/PinchGestureHandler.d.ts +0 -1
  184. package/lib/typescript/handlers/PinchGestureHandler.js +12 -0
  185. package/lib/typescript/handlers/PressabilityDebugView.d.ts +0 -1
  186. package/lib/typescript/handlers/PressabilityDebugView.js +2 -0
  187. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
  188. package/lib/typescript/handlers/PressabilityDebugView.web.js +4 -0
  189. package/lib/typescript/handlers/RotationGestureHandler.d.ts +0 -1
  190. package/lib/typescript/handlers/RotationGestureHandler.js +12 -0
  191. package/lib/typescript/handlers/TapGestureHandler.d.ts +0 -1
  192. package/lib/typescript/handlers/TapGestureHandler.js +26 -0
  193. package/lib/typescript/handlers/createHandler.d.ts +0 -1
  194. package/lib/typescript/handlers/createHandler.js +375 -0
  195. package/lib/typescript/handlers/createNativeWrapper.d.ts +0 -1
  196. package/lib/typescript/handlers/createNativeWrapper.js +67 -0
  197. package/lib/typescript/handlers/customDirectEventTypes.d.ts +0 -1
  198. package/lib/typescript/handlers/customDirectEventTypes.js +2 -0
  199. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +0 -1
  200. package/lib/typescript/handlers/customDirectEventTypes.web.js +4 -0
  201. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -1
  202. package/lib/typescript/handlers/gestureHandlerCommon.js +42 -0
  203. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +9 -1
  204. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts.map +1 -1
  205. package/lib/typescript/handlers/gestureHandlerTypesCompat.js +1 -0
  206. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +0 -1
  207. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +22 -0
  208. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +0 -1
  209. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +24 -0
  210. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +0 -1
  211. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +55 -0
  212. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +0 -1
  213. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +12 -0
  214. package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +0 -1
  215. package/lib/typescript/handlers/gestures/GestureDetector/index.js +114 -0
  216. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +0 -1
  217. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +18 -0
  218. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +0 -1
  219. package/lib/typescript/handlers/gestures/GestureDetector/types.js +1 -0
  220. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +0 -1
  221. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +54 -0
  222. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +0 -1
  223. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +137 -0
  224. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +0 -1
  225. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +48 -0
  226. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +0 -1
  227. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +35 -0
  228. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +0 -1
  229. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +32 -0
  230. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
  231. package/lib/typescript/handlers/gestures/GestureDetector/utils.js +140 -0
  232. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +0 -1
  233. package/lib/typescript/handlers/gestures/eventReceiver.js +105 -0
  234. package/lib/typescript/handlers/gestures/flingGesture.d.ts +0 -1
  235. package/lib/typescript/handlers/gestures/flingGesture.js +27 -0
  236. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +9 -1
  237. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts.map +1 -1
  238. package/lib/typescript/handlers/gestures/forceTouchGesture.js +57 -0
  239. package/lib/typescript/handlers/gestures/gesture.d.ts +0 -1
  240. package/lib/typescript/handlers/gestures/gesture.js +303 -0
  241. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +0 -1
  242. package/lib/typescript/handlers/gestures/gestureComposition.js +78 -0
  243. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +3 -2
  244. package/lib/typescript/handlers/gestures/gestureObjects.d.ts.map +1 -1
  245. package/lib/typescript/handlers/gestures/gestureObjects.js +125 -0
  246. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +0 -1
  247. package/lib/typescript/handlers/gestures/gestureStateManager.js +60 -0
  248. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +0 -1
  249. package/lib/typescript/handlers/gestures/gestureStateManager.web.js +19 -0
  250. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +0 -1
  251. package/lib/typescript/handlers/gestures/hoverGesture.js +45 -0
  252. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +0 -1
  253. package/lib/typescript/handlers/gestures/longPressGesture.js +35 -0
  254. package/lib/typescript/handlers/gestures/manualGesture.d.ts +0 -1
  255. package/lib/typescript/handlers/gestures/manualGesture.js +16 -0
  256. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +0 -1
  257. package/lib/typescript/handlers/gestures/nativeGesture.js +24 -0
  258. package/lib/typescript/handlers/gestures/panGesture.d.ts +0 -1
  259. package/lib/typescript/handlers/gestures/panGesture.js +181 -0
  260. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +0 -1
  261. package/lib/typescript/handlers/gestures/pinchGesture.js +27 -0
  262. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +0 -1
  263. package/lib/typescript/handlers/gestures/reanimatedWrapper.js +23 -0
  264. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +0 -1
  265. package/lib/typescript/handlers/gestures/rotationGesture.js +27 -0
  266. package/lib/typescript/handlers/gestures/tapGesture.d.ts +0 -1
  267. package/lib/typescript/handlers/gestures/tapGesture.js +72 -0
  268. package/lib/typescript/handlers/getNextHandlerTag.d.ts +0 -1
  269. package/lib/typescript/handlers/getNextHandlerTag.js +4 -0
  270. package/lib/typescript/handlers/handlersRegistry.d.ts +0 -1
  271. package/lib/typescript/handlers/handlersRegistry.js +36 -0
  272. package/lib/typescript/handlers/utils.d.ts +0 -1
  273. package/lib/typescript/handlers/utils.js +58 -0
  274. package/lib/typescript/index.d.ts +0 -1
  275. package/lib/typescript/index.js +28 -0
  276. package/lib/typescript/init.d.ts +0 -1
  277. package/lib/typescript/init.js +15 -0
  278. package/lib/typescript/jestUtils/index.d.ts +0 -1
  279. package/lib/typescript/jestUtils/index.js +1 -0
  280. package/lib/typescript/jestUtils/jestUtils.d.ts +0 -1
  281. package/lib/typescript/jestUtils/jestUtils.js +290 -0
  282. package/lib/typescript/mocks.d.ts +0 -1
  283. package/lib/typescript/mocks.js +59 -0
  284. package/lib/typescript/mountRegistry.d.ts +0 -1
  285. package/lib/typescript/mountRegistry.js +29 -0
  286. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +0 -1
  287. package/lib/typescript/specs/NativeRNGestureHandlerModule.js +2 -0
  288. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +0 -1
  289. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +2 -0
  290. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +0 -1
  291. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +2 -0
  292. package/lib/typescript/typeUtils.d.ts +0 -1
  293. package/lib/typescript/typeUtils.js +1 -0
  294. package/lib/typescript/utils.d.ts +0 -1
  295. package/lib/typescript/utils.js +80 -0
  296. package/lib/typescript/web/Gestures.d.ts +0 -1
  297. package/lib/typescript/web/Gestures.js +38 -0
  298. package/lib/typescript/web/constants.d.ts +0 -1
  299. package/lib/typescript/web/constants.js +2 -0
  300. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +0 -1
  301. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts.map +1 -1
  302. package/lib/typescript/web/detectors/RotationGestureDetector.js +122 -0
  303. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +0 -1
  304. package/lib/typescript/web/detectors/ScaleGestureDetector.js +117 -0
  305. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
  306. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts.map +1 -1
  307. package/lib/typescript/web/handlers/FlingGestureHandler.js +133 -0
  308. package/lib/typescript/web/handlers/GestureHandler.d.ts +0 -1
  309. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  310. package/lib/typescript/web/handlers/GestureHandler.js +656 -0
  311. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +0 -1
  312. package/lib/typescript/web/handlers/HoverGestureHandler.js +37 -0
  313. package/lib/typescript/web/handlers/IGestureHandler.d.ts +0 -1
  314. package/lib/typescript/web/handlers/IGestureHandler.js +1 -0
  315. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -1
  316. package/lib/typescript/web/handlers/LongPressGestureHandler.js +136 -0
  317. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
  318. package/lib/typescript/web/handlers/ManualGestureHandler.js +29 -0
  319. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
  320. package/lib/typescript/web/handlers/NativeViewGestureHandler.js +133 -0
  321. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +2 -1
  322. package/lib/typescript/web/handlers/PanGestureHandler.d.ts.map +1 -1
  323. package/lib/typescript/web/handlers/PanGestureHandler.js +420 -0
  324. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
  325. package/lib/typescript/web/handlers/PinchGestureHandler.js +117 -0
  326. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
  327. package/lib/typescript/web/handlers/RotationGestureHandler.js +122 -0
  328. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -1
  329. package/lib/typescript/web/handlers/TapGestureHandler.d.ts.map +1 -1
  330. package/lib/typescript/web/handlers/TapGestureHandler.js +202 -0
  331. package/lib/typescript/web/interfaces.d.ts +0 -1
  332. package/lib/typescript/web/interfaces.js +25 -0
  333. package/lib/typescript/web/tools/CircularBuffer.d.ts +0 -1
  334. package/lib/typescript/web/tools/CircularBuffer.js +37 -0
  335. package/lib/typescript/web/tools/EventManager.d.ts +0 -1
  336. package/lib/typescript/web/tools/EventManager.js +85 -0
  337. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +0 -1
  338. package/lib/typescript/web/tools/GestureHandlerDelegate.js +1 -0
  339. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +0 -1
  340. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts.map +1 -1
  341. package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +273 -0
  342. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +0 -1
  343. package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +169 -0
  344. package/lib/typescript/web/tools/InteractionManager.d.ts +0 -1
  345. package/lib/typescript/web/tools/InteractionManager.js +91 -0
  346. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +0 -1
  347. package/lib/typescript/web/tools/KeyboardEventManager.js +73 -0
  348. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +0 -1
  349. package/lib/typescript/web/tools/LeastSquareSolver.js +147 -0
  350. package/lib/typescript/web/tools/NodeManager.d.ts +0 -1
  351. package/lib/typescript/web/tools/NodeManager.js +28 -0
  352. package/lib/typescript/web/tools/PointerEventManager.d.ts +0 -1
  353. package/lib/typescript/web/tools/PointerEventManager.js +179 -0
  354. package/lib/typescript/web/tools/PointerTracker.d.ts +3 -4
  355. package/lib/typescript/web/tools/PointerTracker.d.ts.map +1 -1
  356. package/lib/typescript/web/tools/PointerTracker.js +161 -0
  357. package/lib/typescript/web/tools/Vector.d.ts +1 -2
  358. package/lib/typescript/web/tools/Vector.js +43 -0
  359. package/lib/typescript/web/tools/VelocityTracker.d.ts +0 -1
  360. package/lib/typescript/web/tools/VelocityTracker.js +76 -0
  361. package/lib/typescript/web/tools/WheelEventManager.d.ts +0 -1
  362. package/lib/typescript/web/tools/WheelEventManager.js +40 -0
  363. package/lib/typescript/web/utils.d.ts +0 -1
  364. package/lib/typescript/web/utils.js +233 -0
  365. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +0 -1
  366. package/lib/typescript/web_hammer/DiscreteGestureHandler.js +48 -0
  367. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +0 -1
  368. package/lib/typescript/web_hammer/DraggingGestureHandler.js +25 -0
  369. package/lib/typescript/web_hammer/Errors.d.ts +0 -1
  370. package/lib/typescript/web_hammer/Errors.js +5 -0
  371. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +0 -1
  372. package/lib/typescript/web_hammer/FlingGestureHandler.js +119 -0
  373. package/lib/typescript/web_hammer/GestureHandler.d.ts +0 -1
  374. package/lib/typescript/web_hammer/GestureHandler.js +469 -0
  375. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +0 -1
  376. package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +26 -0
  377. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +0 -1
  378. package/lib/typescript/web_hammer/LongPressGestureHandler.js +46 -0
  379. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +0 -1
  380. package/lib/typescript/web_hammer/NativeViewGestureHandler.js +40 -0
  381. package/lib/typescript/web_hammer/NodeManager.d.ts +0 -1
  382. package/lib/typescript/web_hammer/NodeManager.js +28 -0
  383. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +0 -1
  384. package/lib/typescript/web_hammer/PanGestureHandler.js +151 -0
  385. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +0 -1
  386. package/lib/typescript/web_hammer/PinchGestureHandler.js +19 -0
  387. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +0 -1
  388. package/lib/typescript/web_hammer/PressGestureHandler.js +133 -0
  389. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +0 -1
  390. package/lib/typescript/web_hammer/RotationGestureHandler.js +20 -0
  391. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +0 -1
  392. package/lib/typescript/web_hammer/TapGestureHandler.js +142 -0
  393. package/lib/typescript/web_hammer/constants.d.ts +0 -1
  394. package/lib/typescript/web_hammer/constants.js +42 -0
  395. package/lib/typescript/web_hammer/utils.d.ts +0 -1
  396. package/lib/typescript/web_hammer/utils.js +15 -0
  397. package/package.json +4 -2
  398. package/src/components/Pressable/Pressable.tsx +357 -445
  399. package/src/components/Pressable/PressableProps.tsx +15 -0
  400. package/src/components/Pressable/StateMachine.tsx +49 -0
  401. package/src/components/Pressable/stateDefinitions.ts +125 -0
  402. package/src/components/Pressable/utils.ts +11 -7
  403. package/src/handlers/GestureHandlerEventPayload.ts +3 -0
  404. package/src/handlers/gestureHandlerTypesCompat.ts +9 -0
  405. package/src/handlers/gestures/forceTouchGesture.ts +9 -0
  406. package/src/handlers/gestures/gestureObjects.ts +3 -1
  407. package/src/web/detectors/RotationGestureDetector.ts +4 -0
  408. package/src/web/handlers/FlingGestureHandler.ts +4 -0
  409. package/src/web/handlers/GestureHandler.ts +9 -3
  410. package/src/web/handlers/PanGestureHandler.ts +25 -36
  411. package/src/web/handlers/TapGestureHandler.ts +14 -19
  412. package/src/web/tools/GestureHandlerOrchestrator.ts +1 -0
  413. package/src/web/tools/PointerEventManager.ts +1 -1
  414. package/src/web/tools/PointerTracker.ts +17 -15
  415. package/src/web/tools/Vector.ts +1 -1
@@ -0,0 +1,375 @@
1
+ import * as React from 'react';
2
+ import { Platform, UIManager, DeviceEventEmitter, } from 'react-native';
3
+ import { customDirectEventTypes } from './customDirectEventTypes';
4
+ import RNGestureHandlerModule from '../RNGestureHandlerModule';
5
+ import { State } from '../State';
6
+ import { handlerIDToTag, registerOldGestureHandler, unregisterOldGestureHandler, } from './handlersRegistry';
7
+ import { getNextHandlerTag } from './getNextHandlerTag';
8
+ import { filterConfig, scheduleFlushOperations } from './utils';
9
+ import findNodeHandle from '../findNodeHandle';
10
+ import { deepEqual, isFabric, isReact19, isTestEnv, tagMessage, } from '../utils';
11
+ import { ActionType } from '../ActionType';
12
+ import { PressabilityDebugView } from './PressabilityDebugView';
13
+ import GestureHandlerRootViewContext from '../GestureHandlerRootViewContext';
14
+ import { ghQueueMicrotask } from '../ghQueueMicrotask';
15
+ import { MountRegistry } from '../mountRegistry';
16
+ const UIManagerAny = UIManager;
17
+ customDirectEventTypes.topGestureHandlerEvent = {
18
+ registrationName: 'onGestureHandlerEvent',
19
+ };
20
+ const customGHEventsConfigFabricAndroid = {
21
+ topOnGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },
22
+ topOnGestureHandlerStateChange: {
23
+ registrationName: 'onGestureHandlerStateChange',
24
+ },
25
+ };
26
+ const customGHEventsConfig = {
27
+ onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },
28
+ onGestureHandlerStateChange: {
29
+ registrationName: 'onGestureHandlerStateChange',
30
+ },
31
+ // When using React Native Gesture Handler for Animated.event with useNativeDriver: true
32
+ // on Android with Fabric enabled, the native part still sends the native events to JS
33
+ // but prefixed with "top". We cannot simply rename the events above so they are prefixed
34
+ // with "top" instead of "on" because in such case Animated.events would not be registered.
35
+ // That's why we need to register another pair of event names.
36
+ // The incoming events will be queued but never handled.
37
+ // Without this piece of code below, you'll get the following JS error:
38
+ // Unsupported top level event type "topOnGestureHandlerEvent" dispatched
39
+ ...(isFabric() &&
40
+ Platform.OS === 'android' &&
41
+ customGHEventsConfigFabricAndroid),
42
+ };
43
+ // Add gesture specific events to genericDirectEventTypes object exported from UIManager
44
+ // native module.
45
+ // Once new event types are registered with react it is possible to dispatch these
46
+ // events to all kind of native views.
47
+ UIManagerAny.genericDirectEventTypes = {
48
+ ...UIManagerAny.genericDirectEventTypes,
49
+ ...customGHEventsConfig,
50
+ };
51
+ const UIManagerConstants = UIManagerAny.getViewManagerConfig?.('getConstants');
52
+ if (UIManagerConstants) {
53
+ UIManagerConstants.genericDirectEventTypes = {
54
+ ...UIManagerConstants.genericDirectEventTypes,
55
+ ...customGHEventsConfig,
56
+ };
57
+ }
58
+ // Wrap JS responder calls and notify gesture handler manager
59
+ const { setJSResponder: oldSetJSResponder = () => {
60
+ // no-op
61
+ }, clearJSResponder: oldClearJSResponder = () => {
62
+ // no-op
63
+ }, } = UIManagerAny;
64
+ UIManagerAny.setJSResponder = (tag, blockNativeResponder) => {
65
+ RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);
66
+ oldSetJSResponder(tag, blockNativeResponder);
67
+ };
68
+ UIManagerAny.clearJSResponder = () => {
69
+ RNGestureHandlerModule.handleClearJSResponder();
70
+ oldClearJSResponder();
71
+ };
72
+ let allowTouches = true;
73
+ const DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';
74
+ // Toggled inspector blocks touch events in order to allow inspecting on Android
75
+ // This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component
76
+ if (DEV_ON_ANDROID) {
77
+ DeviceEventEmitter.addListener('toggleElementInspector', () => {
78
+ allowTouches = !allowTouches;
79
+ });
80
+ }
81
+ function hasUnresolvedRefs(props) {
82
+ // TODO(TS) - add type for extract arg
83
+ const extract = (refs) => {
84
+ if (!Array.isArray(refs)) {
85
+ return refs && refs.current === null;
86
+ }
87
+ return refs.some((r) => r && r.current === null);
88
+ };
89
+ return extract(props['simultaneousHandlers']) || extract(props['waitFor']);
90
+ }
91
+ const stateToPropMappings = {
92
+ [State.UNDETERMINED]: undefined,
93
+ [State.BEGAN]: 'onBegan',
94
+ [State.FAILED]: 'onFailed',
95
+ [State.CANCELLED]: 'onCancelled',
96
+ [State.ACTIVE]: 'onActivated',
97
+ [State.END]: 'onEnded',
98
+ };
99
+ const UNRESOLVED_REFS_RETRY_LIMIT = 1;
100
+ // TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.
101
+ export default function createHandler({ name, allowedProps = [], config = {}, transformProps, customNativeProps = [], }) {
102
+ class Handler extends React.Component {
103
+ static displayName = name;
104
+ static contextType = GestureHandlerRootViewContext;
105
+ handlerTag = -1;
106
+ config;
107
+ propsRef;
108
+ isMountedRef;
109
+ viewNode;
110
+ viewTag;
111
+ inspectorToggleListener;
112
+ constructor(props) {
113
+ super(props);
114
+ this.config = {};
115
+ this.propsRef = React.createRef();
116
+ this.isMountedRef = React.createRef();
117
+ this.state = { allowTouches };
118
+ if (props.id) {
119
+ if (handlerIDToTag[props.id] !== undefined) {
120
+ throw new Error(`Handler with ID "${props.id}" already registered`);
121
+ }
122
+ handlerIDToTag[props.id] = this.handlerTag;
123
+ }
124
+ }
125
+ componentDidMount() {
126
+ const props = this.props;
127
+ this.isMountedRef.current = true;
128
+ if (DEV_ON_ANDROID) {
129
+ this.inspectorToggleListener = DeviceEventEmitter.addListener('toggleElementInspector', () => {
130
+ this.setState((_) => ({ allowTouches }));
131
+ this.update(UNRESOLVED_REFS_RETRY_LIMIT);
132
+ });
133
+ }
134
+ if (hasUnresolvedRefs(props)) {
135
+ // If there are unresolved refs (e.g. ".current" has not yet been set)
136
+ // passed as `simultaneousHandlers` or `waitFor`, we enqueue a call to
137
+ // _update method that will try to update native handler props using
138
+ // queueMicrotask. This makes it so update() function gets called after all
139
+ // react components are mounted and we expect the missing ref object to
140
+ // be resolved by then.
141
+ ghQueueMicrotask(() => {
142
+ this.update(UNRESOLVED_REFS_RETRY_LIMIT);
143
+ });
144
+ }
145
+ this.createGestureHandler(filterConfig(transformProps ? transformProps(this.props) : this.props, [...allowedProps, ...customNativeProps], config));
146
+ if (!this.viewNode) {
147
+ throw new Error(`[Gesture Handler] Failed to obtain view for ${Handler.displayName}. Note that old API doesn't support functional components.`);
148
+ }
149
+ this.attachGestureHandler(findNodeHandle(this.viewNode)); // TODO(TS) - check if this can be null
150
+ }
151
+ componentDidUpdate() {
152
+ const viewTag = findNodeHandle(this.viewNode);
153
+ if (this.viewTag !== viewTag) {
154
+ this.attachGestureHandler(viewTag); // TODO(TS) - check interaction between _viewTag & findNodeHandle
155
+ }
156
+ this.update(UNRESOLVED_REFS_RETRY_LIMIT);
157
+ }
158
+ componentWillUnmount() {
159
+ this.inspectorToggleListener?.remove();
160
+ this.isMountedRef.current = false;
161
+ if (Platform.OS !== 'web') {
162
+ unregisterOldGestureHandler(this.handlerTag);
163
+ }
164
+ RNGestureHandlerModule.dropGestureHandler(this.handlerTag);
165
+ scheduleFlushOperations();
166
+ // We can't use this.props.id directly due to TS generic type narrowing bug, see https://github.com/microsoft/TypeScript/issues/13995 for more context
167
+ const handlerID = this.props.id;
168
+ if (handlerID) {
169
+ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
170
+ delete handlerIDToTag[handlerID];
171
+ }
172
+ MountRegistry.gestureHandlerWillUnmount(this);
173
+ }
174
+ onGestureHandlerEvent = (event) => {
175
+ if (event.nativeEvent.handlerTag === this.handlerTag) {
176
+ if (typeof this.props.onGestureEvent === 'function') {
177
+ this.props.onGestureEvent?.(event);
178
+ }
179
+ }
180
+ else {
181
+ this.props.onGestureHandlerEvent?.(event);
182
+ }
183
+ };
184
+ // TODO(TS) - make sure this is right type for event
185
+ onGestureHandlerStateChange = (event) => {
186
+ if (event.nativeEvent.handlerTag === this.handlerTag) {
187
+ if (typeof this.props.onHandlerStateChange === 'function') {
188
+ this.props.onHandlerStateChange?.(event);
189
+ }
190
+ const state = event.nativeEvent.state;
191
+ const stateEventName = stateToPropMappings[state];
192
+ const eventHandler = stateEventName && this.props[stateEventName];
193
+ if (eventHandler && typeof eventHandler === 'function') {
194
+ eventHandler(event);
195
+ }
196
+ }
197
+ else {
198
+ this.props.onGestureHandlerStateChange?.(event);
199
+ }
200
+ };
201
+ refHandler = (node) => {
202
+ this.viewNode = node;
203
+ const child = React.Children.only(this.props.children);
204
+ // @ts-ignore Since React 19 ref is accessible as standard prop
205
+ // https://react.dev/blog/2024/04/25/react-19-upgrade-guide#deprecated-element-ref
206
+ const ref = isReact19() ? child.props?.ref : child?.ref;
207
+ if (!ref) {
208
+ return;
209
+ }
210
+ if (typeof ref === 'function') {
211
+ ref(node);
212
+ }
213
+ else {
214
+ ref.current = node;
215
+ }
216
+ };
217
+ createGestureHandler = (newConfig) => {
218
+ this.handlerTag = getNextHandlerTag();
219
+ this.config = newConfig;
220
+ RNGestureHandlerModule.createGestureHandler(name, this.handlerTag, newConfig);
221
+ };
222
+ attachGestureHandler = (newViewTag) => {
223
+ this.viewTag = newViewTag;
224
+ if (Platform.OS === 'web') {
225
+ // Typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch
226
+ RNGestureHandlerModule.attachGestureHandler(this.handlerTag, newViewTag, ActionType.JS_FUNCTION_OLD_API, // ignored on web
227
+ this.propsRef);
228
+ }
229
+ else {
230
+ registerOldGestureHandler(this.handlerTag, {
231
+ onGestureEvent: this.onGestureHandlerEvent,
232
+ onGestureStateChange: this.onGestureHandlerStateChange,
233
+ });
234
+ const actionType = (() => {
235
+ const onGestureEvent = this.props?.onGestureEvent;
236
+ const isGestureHandlerWorklet = onGestureEvent &&
237
+ ('current' in onGestureEvent ||
238
+ 'workletEventHandler' in onGestureEvent);
239
+ const onHandlerStateChange = this.props?.onHandlerStateChange;
240
+ const isStateChangeHandlerWorklet = onHandlerStateChange &&
241
+ ('current' in onHandlerStateChange ||
242
+ 'workletEventHandler' in onHandlerStateChange);
243
+ const isReanimatedHandler = isGestureHandlerWorklet || isStateChangeHandlerWorklet;
244
+ if (isReanimatedHandler) {
245
+ // Reanimated worklet
246
+ return ActionType.REANIMATED_WORKLET;
247
+ }
248
+ else if (onGestureEvent && '__isNative' in onGestureEvent) {
249
+ // Animated.event with useNativeDriver: true
250
+ return ActionType.NATIVE_ANIMATED_EVENT;
251
+ }
252
+ else {
253
+ // JS callback or Animated.event with useNativeDriver: false
254
+ return ActionType.JS_FUNCTION_OLD_API;
255
+ }
256
+ })();
257
+ RNGestureHandlerModule.attachGestureHandler(this.handlerTag, newViewTag, actionType);
258
+ }
259
+ scheduleFlushOperations();
260
+ ghQueueMicrotask(() => {
261
+ MountRegistry.gestureHandlerWillMount(this);
262
+ });
263
+ };
264
+ updateGestureHandler = (newConfig) => {
265
+ this.config = newConfig;
266
+ RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);
267
+ scheduleFlushOperations();
268
+ };
269
+ update(remainingTries) {
270
+ if (!this.isMountedRef.current) {
271
+ return;
272
+ }
273
+ const props = this.props;
274
+ // When ref is set via a function i.e. `ref={(r) => refObject.current = r}` instead of
275
+ // `ref={refObject}` it's possible that it won't be resolved in time. Seems like trying
276
+ // again is easy enough fix.
277
+ if (hasUnresolvedRefs(props) && remainingTries > 0) {
278
+ ghQueueMicrotask(() => {
279
+ this.update(remainingTries - 1);
280
+ });
281
+ }
282
+ else {
283
+ const newConfig = filterConfig(transformProps ? transformProps(this.props) : this.props, [...allowedProps, ...customNativeProps], config);
284
+ if (!deepEqual(this.config, newConfig)) {
285
+ this.updateGestureHandler(newConfig);
286
+ }
287
+ }
288
+ }
289
+ // eslint-disable-next-line @eslint-react/no-unused-class-component-members
290
+ setNativeProps(updates) {
291
+ const mergedProps = { ...this.props, ...updates };
292
+ const newConfig = filterConfig(transformProps ? transformProps(mergedProps) : mergedProps, [...allowedProps, ...customNativeProps], config);
293
+ this.updateGestureHandler(newConfig);
294
+ }
295
+ render() {
296
+ if (__DEV__ && !this.context && !isTestEnv() && Platform.OS !== 'web') {
297
+ throw new Error(name +
298
+ ' must be used as a descendant of GestureHandlerRootView. Otherwise the gestures will not be recognized. See https://docs.swmansion.com/react-native-gesture-handler/docs/installation for more details.');
299
+ }
300
+ let gestureEventHandler = this.onGestureHandlerEvent;
301
+ const { onGestureEvent, onGestureHandlerEvent } = this.props;
302
+ if (onGestureEvent && typeof onGestureEvent !== 'function') {
303
+ // If it's not a method it should be an native Animated.event
304
+ // object. We set it directly as the handler for the view
305
+ // In this case nested handlers are not going to be supported
306
+ if (onGestureHandlerEvent) {
307
+ throw new Error('Nesting touch handlers with native animated driver is not supported yet');
308
+ }
309
+ gestureEventHandler = onGestureEvent;
310
+ }
311
+ else {
312
+ if (onGestureHandlerEvent &&
313
+ typeof onGestureHandlerEvent !== 'function') {
314
+ throw new Error('Nesting touch handlers with native animated driver is not supported yet');
315
+ }
316
+ }
317
+ let gestureStateEventHandler = this.onGestureHandlerStateChange;
318
+ const { onHandlerStateChange, onGestureHandlerStateChange, } = this.props;
319
+ if (onHandlerStateChange && typeof onHandlerStateChange !== 'function') {
320
+ // If it's not a method it should be an native Animated.event
321
+ // object. We set it directly as the handler for the view
322
+ // In this case nested handlers are not going to be supported
323
+ if (onGestureHandlerStateChange) {
324
+ throw new Error('Nesting touch handlers with native animated driver is not supported yet');
325
+ }
326
+ gestureStateEventHandler = onHandlerStateChange;
327
+ }
328
+ else {
329
+ if (onGestureHandlerStateChange &&
330
+ typeof onGestureHandlerStateChange !== 'function') {
331
+ throw new Error('Nesting touch handlers with native animated driver is not supported yet');
332
+ }
333
+ }
334
+ const events = {
335
+ onGestureHandlerEvent: this.state.allowTouches
336
+ ? gestureEventHandler
337
+ : undefined,
338
+ onGestureHandlerStateChange: this.state.allowTouches
339
+ ? gestureStateEventHandler
340
+ : undefined,
341
+ };
342
+ this.propsRef.current = events;
343
+ let child = null;
344
+ try {
345
+ child = React.Children.only(this.props.children);
346
+ }
347
+ catch (e) {
348
+ throw new Error(tagMessage(`${name} got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`));
349
+ }
350
+ let grandChildren = child.props.children;
351
+ if (__DEV__ &&
352
+ child.type &&
353
+ (child.type === 'RNGestureHandlerButton' ||
354
+ child.type.name === 'View' ||
355
+ child.type.displayName === 'View')) {
356
+ grandChildren = React.Children.toArray(grandChildren);
357
+ grandChildren.push(<PressabilityDebugView key="pressabilityDebugView" color="mediumspringgreen" hitSlop={child.props.hitSlop}/>);
358
+ }
359
+ return React.cloneElement(child, {
360
+ ref: this.refHandler,
361
+ collapsable: false,
362
+ ...(isTestEnv()
363
+ ? {
364
+ handlerType: name,
365
+ handlerTag: this.handlerTag,
366
+ enabled: this.props.enabled,
367
+ }
368
+ : {}),
369
+ testID: this.props.testID ?? child.props.testID,
370
+ ...events,
371
+ }, grandChildren);
372
+ }
373
+ }
374
+ return Handler;
375
+ }
@@ -1,4 +1,3 @@
1
1
  import * as React from 'react';
2
2
  import { NativeViewGestureHandlerProps } from './NativeViewGestureHandler';
3
3
  export default function createNativeWrapper<P>(Component: React.ComponentType<P>, config?: Readonly<NativeViewGestureHandlerProps>): React.ForwardRefExoticComponent<React.PropsWithoutRef<P & NativeViewGestureHandlerProps> & React.RefAttributes<React.ComponentType<any>>>;
4
- //# sourceMappingURL=createNativeWrapper.d.ts.map
@@ -0,0 +1,67 @@
1
+ import * as React from 'react';
2
+ import { useImperativeHandle, useRef } from 'react';
3
+ import { NativeViewGestureHandler, nativeViewProps, } from './NativeViewGestureHandler';
4
+ /*
5
+ * This array should consist of:
6
+ * - All keys in propTypes from NativeGestureHandler
7
+ * (and all keys in GestureHandlerPropTypes)
8
+ * - 'onGestureHandlerEvent'
9
+ * - 'onGestureHandlerStateChange'
10
+ */
11
+ const NATIVE_WRAPPER_PROPS_FILTER = [
12
+ ...nativeViewProps,
13
+ 'onGestureHandlerEvent',
14
+ 'onGestureHandlerStateChange',
15
+ ];
16
+ export default function createNativeWrapper(Component, config = {}) {
17
+ const ComponentWrapper = React.forwardRef((props, ref) => {
18
+ // Filter out props that should be passed to gesture handler wrapper
19
+ const { gestureHandlerProps, childProps } = Object.keys(props).reduce((res, key) => {
20
+ // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info
21
+ const allowedKeys = NATIVE_WRAPPER_PROPS_FILTER;
22
+ if (allowedKeys.includes(key)) {
23
+ // @ts-ignore FIXME(TS)
24
+ res.gestureHandlerProps[key] = props[key];
25
+ }
26
+ else {
27
+ // @ts-ignore FIXME(TS)
28
+ res.childProps[key] = props[key];
29
+ }
30
+ return res;
31
+ }, {
32
+ gestureHandlerProps: { ...config }, // Watch out not to modify config
33
+ childProps: {
34
+ enabled: props.enabled,
35
+ hitSlop: props.hitSlop,
36
+ testID: props.testID,
37
+ },
38
+ });
39
+ const _ref = useRef(null);
40
+ const _gestureHandlerRef = useRef(null);
41
+ useImperativeHandle(ref,
42
+ // @ts-ignore TODO(TS) decide how nulls work in this context
43
+ () => {
44
+ const node = _gestureHandlerRef.current;
45
+ // Add handlerTag for relations config
46
+ if (_ref.current && node) {
47
+ // @ts-ignore FIXME(TS) think about createHandler return type
48
+ _ref.current.handlerTag = node.handlerTag;
49
+ return _ref.current;
50
+ }
51
+ return null;
52
+ }, [_ref, _gestureHandlerRef]);
53
+ return (<NativeViewGestureHandler {...gestureHandlerProps}
54
+ // @ts-ignore TODO(TS)
55
+ ref={_gestureHandlerRef}>
56
+ <Component {...childProps} ref={_ref}/>
57
+ </NativeViewGestureHandler>);
58
+ });
59
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
60
+ ComponentWrapper.displayName =
61
+ Component?.displayName ||
62
+ // @ts-ignore if render doesn't exist it will return undefined and go further
63
+ Component?.render?.name ||
64
+ (typeof Component === 'string' && Component) ||
65
+ 'ComponentWrapper';
66
+ return ComponentWrapper;
67
+ }
@@ -1,2 +1 @@
1
1
  export { customDirectEventTypes } from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry';
2
- //# sourceMappingURL=customDirectEventTypes.d.ts.map
@@ -0,0 +1,2 @@
1
+ // @ts-ignore - its taken straight from RN
2
+ export { customDirectEventTypes } from 'react-native/Libraries/Renderer/shims/ReactNativeViewConfigRegistry';
@@ -1,3 +1,2 @@
1
1
  declare const customDirectEventTypes: {};
2
2
  export { customDirectEventTypes };
3
- //# sourceMappingURL=customDirectEventTypes.web.d.ts.map
@@ -0,0 +1,4 @@
1
+ // customDirectEventTypes doesn't exist in react-native-web, therefore importing it
2
+ // directly in createHandler.tsx would end in crash.
3
+ const customDirectEventTypes = {};
4
+ export { customDirectEventTypes };
@@ -76,4 +76,3 @@ export type BaseGestureHandlerProps<ExtraEventPayloadT extends Record<string, un
76
76
  onHandlerStateChange?: (event: HandlerStateChangeEvent<ExtraEventPayloadT>) => void;
77
77
  children?: React.ReactNode;
78
78
  };
79
- //# sourceMappingURL=gestureHandlerCommon.d.ts.map
@@ -0,0 +1,42 @@
1
+ const commonProps = [
2
+ 'id',
3
+ 'enabled',
4
+ 'shouldCancelWhenOutside',
5
+ 'hitSlop',
6
+ 'cancelsTouchesInView',
7
+ 'userSelect',
8
+ 'activeCursor',
9
+ 'mouseButton',
10
+ 'enableContextMenu',
11
+ 'touchAction',
12
+ ];
13
+ const componentInteractionProps = [
14
+ 'waitFor',
15
+ 'simultaneousHandlers',
16
+ 'blocksHandlers',
17
+ ];
18
+ export const baseGestureHandlerProps = [
19
+ ...commonProps,
20
+ ...componentInteractionProps,
21
+ 'onBegan',
22
+ 'onFailed',
23
+ 'onCancelled',
24
+ 'onActivated',
25
+ 'onEnded',
26
+ 'onGestureEvent',
27
+ 'onHandlerStateChange',
28
+ ];
29
+ export const baseGestureHandlerWithDetectorProps = [
30
+ ...commonProps,
31
+ 'needsPointerData',
32
+ 'manualActivation',
33
+ ];
34
+ export var MouseButton;
35
+ (function (MouseButton) {
36
+ MouseButton[MouseButton["LEFT"] = 1] = "LEFT";
37
+ MouseButton[MouseButton["RIGHT"] = 2] = "RIGHT";
38
+ MouseButton[MouseButton["MIDDLE"] = 4] = "MIDDLE";
39
+ MouseButton[MouseButton["BUTTON_4"] = 8] = "BUTTON_4";
40
+ MouseButton[MouseButton["BUTTON_5"] = 16] = "BUTTON_5";
41
+ MouseButton[MouseButton["ALL"] = 31] = "ALL";
42
+ })(MouseButton || (MouseButton = {}));
@@ -17,7 +17,13 @@ export type NativeViewGestureHandlerGestureEvent = GestureEvent<NativeViewGestur
17
17
  export type NativeViewGestureHandlerStateChangeEvent = HandlerStateChangeEvent<NativeViewGestureHandlerPayload>;
18
18
  export type TapGestureHandlerGestureEvent = GestureEvent<TapGestureHandlerEventPayload>;
19
19
  export type TapGestureHandlerStateChangeEvent = HandlerStateChangeEvent<TapGestureHandlerEventPayload>;
20
+ /**
21
+ * @deprecated ForceTouchGestureHandler is deprecated and will be removed in the future.
22
+ */
20
23
  export type ForceTouchGestureHandlerGestureEvent = GestureEvent<ForceTouchGestureHandlerEventPayload>;
24
+ /**
25
+ * @deprecated ForceTouchGestureHandler is deprecated and will be removed in the future.
26
+ */
21
27
  export type ForceTouchGestureHandlerStateChangeEvent = HandlerStateChangeEvent<ForceTouchGestureHandlerEventPayload>;
22
28
  export type LongPressGestureHandlerGestureEvent = GestureEvent<LongPressGestureHandlerEventPayload>;
23
29
  export type LongPressGestureHandlerStateChangeEvent = HandlerStateChangeEvent<LongPressGestureHandlerEventPayload>;
@@ -36,9 +42,11 @@ export type PanGestureHandlerProperties = PanGestureHandlerProps;
36
42
  export type PinchGestureHandlerProperties = PinchGestureHandlerProps;
37
43
  export type RotationGestureHandlerProperties = RotationGestureHandlerProps;
38
44
  export type FlingGestureHandlerProperties = FlingGestureHandlerProps;
45
+ /**
46
+ * @deprecated ForceTouch gesture is deprecated and will be removed in the future.
47
+ */
39
48
  export type ForceTouchGestureHandlerProperties = ForceTouchGestureHandlerProps;
40
49
  export type RawButtonProperties = RawButtonProps;
41
50
  export type BaseButtonProperties = BaseButtonProps;
42
51
  export type RectButtonProperties = RectButtonProps;
43
52
  export type BorderlessButtonProperties = BorderlessButtonProps;
44
- //# sourceMappingURL=gestureHandlerTypesCompat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gestureHandlerTypesCompat.d.ts","sourceRoot":"","sources":["../../../src/handlers/gestureHandlerTypesCompat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gestureHandlerTypesCompat.d.ts","sourceRoot":"","sources":["../../../src/handlers/gestureHandlerTypesCompat.ts"],"names":[],"mappings":"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"}
@@ -11,4 +11,3 @@ export declare const AnimatedWrap: typeof Wrap | React.ComponentClass<{
11
11
  onGestureHandlerEvent?: unknown;
12
12
  children?: React.ReactNode;
13
13
  }, any>;
14
- //# sourceMappingURL=Wrap.d.ts.map
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import { Reanimated } from '../reanimatedWrapper';
3
+ import { tagMessage } from '../../../utils';
4
+ export class Wrap extends React.Component {
5
+ render() {
6
+ try {
7
+ // I don't think that fighting with types over such a simple function is worth it
8
+ // The only thing it does is add 'collapsable: false' to the child component
9
+ // to make sure it is in the native view hierarchy so the detector can find
10
+ // correct viewTag to attach to.
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ const child = React.Children.only(this.props.children);
13
+ return React.cloneElement(child, { collapsable: false },
14
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
15
+ child.props.children);
16
+ }
17
+ catch (e) {
18
+ throw new Error(tagMessage(`GestureDetector got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`));
19
+ }
20
+ }
21
+ }
22
+ export const AnimatedWrap = Reanimated?.default?.createAnimatedComponent(Wrap) ?? Wrap;
@@ -5,4 +5,3 @@ export declare const Wrap: React.ForwardRefExoticComponent<{
5
5
  export declare const AnimatedWrap: React.ForwardRefExoticComponent<{
6
6
  children?: React.ReactNode | undefined;
7
7
  } & React.RefAttributes<HTMLDivElement>>;
8
- //# sourceMappingURL=Wrap.web.d.ts.map
@@ -0,0 +1,24 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { tagMessage } from '../../../utils';
3
+ import { isRNSVGNode } from '../../../web/utils';
4
+ export const Wrap = forwardRef(({ children }, ref) => {
5
+ try {
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ const child = React.Children.only(children);
8
+ if (isRNSVGNode(child)) {
9
+ const clone = React.cloneElement(child, { ref },
10
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
11
+ child.props.children);
12
+ return clone;
13
+ }
14
+ return (<div ref={ref} style={{ display: 'contents' }}>
15
+ {child}
16
+ </div>);
17
+ }
18
+ catch (e) {
19
+ throw new Error(tagMessage(`GestureDetector got more than one view as a child. If you want the gesture to work on multiple views, wrap them with a common parent and attach the gesture to that view.`));
20
+ }
21
+ });
22
+ // On web we never take a path with Reanimated,
23
+ // therefore we can simply export Wrap
24
+ export const AnimatedWrap = Wrap;
@@ -11,4 +11,3 @@ interface AttachHandlersConfig {
11
11
  }
12
12
  export declare function attachHandlers({ preparedGesture, gestureConfig, gesturesToAttach, viewTag, webEventHandlersRef, }: AttachHandlersConfig): void;
13
13
  export {};
14
- //# sourceMappingURL=attachHandlers.d.ts.map