react-native-gesture-handler 1.10.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. package/DrawerLayout/package.json +3 -3
  2. package/README.md +7 -6
  3. package/Swipeable/package.json +3 -3
  4. package/android/build.gradle +48 -1
  5. package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
  6. package/android/gradle.properties +19 -0
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
  10. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +713 -0
  11. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
  12. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +562 -0
  13. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
  14. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
  15. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
  16. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
  17. package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
  18. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
  20. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +289 -0
  21. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +88 -0
  22. package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
  23. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
  24. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +79 -0
  25. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
  26. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -0
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +348 -0
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +57 -0
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +59 -0
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +8 -0
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +61 -0
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +686 -0
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.kt +17 -0
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +95 -0
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +132 -0
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +5 -0
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +68 -0
  38. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +34 -0
  39. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +66 -0
  40. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +69 -0
  41. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +51 -0
  42. package/ios/Handlers/RNFlingHandler.m +78 -5
  43. package/ios/Handlers/RNForceTouchHandler.m +29 -4
  44. package/ios/Handlers/RNLongPressHandler.m +105 -3
  45. package/ios/Handlers/RNManualHandler.h +4 -0
  46. package/ios/Handlers/RNManualHandler.m +73 -0
  47. package/ios/Handlers/RNNativeViewHandler.m +30 -2
  48. package/ios/Handlers/RNPanHandler.m +64 -4
  49. package/ios/Handlers/RNPinchHandler.m +61 -2
  50. package/ios/Handlers/RNRotationHandler.m +60 -1
  51. package/ios/Handlers/RNTapHandler.m +55 -8
  52. package/ios/RNGestureHandler.h +18 -4
  53. package/ios/RNGestureHandler.m +123 -13
  54. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  55. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  56. package/ios/RNGestureHandlerEvents.h +9 -0
  57. package/ios/RNGestureHandlerEvents.m +34 -0
  58. package/ios/RNGestureHandlerManager.h +7 -0
  59. package/ios/RNGestureHandlerManager.m +62 -34
  60. package/ios/RNGestureHandlerModule.m +39 -3
  61. package/ios/RNGestureHandlerPointerTracker.h +25 -0
  62. package/ios/RNGestureHandlerPointerTracker.m +237 -0
  63. package/ios/RNGestureHandlerRegistry.h +1 -0
  64. package/ios/RNGestureHandlerRegistry.m +10 -0
  65. package/ios/RNGestureHandlerStateManager.h +5 -0
  66. package/ios/RNManualActivationRecognizer.h +10 -0
  67. package/ios/RNManualActivationRecognizer.m +80 -0
  68. package/ios/RNRootViewGestureRecognizer.m +1 -1
  69. package/ios/RNTouchEventType.h +9 -0
  70. package/jestSetup.js +7 -1
  71. package/lib/commonjs/Directions.js +15 -0
  72. package/lib/commonjs/Directions.js.map +1 -0
  73. package/lib/commonjs/EventType.js +16 -0
  74. package/lib/commonjs/EventType.js.map +1 -0
  75. package/lib/commonjs/GestureHandlerRootView.android.js +24 -0
  76. package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -0
  77. package/lib/commonjs/GestureHandlerRootView.js +20 -0
  78. package/lib/commonjs/GestureHandlerRootView.js.map +1 -0
  79. package/lib/commonjs/PlatformConstants.js +15 -0
  80. package/lib/commonjs/PlatformConstants.js.map +1 -0
  81. package/lib/commonjs/PlatformConstants.web.js +14 -0
  82. package/lib/commonjs/PlatformConstants.web.js.map +1 -0
  83. package/lib/commonjs/RNGestureHandlerModule.js +22 -0
  84. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -0
  85. package/lib/commonjs/RNGestureHandlerModule.web.js +80 -0
  86. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -0
  87. package/lib/commonjs/State.js +18 -0
  88. package/lib/commonjs/State.js.map +1 -0
  89. package/lib/commonjs/components/DrawerLayout.js +535 -0
  90. package/lib/commonjs/components/DrawerLayout.js.map +1 -0
  91. package/lib/commonjs/components/GestureButtons.js +207 -0
  92. package/lib/commonjs/components/GestureButtons.js.map +1 -0
  93. package/lib/commonjs/components/GestureComponents.js +76 -0
  94. package/lib/commonjs/components/GestureComponents.js.map +1 -0
  95. package/lib/commonjs/components/GestureComponents.web.js +46 -0
  96. package/lib/commonjs/components/GestureComponents.web.js.map +1 -0
  97. package/lib/commonjs/components/GestureHandlerButton.js +13 -0
  98. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -0
  99. package/lib/commonjs/components/GestureHandlerButton.web.js +24 -0
  100. package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -0
  101. package/lib/commonjs/components/Swipeable.js +365 -0
  102. package/lib/commonjs/components/Swipeable.js.map +1 -0
  103. package/lib/commonjs/components/touchables/GenericTouchable.js +278 -0
  104. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -0
  105. package/lib/commonjs/components/touchables/TouchableHighlight.js +109 -0
  106. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -0
  107. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +100 -0
  108. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -0
  109. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +12 -0
  110. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -0
  111. package/lib/commonjs/components/touchables/TouchableOpacity.js +75 -0
  112. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -0
  113. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +26 -0
  114. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -0
  115. package/lib/commonjs/components/touchables/index.js +40 -0
  116. package/lib/commonjs/components/touchables/index.js.map +1 -0
  117. package/lib/commonjs/gestureHandlerRootHOC.js +39 -0
  118. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -0
  119. package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
  120. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
  121. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
  122. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
  123. package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
  124. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
  125. package/lib/commonjs/handlers/NativeViewGestureHandler.js +25 -0
  126. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -0
  127. package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
  128. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
  129. package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
  130. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
  131. package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
  132. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
  133. package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
  134. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
  135. package/lib/commonjs/handlers/createHandler.js +373 -0
  136. package/lib/commonjs/handlers/createHandler.js.map +1 -0
  137. package/lib/commonjs/handlers/createNativeWrapper.js +70 -0
  138. package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -0
  139. package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
  140. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
  141. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +2 -0
  142. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -0
  143. package/lib/commonjs/handlers/gestures/GestureDetector.js +426 -0
  144. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  145. package/lib/commonjs/handlers/gestures/eventReceiver.js +124 -0
  146. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
  147. package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
  148. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
  149. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +39 -0
  150. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  151. package/lib/commonjs/handlers/gestures/gesture.js +185 -0
  152. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
  153. package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
  154. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
  155. package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
  156. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
  157. package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
  158. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
  159. package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
  160. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
  161. package/lib/commonjs/handlers/gestures/manualGesture.js +19 -0
  162. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
  163. package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
  164. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
  165. package/lib/commonjs/handlers/gestures/panGesture.js +116 -0
  166. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  167. package/lib/commonjs/handlers/gestures/pinchGesture.js +19 -0
  168. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
  169. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
  170. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
  171. package/lib/commonjs/handlers/gestures/rotationGesture.js +19 -0
  172. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
  173. package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
  174. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
  175. package/lib/commonjs/handlers/handlersRegistry.js +31 -0
  176. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
  177. package/lib/commonjs/index.js +338 -0
  178. package/lib/commonjs/index.js.map +1 -0
  179. package/lib/commonjs/init.js +13 -0
  180. package/lib/commonjs/init.js.map +1 -0
  181. package/lib/commonjs/mocks.js +64 -0
  182. package/lib/commonjs/mocks.js.map +1 -0
  183. package/lib/commonjs/typeUtils.js +2 -0
  184. package/lib/commonjs/typeUtils.js.map +1 -0
  185. package/lib/commonjs/utils.js +15 -0
  186. package/lib/commonjs/utils.js.map +1 -0
  187. package/lib/commonjs/web/DiscreteGestureHandler.js +105 -0
  188. package/lib/commonjs/web/DiscreteGestureHandler.js.map +1 -0
  189. package/lib/commonjs/web/DraggingGestureHandler.js +53 -0
  190. package/lib/commonjs/web/DraggingGestureHandler.js.map +1 -0
  191. package/lib/commonjs/web/Errors.js +16 -0
  192. package/lib/commonjs/web/Errors.js.map +1 -0
  193. package/lib/commonjs/web/FlingGestureHandler.js +170 -0
  194. package/lib/commonjs/web/FlingGestureHandler.js.map +1 -0
  195. package/lib/commonjs/web/GestureHandler.js +533 -0
  196. package/lib/commonjs/web/GestureHandler.js.map +1 -0
  197. package/lib/commonjs/web/IndiscreteGestureHandler.js +54 -0
  198. package/lib/commonjs/web/IndiscreteGestureHandler.js.map +1 -0
  199. package/lib/commonjs/web/LongPressGestureHandler.js +71 -0
  200. package/lib/commonjs/web/LongPressGestureHandler.js.map +1 -0
  201. package/lib/commonjs/web/NativeViewGestureHandler.js +62 -0
  202. package/lib/commonjs/web/NativeViewGestureHandler.js.map +1 -0
  203. package/lib/commonjs/web/NodeManager.js +43 -0
  204. package/lib/commonjs/web/NodeManager.js.map +1 -0
  205. package/lib/commonjs/web/PanGestureHandler.js +189 -0
  206. package/lib/commonjs/web/PanGestureHandler.js.map +1 -0
  207. package/lib/commonjs/web/PinchGestureHandler.js +40 -0
  208. package/lib/commonjs/web/PinchGestureHandler.js.map +1 -0
  209. package/lib/commonjs/web/PressGestureHandler.js +188 -0
  210. package/lib/commonjs/web/PressGestureHandler.js.map +1 -0
  211. package/lib/commonjs/web/RotationGestureHandler.js +44 -0
  212. package/lib/commonjs/web/RotationGestureHandler.js.map +1 -0
  213. package/lib/commonjs/web/TapGestureHandler.js +192 -0
  214. package/lib/commonjs/web/TapGestureHandler.js.map +1 -0
  215. package/lib/commonjs/web/constants.js +64 -0
  216. package/lib/commonjs/web/constants.js.map +1 -0
  217. package/lib/commonjs/web/utils.js +42 -0
  218. package/lib/commonjs/web/utils.js.map +1 -0
  219. package/lib/module/Directions.js +7 -0
  220. package/lib/module/Directions.js.map +1 -0
  221. package/lib/module/EventType.js +8 -0
  222. package/lib/module/EventType.js.map +1 -0
  223. package/lib/module/GestureHandlerRootView.android.js +10 -0
  224. package/lib/module/GestureHandlerRootView.android.js.map +1 -0
  225. package/lib/module/GestureHandlerRootView.js +7 -0
  226. package/lib/module/GestureHandlerRootView.js.map +1 -0
  227. package/lib/module/PlatformConstants.js +5 -0
  228. package/lib/module/PlatformConstants.js.map +1 -0
  229. package/lib/module/PlatformConstants.web.js +7 -0
  230. package/lib/module/PlatformConstants.web.js.map +1 -0
  231. package/lib/module/RNGestureHandlerModule.js +13 -0
  232. package/lib/module/RNGestureHandlerModule.js.map +1 -0
  233. package/lib/module/RNGestureHandlerModule.web.js +56 -0
  234. package/lib/module/RNGestureHandlerModule.web.js.map +1 -0
  235. package/lib/module/State.js +10 -0
  236. package/lib/module/State.js.map +1 -0
  237. package/lib/module/components/DrawerLayout.js +520 -0
  238. package/lib/module/components/DrawerLayout.js.map +1 -0
  239. package/lib/module/components/GestureButtons.js +172 -0
  240. package/lib/module/components/GestureButtons.js.map +1 -0
  241. package/lib/module/components/GestureComponents.js +53 -0
  242. package/lib/module/components/GestureComponents.js.map +1 -0
  243. package/lib/module/components/GestureComponents.web.js +25 -0
  244. package/lib/module/components/GestureComponents.web.js.map +1 -0
  245. package/{dist/src → lib/module}/components/GestureHandlerButton.js +1 -0
  246. package/lib/module/components/GestureHandlerButton.js.map +1 -0
  247. package/lib/module/components/GestureHandlerButton.web.js +9 -0
  248. package/lib/module/components/GestureHandlerButton.web.js.map +1 -0
  249. package/lib/module/components/Swipeable.js +347 -0
  250. package/lib/module/components/Swipeable.js.map +1 -0
  251. package/lib/module/components/touchables/GenericTouchable.js +262 -0
  252. package/lib/module/components/touchables/GenericTouchable.js.map +1 -0
  253. package/lib/module/components/touchables/TouchableHighlight.js +95 -0
  254. package/lib/module/components/touchables/TouchableHighlight.js.map +1 -0
  255. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +84 -0
  256. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -0
  257. package/{dist/src → lib/module}/components/touchables/TouchableNativeFeedback.js +1 -0
  258. package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -0
  259. package/lib/module/components/touchables/TouchableOpacity.js +61 -0
  260. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -0
  261. package/lib/module/components/touchables/TouchableWithoutFeedback.js +10 -0
  262. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -0
  263. package/{dist/src → lib/module}/components/touchables/index.js +1 -0
  264. package/lib/module/components/touchables/index.js.map +1 -0
  265. package/lib/module/gestureHandlerRootHOC.js +21 -0
  266. package/lib/module/gestureHandlerRootHOC.js.map +1 -0
  267. package/lib/module/handlers/FlingGestureHandler.js +10 -0
  268. package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
  269. package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
  270. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
  271. package/lib/module/handlers/LongPressGestureHandler.js +10 -0
  272. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
  273. package/lib/module/handlers/NativeViewGestureHandler.js +11 -0
  274. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -0
  275. package/lib/module/handlers/PanGestureHandler.js +106 -0
  276. package/lib/module/handlers/PanGestureHandler.js.map +1 -0
  277. package/lib/module/handlers/PinchGestureHandler.js +9 -0
  278. package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
  279. package/lib/module/handlers/RotationGestureHandler.js +9 -0
  280. package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
  281. package/lib/module/handlers/TapGestureHandler.js +10 -0
  282. package/lib/module/handlers/TapGestureHandler.js.map +1 -0
  283. package/lib/module/handlers/createHandler.js +348 -0
  284. package/lib/module/handlers/createHandler.js.map +1 -0
  285. package/lib/module/handlers/createNativeWrapper.js +58 -0
  286. package/lib/module/handlers/createNativeWrapper.js.map +1 -0
  287. package/lib/module/handlers/gestureHandlerCommon.js +66 -0
  288. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
  289. package/lib/module/handlers/gestureHandlerTypesCompat.js +2 -0
  290. package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -0
  291. package/lib/module/handlers/gestures/GestureDetector.js +389 -0
  292. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  293. package/lib/module/handlers/gestures/eventReceiver.js +109 -0
  294. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
  295. package/lib/module/handlers/gestures/flingGesture.js +24 -0
  296. package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
  297. package/lib/module/handlers/gestures/forceTouchGesture.js +29 -0
  298. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  299. package/lib/module/handlers/gestures/gesture.js +167 -0
  300. package/lib/module/handlers/gestures/gesture.js.map +1 -0
  301. package/lib/module/handlers/gestures/gestureComposition.js +79 -0
  302. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
  303. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  304. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
  305. package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
  306. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
  307. package/lib/module/handlers/gestures/longPressGesture.js +24 -0
  308. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
  309. package/lib/module/handlers/gestures/manualGesture.js +9 -0
  310. package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
  311. package/lib/module/handlers/gestures/nativeGesture.js +24 -0
  312. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
  313. package/lib/module/handlers/gestures/panGesture.js +106 -0
  314. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  315. package/lib/module/handlers/gestures/pinchGesture.js +9 -0
  316. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
  317. package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
  318. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
  319. package/lib/module/handlers/gestures/rotationGesture.js +9 -0
  320. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
  321. package/lib/module/handlers/gestures/tapGesture.js +49 -0
  322. package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
  323. package/lib/module/handlers/handlersRegistry.js +16 -0
  324. package/lib/module/handlers/handlersRegistry.js.map +1 -0
  325. package/lib/module/index.js +34 -0
  326. package/lib/module/index.js.map +1 -0
  327. package/lib/module/init.js +5 -0
  328. package/lib/module/init.js.map +1 -0
  329. package/lib/module/mocks.js +54 -0
  330. package/lib/module/mocks.js.map +1 -0
  331. package/lib/module/typeUtils.js +2 -0
  332. package/lib/module/typeUtils.js.map +1 -0
  333. package/lib/module/utils.js +8 -0
  334. package/lib/module/utils.js.map +1 -0
  335. package/lib/module/web/DiscreteGestureHandler.js +94 -0
  336. package/lib/module/web/DiscreteGestureHandler.js.map +1 -0
  337. package/lib/module/web/DraggingGestureHandler.js +40 -0
  338. package/lib/module/web/DraggingGestureHandler.js.map +1 -0
  339. package/lib/module/web/Errors.js +7 -0
  340. package/lib/module/web/Errors.js.map +1 -0
  341. package/lib/module/web/FlingGestureHandler.js +156 -0
  342. package/lib/module/web/FlingGestureHandler.js.map +1 -0
  343. package/lib/module/web/GestureHandler.js +518 -0
  344. package/lib/module/web/GestureHandler.js.map +1 -0
  345. package/lib/module/web/IndiscreteGestureHandler.js +44 -0
  346. package/lib/module/web/IndiscreteGestureHandler.js.map +1 -0
  347. package/lib/module/web/LongPressGestureHandler.js +58 -0
  348. package/lib/module/web/LongPressGestureHandler.js.map +1 -0
  349. package/lib/module/web/NativeViewGestureHandler.js +45 -0
  350. package/lib/module/web/NativeViewGestureHandler.js.map +1 -0
  351. package/lib/module/web/NodeManager.js +30 -0
  352. package/lib/module/web/NodeManager.js.map +1 -0
  353. package/lib/module/web/PanGestureHandler.js +175 -0
  354. package/lib/module/web/PanGestureHandler.js.map +1 -0
  355. package/lib/module/web/PinchGestureHandler.js +29 -0
  356. package/lib/module/web/PinchGestureHandler.js.map +1 -0
  357. package/lib/module/web/PressGestureHandler.js +174 -0
  358. package/lib/module/web/PressGestureHandler.js.map +1 -0
  359. package/lib/module/web/RotationGestureHandler.js +32 -0
  360. package/lib/module/web/RotationGestureHandler.js.map +1 -0
  361. package/lib/module/web/TapGestureHandler.js +180 -0
  362. package/lib/module/web/TapGestureHandler.js.map +1 -0
  363. package/lib/module/web/constants.js +43 -0
  364. package/lib/module/web/constants.js.map +1 -0
  365. package/lib/module/web/utils.js +19 -0
  366. package/lib/module/web/utils.js.map +1 -0
  367. package/lib/typescript/Directions.d.ts +7 -0
  368. package/lib/typescript/EventType.d.ts +8 -0
  369. package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -0
  370. package/lib/typescript/GestureHandlerRootView.d.ts +5 -0
  371. package/{dist/src → lib/typescript}/PlatformConstants.d.ts +0 -0
  372. package/{dist/src → lib/typescript}/PlatformConstants.web.d.ts +0 -0
  373. package/{dist/src → lib/typescript}/RNGestureHandlerModule.d.ts +1 -8
  374. package/{dist/src → lib/typescript}/RNGestureHandlerModule.web.d.ts +1 -1
  375. package/{dist/src → lib/typescript}/State.d.ts +0 -0
  376. package/{dist/src → lib/typescript}/components/DrawerLayout.d.ts +50 -1
  377. package/{dist/src → lib/typescript}/components/GestureButtons.d.ts +36 -0
  378. package/lib/typescript/components/GestureComponents.d.ts +18 -0
  379. package/{dist/src → lib/typescript}/components/GestureComponents.web.d.ts +4 -4
  380. package/{dist/src → lib/typescript}/components/GestureHandlerButton.d.ts +0 -0
  381. package/{dist/src → lib/typescript}/components/GestureHandlerButton.web.d.ts +0 -0
  382. package/lib/typescript/components/Swipeable.d.ts +150 -0
  383. package/{dist/src → lib/typescript}/components/touchables/GenericTouchable.d.ts +3 -3
  384. package/{dist/src → lib/typescript}/components/touchables/TouchableHighlight.d.ts +1 -0
  385. package/{dist/src → lib/typescript}/components/touchables/TouchableNativeFeedback.android.d.ts +0 -0
  386. package/{dist/src → lib/typescript}/components/touchables/TouchableNativeFeedback.d.ts +0 -0
  387. package/{dist/src → lib/typescript}/components/touchables/TouchableOpacity.d.ts +1 -0
  388. package/{dist/src → lib/typescript}/components/touchables/TouchableWithoutFeedback.d.ts +0 -0
  389. package/{dist/src → lib/typescript}/components/touchables/index.d.ts +0 -0
  390. package/{dist/src → lib/typescript}/gestureHandlerRootHOC.d.ts +0 -0
  391. package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
  392. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
  393. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
  394. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +27 -0
  395. package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
  396. package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
  397. package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
  398. package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
  399. package/{dist/src → lib/typescript}/handlers/createHandler.d.ts +1 -1
  400. package/{dist/src → lib/typescript}/handlers/createNativeWrapper.d.ts +0 -0
  401. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
  402. package/{dist/src → lib/typescript}/handlers/gestureHandlerTypesCompat.d.ts +8 -1
  403. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
  404. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
  405. package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
  406. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +10 -0
  407. package/lib/typescript/handlers/gestures/gesture.d.ts +93 -0
  408. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  409. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
  410. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
  411. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
  412. package/lib/typescript/handlers/gestures/manualGesture.d.ts +5 -0
  413. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  414. package/lib/typescript/handlers/gestures/panGesture.d.ts +19 -0
  415. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +6 -0
  416. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  417. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +6 -0
  418. package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
  419. package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
  420. package/lib/typescript/index.d.ts +44 -0
  421. package/lib/typescript/init.d.ts +1 -0
  422. package/lib/typescript/mocks.d.ts +43 -0
  423. package/{dist/src → lib/typescript}/typeUtils.d.ts +0 -0
  424. package/lib/typescript/utils.d.ts +1 -0
  425. package/{dist/src → lib/typescript}/web/DiscreteGestureHandler.d.ts +0 -0
  426. package/{dist/src → lib/typescript}/web/DraggingGestureHandler.d.ts +0 -0
  427. package/{dist/src → lib/typescript}/web/Errors.d.ts +0 -0
  428. package/{dist/src → lib/typescript}/web/FlingGestureHandler.d.ts +0 -1
  429. package/{dist/src → lib/typescript}/web/GestureHandler.d.ts +0 -1
  430. package/{dist/src → lib/typescript}/web/IndiscreteGestureHandler.d.ts +0 -0
  431. package/{dist/src → lib/typescript}/web/LongPressGestureHandler.d.ts +0 -0
  432. package/{dist/src → lib/typescript}/web/NativeViewGestureHandler.d.ts +0 -0
  433. package/{dist/src → lib/typescript}/web/NodeManager.d.ts +0 -0
  434. package/{dist/src → lib/typescript}/web/PanGestureHandler.d.ts +0 -1
  435. package/{dist/src → lib/typescript}/web/PinchGestureHandler.d.ts +0 -1
  436. package/{dist/src → lib/typescript}/web/PressGestureHandler.d.ts +0 -1
  437. package/{dist/src → lib/typescript}/web/RotationGestureHandler.d.ts +0 -1
  438. package/{dist/src → lib/typescript}/web/TapGestureHandler.d.ts +0 -1
  439. package/{dist/src → lib/typescript}/web/constants.d.ts +0 -0
  440. package/{dist/src → lib/typescript}/web/utils.d.ts +0 -0
  441. package/package.json +38 -15
  442. package/src/Directions.ts +8 -2
  443. package/src/EventType.ts +10 -0
  444. package/src/GestureHandlerRootView.android.tsx +9 -25
  445. package/src/GestureHandlerRootView.tsx +11 -2
  446. package/src/PlatformConstants.ts +3 -2
  447. package/src/RNGestureHandlerModule.ts +15 -9
  448. package/src/RNGestureHandlerModule.web.ts +1 -0
  449. package/src/components/DrawerLayout.tsx +114 -41
  450. package/src/components/GestureButtons.tsx +45 -5
  451. package/src/components/GestureComponents.tsx +47 -41
  452. package/src/components/Swipeable.tsx +108 -21
  453. package/src/components/touchables/GenericTouchable.tsx +3 -2
  454. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  455. package/src/handlers/FlingGestureHandler.ts +57 -0
  456. package/src/handlers/ForceTouchGestureHandler.ts +83 -0
  457. package/src/handlers/LongPressGestureHandler.ts +84 -0
  458. package/src/handlers/NativeViewGestureHandler.ts +31 -7
  459. package/src/handlers/PanGestureHandler.ts +321 -0
  460. package/src/handlers/PinchGestureHandler.ts +46 -0
  461. package/src/handlers/RotationGestureHandler.ts +46 -0
  462. package/src/handlers/TapGestureHandler.ts +90 -0
  463. package/src/handlers/createHandler.ts +60 -81
  464. package/src/handlers/gestureHandlerCommon.ts +185 -0
  465. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  466. package/src/handlers/gestures/GestureDetector.tsx +498 -0
  467. package/src/handlers/gestures/eventReceiver.ts +135 -0
  468. package/src/handlers/gestures/flingGesture.ts +27 -0
  469. package/src/handlers/gestures/forceTouchGesture.ts +32 -0
  470. package/src/handlers/gestures/gesture.ts +279 -0
  471. package/src/handlers/gestures/gestureComposition.ts +109 -0
  472. package/src/handlers/gestures/gestureObjects.ts +79 -0
  473. package/src/handlers/gestures/gestureStateManager.ts +60 -0
  474. package/src/handlers/gestures/longPressGesture.ts +27 -0
  475. package/src/handlers/gestures/manualGesture.ts +11 -0
  476. package/src/handlers/gestures/nativeGesture.ts +27 -0
  477. package/src/handlers/gestures/panGesture.ts +105 -0
  478. package/src/handlers/gestures/pinchGesture.ts +12 -0
  479. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  480. package/src/handlers/gestures/rotationGesture.ts +12 -0
  481. package/src/handlers/gestures/tapGesture.ts +52 -0
  482. package/src/handlers/handlersRegistry.ts +22 -0
  483. package/src/index.ts +156 -0
  484. package/src/init.ts +5 -0
  485. package/src/mocks.ts +65 -0
  486. package/src/utils.ts +7 -0
  487. package/src/web/GestureHandler.ts +2 -3
  488. package/src/web/NativeViewGestureHandler.ts +1 -3
  489. package/src/web/NodeManager.ts +5 -0
  490. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
  491. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
  492. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
  493. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
  494. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
  495. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
  496. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
  497. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
  498. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
  499. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
  500. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
  501. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
  502. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
  503. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
  504. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
  505. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
  506. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
  507. package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
  508. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
  509. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
  510. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
  511. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
  512. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
  513. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
  514. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
  515. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
  516. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
  517. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
  518. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
  519. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
  520. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
  521. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
  522. package/dist/index.d.ts +0 -13
  523. package/dist/index.js +0 -16
  524. package/dist/src/Directions.d.ts +0 -7
  525. package/dist/src/Directions.js +0 -2
  526. package/dist/src/GestureHandlerRootView.android.d.ts +0 -4
  527. package/dist/src/GestureHandlerRootView.android.expo.d.ts +0 -2
  528. package/dist/src/GestureHandlerRootView.android.expo.js +0 -2
  529. package/dist/src/GestureHandlerRootView.android.js +0 -21
  530. package/dist/src/GestureHandlerRootView.d.ts +0 -2
  531. package/dist/src/GestureHandlerRootView.js +0 -2
  532. package/dist/src/PlatformConstants.js +0 -2
  533. package/dist/src/PlatformConstants.web.js +0 -5
  534. package/dist/src/RNGestureHandlerModule.js +0 -3
  535. package/dist/src/RNGestureHandlerModule.web.js +0 -47
  536. package/dist/src/State.js +0 -9
  537. package/dist/src/__mocks__/RNGestureHandlerModule.d.ts +0 -23
  538. package/dist/src/__mocks__/RNGestureHandlerModule.js +0 -25
  539. package/dist/src/components/DrawerLayout.js +0 -391
  540. package/dist/src/components/GestureButtons.js +0 -113
  541. package/dist/src/components/GestureComponents.d.ts +0 -45
  542. package/dist/src/components/GestureComponents.js +0 -18
  543. package/dist/src/components/GestureComponents.web.js +0 -18
  544. package/dist/src/components/GestureHandlerButton.web.js +0 -3
  545. package/dist/src/components/Swipeable.d.ts +0 -83
  546. package/dist/src/components/Swipeable.js +0 -249
  547. package/dist/src/components/touchables/GenericTouchable.js +0 -210
  548. package/dist/src/components/touchables/TouchableHighlight.js +0 -73
  549. package/dist/src/components/touchables/TouchableNativeFeedback.android.js +0 -63
  550. package/dist/src/components/touchables/TouchableOpacity.js +0 -50
  551. package/dist/src/components/touchables/TouchableWithoutFeedback.js +0 -5
  552. package/dist/src/gestureHandlerRootHOC.js +0 -17
  553. package/dist/src/handlers/NativeViewGestureHandler.d.ts +0 -12
  554. package/dist/src/handlers/NativeViewGestureHandler.js +0 -13
  555. package/dist/src/handlers/createHandler.js +0 -292
  556. package/dist/src/handlers/createNativeWrapper.js +0 -51
  557. package/dist/src/handlers/gestureHandlerTypesCompat.js +0 -1
  558. package/dist/src/handlers/gestureHandlers.d.ts +0 -158
  559. package/dist/src/handlers/gestureHandlers.js +0 -247
  560. package/dist/src/typeUtils.js +0 -1
  561. package/dist/src/web/DiscreteGestureHandler.js +0 -48
  562. package/dist/src/web/DraggingGestureHandler.js +0 -25
  563. package/dist/src/web/Errors.js +0 -5
  564. package/dist/src/web/FlingGestureHandler.js +0 -119
  565. package/dist/src/web/GestureHandler.js +0 -413
  566. package/dist/src/web/IndiscreteGestureHandler.js +0 -26
  567. package/dist/src/web/LongPressGestureHandler.js +0 -46
  568. package/dist/src/web/NativeViewGestureHandler.js +0 -39
  569. package/dist/src/web/NodeManager.js +0 -22
  570. package/dist/src/web/PanGestureHandler.js +0 -145
  571. package/dist/src/web/PinchGestureHandler.js +0 -19
  572. package/dist/src/web/PressGestureHandler.js +0 -135
  573. package/dist/src/web/RotationGestureHandler.js +0 -20
  574. package/dist/src/web/TapGestureHandler.js +0 -143
  575. package/dist/src/web/constants.js +0 -42
  576. package/dist/src/web/utils.js +0 -15
  577. package/index.ts +0 -117
  578. package/src/GestureHandlerRootView.android.expo.tsx +0 -3
  579. package/src/__mocks__/RNGestureHandlerModule.ts +0 -27
  580. package/src/handlers/gestureHandlers.ts +0 -511
