@react-native-oh-tpl/react-native-gesture-handler 2.12.1-0.0.1 → 2.12.6-2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (921) hide show
  1. package/README.md +1 -62
  2. package/{LICENSE → harmony/gesture_handler/LICENSE} +21 -21
  3. package/harmony/gesture_handler/OAT.xml +44 -0
  4. package/harmony/gesture_handler/README.OpenSource +11 -0
  5. package/harmony/gesture_handler/README.md +1 -0
  6. package/harmony/gesture_handler/build-profile.json5 +8 -0
  7. package/harmony/gesture_handler/hvigorfile.ts +2 -0
  8. package/harmony/gesture_handler/index.ets +3 -0
  9. package/harmony/gesture_handler/oh-package.json5 +13 -0
  10. package/harmony/gesture_handler/src/main/cpp/CMakeLists.txt +8 -0
  11. package/harmony/gesture_handler/src/main/cpp/GestureHandlerPackage.cpp +34 -0
  12. package/harmony/gesture_handler/src/main/cpp/GestureHandlerPackage.h +15 -0
  13. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerButtonComponentDescriptor.h +60 -0
  14. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerModule.cpp +17 -0
  15. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerModule.h +12 -0
  16. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerRootViewComponentDescriptor.h +60 -0
  17. package/{src/web/tools → harmony/gesture_handler/src/main/ets}/CircularBuffer.ts +42 -42
  18. package/harmony/gesture_handler/src/main/ets/Event.ts +68 -0
  19. package/harmony/gesture_handler/src/main/ets/EventDispatcher.ts +38 -0
  20. package/harmony/gesture_handler/src/main/ets/GestureHandler.ts +663 -0
  21. package/harmony/gesture_handler/src/main/ets/GestureHandlerArkUIAdapter.ets +202 -0
  22. package/harmony/gesture_handler/src/main/ets/GestureHandlerFactory.ts +45 -0
  23. package/harmony/gesture_handler/src/main/ets/GestureHandlerOrchestrator.ts +280 -0
  24. package/harmony/gesture_handler/src/main/ets/GestureHandlerPackage.ts +22 -0
  25. package/harmony/gesture_handler/src/main/ets/GestureHandlerRegistry.ts +28 -0
  26. package/{src/web/tools → harmony/gesture_handler/src/main/ets}/InteractionManager.ts +109 -130
  27. package/{src/web/tools → harmony/gesture_handler/src/main/ets}/LeastSquareSolver.ts +182 -182
  28. package/harmony/gesture_handler/src/main/ets/NativeViewGestureHandler.ts +115 -0
  29. package/harmony/gesture_handler/src/main/ets/OutgoingEvent.ts +34 -0
  30. package/harmony/gesture_handler/src/main/ets/PanGestureHandler.ts +328 -0
  31. package/{src/web/tools → harmony/gesture_handler/src/main/ets}/PointerTracker.ts +239 -240
  32. package/harmony/gesture_handler/src/main/ets/RNGHError.ts +5 -0
  33. package/harmony/gesture_handler/src/main/ets/RNGHLogger.ts +29 -0
  34. package/harmony/gesture_handler/src/main/ets/RNGHRootTouchHandler.ets +58 -0
  35. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerButton.ets +37 -0
  36. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerModule.ts +125 -0
  37. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerRootView.ets +57 -0
  38. package/harmony/gesture_handler/src/main/ets/RNOHScrollLocker.ts +11 -0
  39. package/harmony/gesture_handler/src/main/ets/State.ts +47 -0
  40. package/harmony/gesture_handler/src/main/ets/TapGestureHandler.ts +206 -0
  41. package/harmony/gesture_handler/src/main/ets/Vector2D.ts +36 -0
  42. package/{src/web/tools → harmony/gesture_handler/src/main/ets}/VelocityTracker.ts +98 -98
  43. package/harmony/gesture_handler/src/main/ets/View.ts +71 -0
  44. package/harmony/gesture_handler/src/main/ets/ViewRegistry.ts +43 -0
  45. package/harmony/gesture_handler/src/main/ets/pages/Index.ets +17 -0
  46. package/harmony/gesture_handler/src/main/ets/webviewability/WebviewAbility.ts +41 -0
  47. package/harmony/gesture_handler/src/main/module.json5 +7 -0
  48. package/harmony/gesture_handler/src/main/resources/base/element/color.json +8 -0
  49. package/harmony/gesture_handler/src/main/resources/base/element/string.json +16 -0
  50. package/harmony/gesture_handler/src/main/resources/base/media/icon.png +0 -0
  51. package/harmony/gesture_handler/src/main/resources/base/profile/main_pages.json +5 -0
  52. package/harmony/gesture_handler/src/main/resources/en_US/element/string.json +16 -0
  53. package/harmony/gesture_handler/src/main/resources/zh_CN/element/string.json +16 -0
  54. package/harmony/gesture_handler/ts.ts +1 -0
  55. package/harmony/gesture_handler.har +0 -0
  56. package/lib/commonjs/RNGestureHandlerModule.js +2 -22
  57. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  58. package/lib/commonjs/components/GestureButtons.js +88 -142
  59. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  60. package/lib/commonjs/components/GestureHandlerButton.js +2 -7
  61. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  62. package/lib/commonjs/components/GestureHandlerRootView.js +13 -13
  63. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  64. package/lib/commonjs/components/RNGestureHandlerButton.js +23 -0
  65. package/lib/commonjs/components/RNGestureHandlerButton.js.map +1 -0
  66. package/lib/commonjs/components/touchables/GenericTouchable.js +103 -145
  67. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  68. package/lib/commonjs/components/touchables/TouchableOpacity.js +34 -53
  69. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  70. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +4 -12
  71. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  72. package/lib/commonjs/components/touchables/index.js +2 -21
  73. package/lib/commonjs/components/touchables/index.js.map +1 -1
  74. package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -14
  75. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  76. package/lib/commonjs/handlers/PanGestureHandler.js +12 -32
  77. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  78. package/lib/commonjs/handlers/TapGestureHandler.js +6 -11
  79. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  80. package/lib/commonjs/handlers/createHandler.js +141 -223
  81. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  82. package/lib/commonjs/handlers/createNativeWrapper.js +22 -32
  83. package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
  84. package/lib/commonjs/handlers/gestureHandlerCommon.js +6 -87
  85. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  86. package/lib/commonjs/handlers/gestures/GestureDetector.js +111 -226
  87. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  88. package/lib/commonjs/index.js +168 -211
  89. package/lib/commonjs/index.js.map +1 -1
  90. package/lib/commonjs/init.js +7 -15
  91. package/lib/commonjs/init.js.map +1 -1
  92. package/lib/module/RNGestureHandlerModule.js +2 -18
  93. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  94. package/lib/module/components/GestureButtons.js +83 -121
  95. package/lib/module/components/GestureButtons.js.map +1 -1
  96. package/lib/module/components/GestureHandlerButton.js +2 -2
  97. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  98. package/lib/module/components/GestureHandlerRootView.js +11 -3
  99. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  100. package/lib/module/components/RNGestureHandlerButton.js +17 -0
  101. package/lib/module/components/RNGestureHandlerButton.js.map +1 -0
  102. package/lib/module/components/touchables/GenericTouchable.js +98 -133
  103. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  104. package/lib/module/components/touchables/TouchableOpacity.js +29 -43
  105. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  106. package/lib/module/components/touchables/TouchableWithoutFeedback.js +1 -2
  107. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  108. package/lib/module/components/touchables/index.js +5 -2
  109. package/lib/module/components/touchables/index.js.map +1 -1
  110. package/lib/module/handlers/NativeViewGestureHandler.js +1 -1
  111. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  112. package/lib/module/handlers/PanGestureHandler.js +6 -21
  113. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  114. package/lib/module/handlers/TapGestureHandler.js +2 -1
  115. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  116. package/lib/module/handlers/createHandler.js +140 -196
  117. package/lib/module/handlers/createHandler.js.map +1 -1
  118. package/lib/module/handlers/createNativeWrapper.js +17 -22
  119. package/lib/module/handlers/createNativeWrapper.js.map +1 -1
  120. package/lib/module/handlers/gestureHandlerCommon.js +5 -71
  121. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  122. package/lib/module/handlers/gestures/GestureDetector.js +99 -175
  123. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  124. package/lib/module/index.js +160 -18
  125. package/lib/module/index.js.map +1 -1
  126. package/lib/module/init.js +6 -5
  127. package/lib/module/init.js.map +1 -1
  128. package/lib/typescript/RNGestureHandlerModule.d.ts +7 -13
  129. package/lib/typescript/RNGestureHandlerModule.d.ts.map +1 -0
  130. package/lib/typescript/components/GestureButtons.d.ts +122 -121
  131. package/lib/typescript/components/GestureButtons.d.ts.map +1 -0
  132. package/lib/typescript/components/GestureHandlerButton.d.ts +5 -4
  133. package/lib/typescript/components/GestureHandlerButton.d.ts.map +1 -0
  134. package/lib/typescript/components/GestureHandlerRootView.d.ts +7 -6
  135. package/lib/typescript/components/GestureHandlerRootView.d.ts.map +1 -0
  136. package/lib/typescript/components/RNGestureHandlerButton.d.ts +2 -0
  137. package/lib/typescript/components/RNGestureHandlerButton.d.ts.map +1 -0
  138. package/lib/typescript/components/touchables/GenericTouchable.d.ts +68 -68
  139. package/lib/typescript/components/touchables/GenericTouchable.d.ts.map +1 -0
  140. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +26 -25
  141. package/lib/typescript/components/touchables/TouchableOpacity.d.ts.map +1 -0
  142. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +8 -7
  143. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts.map +1 -0
  144. package/lib/typescript/components/touchables/index.d.ts +4 -7
  145. package/lib/typescript/components/touchables/index.d.ts.map +1 -0
  146. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +29 -28
  147. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts.map +1 -0
  148. package/lib/typescript/handlers/PanGestureHandler.d.ts +140 -139
  149. package/lib/typescript/handlers/PanGestureHandler.d.ts.map +1 -0
  150. package/lib/typescript/handlers/TapGestureHandler.d.ts +58 -57
  151. package/lib/typescript/handlers/TapGestureHandler.d.ts.map +1 -0
  152. package/lib/typescript/handlers/createHandler.d.ts +12 -11
  153. package/lib/typescript/handlers/createHandler.d.ts.map +1 -0
  154. package/lib/typescript/handlers/createNativeWrapper.d.ts +4 -3
  155. package/lib/typescript/handlers/createNativeWrapper.d.ts.map +1 -0
  156. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +2 -68
  157. package/lib/typescript/handlers/gestureHandlerCommon.d.ts.map +1 -0
  158. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +24 -19
  159. package/lib/typescript/handlers/gestures/GestureDetector.d.ts.map +1 -0
  160. package/lib/typescript/index.d.ts +9 -52
  161. package/lib/typescript/index.d.ts.map +1 -0
  162. package/lib/typescript/init.d.ts +3 -2
  163. package/lib/typescript/init.d.ts.map +1 -0
  164. package/package.json +70 -156
  165. package/src/RNGestureHandlerModule.ts +6 -50
  166. package/src/components/GestureButtons.tsx +334 -332
  167. package/src/components/GestureHandlerButton.tsx +5 -5
  168. package/src/components/GestureHandlerRootView.tsx +34 -23
  169. package/src/components/RNGestureHandlerButton.tsx +23 -0
  170. package/src/components/touchables/GenericTouchable.tsx +301 -301
  171. package/src/components/touchables/TouchableOpacity.tsx +76 -75
  172. package/src/components/touchables/TouchableWithoutFeedback.tsx +14 -14
  173. package/src/components/touchables/index.ts +7 -7
  174. package/src/handlers/NativeViewGestureHandler.ts +55 -55
  175. package/src/handlers/PanGestureHandler.ts +327 -325
  176. package/src/handlers/TapGestureHandler.ts +95 -94
  177. package/src/handlers/createHandler.tsx +535 -533
  178. package/src/handlers/createNativeWrapper.tsx +81 -80
  179. package/src/handlers/gestureHandlerCommon.ts +15 -250
  180. package/src/handlers/gestures/GestureDetector.tsx +823 -822
  181. package/src/index.ts +172 -174
  182. package/src/init.ts +18 -18
  183. package/DrawerLayout/package.json +0 -6
  184. package/RNGestureHandler.podspec +0 -44
  185. package/Swipeable/package.json +0 -6
  186. package/android/build.gradle +0 -209
  187. package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +0 -5
  188. package/android/fabric/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +0 -29
  189. package/android/fabric/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +0 -12
  190. package/android/gradle.properties +0 -19
  191. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +0 -10
  192. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +0 -50
  193. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +0 -23
  194. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +0 -25
  195. package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +0 -16
  196. package/android/paper/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +0 -13
  197. package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +0 -17
  198. package/android/src/main/AndroidManifest.xml +0 -3
  199. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +0 -21
  200. package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +0 -100
  201. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +0 -807
  202. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerInteractionController.kt +0 -8
  203. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +0 -671
  204. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerRegistry.kt +0 -8
  205. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +0 -47
  206. package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +0 -120
  207. package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +0 -100
  208. package/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt +0 -11
  209. package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +0 -257
  210. package/android/src/main/java/com/swmansion/gesturehandler/core/OnTouchEventListener.kt +0 -9
  211. package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +0 -322
  212. package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +0 -103
  213. package/android/src/main/java/com/swmansion/gesturehandler/core/PointerEventsConfig.kt +0 -23
  214. package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt +0 -125
  215. package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt +0 -93
  216. package/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java +0 -558
  217. package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +0 -168
  218. package/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt +0 -10
  219. package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +0 -16
  220. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +0 -423
  221. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +0 -15
  222. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +0 -75
  223. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +0 -74
  224. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +0 -702
  225. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +0 -100
  226. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +0 -142
  227. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +0 -5
  228. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -78
  229. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +0 -51
  230. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +0 -78
  231. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +0 -69
  232. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +0 -51
  233. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/FlingGestureHandlerEventDataBuilder.kt +0 -30
  234. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/GestureHandlerEventDataBuilder.kt +0 -22
  235. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/HoverGestureHandlerEventDataBuilder.kt +0 -30
  236. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/LongPressGestureHandlerEventDataBuilder.kt +0 -33
  237. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/ManualGestureHandlerEventDataBuilder.kt +0 -5
  238. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/NativeGestureHandlerEventDataBuilder.kt +0 -18
  239. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/PanGestureHandlerEventDataBuilder.kt +0 -42
  240. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/PinchGestureHandlerEventDataBuilder.kt +0 -30
  241. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/RotationGestureHandlerEventDataBuilder.kt +0 -30
  242. package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/TapGestureHandlerEventDataBuilder.kt +0 -30
  243. package/android/src/main/jni/CMakeLists.txt +0 -37
  244. package/android/src/main/jni/cpp-adapter.cpp +0 -44
  245. package/ios/Handlers/RNFlingHandler.h +0 -4
  246. package/ios/Handlers/RNFlingHandler.m +0 -152
  247. package/ios/Handlers/RNForceTouchHandler.h +0 -4
  248. package/ios/Handlers/RNForceTouchHandler.m +0 -175
  249. package/ios/Handlers/RNHoverHandler.h +0 -12
  250. package/ios/Handlers/RNHoverHandler.m +0 -153
  251. package/ios/Handlers/RNLongPressHandler.h +0 -12
  252. package/ios/Handlers/RNLongPressHandler.m +0 -183
  253. package/ios/Handlers/RNManualHandler.h +0 -4
  254. package/ios/Handlers/RNManualHandler.m +0 -88
  255. package/ios/Handlers/RNNativeViewHandler.h +0 -15
  256. package/ios/Handlers/RNNativeViewHandler.mm +0 -193
  257. package/ios/Handlers/RNPanHandler.h +0 -12
  258. package/ios/Handlers/RNPanHandler.m +0 -331
  259. package/ios/Handlers/RNPinchHandler.h +0 -12
  260. package/ios/Handlers/RNPinchHandler.m +0 -95
  261. package/ios/Handlers/RNRotationHandler.h +0 -12
  262. package/ios/Handlers/RNRotationHandler.m +0 -93
  263. package/ios/Handlers/RNTapHandler.h +0 -12
  264. package/ios/Handlers/RNTapHandler.m +0 -265
  265. package/ios/RNGHTouchEventType.h +0 -9
  266. package/ios/RNGestureHandler.h +0 -90
  267. package/ios/RNGestureHandler.m +0 -493
  268. package/ios/RNGestureHandler.xcodeproj/project.pbxproj +0 -690
  269. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  270. package/ios/RNGestureHandlerActionType.h +0 -10
  271. package/ios/RNGestureHandlerButton.h +0 -19
  272. package/ios/RNGestureHandlerButton.m +0 -77
  273. package/ios/RNGestureHandlerButtonComponentView.h +0 -17
  274. package/ios/RNGestureHandlerButtonComponentView.mm +0 -64
  275. package/ios/RNGestureHandlerButtonManager.h +0 -5
  276. package/ios/RNGestureHandlerButtonManager.m +0 -34
  277. package/ios/RNGestureHandlerDirection.h +0 -8
  278. package/ios/RNGestureHandlerEvents.h +0 -65
  279. package/ios/RNGestureHandlerEvents.m +0 -260
  280. package/ios/RNGestureHandlerManager.h +0 -35
  281. package/ios/RNGestureHandlerManager.mm +0 -367
  282. package/ios/RNGestureHandlerModule.h +0 -7
  283. package/ios/RNGestureHandlerModule.mm +0 -320
  284. package/ios/RNGestureHandlerPointerTracker.h +0 -25
  285. package/ios/RNGestureHandlerPointerTracker.m +0 -243
  286. package/ios/RNGestureHandlerRegistry.h +0 -21
  287. package/ios/RNGestureHandlerRegistry.m +0 -63
  288. package/ios/RNGestureHandlerRootViewComponentView.mm +0 -21
  289. package/ios/RNGestureHandlerState.h +0 -10
  290. package/ios/RNGestureHandlerStateManager.h +0 -5
  291. package/ios/RNManualActivationRecognizer.h +0 -10
  292. package/ios/RNManualActivationRecognizer.m +0 -88
  293. package/ios/RNRootViewGestureRecognizer.h +0 -17
  294. package/ios/RNRootViewGestureRecognizer.m +0 -106
  295. package/jest-utils/package.json +0 -6
  296. package/jestSetup.js +0 -7
  297. package/lib/commonjs/ActionType.js +0 -15
  298. package/lib/commonjs/ActionType.js.map +0 -1
  299. package/lib/commonjs/Directions.js +0 -15
  300. package/lib/commonjs/Directions.js.map +0 -1
  301. package/lib/commonjs/EnableNewWebImplementation.js +0 -35
  302. package/lib/commonjs/EnableNewWebImplementation.js.map +0 -1
  303. package/lib/commonjs/GestureHandlerRootViewContext.js +0 -15
  304. package/lib/commonjs/GestureHandlerRootViewContext.js.map +0 -1
  305. package/lib/commonjs/PlatformConstants.js +0 -15
  306. package/lib/commonjs/PlatformConstants.js.map +0 -1
  307. package/lib/commonjs/PlatformConstants.web.js +0 -14
  308. package/lib/commonjs/PlatformConstants.web.js.map +0 -1
  309. package/lib/commonjs/RNGestureHandlerModule.macos.js +0 -149
  310. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +0 -1
  311. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -163
  312. package/lib/commonjs/RNGestureHandlerModule.web.js.map +0 -1
  313. package/lib/commonjs/RNGestureHandlerModule.windows.js +0 -158
  314. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +0 -1
  315. package/lib/commonjs/RNRenderer.js +0 -16
  316. package/lib/commonjs/RNRenderer.js.map +0 -1
  317. package/lib/commonjs/RNRenderer.web.js +0 -11
  318. package/lib/commonjs/RNRenderer.web.js.map +0 -1
  319. package/lib/commonjs/State.js +0 -18
  320. package/lib/commonjs/State.js.map +0 -1
  321. package/lib/commonjs/TouchEventType.js +0 -16
  322. package/lib/commonjs/TouchEventType.js.map +0 -1
  323. package/lib/commonjs/components/DrawerLayout.js +0 -566
  324. package/lib/commonjs/components/DrawerLayout.js.map +0 -1
  325. package/lib/commonjs/components/GestureComponents.js +0 -115
  326. package/lib/commonjs/components/GestureComponents.js.map +0 -1
  327. package/lib/commonjs/components/GestureComponents.web.js +0 -52
  328. package/lib/commonjs/components/GestureComponents.web.js.map +0 -1
  329. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -24
  330. package/lib/commonjs/components/GestureHandlerButton.web.js.map +0 -1
  331. package/lib/commonjs/components/GestureHandlerRootView.android.js +0 -31
  332. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +0 -1
  333. package/lib/commonjs/components/GestureHandlerRootView.web.js +0 -25
  334. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +0 -1
  335. package/lib/commonjs/components/Swipeable.js +0 -408
  336. package/lib/commonjs/components/Swipeable.js.map +0 -1
  337. package/lib/commonjs/components/gestureHandlerRootHOC.js +0 -40
  338. package/lib/commonjs/components/gestureHandlerRootHOC.js.map +0 -1
  339. package/lib/commonjs/components/touchables/TouchableHighlight.js +0 -109
  340. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +0 -1
  341. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +0 -100
  342. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +0 -1
  343. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +0 -12
  344. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +0 -1
  345. package/lib/commonjs/getReactNativeVersion.js +0 -22
  346. package/lib/commonjs/getReactNativeVersion.js.map +0 -1
  347. package/lib/commonjs/getReactNativeVersion.web.js +0 -11
  348. package/lib/commonjs/getReactNativeVersion.web.js.map +0 -1
  349. package/lib/commonjs/getShadowNodeFromRef.js +0 -27
  350. package/lib/commonjs/getShadowNodeFromRef.js.map +0 -1
  351. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -15
  352. package/lib/commonjs/getShadowNodeFromRef.web.js.map +0 -1
  353. package/lib/commonjs/ghQueueMicrotask.js +0 -12
  354. package/lib/commonjs/ghQueueMicrotask.js.map +0 -1
  355. package/lib/commonjs/handlers/FlingGestureHandler.js +0 -25
  356. package/lib/commonjs/handlers/FlingGestureHandler.js.map +0 -1
  357. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +0 -49
  358. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +0 -1
  359. package/lib/commonjs/handlers/LongPressGestureHandler.js +0 -27
  360. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +0 -1
  361. package/lib/commonjs/handlers/PinchGestureHandler.js +0 -23
  362. package/lib/commonjs/handlers/PinchGestureHandler.js.map +0 -1
  363. package/lib/commonjs/handlers/PressabilityDebugView.js +0 -14
  364. package/lib/commonjs/handlers/PressabilityDebugView.js.map +0 -1
  365. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -12
  366. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +0 -1
  367. package/lib/commonjs/handlers/RotationGestureHandler.js +0 -23
  368. package/lib/commonjs/handlers/RotationGestureHandler.js.map +0 -1
  369. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +0 -6
  370. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +0 -1
  371. package/lib/commonjs/handlers/gestures/eventReceiver.js +0 -147
  372. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +0 -1
  373. package/lib/commonjs/handlers/gestures/flingGesture.js +0 -34
  374. package/lib/commonjs/handlers/gestures/flingGesture.js.map +0 -1
  375. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +0 -65
  376. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +0 -1
  377. package/lib/commonjs/handlers/gestures/gesture.js +0 -241
  378. package/lib/commonjs/handlers/gestures/gesture.js.map +0 -1
  379. package/lib/commonjs/handlers/gestures/gestureComposition.js +0 -105
  380. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +0 -1
  381. package/lib/commonjs/handlers/gestures/gestureObjects.js +0 -90
  382. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +0 -1
  383. package/lib/commonjs/handlers/gestures/gestureStateManager.js +0 -65
  384. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +0 -1
  385. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +0 -32
  386. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +0 -1
  387. package/lib/commonjs/handlers/gestures/hoverGesture.js +0 -74
  388. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +0 -1
  389. package/lib/commonjs/handlers/gestures/longPressGesture.js +0 -35
  390. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +0 -1
  391. package/lib/commonjs/handlers/gestures/manualGesture.js +0 -31
  392. package/lib/commonjs/handlers/gestures/manualGesture.js.map +0 -1
  393. package/lib/commonjs/handlers/gestures/nativeGesture.js +0 -34
  394. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +0 -1
  395. package/lib/commonjs/handlers/gestures/panGesture.js +0 -149
  396. package/lib/commonjs/handlers/gestures/panGesture.js.map +0 -1
  397. package/lib/commonjs/handlers/gestures/pinchGesture.js +0 -45
  398. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +0 -1
  399. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +0 -37
  400. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +0 -1
  401. package/lib/commonjs/handlers/gestures/rotationGesture.js +0 -45
  402. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +0 -1
  403. package/lib/commonjs/handlers/gestures/tapGesture.js +0 -60
  404. package/lib/commonjs/handlers/gestures/tapGesture.js.map +0 -1
  405. package/lib/commonjs/handlers/handlersRegistry.js +0 -67
  406. package/lib/commonjs/handlers/handlersRegistry.js.map +0 -1
  407. package/lib/commonjs/jestUtils/index.js +0 -20
  408. package/lib/commonjs/jestUtils/index.js.map +0 -1
  409. package/lib/commonjs/jestUtils/jestUtils.js +0 -375
  410. package/lib/commonjs/jestUtils/jestUtils.js.map +0 -1
  411. package/lib/commonjs/mocks.js +0 -66
  412. package/lib/commonjs/mocks.js.map +0 -1
  413. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +0 -15
  414. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +0 -1
  415. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +0 -15
  416. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +0 -1
  417. package/lib/commonjs/typeUtils.js +0 -2
  418. package/lib/commonjs/typeUtils.js.map +0 -1
  419. package/lib/commonjs/utils.js +0 -63
  420. package/lib/commonjs/utils.js.map +0 -1
  421. package/lib/commonjs/web/constants.js +0 -16
  422. package/lib/commonjs/web/constants.js.map +0 -1
  423. package/lib/commonjs/web/detectors/RotationGestureDetector.js +0 -165
  424. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +0 -1
  425. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +0 -156
  426. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +0 -1
  427. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -167
  428. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +0 -1
  429. package/lib/commonjs/web/handlers/GestureHandler.js +0 -794
  430. package/lib/commonjs/web/handlers/GestureHandler.js.map +0 -1
  431. package/lib/commonjs/web/handlers/HoverGestureHandler.js +0 -62
  432. package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +0 -1
  433. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -151
  434. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +0 -1
  435. package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -61
  436. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +0 -1
  437. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -178
  438. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +0 -1
  439. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -448
  440. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +0 -1
  441. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -174
  442. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +0 -1
  443. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -186
  444. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +0 -1
  445. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -280
  446. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +0 -1
  447. package/lib/commonjs/web/interfaces.js +0 -55
  448. package/lib/commonjs/web/interfaces.js.map +0 -1
  449. package/lib/commonjs/web/tools/CircularBuffer.js +0 -59
  450. package/lib/commonjs/web/tools/CircularBuffer.js.map +0 -1
  451. package/lib/commonjs/web/tools/EventManager.js +0 -127
  452. package/lib/commonjs/web/tools/EventManager.js.map +0 -1
  453. package/lib/commonjs/web/tools/GestureHandlerDelegate.js +0 -6
  454. package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +0 -1
  455. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +0 -349
  456. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +0 -1
  457. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -118
  458. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +0 -1
  459. package/lib/commonjs/web/tools/InteractionManager.js +0 -114
  460. package/lib/commonjs/web/tools/InteractionManager.js.map +0 -1
  461. package/lib/commonjs/web/tools/LeastSquareSolver.js +0 -204
  462. package/lib/commonjs/web/tools/LeastSquareSolver.js.map +0 -1
  463. package/lib/commonjs/web/tools/NodeManager.js +0 -48
  464. package/lib/commonjs/web/tools/NodeManager.js.map +0 -1
  465. package/lib/commonjs/web/tools/PointerEventManager.js +0 -198
  466. package/lib/commonjs/web/tools/PointerEventManager.js.map +0 -1
  467. package/lib/commonjs/web/tools/PointerTracker.js +0 -226
  468. package/lib/commonjs/web/tools/PointerTracker.js.map +0 -1
  469. package/lib/commonjs/web/tools/TouchEventManager.js +0 -138
  470. package/lib/commonjs/web/tools/TouchEventManager.js.map +0 -1
  471. package/lib/commonjs/web/tools/VelocityTracker.js +0 -111
  472. package/lib/commonjs/web/tools/VelocityTracker.js.map +0 -1
  473. package/lib/commonjs/web/utils.js +0 -15
  474. package/lib/commonjs/web/utils.js.map +0 -1
  475. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +0 -105
  476. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +0 -1
  477. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +0 -53
  478. package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +0 -1
  479. package/lib/commonjs/web_hammer/Errors.js +0 -16
  480. package/lib/commonjs/web_hammer/Errors.js.map +0 -1
  481. package/lib/commonjs/web_hammer/FlingGestureHandler.js +0 -170
  482. package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +0 -1
  483. package/lib/commonjs/web_hammer/GestureHandler.js +0 -579
  484. package/lib/commonjs/web_hammer/GestureHandler.js.map +0 -1
  485. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +0 -54
  486. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +0 -1
  487. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +0 -71
  488. package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +0 -1
  489. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +0 -66
  490. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +0 -1
  491. package/lib/commonjs/web_hammer/NodeManager.js +0 -46
  492. package/lib/commonjs/web_hammer/NodeManager.js.map +0 -1
  493. package/lib/commonjs/web_hammer/PanGestureHandler.js +0 -208
  494. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +0 -1
  495. package/lib/commonjs/web_hammer/PinchGestureHandler.js +0 -40
  496. package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +0 -1
  497. package/lib/commonjs/web_hammer/PressGestureHandler.js +0 -188
  498. package/lib/commonjs/web_hammer/PressGestureHandler.js.map +0 -1
  499. package/lib/commonjs/web_hammer/RotationGestureHandler.js +0 -44
  500. package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +0 -1
  501. package/lib/commonjs/web_hammer/TapGestureHandler.js +0 -192
  502. package/lib/commonjs/web_hammer/TapGestureHandler.js.map +0 -1
  503. package/lib/commonjs/web_hammer/constants.js +0 -64
  504. package/lib/commonjs/web_hammer/constants.js.map +0 -1
  505. package/lib/commonjs/web_hammer/utils.js +0 -42
  506. package/lib/commonjs/web_hammer/utils.js.map +0 -1
  507. package/lib/module/ActionType.js +0 -7
  508. package/lib/module/ActionType.js.map +0 -1
  509. package/lib/module/Directions.js +0 -7
  510. package/lib/module/Directions.js.map +0 -1
  511. package/lib/module/EnableNewWebImplementation.js +0 -22
  512. package/lib/module/EnableNewWebImplementation.js.map +0 -1
  513. package/lib/module/GestureHandlerRootViewContext.js +0 -3
  514. package/lib/module/GestureHandlerRootViewContext.js.map +0 -1
  515. package/lib/module/PlatformConstants.js +0 -5
  516. package/lib/module/PlatformConstants.js.map +0 -1
  517. package/lib/module/PlatformConstants.web.js +0 -7
  518. package/lib/module/PlatformConstants.web.js.map +0 -1
  519. package/lib/module/RNGestureHandlerModule.macos.js +0 -110
  520. package/lib/module/RNGestureHandlerModule.macos.js.map +0 -1
  521. package/lib/module/RNGestureHandlerModule.web.js +0 -122
  522. package/lib/module/RNGestureHandlerModule.web.js.map +0 -1
  523. package/lib/module/RNGestureHandlerModule.windows.js +0 -118
  524. package/lib/module/RNGestureHandlerModule.windows.js.map +0 -1
  525. package/lib/module/RNRenderer.js +0 -4
  526. package/lib/module/RNRenderer.js.map +0 -1
  527. package/lib/module/RNRenderer.web.js +0 -4
  528. package/lib/module/RNRenderer.web.js.map +0 -1
  529. package/lib/module/State.js +0 -10
  530. package/lib/module/State.js.map +0 -1
  531. package/lib/module/TouchEventType.js +0 -8
  532. package/lib/module/TouchEventType.js.map +0 -1
  533. package/lib/module/components/DrawerLayout.js +0 -551
  534. package/lib/module/components/DrawerLayout.js.map +0 -1
  535. package/lib/module/components/GestureComponents.js +0 -90
  536. package/lib/module/components/GestureComponents.js.map +0 -1
  537. package/lib/module/components/GestureComponents.web.js +0 -28
  538. package/lib/module/components/GestureComponents.web.js.map +0 -1
  539. package/lib/module/components/GestureHandlerButton.web.js +0 -9
  540. package/lib/module/components/GestureHandlerButton.web.js.map +0 -1
  541. package/lib/module/components/GestureHandlerRootView.android.js +0 -14
  542. package/lib/module/components/GestureHandlerRootView.android.js.map +0 -1
  543. package/lib/module/components/GestureHandlerRootView.web.js +0 -9
  544. package/lib/module/components/GestureHandlerRootView.web.js.map +0 -1
  545. package/lib/module/components/Swipeable.js +0 -390
  546. package/lib/module/components/Swipeable.js.map +0 -1
  547. package/lib/module/components/gestureHandlerRootHOC.js +0 -22
  548. package/lib/module/components/gestureHandlerRootHOC.js.map +0 -1
  549. package/lib/module/components/touchables/TouchableHighlight.js +0 -95
  550. package/lib/module/components/touchables/TouchableHighlight.js.map +0 -1
  551. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +0 -84
  552. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +0 -1
  553. package/lib/module/components/touchables/TouchableNativeFeedback.js +0 -3
  554. package/lib/module/components/touchables/TouchableNativeFeedback.js.map +0 -1
  555. package/lib/module/getReactNativeVersion.js +0 -10
  556. package/lib/module/getReactNativeVersion.js.map +0 -1
  557. package/lib/module/getReactNativeVersion.web.js +0 -4
  558. package/lib/module/getReactNativeVersion.web.js.map +0 -1
  559. package/lib/module/getShadowNodeFromRef.js +0 -20
  560. package/lib/module/getShadowNodeFromRef.js.map +0 -1
  561. package/lib/module/getShadowNodeFromRef.web.js +0 -8
  562. package/lib/module/getShadowNodeFromRef.web.js.map +0 -1
  563. package/lib/module/ghQueueMicrotask.js +0 -5
  564. package/lib/module/ghQueueMicrotask.js.map +0 -1
  565. package/lib/module/handlers/FlingGestureHandler.js +0 -11
  566. package/lib/module/handlers/FlingGestureHandler.js.map +0 -1
  567. package/lib/module/handlers/ForceTouchGestureHandler.js +0 -31
  568. package/lib/module/handlers/ForceTouchGestureHandler.js.map +0 -1
  569. package/lib/module/handlers/LongPressGestureHandler.js +0 -13
  570. package/lib/module/handlers/LongPressGestureHandler.js.map +0 -1
  571. package/lib/module/handlers/PinchGestureHandler.js +0 -10
  572. package/lib/module/handlers/PinchGestureHandler.js.map +0 -1
  573. package/lib/module/handlers/PressabilityDebugView.js +0 -3
  574. package/lib/module/handlers/PressabilityDebugView.js.map +0 -1
  575. package/lib/module/handlers/PressabilityDebugView.web.js +0 -5
  576. package/lib/module/handlers/PressabilityDebugView.web.js.map +0 -1
  577. package/lib/module/handlers/RotationGestureHandler.js +0 -10
  578. package/lib/module/handlers/RotationGestureHandler.js.map +0 -1
  579. package/lib/module/handlers/gestureHandlerTypesCompat.js +0 -2
  580. package/lib/module/handlers/gestureHandlerTypesCompat.js.map +0 -1
  581. package/lib/module/handlers/gestures/eventReceiver.js +0 -131
  582. package/lib/module/handlers/gestures/eventReceiver.js.map +0 -1
  583. package/lib/module/handlers/gestures/flingGesture.js +0 -24
  584. package/lib/module/handlers/gestures/flingGesture.js.map +0 -1
  585. package/lib/module/handlers/gestures/forceTouchGesture.js +0 -56
  586. package/lib/module/handlers/gestures/forceTouchGesture.js.map +0 -1
  587. package/lib/module/handlers/gestures/gesture.js +0 -222
  588. package/lib/module/handlers/gestures/gesture.js.map +0 -1
  589. package/lib/module/handlers/gestures/gestureComposition.js +0 -90
  590. package/lib/module/handlers/gestures/gestureComposition.js.map +0 -1
  591. package/lib/module/handlers/gestures/gestureObjects.js +0 -71
  592. package/lib/module/handlers/gestures/gestureObjects.js.map +0 -1
  593. package/lib/module/handlers/gestures/gestureStateManager.js +0 -54
  594. package/lib/module/handlers/gestures/gestureStateManager.js.map +0 -1
  595. package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -21
  596. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +0 -1
  597. package/lib/module/handlers/gestures/hoverGesture.js +0 -62
  598. package/lib/module/handlers/gestures/hoverGesture.js.map +0 -1
  599. package/lib/module/handlers/gestures/longPressGesture.js +0 -25
  600. package/lib/module/handlers/gestures/longPressGesture.js.map +0 -1
  601. package/lib/module/handlers/gestures/manualGesture.js +0 -22
  602. package/lib/module/handlers/gestures/manualGesture.js.map +0 -1
  603. package/lib/module/handlers/gestures/nativeGesture.js +0 -24
  604. package/lib/module/handlers/gestures/nativeGesture.js.map +0 -1
  605. package/lib/module/handlers/gestures/panGesture.js +0 -140
  606. package/lib/module/handlers/gestures/panGesture.js.map +0 -1
  607. package/lib/module/handlers/gestures/pinchGesture.js +0 -36
  608. package/lib/module/handlers/gestures/pinchGesture.js.map +0 -1
  609. package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -30
  610. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +0 -1
  611. package/lib/module/handlers/gestures/rotationGesture.js +0 -36
  612. package/lib/module/handlers/gestures/rotationGesture.js.map +0 -1
  613. package/lib/module/handlers/gestures/tapGesture.js +0 -50
  614. package/lib/module/handlers/gestures/tapGesture.js.map +0 -1
  615. package/lib/module/handlers/handlersRegistry.js +0 -44
  616. package/lib/module/handlers/handlersRegistry.js.map +0 -1
  617. package/lib/module/jestUtils/index.js +0 -2
  618. package/lib/module/jestUtils/index.js.map +0 -1
  619. package/lib/module/jestUtils/jestUtils.js +0 -350
  620. package/lib/module/jestUtils/jestUtils.js.map +0 -1
  621. package/lib/module/mocks.js +0 -56
  622. package/lib/module/mocks.js.map +0 -1
  623. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js +0 -3
  624. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +0 -1
  625. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js +0 -3
  626. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +0 -1
  627. package/lib/module/typeUtils.js +0 -2
  628. package/lib/module/typeUtils.js.map +0 -1
  629. package/lib/module/utils.js +0 -44
  630. package/lib/module/utils.js.map +0 -1
  631. package/lib/module/web/constants.js +0 -8
  632. package/lib/module/web/constants.js.map +0 -1
  633. package/lib/module/web/detectors/RotationGestureDetector.js +0 -155
  634. package/lib/module/web/detectors/RotationGestureDetector.js.map +0 -1
  635. package/lib/module/web/detectors/ScaleGestureDetector.js +0 -145
  636. package/lib/module/web/detectors/ScaleGestureDetector.js.map +0 -1
  637. package/lib/module/web/handlers/FlingGestureHandler.js +0 -152
  638. package/lib/module/web/handlers/FlingGestureHandler.js.map +0 -1
  639. package/lib/module/web/handlers/GestureHandler.js +0 -776
  640. package/lib/module/web/handlers/GestureHandler.js.map +0 -1
  641. package/lib/module/web/handlers/HoverGestureHandler.js +0 -47
  642. package/lib/module/web/handlers/HoverGestureHandler.js.map +0 -1
  643. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -136
  644. package/lib/module/web/handlers/LongPressGestureHandler.js.map +0 -1
  645. package/lib/module/web/handlers/ManualGestureHandler.js +0 -49
  646. package/lib/module/web/handlers/ManualGestureHandler.js.map +0 -1
  647. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -163
  648. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +0 -1
  649. package/lib/module/web/handlers/PanGestureHandler.js +0 -433
  650. package/lib/module/web/handlers/PanGestureHandler.js.map +0 -1
  651. package/lib/module/web/handlers/PinchGestureHandler.js +0 -159
  652. package/lib/module/web/handlers/PinchGestureHandler.js.map +0 -1
  653. package/lib/module/web/handlers/RotationGestureHandler.js +0 -171
  654. package/lib/module/web/handlers/RotationGestureHandler.js.map +0 -1
  655. package/lib/module/web/handlers/TapGestureHandler.js +0 -265
  656. package/lib/module/web/handlers/TapGestureHandler.js.map +0 -1
  657. package/lib/module/web/interfaces.js +0 -45
  658. package/lib/module/web/interfaces.js.map +0 -1
  659. package/lib/module/web/tools/CircularBuffer.js +0 -50
  660. package/lib/module/web/tools/CircularBuffer.js.map +0 -1
  661. package/lib/module/web/tools/EventManager.js +0 -118
  662. package/lib/module/web/tools/EventManager.js.map +0 -1
  663. package/lib/module/web/tools/GestureHandlerDelegate.js +0 -2
  664. package/lib/module/web/tools/GestureHandlerDelegate.js.map +0 -1
  665. package/lib/module/web/tools/GestureHandlerOrchestrator.js +0 -335
  666. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +0 -1
  667. package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -102
  668. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +0 -1
  669. package/lib/module/web/tools/InteractionManager.js +0 -105
  670. package/lib/module/web/tools/InteractionManager.js.map +0 -1
  671. package/lib/module/web/tools/LeastSquareSolver.js +0 -195
  672. package/lib/module/web/tools/LeastSquareSolver.js.map +0 -1
  673. package/lib/module/web/tools/NodeManager.js +0 -39
  674. package/lib/module/web/tools/NodeManager.js.map +0 -1
  675. package/lib/module/web/tools/PointerEventManager.js +0 -184
  676. package/lib/module/web/tools/PointerEventManager.js.map +0 -1
  677. package/lib/module/web/tools/PointerTracker.js +0 -213
  678. package/lib/module/web/tools/PointerTracker.js.map +0 -1
  679. package/lib/module/web/tools/TouchEventManager.js +0 -124
  680. package/lib/module/web/tools/TouchEventManager.js.map +0 -1
  681. package/lib/module/web/tools/VelocityTracker.js +0 -98
  682. package/lib/module/web/tools/VelocityTracker.js.map +0 -1
  683. package/lib/module/web/utils.js +0 -8
  684. package/lib/module/web/utils.js.map +0 -1
  685. package/lib/module/web_hammer/DiscreteGestureHandler.js +0 -94
  686. package/lib/module/web_hammer/DiscreteGestureHandler.js.map +0 -1
  687. package/lib/module/web_hammer/DraggingGestureHandler.js +0 -40
  688. package/lib/module/web_hammer/DraggingGestureHandler.js.map +0 -1
  689. package/lib/module/web_hammer/Errors.js +0 -7
  690. package/lib/module/web_hammer/Errors.js.map +0 -1
  691. package/lib/module/web_hammer/FlingGestureHandler.js +0 -156
  692. package/lib/module/web_hammer/FlingGestureHandler.js.map +0 -1
  693. package/lib/module/web_hammer/GestureHandler.js +0 -563
  694. package/lib/module/web_hammer/GestureHandler.js.map +0 -1
  695. package/lib/module/web_hammer/IndiscreteGestureHandler.js +0 -44
  696. package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +0 -1
  697. package/lib/module/web_hammer/LongPressGestureHandler.js +0 -58
  698. package/lib/module/web_hammer/LongPressGestureHandler.js.map +0 -1
  699. package/lib/module/web_hammer/NativeViewGestureHandler.js +0 -49
  700. package/lib/module/web_hammer/NativeViewGestureHandler.js.map +0 -1
  701. package/lib/module/web_hammer/NodeManager.js +0 -33
  702. package/lib/module/web_hammer/NodeManager.js.map +0 -1
  703. package/lib/module/web_hammer/PanGestureHandler.js +0 -194
  704. package/lib/module/web_hammer/PanGestureHandler.js.map +0 -1
  705. package/lib/module/web_hammer/PinchGestureHandler.js +0 -29
  706. package/lib/module/web_hammer/PinchGestureHandler.js.map +0 -1
  707. package/lib/module/web_hammer/PressGestureHandler.js +0 -174
  708. package/lib/module/web_hammer/PressGestureHandler.js.map +0 -1
  709. package/lib/module/web_hammer/RotationGestureHandler.js +0 -32
  710. package/lib/module/web_hammer/RotationGestureHandler.js.map +0 -1
  711. package/lib/module/web_hammer/TapGestureHandler.js +0 -180
  712. package/lib/module/web_hammer/TapGestureHandler.js.map +0 -1
  713. package/lib/module/web_hammer/constants.js +0 -43
  714. package/lib/module/web_hammer/constants.js.map +0 -1
  715. package/lib/module/web_hammer/utils.js +0 -19
  716. package/lib/module/web_hammer/utils.js.map +0 -1
  717. package/lib/typescript/ActionType.d.ts +0 -7
  718. package/lib/typescript/Directions.d.ts +0 -7
  719. package/lib/typescript/EnableNewWebImplementation.d.ts +0 -3
  720. package/lib/typescript/GestureHandlerRootViewContext.d.ts +0 -3
  721. package/lib/typescript/PlatformConstants.d.ts +0 -5
  722. package/lib/typescript/PlatformConstants.web.d.ts +0 -4
  723. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +0 -47
  724. package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -50
  725. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +0 -48
  726. package/lib/typescript/RNRenderer.d.ts +0 -1
  727. package/lib/typescript/RNRenderer.web.d.ts +0 -3
  728. package/lib/typescript/State.d.ts +0 -9
  729. package/lib/typescript/TouchEventType.d.ts +0 -8
  730. package/lib/typescript/components/DrawerLayout.d.ts +0 -148
  731. package/lib/typescript/components/GestureComponents.d.ts +0 -22
  732. package/lib/typescript/components/GestureComponents.web.d.ts +0 -8
  733. package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -4
  734. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +0 -6
  735. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +0 -6
  736. package/lib/typescript/components/Swipeable.d.ts +0 -178
  737. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +0 -3
  738. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +0 -36
  739. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +0 -45
  740. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +0 -2
  741. package/lib/typescript/getReactNativeVersion.d.ts +0 -4
  742. package/lib/typescript/getReactNativeVersion.web.d.ts +0 -1
  743. package/lib/typescript/getShadowNodeFromRef.d.ts +0 -1
  744. package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
  745. package/lib/typescript/ghQueueMicrotask.d.ts +0 -1
  746. package/lib/typescript/handlers/FlingGestureHandler.d.ts +0 -34
  747. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +0 -44
  748. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +0 -56
  749. package/lib/typescript/handlers/PinchGestureHandler.d.ts +0 -29
  750. package/lib/typescript/handlers/PressabilityDebugView.d.ts +0 -1
  751. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
  752. package/lib/typescript/handlers/RotationGestureHandler.d.ts +0 -29
  753. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +0 -42
  754. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +0 -4
  755. package/lib/typescript/handlers/gestures/flingGesture.d.ts +0 -9
  756. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +0 -15
  757. package/lib/typescript/handlers/gestures/gesture.d.ts +0 -110
  758. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +0 -21
  759. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +0 -41
  760. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +0 -9
  761. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +0 -4
  762. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +0 -32
  763. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +0 -9
  764. package/lib/typescript/handlers/gestures/manualGesture.d.ts +0 -7
  765. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +0 -9
  766. package/lib/typescript/handlers/gestures/panGesture.d.ts +0 -26
  767. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +0 -11
  768. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +0 -14
  769. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +0 -12
  770. package/lib/typescript/handlers/gestures/tapGesture.d.ts +0 -14
  771. package/lib/typescript/handlers/handlersRegistry.d.ts +0 -14
  772. package/lib/typescript/jestUtils/index.d.ts +0 -1
  773. package/lib/typescript/jestUtils/jestUtils.d.ts +0 -28
  774. package/lib/typescript/mocks.d.ts +0 -44
  775. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +0 -14
  776. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +0 -6
  777. package/lib/typescript/typeUtils.d.ts +0 -1
  778. package/lib/typescript/utils.d.ts +0 -8
  779. package/lib/typescript/web/constants.d.ts +0 -7
  780. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +0 -30
  781. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +0 -29
  782. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -27
  783. package/lib/typescript/web/handlers/GestureHandler.d.ts +0 -90
  784. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +0 -10
  785. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -26
  786. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -12
  787. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -24
  788. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +0 -55
  789. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -28
  790. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -29
  791. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +0 -39
  792. package/lib/typescript/web/interfaces.d.ts +0 -141
  793. package/lib/typescript/web/tools/CircularBuffer.d.ts +0 -11
  794. package/lib/typescript/web/tools/EventManager.d.ts +0 -34
  795. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +0 -22
  796. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +0 -29
  797. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +0 -21
  798. package/lib/typescript/web/tools/InteractionManager.d.ts +0 -17
  799. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +0 -12
  800. package/lib/typescript/web/tools/NodeManager.d.ts +0 -11
  801. package/lib/typescript/web/tools/PointerEventManager.d.ts +0 -8
  802. package/lib/typescript/web/tools/PointerTracker.d.ts +0 -53
  803. package/lib/typescript/web/tools/TouchEventManager.d.ts +0 -6
  804. package/lib/typescript/web/tools/VelocityTracker.d.ts +0 -13
  805. package/lib/typescript/web/utils.d.ts +0 -4
  806. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +0 -20
  807. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +0 -15
  808. package/lib/typescript/web_hammer/Errors.d.ts +0 -3
  809. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +0 -43
  810. package/lib/typescript/web_hammer/GestureHandler.d.ts +0 -145
  811. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +0 -40
  812. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +0 -38
  813. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +0 -7
  814. package/lib/typescript/web_hammer/NodeManager.d.ts +0 -8
  815. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +0 -56
  816. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +0 -13
  817. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +0 -83
  818. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +0 -13
  819. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +0 -57
  820. package/lib/typescript/web_hammer/constants.d.ts +0 -39
  821. package/lib/typescript/web_hammer/utils.d.ts +0 -9
  822. package/src/ActionType.ts +0 -9
  823. package/src/Directions.ts +0 -9
  824. package/src/EnableNewWebImplementation.ts +0 -35
  825. package/src/GestureHandlerRootViewContext.ts +0 -3
  826. package/src/PlatformConstants.ts +0 -8
  827. package/src/PlatformConstants.web.ts +0 -5
  828. package/src/RNGestureHandlerModule.macos.ts +0 -133
  829. package/src/RNGestureHandlerModule.web.ts +0 -146
  830. package/src/RNGestureHandlerModule.windows.ts +0 -144
  831. package/src/RNRenderer.ts +0 -3
  832. package/src/RNRenderer.web.ts +0 -3
  833. package/src/State.ts +0 -13
  834. package/src/TouchEventType.ts +0 -10
  835. package/src/components/DrawerLayout.tsx +0 -743
  836. package/src/components/GestureComponents.tsx +0 -148
  837. package/src/components/GestureComponents.web.tsx +0 -41
  838. package/src/components/GestureHandlerButton.web.tsx +0 -6
  839. package/src/components/GestureHandlerRootView.android.tsx +0 -24
  840. package/src/components/GestureHandlerRootView.web.tsx +0 -17
  841. package/src/components/Swipeable.tsx +0 -584
  842. package/src/components/gestureHandlerRootHOC.tsx +0 -32
  843. package/src/components/touchables/TouchableHighlight.tsx +0 -115
  844. package/src/components/touchables/TouchableNativeFeedback.android.tsx +0 -91
  845. package/src/components/touchables/TouchableNativeFeedback.tsx +0 -3
  846. package/src/getReactNativeVersion.ts +0 -11
  847. package/src/getReactNativeVersion.web.ts +0 -3
  848. package/src/getShadowNodeFromRef.ts +0 -22
  849. package/src/getShadowNodeFromRef.web.ts +0 -7
  850. package/src/ghQueueMicrotask.ts +0 -5
  851. package/src/handlers/FlingGestureHandler.ts +0 -59
  852. package/src/handlers/ForceTouchGestureHandler.ts +0 -90
  853. package/src/handlers/LongPressGestureHandler.ts +0 -88
  854. package/src/handlers/PinchGestureHandler.ts +0 -48
  855. package/src/handlers/PressabilityDebugView.tsx +0 -2
  856. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  857. package/src/handlers/RotationGestureHandler.ts +0 -48
  858. package/src/handlers/gestureHandlerTypesCompat.ts +0 -106
  859. package/src/handlers/gestures/eventReceiver.ts +0 -155
  860. package/src/handlers/gestures/flingGesture.ts +0 -27
  861. package/src/handlers/gestures/forceTouchGesture.ts +0 -74
  862. package/src/handlers/gestures/gesture.ts +0 -349
  863. package/src/handlers/gestures/gestureComposition.ts +0 -122
  864. package/src/handlers/gestures/gestureObjects.ts +0 -84
  865. package/src/handlers/gestures/gestureStateManager.ts +0 -62
  866. package/src/handlers/gestures/gestureStateManager.web.ts +0 -24
  867. package/src/handlers/gestures/hoverGesture.ts +0 -83
  868. package/src/handlers/gestures/longPressGesture.ts +0 -28
  869. package/src/handlers/gestures/manualGesture.ts +0 -31
  870. package/src/handlers/gestures/nativeGesture.ts +0 -27
  871. package/src/handlers/gestures/panGesture.ts +0 -152
  872. package/src/handlers/gestures/pinchGesture.ts +0 -51
  873. package/src/handlers/gestures/reanimatedWrapper.ts +0 -56
  874. package/src/handlers/gestures/rotationGesture.ts +0 -51
  875. package/src/handlers/gestures/tapGesture.ts +0 -53
  876. package/src/handlers/handlersRegistry.ts +0 -60
  877. package/src/jestUtils/index.ts +0 -1
  878. package/src/jestUtils/jestUtils.ts +0 -505
  879. package/src/mocks.ts +0 -67
  880. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +0 -18
  881. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -6
  882. package/src/typeUtils.ts +0 -1
  883. package/src/utils.ts +0 -54
  884. package/src/web/constants.ts +0 -8
  885. package/src/web/detectors/RotationGestureDetector.ts +0 -168
  886. package/src/web/detectors/ScaleGestureDetector.ts +0 -172
  887. package/src/web/handlers/FlingGestureHandler.ts +0 -161
  888. package/src/web/handlers/GestureHandler.ts +0 -849
  889. package/src/web/handlers/HoverGestureHandler.ts +0 -43
  890. package/src/web/handlers/LongPressGestureHandler.ts +0 -125
  891. package/src/web/handlers/ManualGestureHandler.ts +0 -43
  892. package/src/web/handlers/NativeViewGestureHandler.ts +0 -167
  893. package/src/web/handlers/PanGestureHandler.ts +0 -485
  894. package/src/web/handlers/PinchGestureHandler.ts +0 -158
  895. package/src/web/handlers/RotationGestureHandler.ts +0 -172
  896. package/src/web/handlers/TapGestureHandler.ts +0 -273
  897. package/src/web/interfaces.ts +0 -167
  898. package/src/web/tools/EventManager.ts +0 -104
  899. package/src/web/tools/GestureHandlerDelegate.ts +0 -23
  900. package/src/web/tools/GestureHandlerOrchestrator.ts +0 -389
  901. package/src/web/tools/GestureHandlerWebDelegate.ts +0 -115
  902. package/src/web/tools/NodeManager.ts +0 -43
  903. package/src/web/tools/PointerEventManager.ts +0 -202
  904. package/src/web/tools/TouchEventManager.ts +0 -167
  905. package/src/web/utils.ts +0 -8
  906. package/src/web_hammer/DiscreteGestureHandler.ts +0 -82
  907. package/src/web_hammer/DraggingGestureHandler.ts +0 -34
  908. package/src/web_hammer/Errors.ts +0 -7
  909. package/src/web_hammer/FlingGestureHandler.ts +0 -134
  910. package/src/web_hammer/GestureHandler.ts +0 -599
  911. package/src/web_hammer/IndiscreteGestureHandler.ts +0 -33
  912. package/src/web_hammer/LongPressGestureHandler.ts +0 -56
  913. package/src/web_hammer/NativeViewGestureHandler.ts +0 -47
  914. package/src/web_hammer/NodeManager.ts +0 -42
  915. package/src/web_hammer/PanGestureHandler.ts +0 -226
  916. package/src/web_hammer/PinchGestureHandler.ts +0 -25
  917. package/src/web_hammer/PressGestureHandler.ts +0 -167
  918. package/src/web_hammer/RotationGestureHandler.ts +0 -25
  919. package/src/web_hammer/TapGestureHandler.ts +0 -172
  920. package/src/web_hammer/constants.ts +0 -48
  921. package/src/web_hammer/utils.ts +0 -24
