react-native-gesture-handler 1.10.3 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (384) hide show
  1. package/README.md +10 -8
  2. package/android/build.gradle +49 -1
  3. package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
  4. package/android/gradle.properties +19 -0
  5. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
  6. package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
  7. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
  8. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +744 -0
  9. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
  10. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +596 -0
  11. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
  12. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
  13. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
  14. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
  15. package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
  16. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
  17. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
  18. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +292 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +90 -0
  20. package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
  21. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
  22. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +81 -0
  23. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
  24. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -0
  25. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +348 -0
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +57 -0
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +59 -0
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +8 -0
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +61 -0
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +686 -0
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.kt +17 -0
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +95 -0
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +132 -0
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +5 -0
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +68 -0
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +34 -0
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +66 -0
  38. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +69 -0
  39. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +51 -0
  40. package/ios/Handlers/RNFlingHandler.m +78 -5
  41. package/ios/Handlers/RNForceTouchHandler.m +29 -4
  42. package/ios/Handlers/RNLongPressHandler.m +105 -3
  43. package/ios/Handlers/RNManualHandler.h +4 -0
  44. package/ios/Handlers/RNManualHandler.m +73 -0
  45. package/ios/Handlers/RNNativeViewHandler.m +30 -2
  46. package/ios/Handlers/RNPanHandler.m +64 -4
  47. package/ios/Handlers/RNPinchHandler.m +61 -2
  48. package/ios/Handlers/RNRotationHandler.m +60 -1
  49. package/ios/Handlers/RNTapHandler.m +55 -8
  50. package/ios/RNGestureHandler.h +18 -4
  51. package/ios/RNGestureHandler.m +123 -13
  52. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  53. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  54. package/ios/RNGestureHandlerEvents.h +9 -0
  55. package/ios/RNGestureHandlerEvents.m +34 -0
  56. package/ios/RNGestureHandlerManager.h +7 -0
  57. package/ios/RNGestureHandlerManager.m +62 -34
  58. package/ios/RNGestureHandlerModule.m +39 -3
  59. package/ios/RNGestureHandlerPointerTracker.h +25 -0
  60. package/ios/RNGestureHandlerPointerTracker.m +237 -0
  61. package/ios/RNGestureHandlerRegistry.h +1 -0
  62. package/ios/RNGestureHandlerRegistry.m +10 -0
  63. package/ios/RNGestureHandlerStateManager.h +5 -0
  64. package/ios/RNManualActivationRecognizer.h +10 -0
  65. package/ios/RNManualActivationRecognizer.m +80 -0
  66. package/ios/RNRootViewGestureRecognizer.m +1 -1
  67. package/ios/RNTouchEventType.h +9 -0
  68. package/lib/commonjs/EventType.js +16 -0
  69. package/lib/commonjs/EventType.js.map +1 -0
  70. package/lib/commonjs/GestureHandlerRootView.android.js +1 -13
  71. package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
  72. package/lib/commonjs/GestureHandlerRootView.js +11 -3
  73. package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.js +3 -1
  75. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  76. package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
  77. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  78. package/lib/commonjs/components/DrawerLayout.js +41 -37
  79. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  80. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  81. package/lib/commonjs/components/GestureComponents.js +31 -12
  82. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  83. package/lib/commonjs/components/Swipeable.js +10 -6
  84. package/lib/commonjs/components/Swipeable.js.map +1 -1
  85. package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
  86. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  87. package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -1
  88. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  89. package/lib/commonjs/gestureHandlerRootHOC.js +1 -1
  90. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  91. package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
  92. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
  93. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
  94. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
  95. package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
  96. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
  97. package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -4
  98. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  99. package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
  100. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
  101. package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
  102. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
  103. package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
  104. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
  105. package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
  106. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
  107. package/lib/commonjs/handlers/createHandler.js +65 -84
  108. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  109. package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
  110. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
  111. package/lib/commonjs/handlers/gestures/GestureDetector.js +440 -0
  112. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  113. package/lib/commonjs/handlers/gestures/eventReceiver.js +135 -0
  114. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
  115. package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
  116. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
  117. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +65 -0
  118. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  119. package/lib/commonjs/handlers/gestures/gesture.js +193 -0
  120. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
  121. package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
  122. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
  123. package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
  124. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
  125. package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
  126. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
  127. package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
  128. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
  129. package/lib/commonjs/handlers/gestures/manualGesture.js +31 -0
  130. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
  131. package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
  132. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
  133. package/lib/commonjs/handlers/gestures/panGesture.js +144 -0
  134. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  135. package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -0
  136. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
  137. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
  138. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
  139. package/lib/commonjs/handlers/gestures/rotationGesture.js +45 -0
  140. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
  141. package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
  142. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
  143. package/lib/commonjs/handlers/handlersRegistry.js +31 -0
  144. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
  145. package/lib/commonjs/index.js +40 -8
  146. package/lib/commonjs/index.js.map +1 -1
  147. package/lib/commonjs/init.js +13 -0
  148. package/lib/commonjs/init.js.map +1 -0
  149. package/lib/commonjs/mocks.js +31 -2
  150. package/lib/commonjs/mocks.js.map +1 -1
  151. package/lib/commonjs/utils.js +15 -0
  152. package/lib/commonjs/utils.js.map +1 -0
  153. package/lib/commonjs/web/Errors.js +1 -1
  154. package/lib/commonjs/web/Errors.js.map +1 -1
  155. package/lib/commonjs/web/GestureHandler.js +4 -6
  156. package/lib/commonjs/web/GestureHandler.js.map +1 -1
  157. package/lib/commonjs/web/NodeManager.js +8 -2
  158. package/lib/commonjs/web/NodeManager.js.map +1 -1
  159. package/lib/module/EventType.js +8 -0
  160. package/lib/module/EventType.js.map +1 -0
  161. package/lib/module/GestureHandlerRootView.android.js +2 -14
  162. package/lib/module/GestureHandlerRootView.android.js.map +1 -1
  163. package/lib/module/GestureHandlerRootView.js +5 -1
  164. package/lib/module/GestureHandlerRootView.js.map +1 -1
  165. package/lib/module/RNGestureHandlerModule.js +3 -1
  166. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  167. package/lib/module/RNGestureHandlerModule.web.js +2 -2
  168. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  169. package/lib/module/components/DrawerLayout.js +43 -40
  170. package/lib/module/components/DrawerLayout.js.map +1 -1
  171. package/lib/module/components/GestureButtons.js.map +1 -1
  172. package/lib/module/components/GestureComponents.js +29 -11
  173. package/lib/module/components/GestureComponents.js.map +1 -1
  174. package/lib/module/components/Swipeable.js +9 -6
  175. package/lib/module/components/Swipeable.js.map +1 -1
  176. package/lib/module/components/touchables/GenericTouchable.js +2 -1
  177. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  178. package/lib/module/components/touchables/TouchableOpacity.js +1 -1
  179. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  180. package/lib/module/gestureHandlerRootHOC.js +1 -1
  181. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  182. package/lib/module/handlers/FlingGestureHandler.js +10 -0
  183. package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
  184. package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
  185. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
  186. package/lib/module/handlers/LongPressGestureHandler.js +10 -0
  187. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
  188. package/lib/module/handlers/NativeViewGestureHandler.js +4 -3
  189. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  190. package/lib/module/handlers/PanGestureHandler.js +106 -0
  191. package/lib/module/handlers/PanGestureHandler.js.map +1 -0
  192. package/lib/module/handlers/PinchGestureHandler.js +9 -0
  193. package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
  194. package/lib/module/handlers/RotationGestureHandler.js +9 -0
  195. package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
  196. package/lib/module/handlers/TapGestureHandler.js +10 -0
  197. package/lib/module/handlers/TapGestureHandler.js.map +1 -0
  198. package/lib/module/handlers/createHandler.js +55 -77
  199. package/lib/module/handlers/createHandler.js.map +1 -1
  200. package/lib/module/handlers/gestureHandlerCommon.js +66 -0
  201. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
  202. package/lib/module/handlers/gestures/GestureDetector.js +402 -0
  203. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  204. package/lib/module/handlers/gestures/eventReceiver.js +120 -0
  205. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
  206. package/lib/module/handlers/gestures/flingGesture.js +24 -0
  207. package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
  208. package/lib/module/handlers/gestures/forceTouchGesture.js +56 -0
  209. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  210. package/lib/module/handlers/gestures/gesture.js +175 -0
  211. package/lib/module/handlers/gestures/gesture.js.map +1 -0
  212. package/lib/module/handlers/gestures/gestureComposition.js +79 -0
  213. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
  214. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  215. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
  216. package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
  217. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
  218. package/lib/module/handlers/gestures/longPressGesture.js +24 -0
  219. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
  220. package/lib/module/handlers/gestures/manualGesture.js +22 -0
  221. package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
  222. package/lib/module/handlers/gestures/nativeGesture.js +24 -0
  223. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
  224. package/lib/module/handlers/gestures/panGesture.js +135 -0
  225. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  226. package/lib/module/handlers/gestures/pinchGesture.js +36 -0
  227. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
  228. package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
  229. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
  230. package/lib/module/handlers/gestures/rotationGesture.js +36 -0
  231. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
  232. package/lib/module/handlers/gestures/tapGesture.js +49 -0
  233. package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
  234. package/lib/module/handlers/handlersRegistry.js +16 -0
  235. package/lib/module/handlers/handlersRegistry.js.map +1 -0
  236. package/lib/module/index.js +11 -1
  237. package/lib/module/index.js.map +1 -1
  238. package/lib/module/init.js +5 -0
  239. package/lib/module/init.js.map +1 -0
  240. package/lib/module/mocks.js +31 -2
  241. package/lib/module/mocks.js.map +1 -1
  242. package/lib/module/utils.js +8 -0
  243. package/lib/module/utils.js.map +1 -0
  244. package/lib/module/web/Errors.js +1 -1
  245. package/lib/module/web/Errors.js.map +1 -1
  246. package/lib/module/web/GestureHandler.js +4 -6
  247. package/lib/module/web/GestureHandler.js.map +1 -1
  248. package/lib/module/web/NodeManager.js +8 -2
  249. package/lib/module/web/NodeManager.js.map +1 -1
  250. package/lib/typescript/EventType.d.ts +8 -0
  251. package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -4
  252. package/lib/typescript/GestureHandlerRootView.d.ts +5 -2
  253. package/lib/typescript/RNGestureHandlerModule.d.ts +1 -1
  254. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  255. package/lib/typescript/components/DrawerLayout.d.ts +50 -1
  256. package/lib/typescript/components/GestureButtons.d.ts +36 -0
  257. package/lib/typescript/components/GestureComponents.d.ts +8 -35
  258. package/lib/typescript/components/Swipeable.d.ts +73 -6
  259. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -2
  260. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
  261. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
  262. package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
  263. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
  264. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
  265. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +19 -4
  266. package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
  267. package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
  268. package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
  269. package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
  270. package/lib/typescript/handlers/createHandler.d.ts +1 -1
  271. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
  272. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +8 -1
  273. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
  274. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
  275. package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
  276. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +16 -0
  277. package/lib/typescript/handlers/gestures/gesture.d.ts +97 -0
  278. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  279. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
  280. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
  281. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
  282. package/lib/typescript/handlers/gestures/manualGesture.d.ts +7 -0
  283. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  284. package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
  285. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +12 -0
  286. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  287. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -0
  288. package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
  289. package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
  290. package/lib/typescript/index.d.ts +29 -2
  291. package/lib/typescript/init.d.ts +1 -0
  292. package/lib/typescript/mocks.d.ts +21 -2
  293. package/lib/typescript/utils.d.ts +1 -0
  294. package/lib/typescript/web/FlingGestureHandler.d.ts +0 -1
  295. package/lib/typescript/web/GestureHandler.d.ts +0 -1
  296. package/lib/typescript/web/PanGestureHandler.d.ts +0 -1
  297. package/lib/typescript/web/PinchGestureHandler.d.ts +0 -1
  298. package/lib/typescript/web/PressGestureHandler.d.ts +0 -1
  299. package/lib/typescript/web/RotationGestureHandler.d.ts +0 -1
  300. package/lib/typescript/web/TapGestureHandler.d.ts +0 -1
  301. package/package.json +8 -5
  302. package/src/EventType.ts +10 -0
  303. package/src/GestureHandlerRootView.android.tsx +9 -25
  304. package/src/GestureHandlerRootView.tsx +11 -2
  305. package/src/RNGestureHandlerModule.ts +5 -1
  306. package/src/RNGestureHandlerModule.web.ts +1 -0
  307. package/src/components/DrawerLayout.tsx +114 -41
  308. package/src/components/GestureButtons.tsx +45 -5
  309. package/src/components/GestureComponents.tsx +47 -41
  310. package/src/components/Swipeable.tsx +108 -21
  311. package/src/components/touchables/GenericTouchable.tsx +2 -1
  312. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  313. package/src/handlers/FlingGestureHandler.ts +57 -0
  314. package/src/handlers/ForceTouchGestureHandler.ts +83 -0
  315. package/src/handlers/LongPressGestureHandler.ts +84 -0
  316. package/src/handlers/NativeViewGestureHandler.ts +31 -7
  317. package/src/handlers/PanGestureHandler.ts +321 -0
  318. package/src/handlers/PinchGestureHandler.ts +46 -0
  319. package/src/handlers/RotationGestureHandler.ts +46 -0
  320. package/src/handlers/TapGestureHandler.ts +90 -0
  321. package/src/handlers/createHandler.ts +67 -79
  322. package/src/handlers/gestureHandlerCommon.ts +185 -0
  323. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  324. package/src/handlers/gestures/GestureDetector.tsx +519 -0
  325. package/src/handlers/gestures/eventReceiver.ts +151 -0
  326. package/src/handlers/gestures/flingGesture.ts +27 -0
  327. package/src/handlers/gestures/forceTouchGesture.ts +74 -0
  328. package/src/handlers/gestures/gesture.ts +292 -0
  329. package/src/handlers/gestures/gestureComposition.ts +109 -0
  330. package/src/handlers/gestures/gestureObjects.ts +79 -0
  331. package/src/handlers/gestures/gestureStateManager.ts +60 -0
  332. package/src/handlers/gestures/longPressGesture.ts +27 -0
  333. package/src/handlers/gestures/manualGesture.ts +31 -0
  334. package/src/handlers/gestures/nativeGesture.ts +27 -0
  335. package/src/handlers/gestures/panGesture.ts +147 -0
  336. package/src/handlers/gestures/pinchGesture.ts +51 -0
  337. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  338. package/src/handlers/gestures/rotationGesture.ts +51 -0
  339. package/src/handlers/gestures/tapGesture.ts +52 -0
  340. package/src/handlers/handlersRegistry.ts +22 -0
  341. package/src/index.ts +57 -17
  342. package/src/init.ts +5 -0
  343. package/src/mocks.ts +42 -2
  344. package/src/utils.ts +7 -0
  345. package/src/web/GestureHandler.ts +1 -2
  346. package/src/web/NodeManager.ts +5 -0
  347. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
  348. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
  349. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
  350. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
  351. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
  352. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
  353. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
  354. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
  355. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
  356. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
  357. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
  358. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
  359. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
  360. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
  361. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
  362. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
  363. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
  364. package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
  365. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
  366. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
  367. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
  368. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
  369. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
  370. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
  371. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
  372. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
  373. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
  374. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
  375. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
  376. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
  377. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
  378. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
  379. package/lib/commonjs/handlers/gestureHandlers.js +0 -236
  380. package/lib/commonjs/handlers/gestureHandlers.js.map +0 -1
  381. package/lib/module/handlers/gestureHandlers.js +0 -216
  382. package/lib/module/handlers/gestureHandlers.js.map +0 -1
  383. package/lib/typescript/handlers/gestureHandlers.d.ts +0 -158
  384. package/src/handlers/gestureHandlers.ts +0 -511