@@ -1,5 +1,10 @@
1
1
  import * as React from 'react';
2
- import { PropsWithChildren } from 'react';
2
+ import {
3
+ PropsWithChildren,
4
+ ForwardedRef,
5
+ RefAttributes,
6
+ ReactElement,
7
+ } from 'react';
3
8
  import {
4
9
  ScrollView as RNScrollView,
5
10
  ScrollViewProps as RNScrollViewProps,
@@ -15,7 +20,10 @@ import {
15
20
 
16
21
  import createNativeWrapper from '../handlers/createNativeWrapper';
17
22
 
18
- import { NativeViewGestureHandlerProps } from '../handlers/NativeViewGestureHandler';
23
+ import {
24
+ NativeViewGestureHandlerProps,
25
+ nativeViewProps,
26
+ } from '../handlers/NativeViewGestureHandler';
19
27
 
20
28
  export const ScrollView = createNativeWrapper<
21
29
  PropsWithChildren<RNScrollViewProps>
@@ -24,15 +32,9 @@ export const ScrollView = createNativeWrapper<
24
32
  shouldCancelWhenOutside: false,
25
33
  });
26
34
  // backward type compatibility with https://github.com/software-mansion/react-native-gesture-handler/blob/db78d3ca7d48e8ba57482d3fe9b0a15aa79d9932/react-native-gesture-handler.d.ts#L440-L457