@@ -1,822 +1,823 @@
1
- import React, { useContext, useEffect, useRef, useState } from 'react';
2
- import {
3
- GestureType,
4
- HandlerCallbacks,
5
- BaseGesture,
6
- GestureRef,
7
- CALLBACK_TYPE,
8
- } from './gesture';
9
- import { Reanimated, SharedValue } from './reanimatedWrapper';
10
- import { registerHandler, unregisterHandler } from '../handlersRegistry';
11
- import RNGestureHandlerModule from '../../RNGestureHandlerModule';
12
- import {
13
- baseGestureHandlerWithMonitorProps,
14
- filterConfig,
15
- findNodeHandle,
16
- GestureTouchEvent,
17
- GestureUpdateEvent,
18
- GestureStateChangeEvent,
19
- HandlerStateChangeEvent,
20
- scheduleFlushOperations,
21
- UserSelect,
22
- } from '../gestureHandlerCommon';
23
- import {
24
- GestureStateManager,
25
- GestureStateManagerType,
26
- } from './gestureStateManager';
27
- import { flingGestureHandlerProps } from '../FlingGestureHandler';
28
- import { forceTouchGestureHandlerProps } from '../ForceTouchGestureHandler';
29
- import { longPressGestureHandlerProps } from '../LongPressGestureHandler';
30
- import {
31
- panGestureHandlerProps,
32
- panGestureHandlerCustomNativeProps,
33
- } from '../PanGestureHandler';
34
- import { tapGestureHandlerProps } from '../TapGestureHandler';
35
- import { hoverGestureHandlerProps } from './hoverGesture';
36
- import { State } from '../../State';
37
- import { TouchEventType } from '../../TouchEventType';
38
- import { ComposedGesture } from './gestureComposition';
39
- import { ActionType } from '../../ActionType';
40
- import { isFabric, isJestEnv, tagMessage } from '../../utils';
41
- import { getReactNativeVersion } from '../../getReactNativeVersion';
42
- import { getShadowNodeFromRef } from '../../getShadowNodeFromRef';
43
- import { Platform } from 'react-native';
44
- import type RNGestureHandlerModuleWeb from '../../RNGestureHandlerModule.web';
45
- import { onGestureHandlerEvent } from './eventReceiver';
46
- import { RNRenderer } from '../../RNRenderer';
47
- import { isNewWebImplementationEnabled } from '../../EnableNewWebImplementation';
48
- import { nativeViewGestureHandlerProps } from '../NativeViewGestureHandler';
49
- import GestureHandlerRootViewContext from '../../GestureHandlerRootViewContext';
50
- import { ghQueueMicrotask } from '../../ghQueueMicrotask';
51
-
52
- declare const global: {
53
- isFormsStackingContext: (node: unknown) => boolean | null; // JSI function
54
- };
55
-
56
- const ALLOWED_PROPS = [
57
- ...baseGestureHandlerWithMonitorProps,
58
- ...tapGestureHandlerProps,
59
- ...panGestureHandlerProps,
60
- ...panGestureHandlerCustomNativeProps,
61
- ...longPressGestureHandlerProps,
62
- ...forceTouchGestureHandlerProps,
63
- ...flingGestureHandlerProps,
64
- ...hoverGestureHandlerProps,
65
- ...nativeViewGestureHandlerProps,
66
- ];
67
-
68
- export type GestureConfigReference = {
69
- config: GestureType[];
70
- animatedEventHandler: unknown;
71
- animatedHandlers: SharedValue<
72
- HandlerCallbacks<Record<string, unknown>>[] | null
73
- > | null;
74
- firstExecution: boolean;
75
- useReanimatedHook: boolean;
76
- };
77
-
78
- function convertToHandlerTag(ref: GestureRef): number {
79
- if (typeof ref === 'number') {
80
- return ref;
81
- } else if (ref instanceof BaseGesture) {
82
- return ref.handlerTag;
83
- } else {
84
- // @ts-ignore in this case it should be a ref either to gesture object or
85
- // a gesture handler component, in both cases handlerTag property exists
86
- return ref.current?.handlerTag ?? -1;
87
- }
88
- }
89
-
90
- function extractValidHandlerTags(interactionGroup: GestureRef[] | undefined) {
91
- return (
92
- interactionGroup?.map(convertToHandlerTag)?.filter((tag) => tag > 0) ?? []
93
- );
94
- }
95
-
96
- function dropHandlers(preparedGesture: GestureConfigReference) {
97
- for (const handler of preparedGesture.config) {
98
- RNGestureHandlerModule.dropGestureHandler(handler.handlerTag);
99
-
100
- unregisterHandler(handler.handlerTag, handler.config.testId);
101
- }
102
-
103
- scheduleFlushOperations();
104
- }
105
-
106
- function checkGestureCallbacksForWorklets(gesture: GestureType) {
107
- // if a gesture is explicitly marked to run on the JS thread there is no need to check
108
- // if callbacks are worklets as the user is aware they will be ran on the JS thread
109
- if (gesture.config.runOnJS) {
110
- return;
111
- }
112
-
113
- const areSomeNotWorklets = gesture.handlers.isWorklet.includes(false);
114
- const areSomeWorklets = gesture.handlers.isWorklet.includes(true);
115
-
116
- // if some of the callbacks are worklets and some are not, and the gesture is not
117
- // explicitly marked with `.runOnJS(true)` show an error
118
- if (areSomeNotWorklets && areSomeWorklets) {
119
- console.error(
120
- tagMessage(
121
- `Some of the callbacks in the gesture are worklets and some are not. Either make sure that all calbacks are marked as 'worklet' if you wish to run them on the UI thread or use '.runOnJS(true)' modifier on the gesture explicitly to run all callbacks on the JS thread.`
122
- )
123
- );
124
- }
125
- }
126
-
127
- interface WebEventHandler {
128
- onGestureHandlerEvent: (event: HandlerStateChangeEvent<unknown>) => void;
129
- onGestureHandlerStateChange?: (
130
- event: HandlerStateChangeEvent<unknown>
131
- ) => void;
132
- }
133
-
134
- interface AttachHandlersConfig {
135
- preparedGesture: GestureConfigReference;
136
- gestureConfig: ComposedGesture | GestureType;
137
- gesture: GestureType[];
138
- viewTag: number;
139
- webEventHandlersRef: React.RefObject<WebEventHandler>;
140
- mountedRef: React.RefObject<boolean>;
141
- }
142
-
143
- function attachHandlers({
144
- preparedGesture,
145
- gestureConfig,
146
- gesture,
147
- viewTag,
148
- webEventHandlersRef,
149
- mountedRef,
150
- }: AttachHandlersConfig) {
151
- if (!preparedGesture.firstExecution) {
152
- gestureConfig.initialize();
153
- } else {
154
- preparedGesture.firstExecution = false;
155
- }
156
-
157
- // use queueMicrotask to extract handlerTags, because all refs should be initialized
158
- // when it's ran
159
- ghQueueMicrotask(() => {
160
- if (!mountedRef.current) {
161
- return;
162
- }
163
- gestureConfig.prepare();
164
- });
165
-
166
- for (const handler of gesture) {
167
- checkGestureCallbacksForWorklets(handler);
168
- RNGestureHandlerModule.createGestureHandler(
169
- handler.handlerName,
170
- handler.handlerTag,
171
- filterConfig(handler.config, ALLOWED_PROPS)
172
- );
173
-
174
- registerHandler(handler.handlerTag, handler, handler.config.testId);
175
- }
176
-
177
- // use queueMicrotask to extract handlerTags, because all refs should be initialized
178
- // when it's ran
179
- ghQueueMicrotask(() => {
180
- if (!mountedRef.current) {
181
- return;
182
- }
183
- for (const handler of gesture) {
184
- let requireToFail: number[] = [];
185
- if (handler.config.requireToFail) {
186
- requireToFail = extractValidHandlerTags(handler.config.requireToFail);
187
- }
188
-
189
- let simultaneousWith: number[] = [];
190
- if (handler.config.simultaneousWith) {
191
- simultaneousWith = extractValidHandlerTags(
192
- handler.config.simultaneousWith
193
- );
194
- }
195
-
196
- let blocksHandlers: number[] = [];
197
- if (handler.config.blocksHandlers) {
198
- blocksHandlers = extractValidHandlerTags(handler.config.blocksHandlers);
199
- }
200
-
201
- RNGestureHandlerModule.updateGestureHandler(
202
- handler.handlerTag,
203
- filterConfig(handler.config, ALLOWED_PROPS, {
204
- simultaneousHandlers: simultaneousWith,
205
- waitFor: requireToFail,
206
- blocksHandlers: blocksHandlers,
207
- })
208
- );
209
- }
210
-
211
- scheduleFlushOperations();
212
- });
213
-
214
- preparedGesture.config = gesture;
215
-
216
- for (const gesture of preparedGesture.config) {
217
- const actionType = gesture.shouldUseReanimated
218
- ? ActionType.REANIMATED_WORKLET
219
- : ActionType.JS_FUNCTION_NEW_API;
220
-
221
- if (Platform.OS === 'web') {
222
- (
223
- RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler
224
- )(
225
- gesture.handlerTag,
226
- viewTag,
227
- ActionType.JS_FUNCTION_OLD_API, // ignored on web
228
- webEventHandlersRef
229
- );
230
- } else {
231
- RNGestureHandlerModule.attachGestureHandler(
232
- gesture.handlerTag,
233
- viewTag,
234
- actionType
235
- );
236
- }
237
- }
238
-
239
- if (preparedGesture.animatedHandlers) {
240
- const isAnimatedGesture = (g: GestureType) => g.shouldUseReanimated;
241
-
242
- preparedGesture.animatedHandlers.value = gesture
243
- .filter(isAnimatedGesture)
244
- .map((g) => g.handlers) as unknown as HandlerCallbacks<
245
- Record<string, unknown>
246
- >[];
247
- }
248
- }
249
-
250
- function updateHandlers(
251
- preparedGesture: GestureConfigReference,
252
- gestureConfig: ComposedGesture | GestureType,
253
- gesture: GestureType[],
254
- mountedRef: React.RefObject<boolean>
255
- ) {
256
- gestureConfig.prepare();
257
-
258
- for (let i = 0; i < gesture.length; i++) {
259
- const handler = preparedGesture.config[i];
260
- checkGestureCallbacksForWorklets(handler);
261
-
262
- // only update handlerTag when it's actually different, it may be the same
263
- // if gesture config object is wrapped with useMemo
264
- if (gesture[i].handlerTag !== handler.handlerTag) {
265
- gesture[i].handlerTag = handler.handlerTag;
266
- gesture[i].handlers.handlerTag = handler.handlerTag;
267
- }
268
- }
269
-
270
- // use queueMicrotask to extract handlerTags, because when it's ran, all refs should be updated
271
- // and handlerTags in BaseGesture references should be updated in the loop above (we need to wait
272
- // in case of external relations)
273
- ghQueueMicrotask(() => {
274
- if (!mountedRef.current) {
275
- return;
276
- }
277
- for (let i = 0; i < gesture.length; i++) {
278
- const handler = preparedGesture.config[i];
279
-
280
- handler.config = gesture[i].config;
281
- handler.handlers = gesture[i].handlers;
282
-
283
- const requireToFail = extractValidHandlerTags(
284
- handler.config.requireToFail
285
- );
286
-
287
- const simultaneousWith = extractValidHandlerTags(
288
- handler.config.simultaneousWith
289
- );
290
-
291
- RNGestureHandlerModule.updateGestureHandler(
292
- handler.handlerTag,
293
- filterConfig(handler.config, ALLOWED_PROPS, {
294
- simultaneousHandlers: simultaneousWith,
295
- waitFor: requireToFail,
296
- })
297
- );
298
-
299
- registerHandler(handler.handlerTag, handler, handler.config.testId);
300
- }
301
-
302
- if (preparedGesture.animatedHandlers) {
303
- const previousHandlersValue =
304
- preparedGesture.animatedHandlers.value ?? [];
305
- const newHandlersValue = preparedGesture.config
306
- .filter((g) => g.shouldUseReanimated) // ignore gestures that shouldn't run on UI
307
- .map((g) => g.handlers) as unknown as HandlerCallbacks<
308
- Record<string, unknown>
309
- >[];
310
-
311
- // if amount of gesture configs changes, we need to update the callbacks in shared value
312
- let shouldUpdateSharedValue =
313
- previousHandlersValue.length !== newHandlersValue.length;
314
-
315
- if (!shouldUpdateSharedValue) {
316
- // if the amount is the same, we need to check if any of the configs inside has changed
317
- for (let i = 0; i < newHandlersValue.length; i++) {
318
- if (
319
- // we can use the `gestureId` prop as it's unique for every config instance
320
- newHandlersValue[i].gestureId !== previousHandlersValue[i].gestureId
321
- ) {
322
- shouldUpdateSharedValue = true;
323
- break;
324
- }
325
- }
326
- }
327
-
328
- if (shouldUpdateSharedValue) {
329
- preparedGesture.animatedHandlers.value = newHandlersValue;
330
- }
331
- }
332
-
333
- scheduleFlushOperations();
334
- });
335
- }
336
-
337
- function needsToReattach(
338
- preparedGesture: GestureConfigReference,
339
- gesture: GestureType[]
340
- ) {
341
- if (gesture.length !== preparedGesture.config.length) {
342
- return true;
343
- }
344
- for (let i = 0; i < gesture.length; i++) {
345
- if (
346
- gesture[i].handlerName !== preparedGesture.config[i].handlerName ||
347
- gesture[i].shouldUseReanimated !==
348
- preparedGesture.config[i].shouldUseReanimated
349
- ) {
350
- return true;
351
- }
352
- }
353
-
354
- return false;
355
- }
356
-
357
- function isStateChangeEvent(
358
- event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
359
- ): event is GestureStateChangeEvent {
360
- 'worklet';
361
- // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point
362
- return event.oldState != null;
363
- }
364
-
365
- function isTouchEvent(
366
- event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
367
- ): event is GestureTouchEvent {
368
- 'worklet';
369
- return event.eventType != null;
370
- }
371
-
372
- function getHandler(
373
- type: CALLBACK_TYPE,
374
- gesture: HandlerCallbacks<Record<string, unknown>>
375
- ) {
376
- 'worklet';
377
- switch (type) {
378
- case CALLBACK_TYPE.BEGAN:
379
- return gesture.onBegin;
380
- case CALLBACK_TYPE.START:
381
- return gesture.onStart;
382
- case CALLBACK_TYPE.UPDATE:
383
- return gesture.onUpdate;
384
- case CALLBACK_TYPE.CHANGE:
385
- return gesture.onChange;
386
- case CALLBACK_TYPE.END:
387
- return gesture.onEnd;
388
- case CALLBACK_TYPE.FINALIZE:
389
- return gesture.onFinalize;
390
- case CALLBACK_TYPE.TOUCHES_DOWN:
391
- return gesture.onTouchesDown;
392
- case CALLBACK_TYPE.TOUCHES_MOVE:
393
- return gesture.onTouchesMove;
394
- case CALLBACK_TYPE.TOUCHES_UP:
395
- return gesture.onTouchesUp;
396
- case CALLBACK_TYPE.TOUCHES_CANCELLED:
397
- return gesture.onTouchesCancelled;
398
- }
399
- }
400
-
401
- function touchEventTypeToCallbackType(
402
- eventType: TouchEventType
403
- ): CALLBACK_TYPE {
404
- 'worklet';
405
- switch (eventType) {
406
- case TouchEventType.TOUCHES_DOWN:
407
- return CALLBACK_TYPE.TOUCHES_DOWN;
408
- case TouchEventType.TOUCHES_MOVE:
409
- return CALLBACK_TYPE.TOUCHES_MOVE;
410
- case TouchEventType.TOUCHES_UP:
411
- return CALLBACK_TYPE.TOUCHES_UP;
412
- case TouchEventType.TOUCHES_CANCELLED:
413
- return CALLBACK_TYPE.TOUCHES_CANCELLED;
414
- }
415
- return CALLBACK_TYPE.UNDEFINED;
416
- }
417
-
418
- function runWorklet(
419
- type: CALLBACK_TYPE,
420
- gesture: HandlerCallbacks<Record<string, unknown>>,
421
- event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,
422
- ...args: any[]
423
- ) {
424
- 'worklet';
425
- const handler = getHandler(type, gesture);
426
- if (gesture.isWorklet[type]) {
427
- // @ts-ignore Logic below makes sure the correct event is send to the
428
- // correct handler.
429
- handler?.(event, ...args);
430
- } else if (handler) {
431
- console.warn(tagMessage('Animated gesture callback must be a worklet'));
432
- }
433
- }
434
-
435
- function useAnimatedGesture(
436
- preparedGesture: GestureConfigReference,
437
- needsRebuild: boolean
438
- ) {
439
- if (!Reanimated) {
440
- return;
441
- }
442
-
443
- // Hooks are called conditionally, but the condition is whether the
444
- // react-native-reanimated is installed, which shouldn't change while running
445
- // eslint-disable-next-line react-hooks/rules-of-hooks
446
- const sharedHandlersCallbacks = Reanimated.useSharedValue<
447
- HandlerCallbacks<Record<string, unknown>>[] | null
448
- >(null);
449
-
450
- // eslint-disable-next-line react-hooks/rules-of-hooks
451
- const lastUpdateEvent = Reanimated.useSharedValue<
452
- (GestureUpdateEvent | undefined)[]
453
- >([]);
454
-
455
- // not every gesture needs a state controller, init them lazily
456
- const stateControllers: GestureStateManagerType[] = [];
457
-
458
- const callback = (
459
- event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent
460
- ) => {
461
- 'worklet';
462
-
463
- const currentCallback = sharedHandlersCallbacks.value;
464
- if (!currentCallback) {
465
- return;
466
- }
467
-
468
- for (let i = 0; i < currentCallback.length; i++) {
469
- const gesture = currentCallback[i];
470
-
471
- if (event.handlerTag === gesture.handlerTag) {
472
- if (isStateChangeEvent(event)) {
473
- if (
474
- event.oldState === State.UNDETERMINED &&
475
- event.state === State.BEGAN
476
- ) {
477
- runWorklet(CALLBACK_TYPE.BEGAN, gesture, event);
478
- } else if (
479
- (event.oldState === State.BEGAN ||
480
- event.oldState === State.UNDETERMINED) &&
481
- event.state === State.ACTIVE
482
- ) {
483
- runWorklet(CALLBACK_TYPE.START, gesture, event);
484
- lastUpdateEvent.value[gesture.handlerTag] = undefined;
485
- } else if (
486
- event.oldState !== event.state &&
487
- event.state === State.END
488
- ) {
489
- if (event.oldState === State.ACTIVE) {
490
- runWorklet(CALLBACK_TYPE.END, gesture, event, true);
491
- }
492
- runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, true);
493
- } else if (
494
- (event.state === State.FAILED || event.state === State.CANCELLED) &&
495
- event.state !== event.oldState
496
- ) {
497
- if (event.oldState === State.ACTIVE) {
498
- runWorklet(CALLBACK_TYPE.END, gesture, event, false);
499
- }
500
- runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, false);
501
- }
502
- } else if (isTouchEvent(event)) {
503
- if (!stateControllers[i]) {
504
- stateControllers[i] = GestureStateManager.create(event.handlerTag);
505
- }
506
-
507
- if (event.eventType !== TouchEventType.UNDETERMINED) {
508
- runWorklet(
509
- touchEventTypeToCallbackType(event.eventType),
510
- gesture,
511
- event,
512
- stateControllers[i]
513
- );
514
- }
515
- } else {
516
- runWorklet(CALLBACK_TYPE.UPDATE, gesture, event);
517
-
518
- if (gesture.onChange && gesture.changeEventCalculator) {
519
- runWorklet(
520
- CALLBACK_TYPE.CHANGE,
521
- gesture,
522
- gesture.changeEventCalculator?.(
523
- event,
524
- lastUpdateEvent.value[gesture.handlerTag]
525
- )
526
- );
527
-
528
- lastUpdateEvent.value[gesture.handlerTag] = event;
529
- }
530
- }
531
- }
532
- }
533
- };
534
-
535
- // eslint-disable-next-line react-hooks/rules-of-hooks
536
- const event = Reanimated.useEvent(
537
- callback,
538
- ['onGestureHandlerStateChange', 'onGestureHandlerEvent'],
539
- needsRebuild
540
- );
541
-
542
- preparedGesture.animatedEventHandler = event;
543
- preparedGesture.animatedHandlers = sharedHandlersCallbacks;
544
- }
545
-
546
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
547
- function validateDetectorChildren(ref: any) {
548
- // finds the first native view under the Wrap component and traverses the fiber tree upwards
549
- // to check whether there is more than one native view as a pseudo-direct child of GestureDetector
550
- // i.e. this is not ok:
551
- // Wrap
552
- // |
553
- // / \
554
- // / \
555
- // / \
556
- // / \
557
- // NativeView NativeView
558
- //
559
- // but this is fine:
560
- // Wrap
561
- // |
562
- // NativeView
563
- // |
564
- // / \
565
- // / \
566
- // / \
567
- // / \
568
- // NativeView NativeView
569
- if (__DEV__ && Platform.OS !== 'web') {
570
- const REACT_NATIVE_VERSION = getReactNativeVersion();
571
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
572
- const wrapType =
573
- REACT_NATIVE_VERSION.minor > 63 || REACT_NATIVE_VERSION.major > 0
574
- ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
575
- ref._reactInternals.elementType
576
- : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
577
- ref._reactInternalFiber.elementType;
578
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
579
- let instance =
580
- RNRenderer.findHostInstance_DEPRECATED(
581
- ref
582
- )._internalFiberInstanceHandleDEV;
583
-
584
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
585
- while (instance && instance.elementType !== wrapType) {
586
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
587
- if (instance.sibling) {
588
- throw new Error(
589
- 'GestureDetector has more than one native view as its children. This can happen if you are using a custom component that renders multiple views, like React.Fragment. You should wrap content of GestureDetector with a <View> or <Animated.View>.'
590
- );
591
- }
592
-
593
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
594
- instance = instance.return;
595
- }
596
- }
597
- }
598
-
599
- const applyUserSelectProp = (
600
- userSelect: UserSelect,
601
- gesture: ComposedGesture | GestureType
602
- ): void => {
603
- for (const g of gesture.toGestureArray()) {
604
- g.config.userSelect = userSelect;
605
- }
606
- };
607
-
608
- interface GestureDetectorProps {
609
- gesture: ComposedGesture | GestureType;
610
- userSelect?: UserSelect;
611
- children?: React.ReactNode;
612
- }
613
- interface GestureDetectorState {
614
- firstRender: boolean;
615
- viewRef: React.Component | null;
616
- previousViewTag: number;
617
- forceReattach: boolean;
618
- }
619
- export const GestureDetector = (props: GestureDetectorProps) => {
620
- const rootViewContext = useContext(GestureHandlerRootViewContext);
621
- if (__DEV__ && !rootViewContext && !isJestEnv() && Platform.OS !== 'web') {
622
- throw new Error(
623
- 'GestureDetector 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.'
624
- );
625
- }
626
-
627
- const gestureConfig = props.gesture;
628
-
629
- if (props.userSelect) {
630
- applyUserSelectProp(props.userSelect, gestureConfig);
631
- }
632
-
633
- const gesture = gestureConfig.toGestureArray();
634
- const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);
635
-
636
- // store state in ref to prevent unnecessary renders
637
- const state = useRef<GestureDetectorState>({
638
- firstRender: true,
639
- viewRef: null,
640
- previousViewTag: -1,
641
- forceReattach: false,
642
- }).current;
643
- const mountedRef = useRef(false);
644
- const webEventHandlersRef = useRef<WebEventHandler>({
645
- onGestureHandlerEvent: (e: HandlerStateChangeEvent<unknown>) => {
646
- onGestureHandlerEvent(e.nativeEvent);
647
- },
648
- onGestureHandlerStateChange: isNewWebImplementationEnabled()
649
- ? (e: HandlerStateChangeEvent<unknown>) => {
650
- onGestureHandlerEvent(e.nativeEvent);
651
- }
652
- : undefined,
653
- });
654
-
655
- const [renderState, setRenderState] = useState(false);
656
- function forceRender() {
657
- setRenderState(!renderState);
658
- }
659
-
660
- const preparedGesture = React.useRef<GestureConfigReference>({
661
- config: gesture,
662
- animatedEventHandler: null,
663
- animatedHandlers: null,
664
- firstExecution: true,
665
- useReanimatedHook: useReanimatedHook,
666
- }).current;
667
-
668
- if (useReanimatedHook !== preparedGesture.useReanimatedHook) {
669
- throw new Error(
670
- tagMessage(
671
- 'You cannot change the thread the callbacks are ran on while the app is running'
672
- )
673
- );
674
- }
675
-
676
- function onHandlersUpdate(skipConfigUpdate?: boolean) {
677
- // if the underlying view has changed we need to reattach handlers to the new view
678
- const viewTag = findNodeHandle(state.viewRef) as number;
679
- const forceReattach = viewTag !== state.previousViewTag;
680
-
681
- if (forceReattach || needsToReattach(preparedGesture, gesture)) {
682
- validateDetectorChildren(state.viewRef);
683
- dropHandlers(preparedGesture);
684
- attachHandlers({
685
- preparedGesture,
686
- gestureConfig,
687
- gesture,
688
- webEventHandlersRef,
689
- viewTag,
690
- mountedRef,
691
- });
692
-
693
- state.previousViewTag = viewTag;
694
- state.forceReattach = forceReattach;
695
- if (forceReattach) {
696
- forceRender();
697
- }
698
- } else if (!skipConfigUpdate) {
699
- updateHandlers(preparedGesture, gestureConfig, gesture, mountedRef);
700
- }
701
- }
702
-
703
- // Reanimated event should be rebuilt only when gestures are reattached, otherwise
704
- // config update will be enough as all necessary items are stored in shared values anyway
705
- const needsToRebuildReanimatedEvent =
706
- preparedGesture.firstExecution ||
707
- needsToReattach(preparedGesture, gesture) ||
708
- state.forceReattach;
709
-
710
- state.forceReattach = false;
711
-
712
- if (preparedGesture.firstExecution) {
713
- gestureConfig.initialize();
714
- }
715
-
716
- if (useReanimatedHook) {
717
- // Whether animatedGesture or gesture is used shouldn't change while the app is running
718
- // eslint-disable-next-line react-hooks/rules-of-hooks
719
- useAnimatedGesture(preparedGesture, needsToRebuildReanimatedEvent);
720
- }
721
-
722
- useEffect(() => {
723
- const viewTag = findNodeHandle(state.viewRef) as number;
724
- state.firstRender = true;
725
- mountedRef.current = true;
726
-
727
- validateDetectorChildren(state.viewRef);
728
-
729
- attachHandlers({
730
- preparedGesture,
731
- gestureConfig,
732
- gesture,
733
- webEventHandlersRef,
734
- viewTag,
735
- mountedRef,
736
- });
737
-
738
- return () => {
739
- mountedRef.current = false;
740
- dropHandlers(preparedGesture);
741
- };
742
- }, []);
743
-
744
- useEffect(() => {
745
- if (!state.firstRender) {
746
- onHandlersUpdate();
747
- } else {
748
- state.firstRender = false;
749
- }
750
- }, [props]);
751
-
752
- const refFunction = (ref: unknown) => {
753
- if (ref !== null) {
754
- // @ts-ignore Just setting the view ref
755
- state.viewRef = ref;
756
-
757
- // if it's the first render, also set the previousViewTag to prevent reattaching gestures when not needed
758
- if (state.previousViewTag === -1) {
759
- state.previousViewTag = findNodeHandle(state.viewRef) as number;
760
- }
761
-
762
- // pass true as `skipConfigUpdate`, here we only want to trigger the eventual reattaching of handlers
763
- // in case the view has changed, while config update would be handled be the `useEffect` above
764
- onHandlersUpdate(true);
765
-
766
- if (isFabric()) {
767
- const node = getShadowNodeFromRef(ref);
768
- if (global.isFormsStackingContext(node) === false) {
769
- console.error(
770
- tagMessage(
771
- 'GestureDetector has received a child that may get view-flattened. ' +
772
- '\nTo prevent it from misbehaving you need to wrap the child with a `<View collapsable={false}>`.'
773
- )
774
- );
775
- }
776
- }
777
- }
778
- };
779
-
780
- if (useReanimatedHook) {
781
- return (
782
- <AnimatedWrap
783
- ref={refFunction}
784
- onGestureHandlerEvent={preparedGesture.animatedEventHandler}>
785
- {props.children}
786
- </AnimatedWrap>
787
- );
788
- } else {
789
- return <Wrap ref={refFunction}>{props.children}</Wrap>;
790
- }
791
- };
792
-
793
- class Wrap extends React.Component<{
794
- onGestureHandlerEvent?: unknown;
795
- // implicit `children` prop has been removed in @types/react^18.0.0
796
- children?: React.ReactNode;
797
- }> {
798
- render() {
799
- try {
800
- // I don't think that fighting with types over such a simple function is worth it
801
- // The only thing it does is add 'collapsable: false' to the child component
802
- // to make sure it is in the native view hierarchy so the detector can find
803
- // correct viewTag to attach to.
804
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
805
- const child: any = React.Children.only(this.props.children);
806
- return React.cloneElement(
807
- child,
808
- { collapsable: false },
809
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
810
- child.props.children
811
- );
812
- } catch (e) {
813
- throw new Error(
814
- tagMessage(
815
- `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.`
816
- )
817
- );
818
- }
819
- }
820
- }
821
-
822
- const AnimatedWrap = Reanimated?.default?.createAnimatedComponent(Wrap) ?? Wrap;
1
+ /**
2
+ * Why is this file patched?
3
+ * - replacing import to RNGestureHandlerModule - original code uses (old) Native Modules but RNOH supports only Turbo Modules
4
+ */
5
+
6
+ import React, { useContext, useEffect, useRef, useState } from 'react';
7
+ import {
8
+ GestureType,
9
+ HandlerCallbacks,
10
+ BaseGesture,
11
+ GestureRef,
12
+ CALLBACK_TYPE,
13
+ } from 'react-native-gesture-handler/src/handlers/gestures/gesture';
14
+ import { Reanimated, SharedValue } from 'react-native-gesture-handler/src/handlers/gestures/reanimatedWrapper';
15
+ import { registerHandler, unregisterHandler } from 'react-native-gesture-handler/src/handlers/handlersRegistry';
16
+ import { RNGestureHandlerModule } from '../../RNGestureHandlerModule'; // RNGH: patch
17
+ import {
18
+ baseGestureHandlerWithMonitorProps,
19
+ filterConfig,
20
+ findNodeHandle,
21
+ GestureTouchEvent,
22
+ GestureUpdateEvent,
23
+ GestureStateChangeEvent,
24
+ HandlerStateChangeEvent,
25
+ UserSelect,
26
+ } from 'react-native-gesture-handler/src/handlers/gestureHandlerCommon';
27
+ import {
28
+ scheduleFlushOperations,
29
+ } from '../gestureHandlerCommon'; // RNGH: patch
30
+ import {
31
+ GestureStateManager,
32
+ GestureStateManagerType,
33
+ } from 'react-native-gesture-handler/src/handlers/gestures/gestureStateManager';
34
+ import { flingGestureHandlerProps } from 'react-native-gesture-handler/src/handlers/FlingGestureHandler';
35
+ import { forceTouchGestureHandlerProps } from 'react-native-gesture-handler/src/handlers/ForceTouchGestureHandler';
36
+ import { longPressGestureHandlerProps } from 'react-native-gesture-handler/src/handlers/LongPressGestureHandler';
37
+ import {
38
+ panGestureHandlerProps,
39
+ panGestureHandlerCustomNativeProps,
40
+ } from 'react-native-gesture-handler/src/handlers/PanGestureHandler';
41
+ import { tapGestureHandlerProps } from 'react-native-gesture-handler/src/handlers/TapGestureHandler';
42
+ import { State } from 'react-native-gesture-handler/src/State';
43
+ import { TouchEventType } from 'react-native-gesture-handler/src/TouchEventType';
44
+ import { ComposedGesture } from 'react-native-gesture-handler/src/handlers/gestures/gestureComposition';
45
+ import { ActionType } from 'react-native-gesture-handler/src/ActionType';
46
+ import {
47
+ isFabric,
48
+ isJestEnv,
49
+ REACT_NATIVE_VERSION,
50
+ tagMessage,
51
+ } from 'react-native-gesture-handler/src/utils';
52
+ import { getShadowNodeFromRef } from 'react-native-gesture-handler/src/getShadowNodeFromRef';
53
+ import { Platform } from 'react-native';
54
+ import type RNGestureHandlerModuleWeb from 'react-native-gesture-handler/src/RNGestureHandlerModule.web';
55
+ import { onGestureHandlerEvent } from 'react-native-gesture-handler/src/handlers/gestures/eventReceiver';
56
+ import { RNRenderer } from 'react-native-gesture-handler/src/RNRenderer';
57
+ import { isNewWebImplementationEnabled } from 'react-native-gesture-handler/src/EnableNewWebImplementation';
58
+ import { nativeViewGestureHandlerProps } from 'react-native-gesture-handler/src/handlers/NativeViewGestureHandler';
59
+ import GestureHandlerRootViewContext from 'react-native-gesture-handler/src/GestureHandlerRootViewContext';
60
+
61
+ declare const global: {
62
+ isFormsStackingContext: (node: unknown) => boolean | null; // JSI function
63
+ };
64
+
65
+ const ALLOWED_PROPS = [
66
+ ...baseGestureHandlerWithMonitorProps,
67
+ ...tapGestureHandlerProps,
68
+ ...panGestureHandlerProps,
69
+ ...panGestureHandlerCustomNativeProps,
70
+ ...longPressGestureHandlerProps,
71
+ ...forceTouchGestureHandlerProps,
72
+ ...flingGestureHandlerProps,
73
+ ...nativeViewGestureHandlerProps,
74
+ ];
75
+
76
+ export type GestureConfigReference = {
77
+ config: GestureType[];
78
+ animatedEventHandler: unknown;
79
+ animatedHandlers: SharedValue<
80
+ HandlerCallbacks<Record<string, unknown>>[] | null
81
+ > | null;
82
+ firstExecution: boolean;
83
+ useReanimatedHook: boolean;
84
+ };
85
+
86
+ function convertToHandlerTag(ref: GestureRef): number {
87
+ if (typeof ref === 'number') {
88
+ return ref;
89
+ } else if (ref instanceof BaseGesture) {
90
+ return ref.handlerTag;
91
+ } else {
92
+ // @ts-ignore in this case it should be a ref either to gesture object or
93
+ // a gesture handler component, in both cases handlerTag property exists
94
+ return ref.current?.handlerTag ?? -1;
95
+ }
96
+ }
97
+
98
+ function extractValidHandlerTags(interactionGroup: GestureRef[] | undefined) {
99
+ return (
100
+ interactionGroup?.map(convertToHandlerTag)?.filter((tag) => tag > 0) ?? []
101
+ );
102
+ }
103
+
104
+ function dropHandlers(preparedGesture: GestureConfigReference) {
105
+ for (const handler of preparedGesture.config) {
106
+ RNGestureHandlerModule.dropGestureHandler(handler.handlerTag);
107
+
108
+ unregisterHandler(handler.handlerTag, handler.config.testId);
109
+ }
110
+
111
+ scheduleFlushOperations();
112
+ }
113
+
114
+ function checkGestureCallbacksForWorklets(gesture: GestureType) {
115
+ // if a gesture is explicitly marked to run on the JS thread there is no need to check
116
+ // if callbacks are worklets as the user is aware they will be ran on the JS thread
117
+ if (gesture.config.runOnJS) {
118
+ return;
119
+ }
120
+
121
+ const areSomeNotWorklets = gesture.handlers.isWorklet.includes(false);
122
+ const areSomeWorklets = gesture.handlers.isWorklet.includes(true);
123
+
124
+ // if some of the callbacks are worklets and some are not, and the gesture is not
125
+ // explicitly marked with `.runOnJS(true)` show an error
126
+ if (areSomeNotWorklets && areSomeWorklets) {
127
+ console.error(
128
+ tagMessage(
129
+ `Some of the callbacks in the gesture are worklets and some are not. Either make sure that all calbacks are marked as 'worklet' if you wish to run them on the UI thread or use '.runOnJS(true)' modifier on the gesture explicitly to run all callbacks on the JS thread.`
130
+ )
131
+ );
132
+ }
133
+ }
134
+
135
+ interface WebEventHandler {
136
+ onGestureHandlerEvent: (event: HandlerStateChangeEvent<unknown>) => void;
137
+ onGestureHandlerStateChange?: (
138
+ event: HandlerStateChangeEvent<unknown>
139
+ ) => void;
140
+ }
141
+
142
+ interface AttachHandlersConfig {
143
+ preparedGesture: GestureConfigReference;
144
+ gestureConfig: ComposedGesture | GestureType;
145
+ gesture: GestureType[];
146
+ viewTag: number;
147
+ webEventHandlersRef: React.RefObject<WebEventHandler>;
148
+ mountedRef: React.RefObject<boolean>;
149
+ }
150
+
151
+ function attachHandlers({
152
+ preparedGesture,
153
+ gestureConfig,
154
+ gesture,
155
+ viewTag,
156
+ webEventHandlersRef,
157
+ mountedRef,
158
+ }: AttachHandlersConfig) {
159
+ if (!preparedGesture.firstExecution) {
160
+ gestureConfig.initialize();
161
+ } else {
162
+ preparedGesture.firstExecution = false;
163
+ }
164
+
165
+ // use queueMicrotask to extract handlerTags, because all refs should be initialized
166
+ // when it's ran
167
+ queueMicrotask(() => {
168
+ if (!mountedRef.current) {
169
+ return;
170
+ }
171
+ gestureConfig.prepare();
172
+ });
173
+
174
+ for (const handler of gesture) {
175
+ checkGestureCallbacksForWorklets(handler);
176
+ RNGestureHandlerModule.createGestureHandler(
177
+ handler.handlerName,
178
+ handler.handlerTag,
179
+ filterConfig(handler.config, ALLOWED_PROPS)
180
+ );
181
+
182
+ registerHandler(handler.handlerTag, handler, handler.config.testId);
183
+ }
184
+
185
+ // use queueMicrotask to extract handlerTags, because all refs should be initialized
186
+ // when it's ran
187
+ queueMicrotask(() => {
188
+ if (!mountedRef.current) {
189
+ return;
190
+ }
191
+ for (const handler of gesture) {
192
+ let requireToFail: number[] = [];
193
+ if (handler.config.requireToFail) {
194
+ requireToFail = extractValidHandlerTags(handler.config.requireToFail);
195
+ }
196
+
197
+ let simultaneousWith: number[] = [];
198
+ if (handler.config.simultaneousWith) {
199
+ simultaneousWith = extractValidHandlerTags(
200
+ handler.config.simultaneousWith
201
+ );
202
+ }
203
+
204
+ RNGestureHandlerModule.updateGestureHandler(
205
+ handler.handlerTag,
206
+ filterConfig(handler.config, ALLOWED_PROPS, {
207
+ simultaneousHandlers: simultaneousWith,
208
+ waitFor: requireToFail,
209
+ })
210
+ );
211
+ }
212
+
213
+ scheduleFlushOperations();
214
+ });
215
+
216
+ preparedGesture.config = gesture;
217
+
218
+ for (const gesture of preparedGesture.config) {
219
+ const actionType = gesture.shouldUseReanimated
220
+ ? ActionType.REANIMATED_WORKLET
221
+ : ActionType.JS_FUNCTION_NEW_API;
222
+
223
+ if (Platform.OS === 'web') {
224
+ (
225
+ RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler
226
+ )(
227
+ gesture.handlerTag,
228
+ viewTag,
229
+ ActionType.JS_FUNCTION_OLD_API, // ignored on web
230
+ webEventHandlersRef
231
+ );
232
+ } else {
233
+ RNGestureHandlerModule.attachGestureHandler(
234
+ gesture.handlerTag,
235
+ viewTag,
236
+ actionType
237
+ );
238
+ }
239
+ }
240
+
241
+ if (preparedGesture.animatedHandlers) {
242
+ const isAnimatedGesture = (g: GestureType) => g.shouldUseReanimated;
243
+
244
+ preparedGesture.animatedHandlers.value = gesture
245
+ .filter(isAnimatedGesture)
246
+ .map((g) => g.handlers) as unknown as HandlerCallbacks<
247
+ Record<string, unknown>
248
+ >[];
249
+ }
250
+ }
251
+
252
+ function updateHandlers(
253
+ preparedGesture: GestureConfigReference,
254
+ gestureConfig: ComposedGesture | GestureType,
255
+ gesture: GestureType[],
256
+ mountedRef: React.RefObject<boolean>
257
+ ) {
258
+ gestureConfig.prepare();
259
+
260
+ for (let i = 0; i < gesture.length; i++) {
261
+ const handler = preparedGesture.config[i];
262
+ checkGestureCallbacksForWorklets(handler);
263
+
264
+ // only update handlerTag when it's actually different, it may be the same
265
+ // if gesture config object is wrapped with useMemo
266
+ if (gesture[i].handlerTag !== handler.handlerTag) {
267
+ gesture[i].handlerTag = handler.handlerTag;
268
+ gesture[i].handlers.handlerTag = handler.handlerTag;
269
+ }
270
+ }
271
+
272
+ // use queueMicrotask to extract handlerTags, because when it's ran, all refs should be updated
273
+ // and handlerTags in BaseGesture references should be updated in the loop above (we need to wait
274
+ // in case of external relations)
275
+ queueMicrotask(() => {
276
+ if (!mountedRef.current) {
277
+ return;
278
+ }
279
+ for (let i = 0; i < gesture.length; i++) {
280
+ const handler = preparedGesture.config[i];
281
+
282
+ handler.config = gesture[i].config;
283
+ handler.handlers = gesture[i].handlers;
284
+
285
+ const requireToFail = extractValidHandlerTags(
286
+ handler.config.requireToFail
287
+ );
288
+
289
+ const simultaneousWith = extractValidHandlerTags(
290
+ handler.config.simultaneousWith
291
+ );
292
+
293
+ RNGestureHandlerModule.updateGestureHandler(
294
+ handler.handlerTag,
295
+ filterConfig(handler.config, ALLOWED_PROPS, {
296
+ simultaneousHandlers: simultaneousWith,
297
+ waitFor: requireToFail,
298
+ })
299
+ );
300
+
301
+ registerHandler(handler.handlerTag, handler, handler.config.testId);
302
+ }
303
+
304
+ if (preparedGesture.animatedHandlers) {
305
+ const previousHandlersValue =
306
+ preparedGesture.animatedHandlers.value ?? [];
307
+ const newHandlersValue = preparedGesture.config
308
+ .filter((g) => g.shouldUseReanimated) // ignore gestures that shouldn't run on UI
309
+ .map((g) => g.handlers) as unknown as HandlerCallbacks<
310
+ Record<string, unknown>
311
+ >[];
312
+
313
+ // if amount of gesture configs changes, we need to update the callbacks in shared value
314
+ let shouldUpdateSharedValue =
315
+ previousHandlersValue.length !== newHandlersValue.length;
316
+
317
+ if (!shouldUpdateSharedValue) {
318
+ // if the amount is the same, we need to check if any of the configs inside has changed
319
+ for (let i = 0; i < newHandlersValue.length; i++) {
320
+ if (
321
+ // we can use the `gestureId` prop as it's unique for every config instance
322
+ newHandlersValue[i].gestureId !== previousHandlersValue[i].gestureId
323
+ ) {
324
+ shouldUpdateSharedValue = true;
325
+ break;
326
+ }
327
+ }
328
+ }
329
+
330
+ if (shouldUpdateSharedValue) {
331
+ preparedGesture.animatedHandlers.value = newHandlersValue;
332
+ }
333
+ }
334
+
335
+ scheduleFlushOperations();
336
+ });
337
+ }
338
+
339
+ function needsToReattach(
340
+ preparedGesture: GestureConfigReference,
341
+ gesture: GestureType[]
342
+ ) {
343
+ if (gesture.length !== preparedGesture.config.length) {
344
+ return true;
345
+ }
346
+ for (let i = 0; i < gesture.length; i++) {
347
+ if (
348
+ gesture[i].handlerName !== preparedGesture.config[i].handlerName ||
349
+ gesture[i].shouldUseReanimated !==
350
+ preparedGesture.config[i].shouldUseReanimated
351
+ ) {
352
+ return true;
353
+ }
354
+ }
355
+
356
+ return false;
357
+ }
358
+
359
+ function isStateChangeEvent(
360
+ event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
361
+ ): event is GestureStateChangeEvent {
362
+ 'worklet';
363
+ // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point
364
+ return event.oldState != null;
365
+ }
366
+
367
+ function isTouchEvent(
368
+ event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent
369
+ ): event is GestureTouchEvent {
370
+ 'worklet';
371
+ return event.eventType != null;
372
+ }
373
+
374
+ function getHandler(
375
+ type: CALLBACK_TYPE,
376
+ gesture: HandlerCallbacks<Record<string, unknown>>
377
+ ) {
378
+ 'worklet';
379
+ switch (type) {
380
+ case CALLBACK_TYPE.BEGAN:
381
+ return gesture.onBegin;
382
+ case CALLBACK_TYPE.START:
383
+ return gesture.onStart;
384
+ case CALLBACK_TYPE.UPDATE:
385
+ return gesture.onUpdate;
386
+ case CALLBACK_TYPE.CHANGE:
387
+ return gesture.onChange;
388
+ case CALLBACK_TYPE.END:
389
+ return gesture.onEnd;
390
+ case CALLBACK_TYPE.FINALIZE:
391
+ return gesture.onFinalize;
392
+ case CALLBACK_TYPE.TOUCHES_DOWN:
393
+ return gesture.onTouchesDown;
394
+ case CALLBACK_TYPE.TOUCHES_MOVE:
395
+ return gesture.onTouchesMove;
396
+ case CALLBACK_TYPE.TOUCHES_UP:
397
+ return gesture.onTouchesUp;
398
+ case CALLBACK_TYPE.TOUCHES_CANCELLED:
399
+ return gesture.onTouchesCancelled;
400
+ }
401
+ }
402
+
403
+ function touchEventTypeToCallbackType(
404
+ eventType: TouchEventType
405
+ ): CALLBACK_TYPE {
406
+ 'worklet';
407
+ switch (eventType) {
408
+ case TouchEventType.TOUCHES_DOWN:
409
+ return CALLBACK_TYPE.TOUCHES_DOWN;
410
+ case TouchEventType.TOUCHES_MOVE:
411
+ return CALLBACK_TYPE.TOUCHES_MOVE;
412
+ case TouchEventType.TOUCHES_UP:
413
+ return CALLBACK_TYPE.TOUCHES_UP;
414
+ case TouchEventType.TOUCHES_CANCELLED:
415
+ return CALLBACK_TYPE.TOUCHES_CANCELLED;
416
+ }
417
+ return CALLBACK_TYPE.UNDEFINED;
418
+ }
419
+
420
+ function runWorklet(
421
+ type: CALLBACK_TYPE,
422
+ gesture: HandlerCallbacks<Record<string, unknown>>,
423
+ event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,
424
+ ...args: any[]
425
+ ) {
426
+ 'worklet';
427
+ const handler = getHandler(type, gesture);
428
+ if (gesture.isWorklet[type]) {
429
+ // @ts-ignore Logic below makes sure the correct event is send to the
430
+ // correct handler.
431
+ handler?.(event, ...args);
432
+ } else if (handler) {
433
+ console.warn(tagMessage('Animated gesture callback must be a worklet'));
434
+ }
435
+ }
436
+
437
+ function useAnimatedGesture(
438
+ preparedGesture: GestureConfigReference,
439
+ needsRebuild: boolean
440
+ ) {
441
+ if (!Reanimated) {
442
+ return;
443
+ }
444
+
445
+ // Hooks are called conditionally, but the condition is whether the
446
+ // react-native-reanimated is installed, which shouldn't change while running
447
+ // eslint-disable-next-line react-hooks/rules-of-hooks
448
+ const sharedHandlersCallbacks = Reanimated.useSharedValue<
449
+ HandlerCallbacks<Record<string, unknown>>[] | null
450
+ >(null);
451
+
452
+ // eslint-disable-next-line react-hooks/rules-of-hooks
453
+ const lastUpdateEvent = Reanimated.useSharedValue<
454
+ (GestureUpdateEvent | undefined)[]
455
+ >([]);
456
+
457
+ // not every gesture needs a state controller, init them lazily
458
+ const stateControllers: GestureStateManagerType[] = [];
459
+
460
+ const callback = (
461
+ event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent
462
+ ) => {
463
+ 'worklet';
464
+
465
+ const currentCallback = sharedHandlersCallbacks.value;
466
+ if (!currentCallback) {
467
+ return;
468
+ }
469
+
470
+ for (let i = 0; i < currentCallback.length; i++) {
471
+ const gesture = currentCallback[i];
472
+
473
+ if (event.handlerTag === gesture.handlerTag) {
474
+ if (isStateChangeEvent(event)) {
475
+ if (
476
+ event.oldState === State.UNDETERMINED &&
477
+ event.state === State.BEGAN
478
+ ) {
479
+ runWorklet(CALLBACK_TYPE.BEGAN, gesture, event);
480
+ } else if (
481
+ (event.oldState === State.BEGAN ||
482
+ event.oldState === State.UNDETERMINED) &&
483
+ event.state === State.ACTIVE
484
+ ) {
485
+ runWorklet(CALLBACK_TYPE.START, gesture, event);
486
+ lastUpdateEvent.value[gesture.handlerTag] = undefined;
487
+ } else if (
488
+ event.oldState !== event.state &&
489
+ event.state === State.END
490
+ ) {
491
+ if (event.oldState === State.ACTIVE) {
492
+ runWorklet(CALLBACK_TYPE.END, gesture, event, true);
493
+ }
494
+ runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, true);
495
+ } else if (
496
+ (event.state === State.FAILED || event.state === State.CANCELLED) &&
497
+ event.state !== event.oldState
498
+ ) {
499
+ if (event.oldState === State.ACTIVE) {
500
+ runWorklet(CALLBACK_TYPE.END, gesture, event, false);
501
+ }
502
+ runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, false);
503
+ }
504
+ } else if (isTouchEvent(event)) {
505
+ if (!stateControllers[i]) {
506
+ stateControllers[i] = GestureStateManager.create(event.handlerTag);
507
+ }
508
+
509
+ if (event.eventType !== TouchEventType.UNDETERMINED) {
510
+ runWorklet(
511
+ touchEventTypeToCallbackType(event.eventType),
512
+ gesture,
513
+ event,
514
+ stateControllers[i]
515
+ );
516
+ }
517
+ } else {
518
+ runWorklet(CALLBACK_TYPE.UPDATE, gesture, event);
519
+
520
+ if (gesture.onChange && gesture.changeEventCalculator) {
521
+ runWorklet(
522
+ CALLBACK_TYPE.CHANGE,
523
+ gesture,
524
+ gesture.changeEventCalculator?.(
525
+ event,
526
+ lastUpdateEvent.value[gesture.handlerTag]
527
+ )
528
+ );
529
+
530
+ lastUpdateEvent.value[gesture.handlerTag] = event;
531
+ }
532
+ }
533
+ }
534
+ }
535
+ };
536
+
537
+ // eslint-disable-next-line react-hooks/rules-of-hooks
538
+ const event = Reanimated.useEvent(
539
+ callback,
540
+ ['onGestureHandlerStateChange', 'onGestureHandlerEvent'],
541
+ needsRebuild
542
+ );
543
+
544
+ preparedGesture.animatedEventHandler = event;
545
+ preparedGesture.animatedHandlers = sharedHandlersCallbacks;
546
+ }
547
+
548
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
549
+ function validateDetectorChildren(ref: any) {
550
+ // finds the first native view under the Wrap component and traverses the fiber tree upwards
551
+ // to check whether there is more than one native view as a pseudo-direct child of GestureDetector
552
+ // i.e. this is not ok:
553
+ // Wrap
554
+ // |
555
+ // / \
556
+ // / \
557
+ // / \
558
+ // / \
559
+ // NativeView NativeView
560
+ //
561
+ // but this is fine:
562
+ // Wrap
563
+ // |
564
+ // NativeView
565
+ // |
566
+ // / \
567
+ // / \
568
+ // / \
569
+ // / \
570
+ // NativeView NativeView
571
+ if (__DEV__ && Platform.OS !== 'web') {
572
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
573
+ const wrapType =
574
+ REACT_NATIVE_VERSION.minor > 63 || REACT_NATIVE_VERSION.major > 0
575
+ ? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
576
+ ref._reactInternals.elementType
577
+ : // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
578
+ ref._reactInternalFiber.elementType;
579
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
580
+ let instance =
581
+ RNRenderer.findHostInstance_DEPRECATED(
582
+ ref
583
+ )._internalFiberInstanceHandleDEV;
584
+
585
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
586
+ while (instance && instance.elementType !== wrapType) {
587
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
588
+ if (instance.sibling) {
589
+ throw new Error(
590
+ 'GestureDetector has more than one native view as its children. This can happen if you are using a custom component that renders multiple views, like React.Fragment. You should wrap content of GestureDetector with a <View> or <Animated.View>.'
591
+ );
592
+ }
593
+
594
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
595
+ instance = instance.return;
596
+ }
597
+ }
598
+ }
599
+
600
+ const applyUserSelectProp = (
601
+ userSelect: UserSelect,
602
+ gesture: ComposedGesture | GestureType
603
+ ): void => {
604
+ for (const g of gesture.toGestureArray()) {
605
+ g.config.userSelect = userSelect;
606
+ }
607
+ };
608
+
609
+ interface GestureDetectorProps {
610
+ gesture: ComposedGesture | GestureType;
611
+ userSelect?: UserSelect;
612
+ children?: React.ReactNode;
613
+ }
614
+ interface GestureDetectorState {
615
+ firstRender: boolean;
616
+ viewRef: React.Component | null;
617
+ previousViewTag: number;
618
+ forceReattach: boolean;
619
+ }
620
+ export const GestureDetector = (props: GestureDetectorProps) => {
621
+ const rootViewContext = useContext(GestureHandlerRootViewContext);
622
+ if (__DEV__ && !rootViewContext && !isJestEnv() && Platform.OS !== 'web' && (Platform.OS as any) !== "harmony") { // RNOH: patch
623
+ throw new Error(
624
+ 'GestureDetector 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.'
625
+ );
626
+ }
627
+
628
+ const gestureConfig = props.gesture;
629
+
630
+ if (props.userSelect) {
631
+ applyUserSelectProp(props.userSelect, gestureConfig);
632
+ }
633
+
634
+ const gesture = gestureConfig.toGestureArray();
635
+ const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);
636
+
637
+ // store state in ref to prevent unnecessary renders
638
+ const state = useRef<GestureDetectorState>({
639
+ firstRender: true,
640
+ viewRef: null,
641
+ previousViewTag: -1,
642
+ forceReattach: false,
643
+ }).current;
644
+ const mountedRef = useRef(false);
645
+ const webEventHandlersRef = useRef<WebEventHandler>({
646
+ onGestureHandlerEvent: (e: HandlerStateChangeEvent<unknown>) => {
647
+ onGestureHandlerEvent(e.nativeEvent);
648
+ },
649
+ onGestureHandlerStateChange: isNewWebImplementationEnabled()
650
+ ? (e: HandlerStateChangeEvent<unknown>) => {
651
+ onGestureHandlerEvent(e.nativeEvent);
652
+ }
653
+ : undefined,
654
+ });
655
+
656
+ const [renderState, setRenderState] = useState(false);
657
+ function forceRender() {
658
+ setRenderState(!renderState);
659
+ }
660
+
661
+ const preparedGesture = React.useRef<GestureConfigReference>({
662
+ config: gesture,
663
+ animatedEventHandler: null,
664
+ animatedHandlers: null,
665
+ firstExecution: true,
666
+ useReanimatedHook: useReanimatedHook,
667
+ }).current;
668
+
669
+ if (useReanimatedHook !== preparedGesture.useReanimatedHook) {
670
+ throw new Error(
671
+ tagMessage(
672
+ 'You cannot change the thread the callbacks are ran on while the app is running'
673
+ )
674
+ );
675
+ }
676
+
677
+ function onHandlersUpdate(skipConfigUpdate?: boolean) {
678
+ // if the underlying view has changed we need to reattach handlers to the new view
679
+ const viewTag = findNodeHandle(state.viewRef) as number;
680
+ const forceReattach = viewTag !== state.previousViewTag;
681
+
682
+ if (forceReattach || needsToReattach(preparedGesture, gesture)) {
683
+ validateDetectorChildren(state.viewRef);
684
+ dropHandlers(preparedGesture);
685
+ attachHandlers({
686
+ preparedGesture,
687
+ gestureConfig,
688
+ gesture,
689
+ webEventHandlersRef,
690
+ viewTag,
691
+ mountedRef,
692
+ });
693
+
694
+ state.previousViewTag = viewTag;
695
+ state.forceReattach = forceReattach;
696
+ if (forceReattach) {
697
+ forceRender();
698
+ }
699
+ } else if (!skipConfigUpdate) {
700
+ updateHandlers(preparedGesture, gestureConfig, gesture, mountedRef);
701
+ }
702
+ }
703
+
704
+ // Reanimated event should be rebuilt only when gestures are reattached, otherwise
705
+ // config update will be enough as all necessary items are stored in shared values anyway
706
+ const needsToRebuildReanimatedEvent =
707
+ preparedGesture.firstExecution ||
708
+ needsToReattach(preparedGesture, gesture) ||
709
+ state.forceReattach;
710
+
711
+ state.forceReattach = false;
712
+
713
+ if (preparedGesture.firstExecution) {
714
+ gestureConfig.initialize();
715
+ }
716
+
717
+ if (useReanimatedHook) {
718
+ // Whether animatedGesture or gesture is used shouldn't change while the app is running
719
+ // eslint-disable-next-line react-hooks/rules-of-hooks
720
+ useAnimatedGesture(preparedGesture, needsToRebuildReanimatedEvent);
721
+ }
722
+
723
+ useEffect(() => {
724
+ const viewTag = findNodeHandle(state.viewRef) as number;
725
+ state.firstRender = true;
726
+ mountedRef.current = true;
727
+
728
+ validateDetectorChildren(state.viewRef);
729
+
730
+ attachHandlers({
731
+ preparedGesture,
732
+ gestureConfig,
733
+ gesture,
734
+ webEventHandlersRef,
735
+ viewTag,
736
+ mountedRef,
737
+ });
738
+
739
+ return () => {
740
+ mountedRef.current = false;
741
+ dropHandlers(preparedGesture);
742
+ };
743
+ }, []);
744
+
745
+ useEffect(() => {
746
+ if (!state.firstRender) {
747
+ onHandlersUpdate();
748
+ } else {
749
+ state.firstRender = false;
750
+ }
751
+ }, [props]);
752
+
753
+ const refFunction = (ref: unknown) => {
754
+ if (ref !== null) {
755
+ // @ts-ignore Just setting the view ref
756
+ state.viewRef = ref;
757
+
758
+ // if it's the first render, also set the previousViewTag to prevent reattaching gestures when not needed
759
+ if (state.previousViewTag === -1) {
760
+ state.previousViewTag = findNodeHandle(state.viewRef) as number;
761
+ }
762
+
763
+ // pass true as `skipConfigUpdate`, here we only want to trigger the eventual reattaching of handlers
764
+ // in case the view has changed, while config update would be handled be the `useEffect` above
765
+ onHandlersUpdate(true);
766
+
767
+ if (isFabric()) {
768
+ const node = getShadowNodeFromRef(ref);
769
+ if (global.isFormsStackingContext(node) === false) {
770
+ console.error(
771
+ tagMessage(
772
+ 'GestureDetector has received a child that may get view-flattened. ' +
773
+ '\nTo prevent it from misbehaving you need to wrap the child with a `<View collapsable={false}>`.'
774
+ )
775
+ );
776
+ }
777
+ }
778
+ }
779
+ };
780
+
781
+ if (useReanimatedHook) {
782
+ return (
783
+ <AnimatedWrap
784
+ ref={refFunction}
785
+ onGestureHandlerEvent={preparedGesture.animatedEventHandler}>
786
+ {props.children}
787
+ </AnimatedWrap>
788
+ );
789
+ } else {
790
+ return <Wrap ref={refFunction}>{props.children}</Wrap>;
791
+ }
792
+ };
793
+
794
+ class Wrap extends React.Component<{
795
+ onGestureHandlerEvent?: unknown;
796
+ // implicit `children` prop has been removed in @types/react^18.0.0
797
+ children?: React.ReactNode;
798
+ }> {
799
+ render() {
800
+ try {
801
+ // I don't think that fighting with types over such a simple function is worth it
802
+ // The only thing it does is add 'collapsable: false' to the child component
803
+ // to make sure it is in the native view hierarchy so the detector can find
804
+ // correct viewTag to attach to.
805
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
806
+ const child: any = React.Children.only(this.props.children);
807
+ return React.cloneElement(
808
+ child,
809
+ { collapsable: false },
810
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
811
+ child.props.children
812
+ );
813
+ } catch (e) {
814
+ throw new Error(
815
+ tagMessage(
816
+ `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.`
817
+ )
818
+ );
819
+ }
820
+ }
821
+ }
822
+
823
+ const AnimatedWrap = Reanimated?.default?.createAnimatedComponent(Wrap) ?? Wrap;