@@ -1,158 +0,0 @@
1
- import * as React from 'react';
2
- import { State } from '../State';
3
- import { ValueOf } from '../typeUtils';
4
- export interface GestureEventPayload {
5
- handlerTag: number;
6
- numberOfPointers: number;
7
- state: ValueOf<typeof State>;
8
- }
9
- export interface HandlerStateChangeEventPayload {
10
- handlerTag: number;
11
- numberOfPointers: number;
12
- state: ValueOf<typeof State>;
13
- oldState: ValueOf<typeof State>;
14
- }
15
- export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
16
- nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;
17
- }
18
- export interface HandlerStateChangeEvent<ExtraEventPayloadT = Record<string, unknown>> {
19
- nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;
20
- }
21
- export declare type BaseGestureHandlerProps<ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>> = {
22
- id?: string;
23
- enabled?: boolean;
24
- minPointers?: number;
25
- waitFor?: React.Ref<unknown> | React.Ref<unknown>[];
26
- simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];
27
- shouldCancelWhenOutside?: boolean;
28
- hitSlop?: number | Partial<Record<'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal', number>> | Record<'width' | 'left', number> | Record<'width' | 'right', number> | Record<'height' | 'top', number> | Record<'height' | 'bottom', number>;
29
- onBegan?: (event: HandlerStateChangeEvent) => void;
30
- onFailed?: (event: HandlerStateChangeEvent) => void;
31
- onCancelled?: (event: HandlerStateChangeEvent) => void;
32
- onActivated?: (event: HandlerStateChangeEvent) => void;
33
- onEnded?: (event: HandlerStateChangeEvent) => void;
34
- onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;
35
- onHandlerStateChange?: (event: HandlerStateChangeEvent<ExtraEventPayloadT>) => void;
36
- };
37
- export declare const baseProps: readonly ["id", "enabled", "minPointers", "waitFor", "simultaneousHandlers", "shouldCancelWhenOutside", "hitSlop", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange"];
38
- export declare type TapGestureHandlerEventPayload = {
39
- x: number;
40
- y: number;
41
- absoluteX: number;
42
- absoluteY: number;
43
- };
44
- export interface TapGestureHandlerProps extends BaseGestureHandlerProps<TapGestureHandlerEventPayload> {
45
- minPointers?: number;
46
- maxDurationMs?: number;
47
- maxDelayMs?: number;
48
- numberOfTaps?: number;
49
- maxDeltaX?: number;
50
- maxDeltaY?: number;
51
- maxDist?: number;
52
- }
53
- export declare type TapGestureHandler = typeof TapGestureHandler;
54
- export declare const TapGestureHandler: React.ComponentType<TapGestureHandlerProps & React.RefAttributes<any>>;
55
- export declare type FlingGestureHandlerEventPayload = {
56
- x: number;
57
- y: number;
58
- absoluteX: number;
59
- absoluteY: number;
60
- };
61
- export interface FlingGestureHandlerProps extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload> {
62
- direction?: number;
63
- numberOfPointers?: number;
64
- }
65
- export declare type FlingGestureHandler = typeof FlingGestureHandler;
66
- export declare const FlingGestureHandler: React.ComponentType<FlingGestureHandlerProps & React.RefAttributes<any>>;
67
- declare class ForceTouchFallback extends React.Component {
68
- static forceTouchAvailable: boolean;
69
- componentDidMount(): void;
70
- render(): React.ReactNode;
71
- }
72
- export declare type ForceTouchGestureHandlerEventPayload = {
73
- x: number;
74
- y: number;
75
- absoluteX: number;
76
- absoluteY: number;
77
- force: number;
78
- };
79
- export interface ForceTouchGestureHandlerProps extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload> {
80
- minForce?: number;
81
- maxForce?: number;
82
- feedbackOnActivation?: boolean;
83
- }
84
- export declare type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {
85
- forceTouchAvailable: boolean;
86
- };
87
- export declare const ForceTouchGestureHandler: typeof ForceTouchFallback | React.ComponentClass<ForceTouchGestureHandlerProps & React.RefAttributes<any>, any> | React.FunctionComponent<ForceTouchGestureHandlerProps & React.RefAttributes<any>>;
88
- export declare type LongPressGestureHandlerEventPayload = {
89
- x: number;
90
- y: number;
91
- absoluteX: number;
92
- absoluteY: number;
93
- };
94
- export interface LongPressGestureHandlerProps extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload> {
95
- minDurationMs?: number;
96
- maxDist?: number;
97
- }
98
- export declare type LongPressGestureHandler = typeof LongPressGestureHandler;
99
- export declare const LongPressGestureHandler: React.ComponentType<LongPressGestureHandlerProps & React.RefAttributes<any>>;
100
- export declare type PanGestureHandlerEventPayload = {
101
- x: number;
102
- y: number;
103
- absoluteX: number;
104
- absoluteY: number;
105
- translationX: number;
106
- translationY: number;
107
- velocityX: number;
108
- velocityY: number;
109
- };
110
- export interface PanGestureHandlerProps extends BaseGestureHandlerProps<PanGestureHandlerEventPayload> {
111
- /** @deprecated use activeOffsetX*/
112
- minDeltaX?: number;
113
- /** @deprecated use activeOffsetY*/
114
- minDeltaY?: number;
115
- /** @deprecated use failOffsetX*/
116
- maxDeltaX?: number;
117
- /** @deprecated use failOffsetY*/
118
- maxDeltaY?: number;
119
- /** @deprecated use activeOffsetX*/
120
- minOffsetX?: number;
121
- /** @deprecated use failOffsetY*/
122
- minOffsetY?: number;
123
- activeOffsetY?: number | number[];
124
- activeOffsetX?: number | number[];
125
- failOffsetY?: number | number[];
126
- failOffsetX?: number | number[];
127
- minDist?: number;
128
- minVelocity?: number;
129
- minVelocityX?: number;
130
- minVelocityY?: number;
131
- minPointers?: number;
132
- maxPointers?: number;
133
- avgTouches?: boolean;
134
- enableTrackpadTwoFingerGesture?: boolean;
135
- }
136
- export declare type PanGestureHandler = typeof PanGestureHandler;
137
- export declare const PanGestureHandler: React.ComponentType<PanGestureHandlerProps & React.RefAttributes<any>>;
138
- export declare type PinchGestureHandlerEventPayload = {
139
- scale: number;
140
- focalX: number;
141
- focalY: number;
142
- velocity: number;
143
- };
144
- export interface PinchGestureHandlerProps extends BaseGestureHandlerProps<PinchGestureHandlerEventPayload> {
145
- }
146
- export declare type PinchGestureHandler = typeof PinchGestureHandler;
147
- export declare const PinchGestureHandler: React.ComponentType<PinchGestureHandlerProps & React.RefAttributes<any>>;
148
- export declare type RotationGestureHandlerEventPayload = {
149
- rotation: number;
150
- anchorX: number;
151
- anchorY: number;
152
- velocity: number;
153
- };
154
- export interface RotationGestureHandlerProps extends BaseGestureHandlerProps<RotationGestureHandlerEventPayload> {
155
- }
156
- export declare type RotationGestureHandler = typeof RotationGestureHandler;
157
- export declare const RotationGestureHandler: React.ComponentType<RotationGestureHandlerProps & React.RefAttributes<any>>;
158
- export {};
@@ -1,511 +0,0 @@
1
- // Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.
2
- // Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof
3
- // e.g. React.createRef<TapGestureHandler> -> React.createRef<typeof TapGestureHandler>.
4
- // See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.
5
- import * as React from 'react';
6
-
7
- import createHandler from './createHandler';
8
- import PlatformConstants from '../PlatformConstants';
9
- import { State } from '../State';
10
- import { ValueOf } from '../typeUtils';
11
-
12
- export interface GestureEventPayload {
13
- handlerTag: number;
14
- numberOfPointers: number;
15
- state: ValueOf<typeof State>;
16
- }
17
-
18
- export interface HandlerStateChangeEventPayload {
19
- handlerTag: number;
20
- numberOfPointers: number;
21
- state: ValueOf<typeof State>;
22
- oldState: ValueOf<typeof State>;
23
- }
24
-
25
- //TODO(TS) events in handlers
26
-
27
- export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
28
- nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;
29
- }
30
- export interface HandlerStateChangeEvent<
31
- ExtraEventPayloadT = Record<string, unknown>
32
- > {
33
- nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;
34
- }
35
-
36
- // Events payloads are types instead of interfaces due to TS limitation.
37
- // See https://github.com/microsoft/TypeScript/issues/15300 for more info.
38
- export type BaseGestureHandlerProps<
39
- ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>
40
- > = {
41
- id?: string;
42
- enabled?: boolean;
43
- minPointers?: number;
44
- waitFor?: React.Ref<unknown> | React.Ref<unknown>[];
45
- simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];
46
- shouldCancelWhenOutside?: boolean;
47
- hitSlop?:
48
- | number
49
- // TODO(TS) take into consideration types from GestureHandler#setHitSlop
50
- | Partial<
51
- Record<
52
- 'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',
53
- number
54
- >
55
- >
56
- | Record<'width' | 'left', number>
57
- | Record<'width' | 'right', number>
58
- | Record<'height' | 'top', number>
59
- | Record<'height' | 'bottom', number>;
60
- // TODO(TS) - fix event types
61
- onBegan?: (event: HandlerStateChangeEvent) => void;
62
- onFailed?: (event: HandlerStateChangeEvent) => void;
63
- onCancelled?: (event: HandlerStateChangeEvent) => void;
64
- onActivated?: (event: HandlerStateChangeEvent) => void;
65
- onEnded?: (event: HandlerStateChangeEvent) => void;
66
-
67
- //TODO(TS) consider using NativeSyntheticEvent
68
- onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;
69
- onHandlerStateChange?: (
70
- event: HandlerStateChangeEvent<ExtraEventPayloadT>
71
- ) => void;
72
- };
73
-
74
- export const baseProps = [
75
- 'id',
76
- 'enabled',
77
- 'minPointers',
78
- 'waitFor',
79
- 'simultaneousHandlers',
80
- 'shouldCancelWhenOutside',
81
- 'hitSlop',
82
- 'onBegan',
83
- 'onFailed',
84
- 'onCancelled',
85
- 'onActivated',
86
- 'onEnded',
87
- 'onGestureEvent',
88
- 'onHandlerStateChange',
89
- ] as const;
90
-
91
- export type TapGestureHandlerEventPayload = {
92
- x: number;
93
- y: number;
94
- absoluteX: number;
95
- absoluteY: number;
96
- };
97
-
98
- export interface TapGestureHandlerProps
99
- extends BaseGestureHandlerProps<TapGestureHandlerEventPayload> {
100
- minPointers?: number;
101
- maxDurationMs?: number;
102
- maxDelayMs?: number;
103
- numberOfTaps?: number;
104
- maxDeltaX?: number;
105
- maxDeltaY?: number;
106
- maxDist?: number;
107
- }
108
-
109
- export type TapGestureHandler = typeof TapGestureHandler;
110
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
111
- export const TapGestureHandler = createHandler<
112
- TapGestureHandlerProps,
113
- TapGestureHandlerEventPayload
114
- >({
115
- name: 'TapGestureHandler',
116
- allowedProps: [
117
- ...baseProps,
118
- 'maxDurationMs',
119
- 'maxDelayMs',
120
- 'numberOfTaps',
121
- 'maxDeltaX',
122
- 'maxDeltaY',
123
- 'maxDist',
124
- 'minPointers',
125
- ] as const,
126
- config: {},
127
- });
128
-
129
- export type FlingGestureHandlerEventPayload = {
130
- x: number;
131
- y: number;
132
- absoluteX: number;
133
- absoluteY: number;
134
- };
135
-
136
- export interface FlingGestureHandlerProps
137
- extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload> {
138
- direction?: number;
139
- numberOfPointers?: number;
140
- }
141
-
142
- export type FlingGestureHandler = typeof FlingGestureHandler;
143
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
144
- export const FlingGestureHandler = createHandler<
145
- FlingGestureHandlerProps,
146
- FlingGestureHandlerEventPayload
147
- >({
148
- name: 'FlingGestureHandler',
149
- allowedProps: [...baseProps, 'numberOfPointers', 'direction'] as const,
150
- config: {},
151
- });
152
-
153
- class ForceTouchFallback extends React.Component {
154
- static forceTouchAvailable = false;
155
- componentDidMount() {
156
- console.warn(
157
- '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'
158
- );
159
- }
160
- render() {
161
- return this.props.children;
162
- }
163
- }
164
-
165
- export type ForceTouchGestureHandlerEventPayload = {
166
- x: number;
167
- y: number;
168
- absoluteX: number;
169
- absoluteY: number;
170
- force: number;
171
- };
172
-
173
- export interface ForceTouchGestureHandlerProps
174
- extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload> {
175
- minForce?: number;
176
- maxForce?: number;
177
- feedbackOnActivation?: boolean;
178
- }
179
-
180
- export type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {
181
- forceTouchAvailable: boolean;
182
- };
183
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
184
- export const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable
185
- ? createHandler<
186
- ForceTouchGestureHandlerProps,
187
- ForceTouchGestureHandlerEventPayload
188
- >({
189
- name: 'ForceTouchGestureHandler',
190
- allowedProps: [
191
- ...baseProps,
192
- 'minForce',
193
- 'maxForce',
194
- 'feedbackOnActivation',
195
- ] as const,
196
- config: {},
197
- })
198
- : ForceTouchFallback;
199
-
200
- (ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =
201
- PlatformConstants?.forceTouchAvailable || false;
202
-
203
- export type LongPressGestureHandlerEventPayload = {
204
- x: number;
205
- y: number;
206
- absoluteX: number;
207
- absoluteY: number;
208
- };
209
-
210
- export interface LongPressGestureHandlerProps
211
- extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload> {
212
- minDurationMs?: number;
213
- maxDist?: number;
214
- }
215
-
216
- export type LongPressGestureHandler = typeof LongPressGestureHandler;
217
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
218
- export const LongPressGestureHandler = createHandler<
219
- LongPressGestureHandlerProps,
220
- LongPressGestureHandlerEventPayload
221
- >({
222
- name: 'LongPressGestureHandler',
223
- allowedProps: [...baseProps, 'minDurationMs', 'maxDist'] as const,
224
- config: {},
225
- });
226
-
227
- function validatePanGestureHandlerProps(props: PanGestureHandlerProps) {
228
- if (props.minDeltaX && props.activeOffsetX) {
229
- throw new Error(
230
- `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`
231
- );
232
- }
233
- if (props.maxDeltaX && props.failOffsetX) {
234
- throw new Error(
235
- `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`
236
- );
237
- }
238
- if (props.minDeltaY && props.activeOffsetY) {
239
- throw new Error(
240
- `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`
241
- );
242
- }
243
- if (props.maxDeltaY && props.failOffsetY) {
244
- throw new Error(
245
- `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`
246
- );
247
- }
248
- if (
249
- Array.isArray(props.activeOffsetX) &&
250
- (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)
251
- ) {
252
- throw new Error(
253
- `First element of activeOffsetX should be negative, a the second one should be positive`
254
- );
255
- }
256
-
257
- if (
258
- Array.isArray(props.activeOffsetY) &&
259
- (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)
260
- ) {
261
- throw new Error(
262
- `First element of activeOffsetY should be negative, a the second one should be positive`
263
- );
264
- }
265
-
266
- if (
267
- Array.isArray(props.failOffsetX) &&
268
- (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)
269
- ) {
270
- throw new Error(
271
- `First element of failOffsetX should be negative, a the second one should be positive`
272
- );
273
- }
274
-
275
- if (
276
- Array.isArray(props.failOffsetY) &&
277
- (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)
278
- ) {
279
- throw new Error(
280
- `First element of failOffsetY should be negative, a the second one should be positive`
281
- );
282
- }
283
- }
284
-
285
- function transformPanGestureHandlerProps(props: PanGestureHandlerProps) {
286
- type InternalPanGHKeys =
287
- | 'activeOffsetXStart'
288
- | 'activeOffsetXEnd'
289
- | 'failOffsetXStart'
290
- | 'failOffsetXEnd'
291
- | 'activeOffsetYStart'
292
- | 'activeOffsetYEnd'
293
- | 'failOffsetYStart'
294
- | 'failOffsetYEnd';
295
- type PanGestureHandlerInternalProps = PanGestureHandlerProps &
296
- Partial<Record<InternalPanGHKeys, number>>;
297
-
298
- const res: PanGestureHandlerInternalProps = { ...props };
299
- if (props.minDeltaX !== undefined) {
300
- delete res.minDeltaX;
301
- res.activeOffsetXStart = -props.minDeltaX;
302
- res.activeOffsetXEnd = props.minDeltaX;
303
- }
304
- if (props.maxDeltaX !== undefined) {
305
- delete res.maxDeltaX;
306
- res.failOffsetXStart = -props.maxDeltaX;
307
- res.failOffsetXEnd = props.maxDeltaX;
308
- }
309
- if (props.minOffsetX !== undefined) {
310
- delete res.minOffsetX;
311
- if (props.minOffsetX < 0) {
312
- res.activeOffsetXStart = props.minOffsetX;
313
- } else {
314
- res.activeOffsetXEnd = props.minOffsetX;
315
- }
316
- }
317
-
318
- if (props.minDeltaY !== undefined) {
319
- delete res.minDeltaY;
320
- res.activeOffsetYStart = -props.minDeltaY;
321
- res.activeOffsetYEnd = props.minDeltaY;
322
- }
323
- if (props.maxDeltaY !== undefined) {
324
- delete res.maxDeltaY;
325
- res.failOffsetYStart = -props.maxDeltaY;
326
- res.failOffsetYEnd = props.maxDeltaY;
327
- }
328
-
329
- if (props.minOffsetY !== undefined) {
330
- delete res.minOffsetY;
331
- if (props.minOffsetY < 0) {
332
- res.activeOffsetYStart = props.minOffsetY;
333
- } else {
334
- res.activeOffsetYEnd = props.minOffsetY;
335
- }
336
- }
337
-
338
- if (props.activeOffsetX !== undefined) {
339
- delete res.activeOffsetX;
340
- if (Array.isArray(props.activeOffsetX)) {
341
- res.activeOffsetXStart = props.activeOffsetX[0];
342
- res.activeOffsetXEnd = props.activeOffsetX[1];
343
- } else if (props.activeOffsetX < 0) {
344
- res.activeOffsetXStart = props.activeOffsetX;
345
- } else {
346
- res.activeOffsetXEnd = props.activeOffsetX;
347
- }
348
- }
349
-
350
- if (props.activeOffsetY !== undefined) {
351
- delete res.activeOffsetY;
352
- if (Array.isArray(props.activeOffsetY)) {
353
- res.activeOffsetYStart = props.activeOffsetY[0];
354
- res.activeOffsetYEnd = props.activeOffsetY[1];
355
- } else if (props.activeOffsetY < 0) {
356
- res.activeOffsetYStart = props.activeOffsetY;
357
- } else {
358
- res.activeOffsetYEnd = props.activeOffsetY;
359
- }
360
- }
361
-
362
- if (props.failOffsetX !== undefined) {
363
- delete res.failOffsetX;
364
- if (Array.isArray(props.failOffsetX)) {
365
- res.failOffsetXStart = props.failOffsetX[0];
366
- res.failOffsetXEnd = props.failOffsetX[1];
367
- } else if (props.failOffsetX < 0) {
368
- res.failOffsetXStart = props.failOffsetX;
369
- } else {
370
- res.failOffsetXEnd = props.failOffsetX;
371
- }
372
- }
373
-
374
- if (props.failOffsetY !== undefined) {
375
- delete res.failOffsetY;
376
- if (Array.isArray(props.failOffsetY)) {
377
- res.failOffsetYStart = props.failOffsetY[0];
378
- res.failOffsetYEnd = props.failOffsetY[1];
379
- } else if (props.failOffsetY < 0) {
380
- res.failOffsetYStart = props.failOffsetY;
381
- } else {
382
- res.failOffsetYEnd = props.failOffsetY;
383
- }
384
- }
385
-
386
- return res;
387
- }
388
-
389
- function managePanProps(props: PanGestureHandlerProps) {
390
- if (__DEV__) {
391
- validatePanGestureHandlerProps(props);
392
- }
393
- return transformPanGestureHandlerProps(props);
394
- }
395
-
396
- export type PanGestureHandlerEventPayload = {
397
- x: number;
398
- y: number;
399
- absoluteX: number;
400
- absoluteY: number;
401
- translationX: number;
402
- translationY: number;
403
- velocityX: number;
404
- velocityY: number;
405
- };
406
-
407
- export interface PanGestureHandlerProps
408
- extends BaseGestureHandlerProps<PanGestureHandlerEventPayload> {
409
- /** @deprecated use activeOffsetX*/
410
- minDeltaX?: number;
411
- /** @deprecated use activeOffsetY*/
412
- minDeltaY?: number;
413
- /** @deprecated use failOffsetX*/
414
- maxDeltaX?: number;
415
- /** @deprecated use failOffsetY*/
416
- maxDeltaY?: number;
417
- /** @deprecated use activeOffsetX*/
418
- minOffsetX?: number;
419
- /** @deprecated use failOffsetY*/
420
- minOffsetY?: number;
421
- activeOffsetY?: number | number[];
422
- activeOffsetX?: number | number[];
423
- failOffsetY?: number | number[];
424
- failOffsetX?: number | number[];
425
- minDist?: number;
426
- minVelocity?: number;
427
- minVelocityX?: number;
428
- minVelocityY?: number;
429
- minPointers?: number;
430
- maxPointers?: number;
431
- avgTouches?: boolean;
432
- enableTrackpadTwoFingerGesture?: boolean;
433
- }
434
-
435
- export type PanGestureHandler = typeof PanGestureHandler;
436
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
437
- export const PanGestureHandler = createHandler<
438
- PanGestureHandlerProps,
439
- PanGestureHandlerEventPayload
440
- >({
441
- name: 'PanGestureHandler',
442
- allowedProps: [
443
- ...baseProps,
444
- 'activeOffsetY',
445
- 'activeOffsetX',
446
- 'failOffsetY',
447
- 'failOffsetX',
448
- 'minDist',
449
- 'minVelocity',
450
- 'minVelocityX',
451
- 'minVelocityY',
452
- 'minPointers',
453
- 'maxPointers',
454
- 'avgTouches',
455
- 'enableTrackpadTwoFingerGesture',
456
- ] as const,
457
- config: {},
458
- transformProps: managePanProps,
459
- customNativeProps: [
460
- 'activeOffsetYStart',
461
- 'activeOffsetYEnd',
462
- 'activeOffsetXStart',
463
- 'activeOffsetXEnd',
464
- 'failOffsetYStart',
465
- 'failOffsetYEnd',
466
- 'failOffsetXStart',
467
- 'failOffsetXEnd',
468
- ],
469
- });
470
-
471
- export type PinchGestureHandlerEventPayload = {
472
- scale: number;
473
- focalX: number;
474
- focalY: number;
475
- velocity: number;
476
- };
477
-
478
- export interface PinchGestureHandlerProps
479
- extends BaseGestureHandlerProps<PinchGestureHandlerEventPayload> {}
480
-
481
- export type PinchGestureHandler = typeof PinchGestureHandler;
482
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
483
- export const PinchGestureHandler = createHandler<
484
- PinchGestureHandlerProps,
485
- PinchGestureHandlerEventPayload
486
- >({
487
- name: 'PinchGestureHandler',
488
- allowedProps: baseProps,
489
- config: {},
490
- });
491
-
492
- export type RotationGestureHandlerEventPayload = {
493
- rotation: number;
494
- anchorX: number;
495
- anchorY: number;
496
- velocity: number;
497
- };
498
-
499
- export interface RotationGestureHandlerProps
500
- extends BaseGestureHandlerProps<RotationGestureHandlerEventPayload> {}
501
-
502
- export type RotationGestureHandler = typeof RotationGestureHandler;
503
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
504
- export const RotationGestureHandler = createHandler<
505
- RotationGestureHandlerProps,
506
- RotationGestureHandlerEventPayload
507
- >({
508
- name: 'RotationGestureHandler',
509
- allowedProps: baseProps,
510
- config: {},
511
- });