35
+ // include methods of wrapped components by creating an intersection type with the RN component instead of duplicating them.
27
36
  // eslint-disable-next-line @typescript-eslint/no-redeclare
28
- export type ScrollView = typeof ScrollView & {
29
- scrollTo(
30
- y?: number | { x?: number; y?: number; animated?: boolean },
31
- x?: number,
32
- animated?: boolean
33
- ): void;
34
- scrollToEnd(options?: { animated: boolean }): void;
35
- };
37
+ export type ScrollView = typeof ScrollView & RNScrollView;
36
38
 
37
39
  export const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {
38
40
  shouldCancelWhenOutside: false,
@@ -40,47 +42,51 @@ export const Switch = createNativeWrapper<RNSwitchProps>(RNSwitch, {
40
42
  disallowInterruption: true,
41
43
  });
42
44
  // eslint-disable-next-line @typescript-eslint/no-redeclare
43
- export type Switch = typeof Switch;
45
+ export type Switch = typeof Switch & RNSwitch;
44
46
 
45
47
  export const TextInput = createNativeWrapper<RNTextInputProps>(RNTextInput);
46
48
  // eslint-disable-next-line @typescript-eslint/no-redeclare
47
- export type TextInput = typeof TextInput;
49
+ export type TextInput = typeof TextInput & RNTextInput;
48
50
 
49
51
  export const DrawerLayoutAndroid = createNativeWrapper<
50
52
  PropsWithChildren<RNDrawerLayoutAndroidProps>
51
53
  >(RNDrawerLayoutAndroid, { disallowInterruption: true });
52
- // we use literal object since TS gives error when using RN's `positions`
53
- // @ts-ignore FIXME(TS) maybe this should be removed?
54
- DrawerLayoutAndroid.positions = { Left: 'left', Right: 'right' };
55
54
  // eslint-disable-next-line @typescript-eslint/no-redeclare
56
- export type DrawerLayoutAndroid = typeof DrawerLayoutAndroid;
55
+ export type DrawerLayoutAndroid = typeof DrawerLayoutAndroid &
56
+ RNDrawerLayoutAndroid;
57
57
 
58
- export const FlatList = React.forwardRef<RNFlatList<any>, RNFlatListProps<any>>(
59
- (props, ref) => (
58
+ export const FlatList = React.forwardRef((props, ref) => {
59
+ const flatListProps = {};
60
+ const scrollViewProps = {};
61
+ for (const [propName, value] of Object.entries(props)) {
62
+ // https://github.com/microsoft/TypeScript/issues/26255
63
+ if ((nativeViewProps as readonly string[]).includes(propName)) {
64
+ // @ts-ignore - this function cannot have generic type so we have to ignore this error
65
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
66
+ scrollViewProps[propName] = value;
67
+ } else {
68
+ // @ts-ignore - this function cannot have generic type so we have to ignore this error
69
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
70
+ flatListProps[propName] = value;
71
+ }
72
+ }
73
+ return (
74
+ // @ts-ignore - this function cannot have generic type so we have to ignore this error
60
75
  <RNFlatList
61
76
  ref={ref}
62
- {...props}
63
- renderScrollComponent={(scrollProps) => <ScrollView {...scrollProps} />}
77
+ {...flatListProps}
78
+ renderScrollComponent={(scrollProps) => (
79
+ <ScrollView {...{ ...scrollProps, ...scrollViewProps }} />
80
+ )}
64
81
  />
65
- )
66
- );
82
+ );
83
+ }) as <ItemT = any>(
84
+ props: PropsWithChildren<
85
+ RNFlatListProps<ItemT> &
86
+ RefAttributes<FlatList<ItemT>> &
87
+ NativeViewGestureHandlerProps
88
+ >,
89
+ ref: ForwardedRef<FlatList<ItemT>>
90
+ ) => ReactElement | null;
67
91
  // eslint-disable-next-line @typescript-eslint/no-redeclare
68
- export type FlatList<ItemT> = React.ComponentType<
69
- RNFlatListProps<ItemT> &
70
- NativeViewGestureHandlerProps &
71
- React.RefAttributes<any>
72
- > & {
73
- scrollToEnd: (params?: { animated?: boolean }) => void;
74
- scrollToIndex: (params: {
75
- animated?: boolean;
76
- index: number;
77
- viewOffset?: number;
78
- viewPosition?: number;
79
- }) => void;
80
- scrollToItem: (params: {
81
- animated?: boolean;
82
- item: ItemT;
83
- viewPosition?: number;
84
- }) => void;
85
- scrollToOffset: (params: { animated?: boolean; offset: number }) => void;
86
- };
92
+ export type FlatList<ItemT = any> = typeof FlatList & RNFlatList<ItemT>;
@@ -1,6 +1,6 @@
1
1
  // Similarily to the DrawerLayout component this deserves to be put in a
2
- // separate repo. Although, keeping it here for the time being will allow us
3
- // to move faster and fix possible issues quicker
2
+ // separate repo. Although, keeping it here for the time being will allow us to
3
+ // move faster and fix possible issues quicker
4
4
 
5
5
  import * as React from 'react';
6
6
  import { Component } from 'react';
@@ -15,14 +15,18 @@ import {
15
15
  } from 'react-native';
16
16
 
17
17
  import {
18
- PanGestureHandler,
19
- TapGestureHandler,
20
- PanGestureHandlerProps,
21
18
  GestureEvent,
22
- PanGestureHandlerEventPayload,
23
19
  HandlerStateChangeEvent,
20
+ } from '../handlers/gestureHandlerCommon';
21
+ import {
22
+ PanGestureHandler,
23
+ PanGestureHandlerEventPayload,
24
+ PanGestureHandlerProps,
25
+ } from '../handlers/PanGestureHandler';
26
+ import {
27
+ TapGestureHandler,
24
28
  TapGestureHandlerEventPayload,
25
- } from '../handlers/gestureHandlers';
29
+ } from '../handlers/TapGestureHandler';
26
30
  import { State } from '../State';
