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,236 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RotationGestureHandler = exports.PinchGestureHandler = exports.PanGestureHandler = exports.LongPressGestureHandler = exports.ForceTouchGestureHandler = exports.FlingGestureHandler = exports.TapGestureHandler = exports.baseProps = void 0;
7
-
8
- var React = _interopRequireWildcard(require("react"));
9
-
10
- var _createHandler = _interopRequireDefault(require("./createHandler"));
11
-
12
- var _PlatformConstants = _interopRequireDefault(require("../PlatformConstants"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
17
-
18
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21
-
22
- const baseProps = ['id', 'enabled', 'minPointers', 'waitFor', 'simultaneousHandlers', 'shouldCancelWhenOutside', 'hitSlop', 'onBegan', 'onFailed', 'onCancelled', 'onActivated', 'onEnded', 'onGestureEvent', 'onHandlerStateChange'];
23
- exports.baseProps = baseProps;
24
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
25
- const TapGestureHandler = (0, _createHandler.default)({
26
- name: 'TapGestureHandler',
27
- allowedProps: [...baseProps, 'maxDurationMs', 'maxDelayMs', 'numberOfTaps', 'maxDeltaX', 'maxDeltaY', 'maxDist', 'minPointers'],
28
- config: {}
29
- });
30
- exports.TapGestureHandler = TapGestureHandler;
31
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
32
- const FlingGestureHandler = (0, _createHandler.default)({
33
- name: 'FlingGestureHandler',
34
- allowedProps: [...baseProps, 'numberOfPointers', 'direction'],
35
- config: {}
36
- });
37
- exports.FlingGestureHandler = FlingGestureHandler;
38
-
39
- class ForceTouchFallback extends React.Component {
40
- componentDidMount() {
41
- console.warn('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');
42
- }
43
-
44
- render() {
45
- return this.props.children;
46
- }
47
-
48
- }
49
-
50
- _defineProperty(ForceTouchFallback, "forceTouchAvailable", false);
51
-
52
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
53
- const ForceTouchGestureHandler = _PlatformConstants.default !== null && _PlatformConstants.default !== void 0 && _PlatformConstants.default.forceTouchAvailable ? (0, _createHandler.default)({
54
- name: 'ForceTouchGestureHandler',
55
- allowedProps: [...baseProps, 'minForce', 'maxForce', 'feedbackOnActivation'],
56
- config: {}
57
- }) : ForceTouchFallback;
58
- exports.ForceTouchGestureHandler = ForceTouchGestureHandler;
59
- ForceTouchGestureHandler.forceTouchAvailable = (_PlatformConstants.default === null || _PlatformConstants.default === void 0 ? void 0 : _PlatformConstants.default.forceTouchAvailable) || false;
60
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
61
- const LongPressGestureHandler = (0, _createHandler.default)({
62
- name: 'LongPressGestureHandler',
63
- allowedProps: [...baseProps, 'minDurationMs', 'maxDist'],
64
- config: {}
65
- });
66
- exports.LongPressGestureHandler = LongPressGestureHandler;
67
-
68
- function validatePanGestureHandlerProps(props) {
69
- if (props.minDeltaX && props.activeOffsetX) {
70
- throw new Error("It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd");
71
- }
72
-
73
- if (props.maxDeltaX && props.failOffsetX) {
74
- throw new Error("It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd");
75
- }
76
-
77
- if (props.minDeltaY && props.activeOffsetY) {
78
- throw new Error("It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd");
79
- }
80
-
81
- if (props.maxDeltaY && props.failOffsetY) {
82
- throw new Error("It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd");
83
- }
84
-
85
- if (Array.isArray(props.activeOffsetX) && (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)) {
86
- throw new Error("First element of activeOffsetX should be negative, a the second one should be positive");
87
- }
88
-
89
- if (Array.isArray(props.activeOffsetY) && (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)) {
90
- throw new Error("First element of activeOffsetY should be negative, a the second one should be positive");
91
- }
92
-
93
- if (Array.isArray(props.failOffsetX) && (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)) {
94
- throw new Error("First element of failOffsetX should be negative, a the second one should be positive");
95
- }
96
-
97
- if (Array.isArray(props.failOffsetY) && (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)) {
98
- throw new Error("First element of failOffsetY should be negative, a the second one should be positive");
99
- }
100
- }
101
-
102
- function transformPanGestureHandlerProps(props) {
103
- const res = { ...props
104
- };
105
-
106
- if (props.minDeltaX !== undefined) {
107
- delete res.minDeltaX;
108
- res.activeOffsetXStart = -props.minDeltaX;
109
- res.activeOffsetXEnd = props.minDeltaX;
110
- }
111
-
112
- if (props.maxDeltaX !== undefined) {
113
- delete res.maxDeltaX;
114
- res.failOffsetXStart = -props.maxDeltaX;
115
- res.failOffsetXEnd = props.maxDeltaX;
116
- }
117
-
118
- if (props.minOffsetX !== undefined) {
119
- delete res.minOffsetX;
120
-
121
- if (props.minOffsetX < 0) {
122
- res.activeOffsetXStart = props.minOffsetX;
123
- } else {
124
- res.activeOffsetXEnd = props.minOffsetX;
125
- }
126
- }
127
-
128
- if (props.minDeltaY !== undefined) {
129
- delete res.minDeltaY;
130
- res.activeOffsetYStart = -props.minDeltaY;
131
- res.activeOffsetYEnd = props.minDeltaY;
132
- }
133
-
134
- if (props.maxDeltaY !== undefined) {
135
- delete res.maxDeltaY;
136
- res.failOffsetYStart = -props.maxDeltaY;
137
- res.failOffsetYEnd = props.maxDeltaY;
138
- }
139
-
140
- if (props.minOffsetY !== undefined) {
141
- delete res.minOffsetY;
142
-
143
- if (props.minOffsetY < 0) {
144
- res.activeOffsetYStart = props.minOffsetY;
145
- } else {
146
- res.activeOffsetYEnd = props.minOffsetY;
147
- }
148
- }
149
-
150
- if (props.activeOffsetX !== undefined) {
151
- delete res.activeOffsetX;
152
-
153
- if (Array.isArray(props.activeOffsetX)) {
154
- res.activeOffsetXStart = props.activeOffsetX[0];
155
- res.activeOffsetXEnd = props.activeOffsetX[1];
156
- } else if (props.activeOffsetX < 0) {
157
- res.activeOffsetXStart = props.activeOffsetX;
158
- } else {
159
- res.activeOffsetXEnd = props.activeOffsetX;
160
- }
161
- }
162
-
163
- if (props.activeOffsetY !== undefined) {
164
- delete res.activeOffsetY;
165
-
166
- if (Array.isArray(props.activeOffsetY)) {
167
- res.activeOffsetYStart = props.activeOffsetY[0];
168
- res.activeOffsetYEnd = props.activeOffsetY[1];
169
- } else if (props.activeOffsetY < 0) {
170
- res.activeOffsetYStart = props.activeOffsetY;
171
- } else {
172
- res.activeOffsetYEnd = props.activeOffsetY;
173
- }
174
- }
175
-
176
- if (props.failOffsetX !== undefined) {
177
- delete res.failOffsetX;
178
-
179
- if (Array.isArray(props.failOffsetX)) {
180
- res.failOffsetXStart = props.failOffsetX[0];
181
- res.failOffsetXEnd = props.failOffsetX[1];
182
- } else if (props.failOffsetX < 0) {
183
- res.failOffsetXStart = props.failOffsetX;
184
- } else {
185
- res.failOffsetXEnd = props.failOffsetX;
186
- }
187
- }
188
-
189
- if (props.failOffsetY !== undefined) {
190
- delete res.failOffsetY;
191
-
192
- if (Array.isArray(props.failOffsetY)) {
193
- res.failOffsetYStart = props.failOffsetY[0];
194
- res.failOffsetYEnd = props.failOffsetY[1];
195
- } else if (props.failOffsetY < 0) {
196
- res.failOffsetYStart = props.failOffsetY;
197
- } else {
198
- res.failOffsetYEnd = props.failOffsetY;
199
- }
200
- }
201
-
202
- return res;
203
- }
204
-
205
- function managePanProps(props) {
206
- if (__DEV__) {
207
- validatePanGestureHandlerProps(props);
208
- }
209
-
210
- return transformPanGestureHandlerProps(props);
211
- }
212
-
213
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
214
- const PanGestureHandler = (0, _createHandler.default)({
215
- name: 'PanGestureHandler',
216
- allowedProps: [...baseProps, 'activeOffsetY', 'activeOffsetX', 'failOffsetY', 'failOffsetX', 'minDist', 'minVelocity', 'minVelocityX', 'minVelocityY', 'minPointers', 'maxPointers', 'avgTouches', 'enableTrackpadTwoFingerGesture'],
217
- config: {},
218
- transformProps: managePanProps,
219
- customNativeProps: ['activeOffsetYStart', 'activeOffsetYEnd', 'activeOffsetXStart', 'activeOffsetXEnd', 'failOffsetYStart', 'failOffsetYEnd', 'failOffsetXStart', 'failOffsetXEnd']
220
- });
221
- exports.PanGestureHandler = PanGestureHandler;
222
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
223
- const PinchGestureHandler = (0, _createHandler.default)({
224
- name: 'PinchGestureHandler',
225
- allowedProps: baseProps,
226
- config: {}
227
- });
228
- exports.PinchGestureHandler = PinchGestureHandler;
229
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
230
- const RotationGestureHandler = (0, _createHandler.default)({
231
- name: 'RotationGestureHandler',
232
- allowedProps: baseProps,
233
- config: {}
234
- });
235
- exports.RotationGestureHandler = RotationGestureHandler;
236
- //# sourceMappingURL=gestureHandlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["gestureHandlers.ts"],"names":["baseProps","TapGestureHandler","name","allowedProps","config","FlingGestureHandler","ForceTouchFallback","React","Component","componentDidMount","console","warn","render","props","children","ForceTouchGestureHandler","PlatformConstants","forceTouchAvailable","LongPressGestureHandler","validatePanGestureHandlerProps","minDeltaX","activeOffsetX","Error","maxDeltaX","failOffsetX","minDeltaY","activeOffsetY","maxDeltaY","failOffsetY","Array","isArray","transformPanGestureHandlerProps","res","undefined","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","minOffsetX","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minOffsetY","managePanProps","__DEV__","PanGestureHandler","transformProps","customNativeProps","PinchGestureHandler","RotationGestureHandler"],"mappings":"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","sourcesContent":["// Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.\n// Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof\n// e.g. React.createRef<TapGestureHandler> -> React.createRef<typeof TapGestureHandler>.\n// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.\nimport * as React from 'react';\n\nimport createHandler from './createHandler';\nimport PlatformConstants from '../PlatformConstants';\nimport { State } from '../State';\nimport { ValueOf } from '../typeUtils';\n\nexport interface GestureEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf<typeof State>;\n}\n\nexport interface HandlerStateChangeEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf<typeof State>;\n oldState: ValueOf<typeof State>;\n}\n\n//TODO(TS) events in handlers\n\nexport interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {\n nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;\n}\nexport interface HandlerStateChangeEvent<\n ExtraEventPayloadT = Record<string, unknown>\n> {\n nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;\n}\n\n// Events payloads are types instead of interfaces due to TS limitation.\n// See https://github.com/microsoft/TypeScript/issues/15300 for more info.\nexport type BaseGestureHandlerProps<\n ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>\n> = {\n id?: string;\n enabled?: boolean;\n minPointers?: number;\n waitFor?: React.Ref<unknown> | React.Ref<unknown>[];\n simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];\n shouldCancelWhenOutside?: boolean;\n hitSlop?:\n | number\n // TODO(TS) take into consideration types from GestureHandler#setHitSlop\n | Partial<\n Record<\n 'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',\n number\n >\n >\n | Record<'width' | 'left', number>\n | Record<'width' | 'right', number>\n | Record<'height' | 'top', number>\n | Record<'height' | 'bottom', number>;\n // TODO(TS) - fix event types\n onBegan?: (event: HandlerStateChangeEvent) => void;\n onFailed?: (event: HandlerStateChangeEvent) => void;\n onCancelled?: (event: HandlerStateChangeEvent) => void;\n onActivated?: (event: HandlerStateChangeEvent) => void;\n onEnded?: (event: HandlerStateChangeEvent) => void;\n\n //TODO(TS) consider using NativeSyntheticEvent\n onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;\n onHandlerStateChange?: (\n event: HandlerStateChangeEvent<ExtraEventPayloadT>\n ) => void;\n};\n\nexport const baseProps = [\n 'id',\n 'enabled',\n 'minPointers',\n 'waitFor',\n 'simultaneousHandlers',\n 'shouldCancelWhenOutside',\n 'hitSlop',\n 'onBegan',\n 'onFailed',\n 'onCancelled',\n 'onActivated',\n 'onEnded',\n 'onGestureEvent',\n 'onHandlerStateChange',\n] as const;\n\nexport type TapGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface TapGestureHandlerProps\n extends BaseGestureHandlerProps<TapGestureHandlerEventPayload> {\n minPointers?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n numberOfTaps?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n maxDist?: number;\n}\n\nexport type TapGestureHandler = typeof TapGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const TapGestureHandler = createHandler<\n TapGestureHandlerProps,\n TapGestureHandlerEventPayload\n>({\n name: 'TapGestureHandler',\n allowedProps: [\n ...baseProps,\n 'maxDurationMs',\n 'maxDelayMs',\n 'numberOfTaps',\n 'maxDeltaX',\n 'maxDeltaY',\n 'maxDist',\n 'minPointers',\n ] as const,\n config: {},\n});\n\nexport type FlingGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface FlingGestureHandlerProps\n extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload> {\n direction?: number;\n numberOfPointers?: number;\n}\n\nexport type FlingGestureHandler = typeof FlingGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const FlingGestureHandler = createHandler<\n FlingGestureHandlerProps,\n FlingGestureHandlerEventPayload\n>({\n name: 'FlingGestureHandler',\n allowedProps: [...baseProps, 'numberOfPointers', 'direction'] as const,\n config: {},\n});\n\nclass ForceTouchFallback extends React.Component {\n static forceTouchAvailable = false;\n componentDidMount() {\n console.warn(\n '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'\n );\n }\n render() {\n return this.props.children;\n }\n}\n\nexport type ForceTouchGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n force: number;\n};\n\nexport interface ForceTouchGestureHandlerProps\n extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload> {\n minForce?: number;\n maxForce?: number;\n feedbackOnActivation?: boolean;\n}\n\nexport type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {\n forceTouchAvailable: boolean;\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable\n ? createHandler<\n ForceTouchGestureHandlerProps,\n ForceTouchGestureHandlerEventPayload\n >({\n name: 'ForceTouchGestureHandler',\n allowedProps: [\n ...baseProps,\n 'minForce',\n 'maxForce',\n 'feedbackOnActivation',\n ] as const,\n config: {},\n })\n : ForceTouchFallback;\n\n(ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =\n PlatformConstants?.forceTouchAvailable || false;\n\nexport type LongPressGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface LongPressGestureHandlerProps\n extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload> {\n minDurationMs?: number;\n maxDist?: number;\n}\n\nexport type LongPressGestureHandler = typeof LongPressGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const LongPressGestureHandler = createHandler<\n LongPressGestureHandlerProps,\n LongPressGestureHandlerEventPayload\n>({\n name: 'LongPressGestureHandler',\n allowedProps: [...baseProps, 'minDurationMs', 'maxDist'] as const,\n config: {},\n});\n\nfunction validatePanGestureHandlerProps(props: PanGestureHandlerProps) {\n if (props.minDeltaX && props.activeOffsetX) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`\n );\n }\n if (props.maxDeltaX && props.failOffsetX) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`\n );\n }\n if (props.minDeltaY && props.activeOffsetY) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`\n );\n }\n if (props.maxDeltaY && props.failOffsetY) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`\n );\n }\n if (\n Array.isArray(props.activeOffsetX) &&\n (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.activeOffsetY) &&\n (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetX) &&\n (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetY) &&\n (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetY should be negative, a the second one should be positive`\n );\n }\n}\n\nfunction transformPanGestureHandlerProps(props: PanGestureHandlerProps) {\n type InternalPanGHKeys =\n | 'activeOffsetXStart'\n | 'activeOffsetXEnd'\n | 'failOffsetXStart'\n | 'failOffsetXEnd'\n | 'activeOffsetYStart'\n | 'activeOffsetYEnd'\n | 'failOffsetYStart'\n | 'failOffsetYEnd';\n type PanGestureHandlerInternalProps = PanGestureHandlerProps &\n Partial<Record<InternalPanGHKeys, number>>;\n\n const res: PanGestureHandlerInternalProps = { ...props };\n if (props.minDeltaX !== undefined) {\n delete res.minDeltaX;\n res.activeOffsetXStart = -props.minDeltaX;\n res.activeOffsetXEnd = props.minDeltaX;\n }\n if (props.maxDeltaX !== undefined) {\n delete res.maxDeltaX;\n res.failOffsetXStart = -props.maxDeltaX;\n res.failOffsetXEnd = props.maxDeltaX;\n }\n if (props.minOffsetX !== undefined) {\n delete res.minOffsetX;\n if (props.minOffsetX < 0) {\n res.activeOffsetXStart = props.minOffsetX;\n } else {\n res.activeOffsetXEnd = props.minOffsetX;\n }\n }\n\n if (props.minDeltaY !== undefined) {\n delete res.minDeltaY;\n res.activeOffsetYStart = -props.minDeltaY;\n res.activeOffsetYEnd = props.minDeltaY;\n }\n if (props.maxDeltaY !== undefined) {\n delete res.maxDeltaY;\n res.failOffsetYStart = -props.maxDeltaY;\n res.failOffsetYEnd = props.maxDeltaY;\n }\n\n if (props.minOffsetY !== undefined) {\n delete res.minOffsetY;\n if (props.minOffsetY < 0) {\n res.activeOffsetYStart = props.minOffsetY;\n } else {\n res.activeOffsetYEnd = props.minOffsetY;\n }\n }\n\n if (props.activeOffsetX !== undefined) {\n delete res.activeOffsetX;\n if (Array.isArray(props.activeOffsetX)) {\n res.activeOffsetXStart = props.activeOffsetX[0];\n res.activeOffsetXEnd = props.activeOffsetX[1];\n } else if (props.activeOffsetX < 0) {\n res.activeOffsetXStart = props.activeOffsetX;\n } else {\n res.activeOffsetXEnd = props.activeOffsetX;\n }\n }\n\n if (props.activeOffsetY !== undefined) {\n delete res.activeOffsetY;\n if (Array.isArray(props.activeOffsetY)) {\n res.activeOffsetYStart = props.activeOffsetY[0];\n res.activeOffsetYEnd = props.activeOffsetY[1];\n } else if (props.activeOffsetY < 0) {\n res.activeOffsetYStart = props.activeOffsetY;\n } else {\n res.activeOffsetYEnd = props.activeOffsetY;\n }\n }\n\n if (props.failOffsetX !== undefined) {\n delete res.failOffsetX;\n if (Array.isArray(props.failOffsetX)) {\n res.failOffsetXStart = props.failOffsetX[0];\n res.failOffsetXEnd = props.failOffsetX[1];\n } else if (props.failOffsetX < 0) {\n res.failOffsetXStart = props.failOffsetX;\n } else {\n res.failOffsetXEnd = props.failOffsetX;\n }\n }\n\n if (props.failOffsetY !== undefined) {\n delete res.failOffsetY;\n if (Array.isArray(props.failOffsetY)) {\n res.failOffsetYStart = props.failOffsetY[0];\n res.failOffsetYEnd = props.failOffsetY[1];\n } else if (props.failOffsetY < 0) {\n res.failOffsetYStart = props.failOffsetY;\n } else {\n res.failOffsetYEnd = props.failOffsetY;\n }\n }\n\n return res;\n}\n\nfunction managePanProps(props: PanGestureHandlerProps) {\n if (__DEV__) {\n validatePanGestureHandlerProps(props);\n }\n return transformPanGestureHandlerProps(props);\n}\n\nexport type PanGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n translationX: number;\n translationY: number;\n velocityX: number;\n velocityY: number;\n};\n\nexport interface PanGestureHandlerProps\n extends BaseGestureHandlerProps<PanGestureHandlerEventPayload> {\n /** @deprecated use activeOffsetX*/\n minDeltaX?: number;\n /** @deprecated use activeOffsetY*/\n minDeltaY?: number;\n /** @deprecated use failOffsetX*/\n maxDeltaX?: number;\n /** @deprecated use failOffsetY*/\n maxDeltaY?: number;\n /** @deprecated use activeOffsetX*/\n minOffsetX?: number;\n /** @deprecated use failOffsetY*/\n minOffsetY?: number;\n activeOffsetY?: number | number[];\n activeOffsetX?: number | number[];\n failOffsetY?: number | number[];\n failOffsetX?: number | number[];\n minDist?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minPointers?: number;\n maxPointers?: number;\n avgTouches?: boolean;\n enableTrackpadTwoFingerGesture?: boolean;\n}\n\nexport type PanGestureHandler = typeof PanGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const PanGestureHandler = createHandler<\n PanGestureHandlerProps,\n PanGestureHandlerEventPayload\n>({\n name: 'PanGestureHandler',\n allowedProps: [\n ...baseProps,\n 'activeOffsetY',\n 'activeOffsetX',\n 'failOffsetY',\n 'failOffsetX',\n 'minDist',\n 'minVelocity',\n 'minVelocityX',\n 'minVelocityY',\n 'minPointers',\n 'maxPointers',\n 'avgTouches',\n 'enableTrackpadTwoFingerGesture',\n ] as const,\n config: {},\n transformProps: managePanProps,\n customNativeProps: [\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n ],\n});\n\nexport type PinchGestureHandlerEventPayload = {\n scale: number;\n focalX: number;\n focalY: number;\n velocity: number;\n};\n\nexport interface PinchGestureHandlerProps\n extends BaseGestureHandlerProps<PinchGestureHandlerEventPayload> {}\n\nexport type PinchGestureHandler = typeof PinchGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const PinchGestureHandler = createHandler<\n PinchGestureHandlerProps,\n PinchGestureHandlerEventPayload\n>({\n name: 'PinchGestureHandler',\n allowedProps: baseProps,\n config: {},\n});\n\nexport type RotationGestureHandlerEventPayload = {\n rotation: number;\n anchorX: number;\n anchorY: number;\n velocity: number;\n};\n\nexport interface RotationGestureHandlerProps\n extends BaseGestureHandlerProps<RotationGestureHandlerEventPayload> {}\n\nexport type RotationGestureHandler = typeof RotationGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const RotationGestureHandler = createHandler<\n RotationGestureHandlerProps,\n RotationGestureHandlerEventPayload\n>({\n name: 'RotationGestureHandler',\n allowedProps: baseProps,\n config: {},\n});\n"]}
@@ -1,216 +0,0 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
- // Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.
4
- // Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof
5
- // e.g. React.createRef<TapGestureHandler> -> React.createRef<typeof TapGestureHandler>.
6
- // See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.
7
- import * as React from 'react';
8
- import createHandler from './createHandler';
9
- import PlatformConstants from '../PlatformConstants';
10
- export const baseProps = ['id', 'enabled', 'minPointers', 'waitFor', 'simultaneousHandlers', 'shouldCancelWhenOutside', 'hitSlop', 'onBegan', 'onFailed', 'onCancelled', 'onActivated', 'onEnded', 'onGestureEvent', 'onHandlerStateChange'];
11
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
12
- export const TapGestureHandler = createHandler({
13
- name: 'TapGestureHandler',
14
- allowedProps: [...baseProps, 'maxDurationMs', 'maxDelayMs', 'numberOfTaps', 'maxDeltaX', 'maxDeltaY', 'maxDist', 'minPointers'],
15
- config: {}
16
- });
17
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
18
- export const FlingGestureHandler = createHandler({
19
- name: 'FlingGestureHandler',
20
- allowedProps: [...baseProps, 'numberOfPointers', 'direction'],
21
- config: {}
22
- });
23
-
24
- class ForceTouchFallback extends React.Component {
25
- componentDidMount() {
26
- console.warn('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');
27
- }
28
-
29
- render() {
30
- return this.props.children;
31
- }
32
-
33
- }
34
-
35
- _defineProperty(ForceTouchFallback, "forceTouchAvailable", false);
36
-
37
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
38
- export const ForceTouchGestureHandler = PlatformConstants !== null && PlatformConstants !== void 0 && PlatformConstants.forceTouchAvailable ? createHandler({
39
- name: 'ForceTouchGestureHandler',
40
- allowedProps: [...baseProps, 'minForce', 'maxForce', 'feedbackOnActivation'],
41
- config: {}
42
- }) : ForceTouchFallback;
43
- ForceTouchGestureHandler.forceTouchAvailable = (PlatformConstants === null || PlatformConstants === void 0 ? void 0 : PlatformConstants.forceTouchAvailable) || false;
44
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
45
- export const LongPressGestureHandler = createHandler({
46
- name: 'LongPressGestureHandler',
47
- allowedProps: [...baseProps, 'minDurationMs', 'maxDist'],
48
- config: {}
49
- });
50
-
51
- function validatePanGestureHandlerProps(props) {
52
- if (props.minDeltaX && props.activeOffsetX) {
53
- throw new Error("It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd");
54
- }
55
-
56
- if (props.maxDeltaX && props.failOffsetX) {
57
- throw new Error("It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd");
58
- }
59
-
60
- if (props.minDeltaY && props.activeOffsetY) {
61
- throw new Error("It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd");
62
- }
63
-
64
- if (props.maxDeltaY && props.failOffsetY) {
65
- throw new Error("It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd");
66
- }
67
-
68
- if (Array.isArray(props.activeOffsetX) && (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)) {
69
- throw new Error("First element of activeOffsetX should be negative, a the second one should be positive");
70
- }
71
-
72
- if (Array.isArray(props.activeOffsetY) && (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)) {
73
- throw new Error("First element of activeOffsetY should be negative, a the second one should be positive");
74
- }
75
-
76
- if (Array.isArray(props.failOffsetX) && (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)) {
77
- throw new Error("First element of failOffsetX should be negative, a the second one should be positive");
78
- }
79
-
80
- if (Array.isArray(props.failOffsetY) && (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)) {
81
- throw new Error("First element of failOffsetY should be negative, a the second one should be positive");
82
- }
83
- }
84
-
85
- function transformPanGestureHandlerProps(props) {
86
- const res = { ...props
87
- };
88
-
89
- if (props.minDeltaX !== undefined) {
90
- delete res.minDeltaX;
91
- res.activeOffsetXStart = -props.minDeltaX;
92
- res.activeOffsetXEnd = props.minDeltaX;
93
- }
94
-
95
- if (props.maxDeltaX !== undefined) {
96
- delete res.maxDeltaX;
97
- res.failOffsetXStart = -props.maxDeltaX;
98
- res.failOffsetXEnd = props.maxDeltaX;
99
- }
100
-
101
- if (props.minOffsetX !== undefined) {
102
- delete res.minOffsetX;
103
-
104
- if (props.minOffsetX < 0) {
105
- res.activeOffsetXStart = props.minOffsetX;
106
- } else {
107
- res.activeOffsetXEnd = props.minOffsetX;
108
- }
109
- }
110
-
111
- if (props.minDeltaY !== undefined) {
112
- delete res.minDeltaY;
113
- res.activeOffsetYStart = -props.minDeltaY;
114
- res.activeOffsetYEnd = props.minDeltaY;
115
- }
116
-
117
- if (props.maxDeltaY !== undefined) {
118
- delete res.maxDeltaY;
119
- res.failOffsetYStart = -props.maxDeltaY;
120
- res.failOffsetYEnd = props.maxDeltaY;
121
- }
122
-
123
- if (props.minOffsetY !== undefined) {
124
- delete res.minOffsetY;
125
-
126
- if (props.minOffsetY < 0) {
127
- res.activeOffsetYStart = props.minOffsetY;
128
- } else {
129
- res.activeOffsetYEnd = props.minOffsetY;
130
- }
131
- }
132
-
133
- if (props.activeOffsetX !== undefined) {
134
- delete res.activeOffsetX;
135
-
136
- if (Array.isArray(props.activeOffsetX)) {
137
- res.activeOffsetXStart = props.activeOffsetX[0];
138
- res.activeOffsetXEnd = props.activeOffsetX[1];
139
- } else if (props.activeOffsetX < 0) {
140
- res.activeOffsetXStart = props.activeOffsetX;
141
- } else {
142
- res.activeOffsetXEnd = props.activeOffsetX;
143
- }
144
- }
145
-
146
- if (props.activeOffsetY !== undefined) {
147
- delete res.activeOffsetY;
148
-
149
- if (Array.isArray(props.activeOffsetY)) {
150
- res.activeOffsetYStart = props.activeOffsetY[0];
151
- res.activeOffsetYEnd = props.activeOffsetY[1];
152
- } else if (props.activeOffsetY < 0) {
153
- res.activeOffsetYStart = props.activeOffsetY;
154
- } else {
155
- res.activeOffsetYEnd = props.activeOffsetY;
156
- }
157
- }
158
-
159
- if (props.failOffsetX !== undefined) {
160
- delete res.failOffsetX;
161
-
162
- if (Array.isArray(props.failOffsetX)) {
163
- res.failOffsetXStart = props.failOffsetX[0];
164
- res.failOffsetXEnd = props.failOffsetX[1];
165
- } else if (props.failOffsetX < 0) {
166
- res.failOffsetXStart = props.failOffsetX;
167
- } else {
168
- res.failOffsetXEnd = props.failOffsetX;
169
- }
170
- }
171
-
172
- if (props.failOffsetY !== undefined) {
173
- delete res.failOffsetY;
174
-
175
- if (Array.isArray(props.failOffsetY)) {
176
- res.failOffsetYStart = props.failOffsetY[0];
177
- res.failOffsetYEnd = props.failOffsetY[1];
178
- } else if (props.failOffsetY < 0) {
179
- res.failOffsetYStart = props.failOffsetY;
180
- } else {
181
- res.failOffsetYEnd = props.failOffsetY;
182
- }
183
- }
184
-
185
- return res;
186
- }
187
-
188
- function managePanProps(props) {
189
- if (__DEV__) {
190
- validatePanGestureHandlerProps(props);
191
- }
192
-
193
- return transformPanGestureHandlerProps(props);
194
- }
195
-
196
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
197
- export const PanGestureHandler = createHandler({
198
- name: 'PanGestureHandler',
199
- allowedProps: [...baseProps, 'activeOffsetY', 'activeOffsetX', 'failOffsetY', 'failOffsetX', 'minDist', 'minVelocity', 'minVelocityX', 'minVelocityY', 'minPointers', 'maxPointers', 'avgTouches', 'enableTrackpadTwoFingerGesture'],
200
- config: {},
201
- transformProps: managePanProps,
202
- customNativeProps: ['activeOffsetYStart', 'activeOffsetYEnd', 'activeOffsetXStart', 'activeOffsetXEnd', 'failOffsetYStart', 'failOffsetYEnd', 'failOffsetXStart', 'failOffsetXEnd']
203
- });
204
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
205
- export const PinchGestureHandler = createHandler({
206
- name: 'PinchGestureHandler',
207
- allowedProps: baseProps,
208
- config: {}
209
- });
210
- // eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
211
- export const RotationGestureHandler = createHandler({
212
- name: 'RotationGestureHandler',
213
- allowedProps: baseProps,
214
- config: {}
215
- });
216
- //# sourceMappingURL=gestureHandlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["gestureHandlers.ts"],"names":["React","createHandler","PlatformConstants","baseProps","TapGestureHandler","name","allowedProps","config","FlingGestureHandler","ForceTouchFallback","Component","componentDidMount","console","warn","render","props","children","ForceTouchGestureHandler","forceTouchAvailable","LongPressGestureHandler","validatePanGestureHandlerProps","minDeltaX","activeOffsetX","Error","maxDeltaX","failOffsetX","minDeltaY","activeOffsetY","maxDeltaY","failOffsetY","Array","isArray","transformPanGestureHandlerProps","res","undefined","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","minOffsetX","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minOffsetY","managePanProps","__DEV__","PanGestureHandler","transformProps","customNativeProps","PinchGestureHandler","RotationGestureHandler"],"mappings":"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","sourcesContent":["// Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.\n// Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof\n// e.g. React.createRef<TapGestureHandler> -> React.createRef<typeof TapGestureHandler>.\n// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.\nimport * as React from 'react';\n\nimport createHandler from './createHandler';\nimport PlatformConstants from '../PlatformConstants';\nimport { State } from '../State';\nimport { ValueOf } from '../typeUtils';\n\nexport interface GestureEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf<typeof State>;\n}\n\nexport interface HandlerStateChangeEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf<typeof State>;\n oldState: ValueOf<typeof State>;\n}\n\n//TODO(TS) events in handlers\n\nexport interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {\n nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;\n}\nexport interface HandlerStateChangeEvent<\n ExtraEventPayloadT = Record<string, unknown>\n> {\n nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;\n}\n\n// Events payloads are types instead of interfaces due to TS limitation.\n// See https://github.com/microsoft/TypeScript/issues/15300 for more info.\nexport type BaseGestureHandlerProps<\n ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>\n> = {\n id?: string;\n enabled?: boolean;\n minPointers?: number;\n waitFor?: React.Ref<unknown> | React.Ref<unknown>[];\n simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];\n shouldCancelWhenOutside?: boolean;\n hitSlop?:\n | number\n // TODO(TS) take into consideration types from GestureHandler#setHitSlop\n | Partial<\n Record<\n 'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',\n number\n >\n >\n | Record<'width' | 'left', number>\n | Record<'width' | 'right', number>\n | Record<'height' | 'top', number>\n | Record<'height' | 'bottom', number>;\n // TODO(TS) - fix event types\n onBegan?: (event: HandlerStateChangeEvent) => void;\n onFailed?: (event: HandlerStateChangeEvent) => void;\n onCancelled?: (event: HandlerStateChangeEvent) => void;\n onActivated?: (event: HandlerStateChangeEvent) => void;\n onEnded?: (event: HandlerStateChangeEvent) => void;\n\n //TODO(TS) consider using NativeSyntheticEvent\n onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;\n onHandlerStateChange?: (\n event: HandlerStateChangeEvent<ExtraEventPayloadT>\n ) => void;\n};\n\nexport const baseProps = [\n 'id',\n 'enabled',\n 'minPointers',\n 'waitFor',\n 'simultaneousHandlers',\n 'shouldCancelWhenOutside',\n 'hitSlop',\n 'onBegan',\n 'onFailed',\n 'onCancelled',\n 'onActivated',\n 'onEnded',\n 'onGestureEvent',\n 'onHandlerStateChange',\n] as const;\n\nexport type TapGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface TapGestureHandlerProps\n extends BaseGestureHandlerProps<TapGestureHandlerEventPayload> {\n minPointers?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n numberOfTaps?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n maxDist?: number;\n}\n\nexport type TapGestureHandler = typeof TapGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const TapGestureHandler = createHandler<\n TapGestureHandlerProps,\n TapGestureHandlerEventPayload\n>({\n name: 'TapGestureHandler',\n allowedProps: [\n ...baseProps,\n 'maxDurationMs',\n 'maxDelayMs',\n 'numberOfTaps',\n 'maxDeltaX',\n 'maxDeltaY',\n 'maxDist',\n 'minPointers',\n ] as const,\n config: {},\n});\n\nexport type FlingGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface FlingGestureHandlerProps\n extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload> {\n direction?: number;\n numberOfPointers?: number;\n}\n\nexport type FlingGestureHandler = typeof FlingGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const FlingGestureHandler = createHandler<\n FlingGestureHandlerProps,\n FlingGestureHandlerEventPayload\n>({\n name: 'FlingGestureHandler',\n allowedProps: [...baseProps, 'numberOfPointers', 'direction'] as const,\n config: {},\n});\n\nclass ForceTouchFallback extends React.Component {\n static forceTouchAvailable = false;\n componentDidMount() {\n console.warn(\n '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'\n );\n }\n render() {\n return this.props.children;\n }\n}\n\nexport type ForceTouchGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n force: number;\n};\n\nexport interface ForceTouchGestureHandlerProps\n extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload> {\n minForce?: number;\n maxForce?: number;\n feedbackOnActivation?: boolean;\n}\n\nexport type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {\n forceTouchAvailable: boolean;\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable\n ? createHandler<\n ForceTouchGestureHandlerProps,\n ForceTouchGestureHandlerEventPayload\n >({\n name: 'ForceTouchGestureHandler',\n allowedProps: [\n ...baseProps,\n 'minForce',\n 'maxForce',\n 'feedbackOnActivation',\n ] as const,\n config: {},\n })\n : ForceTouchFallback;\n\n(ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =\n PlatformConstants?.forceTouchAvailable || false;\n\nexport type LongPressGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport interface LongPressGestureHandlerProps\n extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload> {\n minDurationMs?: number;\n maxDist?: number;\n}\n\nexport type LongPressGestureHandler = typeof LongPressGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const LongPressGestureHandler = createHandler<\n LongPressGestureHandlerProps,\n LongPressGestureHandlerEventPayload\n>({\n name: 'LongPressGestureHandler',\n allowedProps: [...baseProps, 'minDurationMs', 'maxDist'] as const,\n config: {},\n});\n\nfunction validatePanGestureHandlerProps(props: PanGestureHandlerProps) {\n if (props.minDeltaX && props.activeOffsetX) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`\n );\n }\n if (props.maxDeltaX && props.failOffsetX) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`\n );\n }\n if (props.minDeltaY && props.activeOffsetY) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`\n );\n }\n if (props.maxDeltaY && props.failOffsetY) {\n throw new Error(\n `It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`\n );\n }\n if (\n Array.isArray(props.activeOffsetX) &&\n (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.activeOffsetY) &&\n (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetX) &&\n (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetY) &&\n (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetY should be negative, a the second one should be positive`\n );\n }\n}\n\nfunction transformPanGestureHandlerProps(props: PanGestureHandlerProps) {\n type InternalPanGHKeys =\n | 'activeOffsetXStart'\n | 'activeOffsetXEnd'\n | 'failOffsetXStart'\n | 'failOffsetXEnd'\n | 'activeOffsetYStart'\n | 'activeOffsetYEnd'\n | 'failOffsetYStart'\n | 'failOffsetYEnd';\n type PanGestureHandlerInternalProps = PanGestureHandlerProps &\n Partial<Record<InternalPanGHKeys, number>>;\n\n const res: PanGestureHandlerInternalProps = { ...props };\n if (props.minDeltaX !== undefined) {\n delete res.minDeltaX;\n res.activeOffsetXStart = -props.minDeltaX;\n res.activeOffsetXEnd = props.minDeltaX;\n }\n if (props.maxDeltaX !== undefined) {\n delete res.maxDeltaX;\n res.failOffsetXStart = -props.maxDeltaX;\n res.failOffsetXEnd = props.maxDeltaX;\n }\n if (props.minOffsetX !== undefined) {\n delete res.minOffsetX;\n if (props.minOffsetX < 0) {\n res.activeOffsetXStart = props.minOffsetX;\n } else {\n res.activeOffsetXEnd = props.minOffsetX;\n }\n }\n\n if (props.minDeltaY !== undefined) {\n delete res.minDeltaY;\n res.activeOffsetYStart = -props.minDeltaY;\n res.activeOffsetYEnd = props.minDeltaY;\n }\n if (props.maxDeltaY !== undefined) {\n delete res.maxDeltaY;\n res.failOffsetYStart = -props.maxDeltaY;\n res.failOffsetYEnd = props.maxDeltaY;\n }\n\n if (props.minOffsetY !== undefined) {\n delete res.minOffsetY;\n if (props.minOffsetY < 0) {\n res.activeOffsetYStart = props.minOffsetY;\n } else {\n res.activeOffsetYEnd = props.minOffsetY;\n }\n }\n\n if (props.activeOffsetX !== undefined) {\n delete res.activeOffsetX;\n if (Array.isArray(props.activeOffsetX)) {\n res.activeOffsetXStart = props.activeOffsetX[0];\n res.activeOffsetXEnd = props.activeOffsetX[1];\n } else if (props.activeOffsetX < 0) {\n res.activeOffsetXStart = props.activeOffsetX;\n } else {\n res.activeOffsetXEnd = props.activeOffsetX;\n }\n }\n\n if (props.activeOffsetY !== undefined) {\n delete res.activeOffsetY;\n if (Array.isArray(props.activeOffsetY)) {\n res.activeOffsetYStart = props.activeOffsetY[0];\n res.activeOffsetYEnd = props.activeOffsetY[1];\n } else if (props.activeOffsetY < 0) {\n res.activeOffsetYStart = props.activeOffsetY;\n } else {\n res.activeOffsetYEnd = props.activeOffsetY;\n }\n }\n\n if (props.failOffsetX !== undefined) {\n delete res.failOffsetX;\n if (Array.isArray(props.failOffsetX)) {\n res.failOffsetXStart = props.failOffsetX[0];\n res.failOffsetXEnd = props.failOffsetX[1];\n } else if (props.failOffsetX < 0) {\n res.failOffsetXStart = props.failOffsetX;\n } else {\n res.failOffsetXEnd = props.failOffsetX;\n }\n }\n\n if (props.failOffsetY !== undefined) {\n delete res.failOffsetY;\n if (Array.isArray(props.failOffsetY)) {\n res.failOffsetYStart = props.failOffsetY[0];\n res.failOffsetYEnd = props.failOffsetY[1];\n } else if (props.failOffsetY < 0) {\n res.failOffsetYStart = props.failOffsetY;\n } else {\n res.failOffsetYEnd = props.failOffsetY;\n }\n }\n\n return res;\n}\n\nfunction managePanProps(props: PanGestureHandlerProps) {\n if (__DEV__) {\n validatePanGestureHandlerProps(props);\n }\n return transformPanGestureHandlerProps(props);\n}\n\nexport type PanGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n translationX: number;\n translationY: number;\n velocityX: number;\n velocityY: number;\n};\n\nexport interface PanGestureHandlerProps\n extends BaseGestureHandlerProps<PanGestureHandlerEventPayload> {\n /** @deprecated use activeOffsetX*/\n minDeltaX?: number;\n /** @deprecated use activeOffsetY*/\n minDeltaY?: number;\n /** @deprecated use failOffsetX*/\n maxDeltaX?: number;\n /** @deprecated use failOffsetY*/\n maxDeltaY?: number;\n /** @deprecated use activeOffsetX*/\n minOffsetX?: number;\n /** @deprecated use failOffsetY*/\n minOffsetY?: number;\n activeOffsetY?: number | number[];\n activeOffsetX?: number | number[];\n failOffsetY?: number | number[];\n failOffsetX?: number | number[];\n minDist?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minPointers?: number;\n maxPointers?: number;\n avgTouches?: boolean;\n enableTrackpadTwoFingerGesture?: boolean;\n}\n\nexport type PanGestureHandler = typeof PanGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const PanGestureHandler = createHandler<\n PanGestureHandlerProps,\n PanGestureHandlerEventPayload\n>({\n name: 'PanGestureHandler',\n allowedProps: [\n ...baseProps,\n 'activeOffsetY',\n 'activeOffsetX',\n 'failOffsetY',\n 'failOffsetX',\n 'minDist',\n 'minVelocity',\n 'minVelocityX',\n 'minVelocityY',\n 'minPointers',\n 'maxPointers',\n 'avgTouches',\n 'enableTrackpadTwoFingerGesture',\n ] as const,\n config: {},\n transformProps: managePanProps,\n customNativeProps: [\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n ],\n});\n\nexport type PinchGestureHandlerEventPayload = {\n scale: number;\n focalX: number;\n focalY: number;\n velocity: number;\n};\n\nexport interface PinchGestureHandlerProps\n extends BaseGestureHandlerProps<PinchGestureHandlerEventPayload> {}\n\nexport type PinchGestureHandler = typeof PinchGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const PinchGestureHandler = createHandler<\n PinchGestureHandlerProps,\n PinchGestureHandlerEventPayload\n>({\n name: 'PinchGestureHandler',\n allowedProps: baseProps,\n config: {},\n});\n\nexport type RotationGestureHandlerEventPayload = {\n rotation: number;\n anchorX: number;\n anchorY: number;\n velocity: number;\n};\n\nexport interface RotationGestureHandlerProps\n extends BaseGestureHandlerProps<RotationGestureHandlerEventPayload> {}\n\nexport type RotationGestureHandler = typeof RotationGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file\nexport const RotationGestureHandler = createHandler<\n RotationGestureHandlerProps,\n RotationGestureHandlerEventPayload\n>({\n name: 'RotationGestureHandler',\n allowedProps: baseProps,\n config: {},\n});\n"]}