react-native-gesture-handler 1.10.3 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/README.md +7 -6
  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 +713 -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 +562 -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 +289 -0
  19. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +88 -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 +79 -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/RNGestureHandlerEvents.h +9 -0
  53. package/ios/RNGestureHandlerEvents.m +34 -0
  54. package/ios/RNGestureHandlerManager.h +7 -0
  55. package/ios/RNGestureHandlerManager.m +62 -34
  56. package/ios/RNGestureHandlerModule.m +39 -3
  57. package/ios/RNGestureHandlerPointerTracker.h +25 -0
  58. package/ios/RNGestureHandlerPointerTracker.m +237 -0
  59. package/ios/RNGestureHandlerRegistry.h +1 -0
  60. package/ios/RNGestureHandlerRegistry.m +10 -0
  61. package/ios/RNGestureHandlerStateManager.h +5 -0
  62. package/ios/RNManualActivationRecognizer.h +10 -0
  63. package/ios/RNManualActivationRecognizer.m +80 -0
  64. package/ios/RNRootViewGestureRecognizer.m +1 -1
  65. package/ios/RNTouchEventType.h +9 -0
  66. package/lib/commonjs/EventType.js +16 -0
  67. package/lib/commonjs/EventType.js.map +1 -0
  68. package/lib/commonjs/GestureHandlerRootView.android.js +1 -13
  69. package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
  70. package/lib/commonjs/GestureHandlerRootView.js +11 -3
  71. package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
  72. package/lib/commonjs/RNGestureHandlerModule.js +3 -1
  73. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  74. package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
  75. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  76. package/lib/commonjs/components/DrawerLayout.js +41 -37
  77. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  78. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  79. package/lib/commonjs/components/GestureComponents.js +31 -12
  80. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  81. package/lib/commonjs/components/Swipeable.js +10 -6
  82. package/lib/commonjs/components/Swipeable.js.map +1 -1
  83. package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
  84. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  85. package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -1
  86. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  87. package/lib/commonjs/gestureHandlerRootHOC.js +1 -1
  88. package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
  89. package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
  90. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
  91. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
  92. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
  93. package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
  94. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
  95. package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -4
  96. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  97. package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
  98. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
  99. package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
  100. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
  101. package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
  102. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
  103. package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
  104. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
  105. package/lib/commonjs/handlers/createHandler.js +52 -83
  106. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  107. package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
  108. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
  109. package/lib/commonjs/handlers/gestures/GestureDetector.js +440 -0
  110. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
  111. package/lib/commonjs/handlers/gestures/eventReceiver.js +135 -0
  112. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
  113. package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
  114. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
  115. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +65 -0
  116. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
  117. package/lib/commonjs/handlers/gestures/gesture.js +193 -0
  118. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
  119. package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
  120. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
  121. package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
  122. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
  123. package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
  124. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
  125. package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
  126. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
  127. package/lib/commonjs/handlers/gestures/manualGesture.js +31 -0
  128. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
  129. package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
  130. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
  131. package/lib/commonjs/handlers/gestures/panGesture.js +144 -0
  132. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
  133. package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -0
  134. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
  135. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
  136. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
  137. package/lib/commonjs/handlers/gestures/rotationGesture.js +45 -0
  138. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
  139. package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
  140. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
  141. package/lib/commonjs/handlers/handlersRegistry.js +31 -0
  142. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
  143. package/lib/commonjs/index.js +146 -8
  144. package/lib/commonjs/index.js.map +1 -1
  145. package/lib/commonjs/init.js +13 -0
  146. package/lib/commonjs/init.js.map +1 -0
  147. package/lib/commonjs/mocks.js +31 -2
  148. package/lib/commonjs/mocks.js.map +1 -1
  149. package/lib/commonjs/utils.js +15 -0
  150. package/lib/commonjs/utils.js.map +1 -0
  151. package/lib/commonjs/web/Errors.js +1 -1
  152. package/lib/commonjs/web/Errors.js.map +1 -1
  153. package/lib/commonjs/web/GestureHandler.js +4 -6
  154. package/lib/commonjs/web/GestureHandler.js.map +1 -1
  155. package/lib/commonjs/web/NodeManager.js +8 -2
  156. package/lib/commonjs/web/NodeManager.js.map +1 -1
  157. package/lib/module/EventType.js +8 -0
  158. package/lib/module/EventType.js.map +1 -0
  159. package/lib/module/GestureHandlerRootView.android.js +2 -14
  160. package/lib/module/GestureHandlerRootView.android.js.map +1 -1
  161. package/lib/module/GestureHandlerRootView.js +5 -1
  162. package/lib/module/GestureHandlerRootView.js.map +1 -1
  163. package/lib/module/RNGestureHandlerModule.js +3 -1
  164. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  165. package/lib/module/RNGestureHandlerModule.web.js +2 -2
  166. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  167. package/lib/module/components/DrawerLayout.js +43 -40
  168. package/lib/module/components/DrawerLayout.js.map +1 -1
  169. package/lib/module/components/GestureButtons.js.map +1 -1
  170. package/lib/module/components/GestureComponents.js +29 -11
  171. package/lib/module/components/GestureComponents.js.map +1 -1
  172. package/lib/module/components/Swipeable.js +9 -6
  173. package/lib/module/components/Swipeable.js.map +1 -1
  174. package/lib/module/components/touchables/GenericTouchable.js +2 -1
  175. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  176. package/lib/module/components/touchables/TouchableOpacity.js +1 -1
  177. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  178. package/lib/module/gestureHandlerRootHOC.js +1 -1
  179. package/lib/module/gestureHandlerRootHOC.js.map +1 -1
  180. package/lib/module/handlers/FlingGestureHandler.js +10 -0
  181. package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
  182. package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
  183. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
  184. package/lib/module/handlers/LongPressGestureHandler.js +10 -0
  185. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
  186. package/lib/module/handlers/NativeViewGestureHandler.js +4 -3
  187. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  188. package/lib/module/handlers/PanGestureHandler.js +106 -0
  189. package/lib/module/handlers/PanGestureHandler.js.map +1 -0
  190. package/lib/module/handlers/PinchGestureHandler.js +9 -0
  191. package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
  192. package/lib/module/handlers/RotationGestureHandler.js +9 -0
  193. package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
  194. package/lib/module/handlers/TapGestureHandler.js +10 -0
  195. package/lib/module/handlers/TapGestureHandler.js.map +1 -0
  196. package/lib/module/handlers/createHandler.js +41 -76
  197. package/lib/module/handlers/createHandler.js.map +1 -1
  198. package/lib/module/handlers/gestureHandlerCommon.js +66 -0
  199. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
  200. package/lib/module/handlers/gestures/GestureDetector.js +402 -0
  201. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
  202. package/lib/module/handlers/gestures/eventReceiver.js +120 -0
  203. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
  204. package/lib/module/handlers/gestures/flingGesture.js +24 -0
  205. package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
  206. package/lib/module/handlers/gestures/forceTouchGesture.js +56 -0
  207. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
  208. package/lib/module/handlers/gestures/gesture.js +175 -0
  209. package/lib/module/handlers/gestures/gesture.js.map +1 -0
  210. package/lib/module/handlers/gestures/gestureComposition.js +79 -0
  211. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
  212. package/lib/module/handlers/gestures/gestureObjects.js +67 -0
  213. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
  214. package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
  215. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
  216. package/lib/module/handlers/gestures/longPressGesture.js +24 -0
  217. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
  218. package/lib/module/handlers/gestures/manualGesture.js +22 -0
  219. package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
  220. package/lib/module/handlers/gestures/nativeGesture.js +24 -0
  221. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
  222. package/lib/module/handlers/gestures/panGesture.js +135 -0
  223. package/lib/module/handlers/gestures/panGesture.js.map +1 -0
  224. package/lib/module/handlers/gestures/pinchGesture.js +36 -0
  225. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
  226. package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
  227. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
  228. package/lib/module/handlers/gestures/rotationGesture.js +36 -0
  229. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
  230. package/lib/module/handlers/gestures/tapGesture.js +49 -0
  231. package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
  232. package/lib/module/handlers/handlersRegistry.js +16 -0
  233. package/lib/module/handlers/handlersRegistry.js.map +1 -0
  234. package/lib/module/index.js +22 -1
  235. package/lib/module/index.js.map +1 -1
  236. package/lib/module/init.js +5 -0
  237. package/lib/module/init.js.map +1 -0
  238. package/lib/module/mocks.js +31 -2
  239. package/lib/module/mocks.js.map +1 -1
  240. package/lib/module/utils.js +8 -0
  241. package/lib/module/utils.js.map +1 -0
  242. package/lib/module/web/Errors.js +1 -1
  243. package/lib/module/web/Errors.js.map +1 -1
  244. package/lib/module/web/GestureHandler.js +4 -6
  245. package/lib/module/web/GestureHandler.js.map +1 -1
  246. package/lib/module/web/NodeManager.js +8 -2
  247. package/lib/module/web/NodeManager.js.map +1 -1
  248. package/lib/typescript/EventType.d.ts +8 -0
  249. package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -4
  250. package/lib/typescript/GestureHandlerRootView.d.ts +5 -2
  251. package/lib/typescript/RNGestureHandlerModule.d.ts +1 -1
  252. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  253. package/lib/typescript/components/DrawerLayout.d.ts +50 -1
  254. package/lib/typescript/components/GestureButtons.d.ts +36 -0
  255. package/lib/typescript/components/GestureComponents.d.ts +8 -35
  256. package/lib/typescript/components/Swipeable.d.ts +73 -6
  257. package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -2
  258. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
  259. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
  260. package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
  261. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
  262. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
  263. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +19 -4
  264. package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
  265. package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
  266. package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
  267. package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
  268. package/lib/typescript/handlers/createHandler.d.ts +1 -1
  269. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
  270. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +8 -1
  271. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
  272. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
  273. package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
  274. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +16 -0
  275. package/lib/typescript/handlers/gestures/gesture.d.ts +97 -0
  276. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
  277. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
  278. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
  279. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
  280. package/lib/typescript/handlers/gestures/manualGesture.d.ts +7 -0
  281. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
  282. package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
  283. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +12 -0
  284. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
  285. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -0
  286. package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
  287. package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
  288. package/lib/typescript/index.d.ts +29 -2
  289. package/lib/typescript/init.d.ts +1 -0
  290. package/lib/typescript/mocks.d.ts +21 -2
  291. package/lib/typescript/utils.d.ts +1 -0
  292. package/lib/typescript/web/FlingGestureHandler.d.ts +0 -1
  293. package/lib/typescript/web/GestureHandler.d.ts +0 -1
  294. package/lib/typescript/web/PanGestureHandler.d.ts +0 -1
  295. package/lib/typescript/web/PinchGestureHandler.d.ts +0 -1
  296. package/lib/typescript/web/PressGestureHandler.d.ts +0 -1
  297. package/lib/typescript/web/RotationGestureHandler.d.ts +0 -1
  298. package/lib/typescript/web/TapGestureHandler.d.ts +0 -1
  299. package/package.json +8 -5
  300. package/src/EventType.ts +10 -0
  301. package/src/GestureHandlerRootView.android.tsx +9 -25
  302. package/src/GestureHandlerRootView.tsx +11 -2
  303. package/src/RNGestureHandlerModule.ts +5 -1
  304. package/src/RNGestureHandlerModule.web.ts +1 -0
  305. package/src/components/DrawerLayout.tsx +114 -41
  306. package/src/components/GestureButtons.tsx +45 -5
  307. package/src/components/GestureComponents.tsx +47 -41
  308. package/src/components/Swipeable.tsx +108 -21
  309. package/src/components/touchables/GenericTouchable.tsx +2 -1
  310. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  311. package/src/handlers/FlingGestureHandler.ts +57 -0
  312. package/src/handlers/ForceTouchGestureHandler.ts +83 -0
  313. package/src/handlers/LongPressGestureHandler.ts +84 -0
  314. package/src/handlers/NativeViewGestureHandler.ts +31 -7
  315. package/src/handlers/PanGestureHandler.ts +321 -0
  316. package/src/handlers/PinchGestureHandler.ts +46 -0
  317. package/src/handlers/RotationGestureHandler.ts +46 -0
  318. package/src/handlers/TapGestureHandler.ts +90 -0
  319. package/src/handlers/createHandler.ts +54 -79
  320. package/src/handlers/gestureHandlerCommon.ts +185 -0
  321. package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
  322. package/src/handlers/gestures/GestureDetector.tsx +519 -0
  323. package/src/handlers/gestures/eventReceiver.ts +151 -0
  324. package/src/handlers/gestures/flingGesture.ts +27 -0
  325. package/src/handlers/gestures/forceTouchGesture.ts +74 -0
  326. package/src/handlers/gestures/gesture.ts +292 -0
  327. package/src/handlers/gestures/gestureComposition.ts +109 -0
  328. package/src/handlers/gestures/gestureObjects.ts +79 -0
  329. package/src/handlers/gestures/gestureStateManager.ts +60 -0
  330. package/src/handlers/gestures/longPressGesture.ts +27 -0
  331. package/src/handlers/gestures/manualGesture.ts +31 -0
  332. package/src/handlers/gestures/nativeGesture.ts +27 -0
  333. package/src/handlers/gestures/panGesture.ts +147 -0
  334. package/src/handlers/gestures/pinchGesture.ts +51 -0
  335. package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
  336. package/src/handlers/gestures/rotationGesture.ts +51 -0
  337. package/src/handlers/gestures/tapGesture.ts +52 -0
  338. package/src/handlers/handlersRegistry.ts +22 -0
  339. package/src/index.ts +57 -17
  340. package/src/init.ts +5 -0
  341. package/src/mocks.ts +42 -2
  342. package/src/utils.ts +7 -0
  343. package/src/web/GestureHandler.ts +1 -2
  344. package/src/web/NodeManager.ts +5 -0
  345. package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
  346. package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
  347. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
  348. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
  349. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
  350. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
  351. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
  352. package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
  353. package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
  354. package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
  355. package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
  356. package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
  357. package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
  358. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
  359. package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
  360. package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
  361. package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
  362. package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
  363. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
  364. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
  365. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
  366. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
  367. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
  368. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
  369. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
  370. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
  371. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
  372. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
  373. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
  374. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
  375. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
  376. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
  377. package/lib/commonjs/handlers/gestureHandlers.js +0 -236
  378. package/lib/commonjs/handlers/gestureHandlers.js.map +0 -1
  379. package/lib/module/handlers/gestureHandlers.js +0 -216
  380. package/lib/module/handlers/gestureHandlers.js.map +0 -1
  381. package/lib/typescript/handlers/gestureHandlers.d.ts +0 -158
  382. 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"]}