27
31
 
28
32
  const DRAG_TOSS = 0.05;
@@ -32,30 +36,105 @@ type SwipeableExcludes = Exclude<
32
36
  'onGestureEvent' | 'onHandlerStateChange'
33
37
  >;
34
38
 
35
- interface SwipeableProps
39
+ export interface SwipeableProps
36
40
  extends Pick<PanGestureHandlerProps, SwipeableExcludes> {
41
+ /**
42
+ * Enables two-finger gestures on supported devices, for example iPads with
43
+ * trackpads. If not enabled the gesture will require click + drag, with
44
+ * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger
45
+ * the gesture.
46
+ */
37
47
  enableTrackpadTwoFingerGesture?: boolean;
48
+
49
+ /**
50
+ * Specifies how much the visual interaction will be delayed compared to the
51
+ * gesture distance. e.g. value of 1 will indicate that the swipeable panel
52
+ * should exactly follow the gesture, 2 means it is going to be two times
53
+ * "slower".
54
+ */
38
55
  friction?: number;
56
+
57
+ /**
58
+ * Distance from the left edge at which released panel will animate to the
59
+ * open state (or the open panel will animate into the closed state). By
60
+ * default it's a half of the panel's width.
61
+ */
39
62
  leftThreshold?: number;
63
+
64
+ /**
65
+ * Distance from the right edge at which released panel will animate to the
66
+ * open state (or the open panel will animate into the closed state). By
67
+ * default it's a half of the panel's width.
68
+ */
40
69
  rightThreshold?: number;
70
+
71
+ /**
72
+ * Value indicating if the swipeable panel can be pulled further than the left
73
+ * actions panel's width. It is set to true by default as long as the left
74
+ * panel render method is present.
75
+ */
41
76
  overshootLeft?: boolean;
77
+
78
+ /**
79
+ * Value indicating if the swipeable panel can be pulled further than the
80
+ * right actions panel's width. It is set to true by default as long as the
81
+ * right panel render method is present.
82
+ */
42
83
  overshootRight?: boolean;
84
+
85
+ /**
86
+ * Specifies how much the visual interaction will be delayed compared to the
87
+ * gesture distance at overshoot. Default value is 1, it mean no friction, for
88
+ * a native feel, try 8 or above.
89
+ */
43
90
  overshootFriction?: number;
91
+
92
+ /**
93
+ * Called when left action panel gets open.
94
+ */
44
95
  onSwipeableLeftOpen?: () => void;
96
+
97
+ /**
98
+ * Called when right action panel gets open.
99
+ */
45
100
  onSwipeableRightOpen?: () => void;
101
+
102
+ /**
103
+ * Called when action panel gets open (either right or left).
104
+ */
46
105
  onSwipeableOpen?: () => void;
106
+
107
+ /**
108
+ * Called when action panel is closed.
109
+ */
47
110
  onSwipeableClose?: () => void;
111
+
112
+ /**
113
+ * Called when left action panel starts animating on open.
114
+ */
48
115
  onSwipeableLeftWillOpen?: () => void;
116
+
117
+ /**
118
+ * Called when right action panel starts animating on open.
119
+ */
49
120
  onSwipeableRightWillOpen?: () => void;
121
+
122
+ /**
123
+ * Called when action panel starts animating on open (either right or left).
124
+ */
50
125
  onSwipeableWillOpen?: () => void;
126
+
127
+ /**
128
+ * Called when action panel starts animating on close.
129
+ */
51
130
  onSwipeableWillClose?: () => void;
131
+
52
132
  /**
53
133
  *
54
134
  * This map describes the values to use as inputRange for extra interpolation:
55
135
  * AnimatedValue: [startValue, endValue]
56
136
  *
57
- * progressAnimatedValue: [0, 1]
58
- * dragAnimatedValue: [0, +]
137
+ * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, +]
59
138
  *
60
139
  * To support `rtl` flexbox layouts use `flexDirection` styling.
61
140
  * */
@@ -68,8 +147,7 @@ interface SwipeableProps
68
147
  * This map describes the values to use as inputRange for extra interpolation:
69
148
  * AnimatedValue: [startValue, endValue]
70
149
  *
71
- * progressAnimatedValue: [0, 1]
72
- * dragAnimatedValue: [0, -]
150
+ * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, -]
73
151
  *
