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
@@ -0,0 +1,56 @@
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
+ import { ContinousBaseGesture } from './gesture';
4
+
5
+ function changeEventCalculator(current, previous) {
6
+ 'worklet';
7
+
8
+ let changePayload;
9
+
10
+ if (previous === undefined) {
11
+ changePayload = {
12
+ forceChange: current.force
13
+ };
14
+ } else {
15
+ changePayload = {
16
+ forceChange: current.force - previous.force
17
+ };
18
+ }
19
+
20
+ return { ...current,
21
+ ...changePayload
22
+ };
23
+ }
24
+
25
+ export class ForceTouchGesture extends ContinousBaseGesture {
26
+ constructor() {
27
+ super();
28
+
29
+ _defineProperty(this, "config", {});
30
+
31
+ this.handlerName = 'ForceTouchGestureHandler';
32
+ }
33
+
34
+ minForce(force) {
35
+ this.config.minForce = force;
36
+ return this;
37
+ }
38
+
39
+ maxForce(force) {
40
+ this.config.maxForce = force;
41
+ return this;
42
+ }
43
+
44
+ feedbackOnActivation(value) {
45
+ this.config.feedbackOnActivation = value;
46
+ return this;
47
+ }
48
+
49
+ onChange(callback) {
50
+ // @ts-ignore TS being overprotective, ForceTouchGestureHandlerEventPayload is Record
51
+ this.handlers.changeEventCalculator = changeEventCalculator;
52
+ return super.onChange(callback);
53
+ }
54
+
55
+ }
56
+ //# sourceMappingURL=forceTouchGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["forceTouchGesture.ts"],"names":["ContinousBaseGesture","changeEventCalculator","current","previous","changePayload","undefined","forceChange","force","ForceTouchGesture","constructor","handlerName","minForce","config","maxForce","feedbackOnActivation","value","onChange","callback","handlers"],"mappings":";;AAAA,SAA4BA,oBAA5B,QAAwD,WAAxD;;AAWA,SAASC,qBAAT,CACEC,OADF,EAEEC,QAFF,EAGE;AACA;;AACA,MAAIC,aAAJ;;AACA,MAAID,QAAQ,KAAKE,SAAjB,EAA4B;AAC1BD,IAAAA,aAAa,GAAG;AACdE,MAAAA,WAAW,EAAEJ,OAAO,CAACK;AADP,KAAhB;AAGD,GAJD,MAIO;AACLH,IAAAA,aAAa,GAAG;AACdE,MAAAA,WAAW,EAAEJ,OAAO,CAACK,KAAR,GAAgBJ,QAAQ,CAACI;AADxB,KAAhB;AAGD;;AAED,SAAO,EAAE,GAAGL,OAAL;AAAc,OAAGE;AAAjB,GAAP;AACD;;AAED,OAAO,MAAMI,iBAAN,SAAgCR,oBAAhC,CAGL;AAGAS,EAAAA,WAAW,GAAG;AACZ;;AADY,oCAF+C,EAE/C;;AAGZ,SAAKC,WAAL,GAAmB,0BAAnB;AACD;;AAEDC,EAAAA,QAAQ,CAACJ,KAAD,EAAgB;AACtB,SAAKK,MAAL,CAAYD,QAAZ,GAAuBJ,KAAvB;AACA,WAAO,IAAP;AACD;;AAEDM,EAAAA,QAAQ,CAACN,KAAD,EAAgB;AACtB,SAAKK,MAAL,CAAYC,QAAZ,GAAuBN,KAAvB;AACA,WAAO,IAAP;AACD;;AAEDO,EAAAA,oBAAoB,CAACC,KAAD,EAAiB;AACnC,SAAKH,MAAL,CAAYE,oBAAZ,GAAmCC,KAAnC;AACA,WAAO,IAAP;AACD;;AAEDC,EAAAA,QAAQ,CACNC,QADM,EASN;AACA;AACA,SAAKC,QAAL,CAAcjB,qBAAd,GAAsCA,qBAAtC;AACA,WAAO,MAAMe,QAAN,CAAeC,QAAf,CAAP;AACD;;AArCD","sourcesContent":["import { BaseGestureConfig, ContinousBaseGesture } from './gesture';\nimport {\n ForceTouchGestureConfig,\n ForceTouchGestureHandlerEventPayload,\n} from '../ForceTouchGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\ntype ForceTouchGestureChangeEventPayload = {\n forceChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent<ForceTouchGestureHandlerEventPayload>,\n previous?: GestureUpdateEvent<ForceTouchGestureHandlerEventPayload>\n) {\n 'worklet';\n let changePayload: ForceTouchGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n forceChange: current.force,\n };\n } else {\n changePayload = {\n forceChange: current.force - previous.force,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class ForceTouchGesture extends ContinousBaseGesture<\n ForceTouchGestureHandlerEventPayload,\n ForceTouchGestureChangeEventPayload\n> {\n public config: BaseGestureConfig & ForceTouchGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'ForceTouchGestureHandler';\n }\n\n minForce(force: number) {\n this.config.minForce = force;\n return this;\n }\n\n maxForce(force: number) {\n this.config.maxForce = force;\n return this;\n }\n\n feedbackOnActivation(value: boolean) {\n this.config.feedbackOnActivation = value;\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n GestureUpdateEvent<\n ForceTouchGestureHandlerEventPayload &\n ForceTouchGestureChangeEventPayload\n >\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, ForceTouchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ForceTouchGestureType = InstanceType<typeof ForceTouchGesture>;\n"]}
@@ -0,0 +1,175 @@
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
+ import { getNextHandlerTag } from '../handlersRegistry';
4
+ export const CALLBACK_TYPE = {
5
+ UNDEFINED: 0,
6
+ BEGAN: 1,
7
+ START: 2,
8
+ UPDATE: 3,
9
+ CHANGE: 4,
10
+ END: 5,
11
+ FINALIZE: 6,
12
+ TOUCHES_DOWN: 7,
13
+ TOUCHES_MOVE: 8,
14
+ TOUCHES_UP: 9,
15
+ TOUCHES_CANCELLED: 10
16
+ }; // Allow using CALLBACK_TYPE as object and type
17
+ // eslint-disable-next-line @typescript-eslint/no-redeclare
18
+
19
+ export class Gesture {}
20
+ export class BaseGesture extends Gesture {
21
+ constructor(...args) {
22
+ super(...args);
23
+
24
+ _defineProperty(this, "handlerTag", -1);
25
+
26
+ _defineProperty(this, "handlerName", '');
27
+
28
+ _defineProperty(this, "config", {});
29
+
30
+ _defineProperty(this, "handlers", {
31
+ handlerTag: -1,
32
+ isWorklet: [false, false, false, false]
33
+ });
34
+ }
35
+
36
+ addDependency(key, gesture) {
37
+ const value = this.config[key];
38
+ this.config[key] = value ? Array().concat(value, gesture) : [gesture];
39
+ }
40
+
41
+ withRef(ref) {
42
+ this.config.ref = ref;
43
+ return this;
44
+ } // eslint-disable-next-line @typescript-eslint/ban-types
45
+
46
+
47
+ isWorklet(callback) {
48
+ //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false
49
+ return callback.__workletHash !== undefined;
50
+ }
51
+
52
+ onBegin(callback) {
53
+ this.handlers.onBegin = callback;
54
+ this.handlers.isWorklet[CALLBACK_TYPE.BEGAN] = this.isWorklet(callback);
55
+ return this;
56
+ }
57
+
58
+ onStart(callback) {
59
+ this.handlers.onStart = callback;
60
+ this.handlers.isWorklet[CALLBACK_TYPE.START] = this.isWorklet(callback);
61
+ return this;
62
+ }
63
+
64
+ onEnd(callback) {
65
+ this.handlers.onEnd = callback; //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false
66
+
67
+ this.handlers.isWorklet[CALLBACK_TYPE.END] = this.isWorklet(callback);
68
+ return this;
69
+ }
70
+
71
+ onFinalize(callback) {
72
+ this.handlers.onFinalize = callback; //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false
73
+
74
+ this.handlers.isWorklet[CALLBACK_TYPE.FINALIZE] = this.isWorklet(callback);
75
+ return this;
76
+ }
77
+
78
+ onTouchesDown(callback) {
79
+ this.config.needsPointerData = true;
80
+ this.handlers.onTouchesDown = callback;
81
+ this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_DOWN] = this.isWorklet(callback);
82
+ return this;
83
+ }
84
+
85
+ onTouchesMove(callback) {
86
+ this.config.needsPointerData = true;
87
+ this.handlers.onTouchesMove = callback;
88
+ this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_MOVE] = this.isWorklet(callback);
89
+ return this;
90
+ }
91
+
92
+ onTouchesUp(callback) {
93
+ this.config.needsPointerData = true;
94
+ this.handlers.onTouchesUp = callback;
95
+ this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_UP] = this.isWorklet(callback);
96
+ return this;
97
+ }
98
+
99
+ onTouchesCancelled(callback) {
100
+ this.config.needsPointerData = true;
101
+ this.handlers.onTouchesCancelled = callback;
102
+ this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_CANCELLED] = this.isWorklet(callback);
103
+ return this;
104
+ }
105
+
106
+ enabled(enabled) {
107
+ this.config.enabled = enabled;
108
+ return this;
109
+ }
110
+
111
+ shouldCancelWhenOutside(value) {
112
+ this.config.shouldCancelWhenOutside = value;
113
+ return this;
114
+ }
115
+
116
+ hitSlop(hitSlop) {
117
+ this.config.hitSlop = hitSlop;
118
+ return this;
119
+ }
120
+
121
+ simultaneousWithExternalGesture(...gestures) {
122
+ for (const gesture of gestures) {
123
+ this.addDependency('simultaneousWith', gesture);
124
+ }
125
+
126
+ return this;
127
+ }
128
+
129
+ requireExternalGestureToFail(...gestures) {
130
+ for (const gesture of gestures) {
131
+ this.addDependency('requireToFail', gesture);
132
+ }
133
+
134
+ return this;
135
+ }
136
+
137
+ initialize() {
138
+ this.handlerTag = getNextHandlerTag();
139
+ this.handlers = { ...this.handlers,
140
+ handlerTag: this.handlerTag
141
+ };
142
+
143
+ if (this.config.ref) {
144
+ this.config.ref.current = this;
145
+ }
146
+ }
147
+
148
+ toGestureArray() {
149
+ return [this];
150
+ } // eslint-disable-next-line @typescript-eslint/no-empty-function
151
+
152
+
153
+ prepare() {}
154
+
155
+ }
156
+ export class ContinousBaseGesture extends BaseGesture {
157
+ onUpdate(callback) {
158
+ this.handlers.onUpdate = callback;
159
+ this.handlers.isWorklet[CALLBACK_TYPE.UPDATE] = this.isWorklet(callback);
160
+ return this;
161
+ }
162
+
163
+ onChange(callback) {
164
+ this.handlers.onChange = callback;
165
+ this.handlers.isWorklet[CALLBACK_TYPE.CHANGE] = this.isWorklet(callback);
166
+ return this;
167
+ }
168
+
169
+ manualActivation(manualActivation) {
170
+ this.config.manualActivation = manualActivation;
171
+ return this;
172
+ }
173
+
174
+ }
175
+ //# sourceMappingURL=gesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["gesture.ts"],"names":["getNextHandlerTag","CALLBACK_TYPE","UNDEFINED","BEGAN","START","UPDATE","CHANGE","END","FINALIZE","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED","Gesture","BaseGesture","handlerTag","isWorklet","addDependency","key","gesture","value","config","Array","concat","withRef","ref","callback","__workletHash","undefined","onBegin","handlers","onStart","onEnd","onFinalize","onTouchesDown","needsPointerData","onTouchesMove","onTouchesUp","onTouchesCancelled","enabled","shouldCancelWhenOutside","hitSlop","simultaneousWithExternalGesture","gestures","requireExternalGestureToFail","initialize","current","toGestureArray","prepare","ContinousBaseGesture","onUpdate","onChange","manualActivation"],"mappings":"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","sourcesContent":["import { FlingGestureHandlerEventPayload } from '../FlingGestureHandler';\nimport { ForceTouchGestureHandlerEventPayload } from '../ForceTouchGestureHandler';\nimport {\n HitSlop,\n CommonGestureConfig,\n GestureTouchEvent,\n GestureStateChangeEvent,\n GestureUpdateEvent,\n} from '../gestureHandlerCommon';\nimport { getNextHandlerTag } from '../handlersRegistry';\nimport { GestureStateManagerType } from './gestureStateManager';\nimport { LongPressGestureHandlerEventPayload } from '../LongPressGestureHandler';\nimport { PanGestureHandlerEventPayload } from '../PanGestureHandler';\nimport { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';\nimport { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';\nimport { TapGestureHandlerEventPayload } from '../TapGestureHandler';\nimport { NativeViewGestureHandlerPayload } from '../NativeViewGestureHandler';\n\nexport type GestureType =\n | BaseGesture<Record<string, unknown>>\n | BaseGesture<Record<string, never>>\n | BaseGesture<TapGestureHandlerEventPayload>\n | BaseGesture<PanGestureHandlerEventPayload>\n | BaseGesture<LongPressGestureHandlerEventPayload>\n | BaseGesture<RotationGestureHandlerEventPayload>\n | BaseGesture<PinchGestureHandlerEventPayload>\n | BaseGesture<FlingGestureHandlerEventPayload>\n | BaseGesture<ForceTouchGestureHandlerEventPayload>\n | BaseGesture<NativeViewGestureHandlerPayload>;\n\nexport type GestureRef =\n | number\n | GestureType\n | React.RefObject<GestureType | undefined>\n | React.RefObject<React.ComponentType | undefined>; // allow adding a ref to a gesture handler\nexport interface BaseGestureConfig\n extends CommonGestureConfig,\n Record<string, unknown> {\n ref?: React.MutableRefObject<GestureType | undefined>;\n requireToFail?: GestureRef[];\n simultaneousWith?: GestureRef[];\n needsPointerData?: boolean;\n manualActivation?: boolean;\n}\n\ntype TouchEventHandlerType = (\n event: GestureTouchEvent,\n stateManager: GestureStateManagerType\n) => void;\n\nexport type HandlerCallbacks<EventPayloadT extends Record<string, unknown>> = {\n handlerTag: number;\n onBegin?: (event: GestureStateChangeEvent<EventPayloadT>) => void;\n onStart?: (event: GestureStateChangeEvent<EventPayloadT>) => void;\n onEnd?: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void;\n onFinalize?: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void;\n onUpdate?: (event: GestureUpdateEvent<EventPayloadT>) => void;\n onChange?: (event: any) => void;\n onTouchesDown?: TouchEventHandlerType;\n onTouchesMove?: TouchEventHandlerType;\n onTouchesUp?: TouchEventHandlerType;\n onTouchesCancelled?: TouchEventHandlerType;\n changeEventCalculator?: (\n current: GestureUpdateEvent<Record<string, unknown>>,\n previous?: GestureUpdateEvent<Record<string, unknown>>\n ) => GestureUpdateEvent<Record<string, unknown>>;\n isWorklet: boolean[];\n};\n\nexport const CALLBACK_TYPE = {\n UNDEFINED: 0,\n BEGAN: 1,\n START: 2,\n UPDATE: 3,\n CHANGE: 4,\n END: 5,\n FINALIZE: 6,\n TOUCHES_DOWN: 7,\n TOUCHES_MOVE: 8,\n TOUCHES_UP: 9,\n TOUCHES_CANCELLED: 10,\n} as const;\n\n// Allow using CALLBACK_TYPE as object and type\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type CALLBACK_TYPE = typeof CALLBACK_TYPE[keyof typeof CALLBACK_TYPE];\n\nexport abstract class Gesture {\n /**\n * Return array of gestures, providing the same interface for creating and updating\n * handlers, no matter which object was used to create gesture instance.\n */\n abstract toGestureArray(): GestureType[];\n\n /**\n * Assign handlerTag to the gesture instance and set ref.current (if a ref is set)\n */\n abstract initialize(): void;\n\n /**\n * Make sure that values of properties defining relations are arrays. Do any necessary\n * preprocessing required to configure relations between handlers. Called just before\n * updating the handler on the native side.\n */\n abstract prepare(): void;\n}\n\nexport abstract class BaseGesture<\n EventPayloadT extends Record<string, unknown>\n> extends Gesture {\n public handlerTag = -1;\n public handlerName = '';\n public config: BaseGestureConfig = {};\n public handlers: HandlerCallbacks<EventPayloadT> = {\n handlerTag: -1,\n isWorklet: [false, false, false, false],\n };\n\n private addDependency(\n key: 'simultaneousWith' | 'requireToFail',\n gesture: Exclude<GestureRef, number>\n ) {\n const value = this.config[key];\n this.config[key] = value\n ? Array<GestureRef>().concat(value, gesture)\n : [gesture];\n }\n\n withRef(ref: React.MutableRefObject<GestureType | undefined>) {\n this.config.ref = ref;\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n protected isWorklet(callback: Function) {\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n return callback.__workletHash !== undefined;\n }\n\n onBegin(callback: (event: GestureStateChangeEvent<EventPayloadT>) => void) {\n this.handlers.onBegin = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.BEGAN] = this.isWorklet(callback);\n return this;\n }\n\n onStart(callback: (event: GestureStateChangeEvent<EventPayloadT>) => void) {\n this.handlers.onStart = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.START] = this.isWorklet(callback);\n return this;\n }\n\n onEnd(\n callback: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void\n ) {\n this.handlers.onEnd = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.END] = this.isWorklet(callback);\n return this;\n }\n\n onFinalize(\n callback: (\n event: GestureStateChangeEvent<EventPayloadT>,\n success: boolean\n ) => void\n ) {\n this.handlers.onFinalize = callback;\n //@ts-ignore if callback is a worklet, the property will be available, if not then the check will return false\n this.handlers.isWorklet[CALLBACK_TYPE.FINALIZE] = this.isWorklet(callback);\n return this;\n }\n\n onTouchesDown(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesDown = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_DOWN] = this.isWorklet(\n callback\n );\n\n return this;\n }\n\n onTouchesMove(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesMove = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_MOVE] = this.isWorklet(\n callback\n );\n\n return this;\n }\n\n onTouchesUp(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesUp = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_UP] = this.isWorklet(\n callback\n );\n\n return this;\n }\n\n onTouchesCancelled(callback: TouchEventHandlerType) {\n this.config.needsPointerData = true;\n this.handlers.onTouchesCancelled = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.TOUCHES_CANCELLED] = this.isWorklet(\n callback\n );\n\n return this;\n }\n\n enabled(enabled: boolean) {\n this.config.enabled = enabled;\n return this;\n }\n\n shouldCancelWhenOutside(value: boolean) {\n this.config.shouldCancelWhenOutside = value;\n return this;\n }\n\n hitSlop(hitSlop: HitSlop) {\n this.config.hitSlop = hitSlop;\n return this;\n }\n\n simultaneousWithExternalGesture(...gestures: Exclude<GestureRef, number>[]) {\n for (const gesture of gestures) {\n this.addDependency('simultaneousWith', gesture);\n }\n return this;\n }\n\n requireExternalGestureToFail(...gestures: Exclude<GestureRef, number>[]) {\n for (const gesture of gestures) {\n this.addDependency('requireToFail', gesture);\n }\n return this;\n }\n\n initialize() {\n this.handlerTag = getNextHandlerTag();\n this.handlers = { ...this.handlers, handlerTag: this.handlerTag };\n\n if (this.config.ref) {\n this.config.ref.current = this as GestureType;\n }\n }\n\n toGestureArray(): GestureType[] {\n return [this as GestureType];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n prepare() {}\n}\n\nexport abstract class ContinousBaseGesture<\n EventPayloadT extends Record<string, unknown>,\n EventChangePayloadT extends Record<string, unknown>\n> extends BaseGesture<EventPayloadT> {\n onUpdate(callback: (event: GestureUpdateEvent<EventPayloadT>) => void) {\n this.handlers.onUpdate = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.UPDATE] = this.isWorklet(callback);\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<EventPayloadT & EventChangePayloadT>\n ) => void\n ) {\n this.handlers.onChange = callback;\n this.handlers.isWorklet[CALLBACK_TYPE.CHANGE] = this.isWorklet(callback);\n return this;\n }\n\n manualActivation(manualActivation: boolean) {\n this.config.manualActivation = manualActivation;\n return this;\n }\n}\n"]}
@@ -0,0 +1,79 @@
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
+ import { BaseGesture, Gesture } from './gesture';
4
+
5
+ function extendRelation(currentRelation, extendWith) {
6
+ if (currentRelation === undefined) {
7
+ return [...extendWith];
8
+ } else {
9
+ return [...currentRelation, ...extendWith];
10
+ }
11
+ }
12
+
13
+ export class ComposedGesture extends Gesture {
14
+ constructor(...gestures) {
15
+ super();
16
+
17
+ _defineProperty(this, "gestures", []);
18
+
19
+ _defineProperty(this, "simultaneousGestures", []);
20
+
21
+ _defineProperty(this, "requireGesturesToFail", []);
22
+
23
+ this.gestures = gestures;
24
+ }
25
+
26
+ prepareSingleGesture(gesture, simultaneousGestures, requireGesturesToFail) {
27
+ if (gesture instanceof BaseGesture) {
28
+ const newConfig = { ...gesture.config
29
+ };
30
+ newConfig.simultaneousWith = extendRelation(newConfig.simultaneousWith, simultaneousGestures);
31
+ newConfig.requireToFail = extendRelation(newConfig.requireToFail, requireGesturesToFail);
32
+ gesture.config = newConfig;
33
+ } else if (gesture instanceof ComposedGesture) {
34
+ gesture.simultaneousGestures = simultaneousGestures;
35
+ gesture.requireGesturesToFail = requireGesturesToFail;
36
+ gesture.prepare();
37
+ }
38
+ }
39
+
40
+ prepare() {
41
+ for (const gesture of this.gestures) {
42
+ this.prepareSingleGesture(gesture, this.simultaneousGestures, this.requireGesturesToFail);
43
+ }
44
+ }
45
+
46
+ initialize() {
47
+ for (const gesture of this.gestures) {
48
+ gesture.initialize();
49
+ }
50
+ }
51
+
52
+ toGestureArray() {
53
+ return this.gestures.flatMap(gesture => gesture.toGestureArray());
54
+ }
55
+
56
+ }
57
+ export class SimultaneousGesture extends ComposedGesture {
58
+ prepare() {
59
+ const simultaneousArray = this.gestures.flatMap(gesture => gesture.toGestureArray()).concat(this.simultaneousGestures);
60
+
61
+ for (const gesture of this.gestures) {
62
+ this.prepareSingleGesture(gesture, simultaneousArray, this.requireGesturesToFail);
63
+ }
64
+ }
65
+
66
+ }
67
+ export class ExclusiveGesture extends ComposedGesture {
68
+ prepare() {
69
+ const gestureArrays = this.gestures.map(gesture => gesture.toGestureArray());
70
+ let requireToFail = [];
71
+
72
+ for (let i = 0; i < this.gestures.length; i++) {
73
+ this.prepareSingleGesture(this.gestures[i], this.simultaneousGestures, this.requireGesturesToFail.concat(requireToFail));
74
+ requireToFail = requireToFail.concat(gestureArrays[i]);
75
+ }
76
+ }
77
+
78
+ }
79
+ //# sourceMappingURL=gestureComposition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["gestureComposition.ts"],"names":["BaseGesture","Gesture","extendRelation","currentRelation","extendWith","undefined","ComposedGesture","constructor","gestures","prepareSingleGesture","gesture","simultaneousGestures","requireGesturesToFail","newConfig","config","simultaneousWith","requireToFail","prepare","initialize","toGestureArray","flatMap","SimultaneousGesture","simultaneousArray","concat","ExclusiveGesture","gestureArrays","map","i","length"],"mappings":"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","sourcesContent":["import { BaseGesture, Gesture, GestureRef, GestureType } from './gesture';\n\nfunction extendRelation(\n currentRelation: GestureRef[] | undefined,\n extendWith: GestureType[]\n) {\n if (currentRelation === undefined) {\n return [...extendWith];\n } else {\n return [...currentRelation, ...extendWith];\n }\n}\n\nexport class ComposedGesture extends Gesture {\n protected gestures: Gesture[] = [];\n protected simultaneousGestures: GestureType[] = [];\n protected requireGesturesToFail: GestureType[] = [];\n\n constructor(...gestures: Gesture[]) {\n super();\n this.gestures = gestures;\n }\n\n protected prepareSingleGesture(\n gesture: Gesture,\n simultaneousGestures: GestureType[],\n requireGesturesToFail: GestureType[]\n ) {\n if (gesture instanceof BaseGesture) {\n const newConfig = { ...gesture.config };\n\n newConfig.simultaneousWith = extendRelation(\n newConfig.simultaneousWith,\n simultaneousGestures\n );\n newConfig.requireToFail = extendRelation(\n newConfig.requireToFail,\n requireGesturesToFail\n );\n\n gesture.config = newConfig;\n } else if (gesture instanceof ComposedGesture) {\n gesture.simultaneousGestures = simultaneousGestures;\n gesture.requireGesturesToFail = requireGesturesToFail;\n gesture.prepare();\n }\n }\n\n prepare() {\n for (const gesture of this.gestures) {\n this.prepareSingleGesture(\n gesture,\n this.simultaneousGestures,\n this.requireGesturesToFail\n );\n }\n }\n\n initialize() {\n for (const gesture of this.gestures) {\n gesture.initialize();\n }\n }\n\n toGestureArray(): GestureType[] {\n return this.gestures.flatMap((gesture) => gesture.toGestureArray());\n }\n}\n\nexport class SimultaneousGesture extends ComposedGesture {\n prepare() {\n const simultaneousArray = this.gestures\n .flatMap((gesture) => gesture.toGestureArray())\n .concat(this.simultaneousGestures);\n\n for (const gesture of this.gestures) {\n this.prepareSingleGesture(\n gesture,\n simultaneousArray,\n this.requireGesturesToFail\n );\n }\n }\n}\n\nexport class ExclusiveGesture extends ComposedGesture {\n prepare() {\n const gestureArrays = this.gestures.map((gesture) =>\n gesture.toGestureArray()\n );\n\n let requireToFail: GestureType[] = [];\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(\n this.gestures[i],\n this.simultaneousGestures,\n this.requireGesturesToFail.concat(requireToFail)\n );\n\n requireToFail = requireToFail.concat(gestureArrays[i]);\n }\n }\n}\n\nexport type ComposedGestureType = InstanceType<typeof ComposedGesture>;\nexport type RaceGestureType = ComposedGestureType;\nexport type SimultaneousGestureType = InstanceType<typeof SimultaneousGesture>;\nexport type ExclusiveGestureType = InstanceType<typeof ExclusiveGesture>;\n"]}
@@ -0,0 +1,67 @@
1
+ import { FlingGesture } from './flingGesture';
2
+ import { ForceTouchGesture } from './forceTouchGesture';
3
+ import { ComposedGesture, ExclusiveGesture, SimultaneousGesture } from './gestureComposition';
4
+ import { LongPressGesture } from './longPressGesture';
5
+ import { PanGesture } from './panGesture';
6
+ import { PinchGesture } from './pinchGesture';
7
+ import { RotationGesture } from './rotationGesture';
8
+ import { TapGesture } from './tapGesture';
9
+ import { NativeGesture } from './nativeGesture';
10
+ import { ManualGesture } from './manualGesture';
11
+ export const GestureObjects = {
12
+ Tap: () => {
13
+ return new TapGesture();
14
+ },
15
+ Pan: () => {
16
+ return new PanGesture();
17
+ },
18
+ Pinch: () => {
19
+ return new PinchGesture();
20
+ },
21
+ Rotation: () => {
22
+ return new RotationGesture();
23
+ },
24
+ Fling: () => {
25
+ return new FlingGesture();
26
+ },
27
+ LongPress: () => {
28
+ return new LongPressGesture();
29
+ },
30
+ ForceTouch: () => {
31
+ return new ForceTouchGesture();
32
+ },
33
+ Native: () => {
34
+ return new NativeGesture();
35
+ },
36
+ Manual: () => {
37
+ return new ManualGesture();
38
+ },
39
+
40
+ /**
41
+ * Builds a composed gesture consisting of gestures provided as parameters.
42
+ * The first one that becomes active cancels the rest of gestures.
43
+ */
44
+ Race: (...gestures) => {
45
+ return new ComposedGesture(...gestures);
46
+ },
47
+
48
+ /**
49
+ * Builds a composed gesture that allows all base gestures to run simultaneously.
50
+ */
51
+ Simultaneous(...gestures) {
52
+ return new SimultaneousGesture(...gestures);
53
+ },
54
+
55
+ /**
56
+ * Builds a composed gesture where only one of the provided gestures can become active.
57
+ * Priority is decided through the order of gestures: the first one has higher priority
58
+ * than the second one, second one has higher priority than the third one, and so on.
59
+ * For example, to make a gesture that recognizes both single and double tap you need
60
+ * to call Exclusive(doubleTap, singleTap).
61
+ */
62
+ Exclusive(...gestures) {
63
+ return new ExclusiveGesture(...gestures);
64
+ }
65
+
66
+ };
67
+ //# sourceMappingURL=gestureObjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["gestureObjects.ts"],"names":["FlingGesture","ForceTouchGesture","ComposedGesture","ExclusiveGesture","SimultaneousGesture","LongPressGesture","PanGesture","PinchGesture","RotationGesture","TapGesture","NativeGesture","ManualGesture","GestureObjects","Tap","Pan","Pinch","Rotation","Fling","LongPress","ForceTouch","Native","Manual","Race","gestures","Simultaneous","Exclusive"],"mappings":"AAAA,SAASA,YAAT,QAA6B,gBAA7B;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AAEA,SACEC,eADF,EAEEC,gBAFF,EAGEC,mBAHF,QAIO,sBAJP;AAKA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,aAAT,QAA8B,iBAA9B;AAEA,OAAO,MAAMC,cAAc,GAAG;AAC5BC,EAAAA,GAAG,EAAE,MAAM;AACT,WAAO,IAAIJ,UAAJ,EAAP;AACD,GAH2B;AAK5BK,EAAAA,GAAG,EAAE,MAAM;AACT,WAAO,IAAIR,UAAJ,EAAP;AACD,GAP2B;AAS5BS,EAAAA,KAAK,EAAE,MAAM;AACX,WAAO,IAAIR,YAAJ,EAAP;AACD,GAX2B;AAa5BS,EAAAA,QAAQ,EAAE,MAAM;AACd,WAAO,IAAIR,eAAJ,EAAP;AACD,GAf2B;AAiB5BS,EAAAA,KAAK,EAAE,MAAM;AACX,WAAO,IAAIjB,YAAJ,EAAP;AACD,GAnB2B;AAqB5BkB,EAAAA,SAAS,EAAE,MAAM;AACf,WAAO,IAAIb,gBAAJ,EAAP;AACD,GAvB2B;AAyB5Bc,EAAAA,UAAU,EAAE,MAAM;AAChB,WAAO,IAAIlB,iBAAJ,EAAP;AACD,GA3B2B;AA6B5BmB,EAAAA,MAAM,EAAE,MAAM;AACZ,WAAO,IAAIV,aAAJ,EAAP;AACD,GA/B2B;AAiC5BW,EAAAA,MAAM,EAAE,MAAM;AACZ,WAAO,IAAIV,aAAJ,EAAP;AACD,GAnC2B;;AAqC5B;AACF;AACA;AACA;AACEW,EAAAA,IAAI,EAAE,CAAC,GAAGC,QAAJ,KAA4B;AAChC,WAAO,IAAIrB,eAAJ,CAAoB,GAAGqB,QAAvB,CAAP;AACD,GA3C2B;;AA6C5B;AACF;AACA;AACEC,EAAAA,YAAY,CAAC,GAAGD,QAAJ,EAAyB;AACnC,WAAO,IAAInB,mBAAJ,CAAwB,GAAGmB,QAA3B,CAAP;AACD,GAlD2B;;AAoD5B;AACF;AACA;AACA;AACA;AACA;AACA;AACEE,EAAAA,SAAS,CAAC,GAAGF,QAAJ,EAAyB;AAChC,WAAO,IAAIpB,gBAAJ,CAAqB,GAAGoB,QAAxB,CAAP;AACD;;AA7D2B,CAAvB","sourcesContent":["import { FlingGesture } from './flingGesture';\nimport { ForceTouchGesture } from './forceTouchGesture';\nimport { Gesture } from './gesture';\nimport {\n ComposedGesture,\n ExclusiveGesture,\n SimultaneousGesture,\n} from './gestureComposition';\nimport { LongPressGesture } from './longPressGesture';\nimport { PanGesture } from './panGesture';\nimport { PinchGesture } from './pinchGesture';\nimport { RotationGesture } from './rotationGesture';\nimport { TapGesture } from './tapGesture';\nimport { NativeGesture } from './nativeGesture';\nimport { ManualGesture } from './manualGesture';\n\nexport const GestureObjects = {\n Tap: () => {\n return new TapGesture();\n },\n\n Pan: () => {\n return new PanGesture();\n },\n\n Pinch: () => {\n return new PinchGesture();\n },\n\n Rotation: () => {\n return new RotationGesture();\n },\n\n Fling: () => {\n return new FlingGesture();\n },\n\n LongPress: () => {\n return new LongPressGesture();\n },\n\n ForceTouch: () => {\n return new ForceTouchGesture();\n },\n\n Native: () => {\n return new NativeGesture();\n },\n\n Manual: () => {\n return new ManualGesture();\n },\n\n /**\n * Builds a composed gesture consisting of gestures provided as parameters.\n * The first one that becomes active cancels the rest of gestures.\n */\n Race: (...gestures: Gesture[]) => {\n return new ComposedGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture that allows all base gestures to run simultaneously.\n */\n Simultaneous(...gestures: Gesture[]) {\n return new SimultaneousGesture(...gestures);\n },\n\n /**\n * Builds a composed gesture where only one of the provided gestures can become active.\n * Priority is decided through the order of gestures: the first one has higher priority\n * than the second one, second one has higher priority than the third one, and so on.\n * For example, to make a gesture that recognizes both single and double tap you need\n * to call Exclusive(doubleTap, singleTap).\n */\n Exclusive(...gestures: Gesture[]) {\n return new ExclusiveGesture(...gestures);\n },\n};\n"]}
@@ -0,0 +1,48 @@
1
+ import { Reanimated } from './reanimatedWrapper';
2
+ import { State } from '../../State';
3
+ export const GestureStateManager = {
4
+ create(handlerTag) {
5
+ 'worklet';
6
+
7
+ return {
8
+ begin: () => {
9
+ 'worklet';
10
+
11
+ if (Reanimated) {
12
+ Reanimated.setGestureState(handlerTag, State.BEGAN);
13
+ } else {
14
+ console.warn('react-native-reanimated is required in order to use synchronous state management');
15
+ }
16
+ },
17
+ activate: () => {
18
+ 'worklet';
19
+
20
+ if (Reanimated) {
21
+ Reanimated.setGestureState(handlerTag, State.ACTIVE);
22
+ } else {
23
+ console.warn('react-native-reanimated is required in order to use synchronous state management');
24
+ }
25
+ },
26
+ fail: () => {
27
+ 'worklet';
28
+
29
+ if (Reanimated) {
30
+ Reanimated.setGestureState(handlerTag, State.FAILED);
31
+ } else {
32
+ console.warn('react-native-reanimated is required in order to use synchronous state management');
33
+ }
34
+ },
35
+ end: () => {
36
+ 'worklet';
37
+
38
+ if (Reanimated) {
39
+ Reanimated.setGestureState(handlerTag, State.END);
40
+ } else {
41
+ console.warn('react-native-reanimated is required in order to use synchronous state management');
42
+ }
43
+ }
44
+ };
45
+ }
46
+
47
+ };
48
+ //# sourceMappingURL=gestureStateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["gestureStateManager.ts"],"names":["Reanimated","State","GestureStateManager","create","handlerTag","begin","setGestureState","BEGAN","console","warn","activate","ACTIVE","fail","FAILED","end","END"],"mappings":"AAAA,SAASA,UAAT,QAA2B,qBAA3B;AACA,SAASC,KAAT,QAAsB,aAAtB;AASA,OAAO,MAAMC,mBAAmB,GAAG;AACjCC,EAAAA,MAAM,CAACC,UAAD,EAA8C;AAClD;;AACA,WAAO;AACLC,MAAAA,KAAK,EAAE,MAAM;AACX;;AACA,YAAIL,UAAJ,EAAgB;AACdA,UAAAA,UAAU,CAACM,eAAX,CAA2BF,UAA3B,EAAuCH,KAAK,CAACM,KAA7C;AACD,SAFD,MAEO;AACLC,UAAAA,OAAO,CAACC,IAAR,CACE,kFADF;AAGD;AACF,OAVI;AAYLC,MAAAA,QAAQ,EAAE,MAAM;AACd;;AACA,YAAIV,UAAJ,EAAgB;AACdA,UAAAA,UAAU,CAACM,eAAX,CAA2BF,UAA3B,EAAuCH,KAAK,CAACU,MAA7C;AACD,SAFD,MAEO;AACLH,UAAAA,OAAO,CAACC,IAAR,CACE,kFADF;AAGD;AACF,OArBI;AAuBLG,MAAAA,IAAI,EAAE,MAAM;AACV;;AACA,YAAIZ,UAAJ,EAAgB;AACdA,UAAAA,UAAU,CAACM,eAAX,CAA2BF,UAA3B,EAAuCH,KAAK,CAACY,MAA7C;AACD,SAFD,MAEO;AACLL,UAAAA,OAAO,CAACC,IAAR,CACE,kFADF;AAGD;AACF,OAhCI;AAkCLK,MAAAA,GAAG,EAAE,MAAM;AACT;;AACA,YAAId,UAAJ,EAAgB;AACdA,UAAAA,UAAU,CAACM,eAAX,CAA2BF,UAA3B,EAAuCH,KAAK,CAACc,GAA7C;AACD,SAFD,MAEO;AACLP,UAAAA,OAAO,CAACC,IAAR,CACE,kFADF;AAGD;AACF;AA3CI,KAAP;AA6CD;;AAhDgC,CAA5B","sourcesContent":["import { Reanimated } from './reanimatedWrapper';\nimport { State } from '../../State';\n\nexport interface GestureStateManagerType {\n begin: () => void;\n activate: () => void;\n fail: () => void;\n end: () => void;\n}\n\nexport const GestureStateManager = {\n create(handlerTag: number): GestureStateManagerType {\n 'worklet';\n return {\n begin: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.BEGAN);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n\n activate: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.ACTIVE);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n\n fail: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.FAILED);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n\n end: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.END);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n };\n },\n};\n"]}
@@ -0,0 +1,24 @@
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
+ import { BaseGesture } from './gesture';
4
+ export class LongPressGesture extends BaseGesture {
5
+ constructor() {
6
+ super();
7
+
8
+ _defineProperty(this, "config", {});
9
+
10
+ this.handlerName = 'LongPressGestureHandler';
11
+ }
12
+
13
+ minDuration(duration) {
14
+ this.config.minDurationMs = duration;
15
+ return this;
16
+ }
17
+
18
+ maxDistance(distance) {
19
+ this.config.maxDist = distance;
20
+ return this;
21
+ }
22
+
23
+ }
24
+ //# sourceMappingURL=longPressGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["longPressGesture.ts"],"names":["BaseGesture","LongPressGesture","constructor","handlerName","minDuration","duration","config","minDurationMs","maxDistance","distance","maxDist"],"mappings":";;AAAA,SAASA,WAAT,QAA+C,WAA/C;AAMA,OAAO,MAAMC,gBAAN,SAA+BD,WAA/B,CAAgF;AAGrFE,EAAAA,WAAW,GAAG;AACZ;;AADY,oCAF8C,EAE9C;;AAGZ,SAAKC,WAAL,GAAmB,yBAAnB;AACD;;AAEDC,EAAAA,WAAW,CAACC,QAAD,EAAmB;AAC5B,SAAKC,MAAL,CAAYC,aAAZ,GAA4BF,QAA5B;AACA,WAAO,IAAP;AACD;;AAEDG,EAAAA,WAAW,CAACC,QAAD,EAAmB;AAC5B,SAAKH,MAAL,CAAYI,OAAZ,GAAsBD,QAAtB;AACA,WAAO,IAAP;AACD;;AAjBoF","sourcesContent":["import { BaseGesture, BaseGestureConfig } from './gesture';\nimport {\n LongPressGestureConfig,\n LongPressGestureHandlerEventPayload,\n} from '../LongPressGestureHandler';\n\nexport class LongPressGesture extends BaseGesture<LongPressGestureHandlerEventPayload> {\n public config: BaseGestureConfig & LongPressGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'LongPressGestureHandler';\n }\n\n minDuration(duration: number) {\n this.config.minDurationMs = duration;\n return this;\n }\n\n maxDistance(distance: number) {\n this.config.maxDist = distance;\n return this;\n }\n}\n\nexport type LongPressGestureType = InstanceType<typeof LongPressGesture>;\n"]}
@@ -0,0 +1,22 @@
1
+ import { ContinousBaseGesture } from './gesture';
2
+
3
+ function changeEventCalculator(current, _previous) {
4
+ 'worklet';
5
+
6
+ return current;
7
+ }
8
+
9
+ export class ManualGesture extends ContinousBaseGesture {
10
+ constructor() {
11
+ super();
12
+ this.handlerName = 'ManualGestureHandler';
13
+ }
14
+
15
+ onChange(callback) {
16
+ // @ts-ignore TS being overprotective, Record<string, never> is Record
17
+ this.handlers.changeEventCalculator = changeEventCalculator;
18
+ return super.onChange(callback);
19
+ }
20
+
21
+ }
22
+ //# sourceMappingURL=manualGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["manualGesture.ts"],"names":["ContinousBaseGesture","changeEventCalculator","current","_previous","ManualGesture","constructor","handlerName","onChange","callback","handlers"],"mappings":"AACA,SAASA,oBAAT,QAAqC,WAArC;;AAEA,SAASC,qBAAT,CACEC,OADF,EAEEC,SAFF,EAGE;AACA;;AACA,SAAOD,OAAP;AACD;;AAED,OAAO,MAAME,aAAN,SAA4BJ,oBAA5B,CAGL;AACAK,EAAAA,WAAW,GAAG;AACZ;AAEA,SAAKC,WAAL,GAAmB,sBAAnB;AACD;;AAEDC,EAAAA,QAAQ,CACNC,QADM,EAEN;AACA;AACA,SAAKC,QAAL,CAAcR,qBAAd,GAAsCA,qBAAtC;AACA,WAAO,MAAMM,QAAN,CAAeC,QAAf,CAAP;AACD;;AAbD","sourcesContent":["import { GestureUpdateEvent } from '../gestureHandlerCommon';\nimport { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent<Record<string, never>>,\n _previous?: GestureUpdateEvent<Record<string, never>>\n) {\n 'worklet';\n return current;\n}\n\nexport class ManualGesture extends ContinousBaseGesture<\n Record<string, never>,\n Record<string, never>\n> {\n constructor() {\n super();\n\n this.handlerName = 'ManualGestureHandler';\n }\n\n onChange(\n callback: (event: GestureUpdateEvent<Record<string, never>>) => void\n ) {\n // @ts-ignore TS being overprotective, Record<string, never> is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ManualGestureType = InstanceType<typeof ManualGesture>;\n"]}
@@ -0,0 +1,24 @@
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
+ import { BaseGesture } from './gesture';
4
+ export class NativeGesture extends BaseGesture {
5
+ constructor() {
6
+ super();
7
+
8
+ _defineProperty(this, "config", {});
9
+
10
+ this.handlerName = 'NativeViewGestureHandler';
11
+ }
12
+
13
+ shouldActivateOnStart(value) {
14
+ this.config.shouldActivateOnStart = value;
15
+ return this;
16
+ }
17
+
18
+ disallowInterruption(value) {
19
+ this.config.disallowInterruption = value;
20
+ return this;
21
+ }
22
+
23
+ }
24
+ //# sourceMappingURL=nativeGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["nativeGesture.ts"],"names":["BaseGesture","NativeGesture","constructor","handlerName","shouldActivateOnStart","value","config","disallowInterruption"],"mappings":";;AAAA,SAA4BA,WAA5B,QAA+C,WAA/C;AAMA,OAAO,MAAMC,aAAN,SAA4BD,WAA5B,CAAyE;AAG9EE,EAAAA,WAAW,GAAG;AACZ;;AADY,oCAF+C,EAE/C;;AAGZ,SAAKC,WAAL,GAAmB,0BAAnB;AACD;;AAEDC,EAAAA,qBAAqB,CAACC,KAAD,EAAiB;AACpC,SAAKC,MAAL,CAAYF,qBAAZ,GAAoCC,KAApC;AACA,WAAO,IAAP;AACD;;AAEDE,EAAAA,oBAAoB,CAACF,KAAD,EAAiB;AACnC,SAAKC,MAAL,CAAYC,oBAAZ,GAAmCF,KAAnC;AACA,WAAO,IAAP;AACD;;AAjB6E","sourcesContent":["import { BaseGestureConfig, BaseGesture } from './gesture';\nimport {\n NativeViewGestureConfig,\n NativeViewGestureHandlerPayload,\n} from '../NativeViewGestureHandler';\n\nexport class NativeGesture extends BaseGesture<NativeViewGestureHandlerPayload> {\n public config: BaseGestureConfig & NativeViewGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'NativeViewGestureHandler';\n }\n\n shouldActivateOnStart(value: boolean) {\n this.config.shouldActivateOnStart = value;\n return this;\n }\n\n disallowInterruption(value: boolean) {\n this.config.disallowInterruption = value;\n return this;\n }\n}\n\nexport type NativeGestureType = InstanceType<typeof NativeGesture>;\n"]}