74
152
  * To support `rtl` flexbox layouts use `flexDirection` styling.
75
153
  * */
@@ -77,9 +155,21 @@ interface SwipeableProps
77
155
  progressAnimatedValue: Animated.AnimatedInterpolation,
78
156
  dragAnimatedValue: Animated.AnimatedInterpolation
79
157
  ) => React.ReactNode;
158
+
80
159
  useNativeAnimations?: boolean;
160
+
81
161
  animationOptions?: Record<string, unknown>;
162
+
163
+ /**
164
+ * Style object for the container (`Animated.View`), for example to override
165
+ * `overflow: 'hidden'`.
166
+ */
82
167
  containerStyle?: StyleProp<ViewStyle>;
168
+
169
+ /**
170
+ * Style object for the children container (`Animated.View`), for example to
171
+ * apply `flex: 1`
172
+ */
83
173
  childrenContainerStyle?: StyleProp<ViewStyle>;
84
174
  }
85
175
 
@@ -165,17 +255,12 @@ export default class Swipeable extends Component<
165
255
  outputRange: [0, 1],
166
256
  })
167
257
  ).interpolate({
168
- inputRange: [
169
- -rightWidth - (overshootRight ? 1 : overshootFriction!),
170
- -rightWidth,
171
- leftWidth,
172
- leftWidth + (overshootLeft ? 1 : overshootFriction!),
173
- ],
258
+ inputRange: [-rightWidth - 1, -rightWidth, leftWidth, leftWidth + 1],
174
259
  outputRange: [
175
- -rightWidth - (overshootRight || overshootFriction! > 1 ? 1 : 0),
260
+ -rightWidth - (overshootRight ? 1 / overshootFriction! : 0),
176
261
  -rightWidth,
177
262
  leftWidth,
178
- leftWidth + (overshootLeft || overshootFriction! > 1 ? 1 : 0),
263
+ leftWidth + (overshootLeft ? 1 / overshootFriction! : 0),
179
264
  ],
180
265
  });
181
266
  this.transX = transX;
@@ -350,7 +435,9 @@ export default class Swipeable extends Component<
350
435
  <Animated.View
351
436
  style={[
352
437
  styles.leftActions,
353
- // all those and below parameters can have ! since they are all asigned in constructor in `updateAnimatedEvent` but TS cannot spot it for some reason
438
+ // all those and below parameters can have ! since they are all
439
+ // asigned in constructor in `updateAnimatedEvent` but TS cannot spot
440
+ // it for some reason
354
441
  { transform: [{ translateX: this.leftActionTranslate! }] },
355
442
  ]}>
356
443
  {renderLeftActions(this.showLeftAction!, this.transX!)}
@@ -14,7 +14,7 @@ import { BaseButton } from '../GestureButtons';
14
14
  import {
15
15
  GestureEvent,
16
16
  HandlerStateChangeEvent,
17
- } from '../../handlers/gestureHandlers';
17
+ } from '../../handlers/gestureHandlerCommon';
18
18
  import { NativeViewGestureHandlerPayload } from '../../handlers/NativeViewGestureHandler';
19
19
  import { TouchableNativeFeedbackExtraProps } from './TouchableNativeFeedback.android';
20
20
 
@@ -57,7 +57,7 @@ interface InternalProps {
57
57
 
58
58
  // TODO: maybe can be better
59
59
  // TODO: all clearTimeout have ! added, maybe they shouldn't ?
60
- type Timeout = null | NodeJS.Timeout | undefined;
60
+ type Timeout = ReturnType<typeof setTimeout> | null | undefined;
61
61
 
62
62
  /**
63
63
  * GenericTouchable is not intented to be used as it is.
@@ -71,6 +71,7 @@ export default class GenericTouchable extends Component<
71
71
  delayLongPress: 600,
72
72
  extraButtonProps: {
73
73
  rippleColor: 'transparent',
74
+ exclusive: true,
74
75
  },
75
76
  };
76
77
 
@@ -36,7 +36,7 @@ export default class TouchableOpacity extends Component<
36
36
  toValue: value,
37
37
  duration: duration,
38
38
  easing: Easing.inOut(Easing.quad),
39
- useNativeDriver: true,
39
+ useNativeDriver: false,
40
40
  }).start();
41
41
  };
42
42
 
@@ -0,0 +1,57 @@
1
+ import createHandler from './createHandler';
2
+ import {
3
+ BaseGestureHandlerProps,
4
+ baseGestureHandlerProps,
5
+ } from './gestureHandlerCommon';
6
+
7
+ export const flingGestureHandlerProps = [
8
+ 'numberOfPointers',
9
+ 'direction',
10
+ ] as const;
11
+
12
+ export type FlingGestureHandlerEventPayload = {
13
+ x: number;
14
+ y: number;
15
+ absoluteX: number;
16
+ absoluteY: number;
17
+ };
18
+ export interface FlingGestureConfig {
19
+ /**
20
+ * Expressed allowed direction of movement. It's possible to pass one or many
21
+ * directions in one parameter:
22
+ *
23
+ * ```js
24
+ * direction={Directions.RIGHT | Directions.LEFT}
25
+ * ```
26
+ *
27
+ * or
28
+ *
29
+ * ```js
30
+ * direction={Directions.DOWN}
31
+ * ```
32
+ */
33
+ direction?: number;
34
+
35
+ /**
36
+ * Determine exact number of points required to handle the fling gesture.
37
+ */
38
+ numberOfPointers?: number;
39
+ }
40
+
41
+ export interface FlingGestureHandlerProps
42
+ extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload>,
43
+ FlingGestureConfig {}
44
+
45
+ export type FlingGestureHandler = typeof FlingGestureHandler;
46
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
47
+ export const FlingGestureHandler = createHandler<
48
+ FlingGestureHandlerProps,
49
+ FlingGestureHandlerEventPayload
50
+ >({
51
+ name: 'FlingGestureHandler',
52
+ allowedProps: [
53
+ ...baseGestureHandlerProps,
54
+ ...flingGestureHandlerProps,
55
+ ] as const,
56
+ config: {},
57
+ });
@@ -0,0 +1,83 @@
1
+ import React from 'react';
2
+ import PlatformConstants from '../PlatformConstants';
3
+ import createHandler from './createHandler';
4
+ import {
5
+ BaseGestureHandlerProps,
6
+ baseGestureHandlerProps,
7
+ } from './gestureHandlerCommon';
8
+
9
+ export const forceTouchGestureHandlerProps = [
10
+ 'minForce',
11
+ 'maxForce',
12
+ 'feedbackOnActivation',
13
+ ] as const;
14
+
15
+ class ForceTouchFallback extends React.Component {
16
+ static forceTouchAvailable = false;
17
+ componentDidMount() {
18
+ console.warn(
19
+ 'ForceTouchGestureHandler is not available on this platform. Please use ForceTouchGestureHandler.forceTouchAvailable to conditionally render other components that would provide a fallback behavior specific to your usecase'
20
+ );
21
+ }
22
+ render() {
23
+ return this.props.children;
24
+ }
25
+ }
26
+
27
+ export type ForceTouchGestureHandlerEventPayload = {
28
+ x: number;
29
+ y: number;
30
+ absoluteX: number;
31
+ absoluteY: number;
32
+
33
+ /**
34
+ * The pressure of a touch.
35
+ */
36
+ force: number;
37
+ };
38
+
39
+ export interface ForceTouchGestureConfig {
40
+ /**
41
+ *
42
+ * A minimal pressure that is required before handler can activate. Should be a
43
+ * value from range `[0.0, 1.0]`. Default is `0.2`.
44
+ */
45
+ minForce?: number;
46
+
47
+ /**
48
+ * A maximal pressure that could be applied for handler. If the pressure is
49
+ * greater, handler fails. Should be a value from range `[0.0, 1.0]`.
50
+ */
51
+ maxForce?: number;
52
+
53
+ /**
54
+ * Boolean value defining if haptic feedback has to be performed on
55
+ * activation.
56
+ */
57
+ feedbackOnActivation?: boolean;
58
+ }
59
+
60
+ export interface ForceTouchGestureHandlerProps
61
+ extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload>,
62
+ ForceTouchGestureConfig {}
63
+
64
+ export type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {
65
+ forceTouchAvailable: boolean;
66
+ };
67
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
68
+ export const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable
69
+ ? createHandler<
70
+ ForceTouchGestureHandlerProps,
71
+ ForceTouchGestureHandlerEventPayload
72
+ >({
73
+ name: 'ForceTouchGestureHandler',
74
+ allowedProps: [
75
+ ...baseGestureHandlerProps,
76
+ ...forceTouchGestureHandlerProps,
77
+ ] as const,
78
+ config: {},
79
+ })
80
+ : ForceTouchFallback;
81
+
82
+ (ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =
83
+ PlatformConstants?.forceTouchAvailable || false;
@@ -0,0 +1,84 @@
1
+ import createHandler from './createHandler';
2
+ import {
3
+ BaseGestureHandlerProps,
4
+ baseGestureHandlerProps,
5
+ } from './gestureHandlerCommon';
6
+
7
+ export const longPressGestureHandlerProps = [
8
+ 'minDurationMs',
9
+ 'maxDist',
10
+ ] as const;
11
+
12
+ export type LongPressGestureHandlerEventPayload = {
13
+ /**
14
+ * X coordinate, expressed in points, of the current position of the pointer
15
+ * (finger or a leading pointer when there are multiple fingers placed)
16
+ * relative to the view attached to the handler.
17
+ */
18
+ x: number;
19
+
20
+ /**
21
+ * Y coordinate, expressed in points, of the current position of the pointer
22
+ * (finger or a leading pointer when there are multiple fingers placed)
23
+ * relative to the view attached to the handler.
24
+ */
25
+ y: number;
26
+
27
+ /**
28
+ * X coordinate, expressed in points, of the current position of the pointer
29
+ * (finger or a leading pointer when there are multiple fingers placed)
30
+ * relative to the root view. It is recommended to use `absoluteX` instead of
31
+ * `x` in cases when the view attached to the handler can be transformed as an
32
+ * effect of the gesture.
33
+ */
34
+ absoluteX: number;
35
+
36
+ /**
37
+ * Y coordinate, expressed in points, of the current position of the pointer
38
+ * (finger or a leading pointer when there are multiple fingers placed)
39
+ * relative to the root view. It is recommended to use `absoluteY` instead of
40
+ * `y` in cases when the view attached to the handler can be transformed as an
41
+ * effect of the gesture.
42
+ */
43
+ absoluteY: number;
44
+
45
+ /**
46
+ * Duration of the long press (time since the start of the event), expressed
47
+ * in milliseconds.
48
+ */
49
+ duration: number;
50
+ };
51
+
52
+ export interface LongPressGestureConfig {
53
+ /**
54
+ * Minimum time, expressed in milliseconds, that a finger must remain pressed on
55
+ * the corresponding view. The default value is 500.
56
+ */
57
+ minDurationMs?: number;
58
+
59
+ /**
60
+ * Maximum distance, expressed in points, that defines how far the finger is
61
+ * allowed to travel during a long press gesture. If the finger travels
62
+ * further than the defined distance and the handler hasn't yet activated, it
63
+ * will fail to recognize the gesture. The default value is 10.
64
+ */
65
+ maxDist?: number;
66
+ }
67
+
68
+ export interface LongPressGestureHandlerProps
69
+ extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload>,
70
+ LongPressGestureConfig {}
71
+
72
+ export type LongPressGestureHandler = typeof LongPressGestureHandler;
73
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
74
+ export const LongPressGestureHandler = createHandler<
75
+ LongPressGestureHandlerProps,
76
+ LongPressGestureHandlerEventPayload
77
+ >({
78
+ name: 'LongPressGestureHandler',
79
+ allowedProps: [
80
+ ...baseGestureHandlerProps,
81
+ ...longPressGestureHandlerProps,
82
+ ] as const,
83
+ config: {},
84
+ });
@@ -1,24 +1,48 @@
1
1
  import createHandler from './createHandler';
2
- import { BaseGestureHandlerProps, baseProps } from './gestureHandlers';
2
+ import {
3
+ BaseGestureHandlerProps,
4
+ baseGestureHandlerProps,
5
+ } from './gestureHandlerCommon';
3
6
 
4
- export interface NativeViewGestureHandlerProps
5
- extends BaseGestureHandlerProps<NativeViewGestureHandlerPayload> {
7
+ export const nativeViewGestureHandlerProps = [
8
+ 'shouldActivateOnStart',
9
+ 'disallowInterruption',
10
+ ] as const;
11
+
12
+ export interface NativeViewGestureConfig {
13
+ /**
14
+ * Android only.
15
+ *
16
+ * Determines whether the handler should check for an existing touch event on
17
+ * instantiation.
18
+ */
6
19
  shouldActivateOnStart?: boolean;
20
+
21
+ /**
22
+ * When `true`, cancels all other gesture handlers when this
23
+ * `NativeViewGestureHandler` receives an `ACTIVE` state event.
24
+ */
7
25
  disallowInterruption?: boolean;
8
26
  }
9
27
 
28
+ export interface NativeViewGestureHandlerProps
29
+ extends BaseGestureHandlerProps<NativeViewGestureHandlerPayload>,
30
+ NativeViewGestureConfig {}
31
+
10
32
  export type NativeViewGestureHandlerPayload = {
33
+ /**
34
+ * True if gesture was performed inside of containing view, false otherwise.
35
+ */
11
36
  pointerInside: boolean;
12
37
  };
13
38
 
14
39
  export const nativeViewProps = [
15
- ...baseProps,
16
- 'shouldActivateOnStart',
17
- 'disallowInterruption',
40
+ ...baseGestureHandlerProps,
41
+ ...nativeViewGestureHandlerProps,
18
42
  ] as const;
19
43
 
20
44
  export type NativeViewGestureHandler = typeof NativeViewGestureHandler;
21
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlers.ts file
45
+ // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file
22
46
  export const NativeViewGestureHandler = createHandler<
23
47
  NativeViewGestureHandlerProps,
24
48
  NativeViewGestureHandlerPayload