react-native-gesture-handler 2.27.1 → 2.27.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 (394) hide show
  1. package/ReanimatedSwipeable/package.json +4 -4
  2. package/android/build.gradle +8 -1
  3. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +14 -8
  4. package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +10 -5
  5. package/apple/RNGestureHandler.h +4 -0
  6. package/apple/RNGestureHandler.mm +41 -6
  7. package/jestSetup.js +22 -3
  8. package/lib/commonjs/components/Pressable/Pressable.js +12 -21
  9. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  10. package/lib/commonjs/components/Pressable/StateMachine.js +8 -2
  11. package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -1
  12. package/lib/commonjs/components/Pressable/stateDefinitions.js +22 -23
  13. package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -1
  14. package/lib/commonjs/components/{ReanimatedSwipeable.js → ReanimatedSwipeable/ReanimatedSwipeable.js} +30 -39
  15. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -0
  16. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +12 -0
  17. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js.map +1 -0
  18. package/lib/commonjs/components/ReanimatedSwipeable/index.js +21 -0
  19. package/lib/commonjs/components/ReanimatedSwipeable/index.js.map +1 -0
  20. package/lib/commonjs/mocks/Pressable.js +13 -0
  21. package/lib/commonjs/mocks/Pressable.js.map +1 -0
  22. package/lib/commonjs/{mocks.js → mocks/mocks.js} +8 -11
  23. package/lib/commonjs/mocks/mocks.js.map +1 -0
  24. package/lib/commonjs/web/handlers/GestureHandler.js +1 -0
  25. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  26. package/lib/module/components/Pressable/Pressable.js +14 -23
  27. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  28. package/lib/module/components/Pressable/StateMachine.js +8 -2
  29. package/lib/module/components/Pressable/StateMachine.js.map +1 -1
  30. package/lib/module/components/Pressable/stateDefinitions.js +21 -22
  31. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
  32. package/lib/module/components/{ReanimatedSwipeable.js → ReanimatedSwipeable/ReanimatedSwipeable.js} +24 -33
  33. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -0
  34. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +8 -0
  35. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js.map +1 -0
  36. package/lib/module/components/ReanimatedSwipeable/index.js +5 -0
  37. package/lib/module/components/ReanimatedSwipeable/index.js.map +1 -0
  38. package/lib/module/mocks/Pressable.js +4 -0
  39. package/lib/module/mocks/Pressable.js.map +1 -0
  40. package/lib/module/{mocks.js → mocks/mocks.js} +7 -11
  41. package/lib/module/mocks/mocks.js.map +1 -0
  42. package/lib/module/web/handlers/GestureHandler.js +1 -0
  43. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  44. package/lib/typescript/ActionType.d.ts +1 -0
  45. package/lib/typescript/Directions.d.ts +1 -0
  46. package/lib/typescript/EnableNewWebImplementation.d.ts +1 -0
  47. package/lib/typescript/GestureHandlerRootViewContext.d.ts +1 -0
  48. package/lib/typescript/PlatformConstants.d.ts +1 -0
  49. package/lib/typescript/PlatformConstants.web.d.ts +1 -0
  50. package/lib/typescript/PointerType.d.ts +1 -0
  51. package/lib/typescript/RNGestureHandlerModule.d.ts +1 -0
  52. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -0
  53. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +1 -0
  54. package/lib/typescript/RNRenderer.d.ts +1 -0
  55. package/lib/typescript/RNRenderer.web.d.ts +1 -0
  56. package/lib/typescript/State.d.ts +1 -0
  57. package/lib/typescript/TouchEventType.d.ts +1 -0
  58. package/lib/typescript/components/DrawerLayout.d.ts +1 -0
  59. package/lib/typescript/components/GestureButtons.d.ts +1 -0
  60. package/lib/typescript/components/GestureButtonsProps.d.ts +10 -1
  61. package/lib/typescript/components/GestureButtonsProps.d.ts.map +1 -1
  62. package/lib/typescript/components/GestureComponents.d.ts +1 -0
  63. package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
  64. package/lib/typescript/components/GestureHandlerButton.d.ts +1 -0
  65. package/lib/typescript/components/GestureHandlerButton.web.d.ts +1 -0
  66. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +1 -0
  67. package/lib/typescript/components/GestureHandlerRootView.d.ts +1 -0
  68. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +1 -0
  69. package/lib/typescript/components/Pressable/Pressable.d.ts +1 -0
  70. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  71. package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -4
  72. package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
  73. package/lib/typescript/components/Pressable/StateMachine.d.ts +4 -2
  74. package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -1
  75. package/lib/typescript/components/Pressable/index.d.ts +1 -0
  76. package/lib/typescript/components/Pressable/stateDefinitions.d.ts +3 -2
  77. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
  78. package/lib/typescript/components/Pressable/utils.d.ts +1 -0
  79. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +1 -0
  80. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts +6 -0
  81. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -0
  82. package/lib/typescript/components/{ReanimatedSwipeable.d.ts → ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts} +10 -7
  83. package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts.map +1 -0
  84. package/lib/typescript/components/ReanimatedSwipeable/index.d.ts +3 -0
  85. package/lib/typescript/components/ReanimatedSwipeable/index.d.ts.map +1 -0
  86. package/lib/typescript/components/Swipeable.d.ts +1 -0
  87. package/lib/typescript/components/Text.d.ts +1 -0
  88. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +1 -0
  89. package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +1 -0
  90. package/lib/typescript/components/touchables/GenericTouchable.d.ts +1 -0
  91. package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +1 -0
  92. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
  93. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +1 -0
  94. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +1 -0
  95. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +1 -0
  96. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
  97. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +1 -0
  98. package/lib/typescript/components/touchables/index.d.ts +1 -0
  99. package/lib/typescript/components/utils.d.ts +1 -0
  100. package/lib/typescript/findNodeHandle.d.ts +1 -0
  101. package/lib/typescript/findNodeHandle.web.d.ts +1 -0
  102. package/lib/typescript/getShadowNodeFromRef.d.ts +1 -0
  103. package/lib/typescript/getShadowNodeFromRef.web.d.ts +1 -0
  104. package/lib/typescript/ghQueueMicrotask.d.ts +1 -0
  105. package/lib/typescript/handlers/FlingGestureHandler.d.ts +1 -0
  106. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +1 -0
  107. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +1 -0
  108. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +1 -0
  109. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -0
  110. package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -0
  111. package/lib/typescript/handlers/PinchGestureHandler.d.ts +1 -0
  112. package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
  113. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
  114. package/lib/typescript/handlers/RotationGestureHandler.d.ts +1 -0
  115. package/lib/typescript/handlers/TapGestureHandler.d.ts +1 -0
  116. package/lib/typescript/handlers/createHandler.d.ts +1 -0
  117. package/lib/typescript/handlers/createNativeWrapper.d.ts +1 -0
  118. package/lib/typescript/handlers/customDirectEventTypes.d.ts +1 -0
  119. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +1 -0
  120. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +1 -0
  121. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +1 -0
  122. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +1 -0
  123. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +1 -0
  124. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +1 -0
  125. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +1 -0
  126. package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +1 -0
  127. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +1 -0
  128. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
  129. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +1 -0
  130. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +1 -0
  131. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +1 -0
  132. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +1 -0
  133. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +1 -0
  134. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +1 -0
  135. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +1 -0
  136. package/lib/typescript/handlers/gestures/flingGesture.d.ts +1 -0
  137. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +1 -0
  138. package/lib/typescript/handlers/gestures/gesture.d.ts +1 -0
  139. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +1 -0
  140. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +1 -0
  141. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +1 -0
  142. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +1 -0
  143. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +1 -0
  144. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +1 -0
  145. package/lib/typescript/handlers/gestures/manualGesture.d.ts +1 -0
  146. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +1 -0
  147. package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -0
  148. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +1 -0
  149. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +1 -0
  150. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +1 -0
  151. package/lib/typescript/handlers/gestures/tapGesture.d.ts +1 -0
  152. package/lib/typescript/handlers/getNextHandlerTag.d.ts +1 -0
  153. package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
  154. package/lib/typescript/handlers/utils.d.ts +1 -0
  155. package/lib/typescript/index.d.ts +1 -0
  156. package/lib/typescript/init.d.ts +1 -0
  157. package/lib/typescript/jestUtils/index.d.ts +1 -0
  158. package/lib/typescript/jestUtils/jestUtils.d.ts +1 -0
  159. package/lib/typescript/mocks/Pressable.d.ts +2 -0
  160. package/lib/typescript/mocks/Pressable.d.ts.map +1 -0
  161. package/lib/typescript/{mocks.d.ts → mocks/mocks.d.ts} +5 -4
  162. package/lib/typescript/mocks/mocks.d.ts.map +1 -0
  163. package/lib/typescript/mountRegistry.d.ts +1 -0
  164. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +1 -0
  165. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +1 -0
  166. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +1 -0
  167. package/lib/typescript/typeUtils.d.ts +1 -0
  168. package/lib/typescript/utils.d.ts +1 -0
  169. package/lib/typescript/web/Gestures.d.ts +1 -0
  170. package/lib/typescript/web/constants.d.ts +1 -0
  171. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +1 -0
  172. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +1 -0
  173. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
  174. package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
  175. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  176. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +1 -0
  177. package/lib/typescript/web/handlers/IGestureHandler.d.ts +1 -0
  178. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +1 -0
  179. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +1 -0
  180. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
  181. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +1 -0
  182. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +1 -0
  183. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +1 -0
  184. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -0
  185. package/lib/typescript/web/interfaces.d.ts +1 -0
  186. package/lib/typescript/web/tools/CircularBuffer.d.ts +1 -0
  187. package/lib/typescript/web/tools/EventManager.d.ts +1 -0
  188. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -0
  189. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +1 -0
  190. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +1 -0
  191. package/lib/typescript/web/tools/InteractionManager.d.ts +1 -0
  192. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +1 -0
  193. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +1 -0
  194. package/lib/typescript/web/tools/NodeManager.d.ts +1 -0
  195. package/lib/typescript/web/tools/PointerEventManager.d.ts +1 -0
  196. package/lib/typescript/web/tools/PointerTracker.d.ts +1 -0
  197. package/lib/typescript/web/tools/Vector.d.ts +1 -0
  198. package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -0
  199. package/lib/typescript/web/tools/WheelEventManager.d.ts +1 -0
  200. package/lib/typescript/web/utils.d.ts +1 -0
  201. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +1 -0
  202. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +1 -0
  203. package/lib/typescript/web_hammer/Errors.d.ts +1 -0
  204. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +1 -0
  205. package/lib/typescript/web_hammer/GestureHandler.d.ts +1 -0
  206. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +1 -0
  207. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +1 -0
  208. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +1 -0
  209. package/lib/typescript/web_hammer/NodeManager.d.ts +1 -0
  210. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +1 -0
  211. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +1 -0
  212. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +1 -0
  213. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +1 -0
  214. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +1 -0
  215. package/lib/typescript/web_hammer/constants.d.ts +1 -0
  216. package/lib/typescript/web_hammer/utils.d.ts +1 -0
  217. package/package.json +1 -1
  218. package/src/components/GestureButtonsProps.ts +10 -0
  219. package/src/components/Pressable/Pressable.tsx +20 -31
  220. package/src/components/Pressable/PressableProps.tsx +2 -4
  221. package/src/components/Pressable/StateMachine.tsx +12 -4
  222. package/src/components/Pressable/stateDefinitions.ts +23 -23
  223. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +603 -0
  224. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +199 -0
  225. package/src/components/ReanimatedSwipeable/index.ts +6 -0
  226. package/src/mocks/Pressable.tsx +1 -0
  227. package/src/{mocks.tsx → mocks/mocks.tsx} +7 -11
  228. package/src/web/handlers/GestureHandler.ts +1 -0
  229. package/lib/commonjs/components/ReanimatedSwipeable.js.map +0 -1
  230. package/lib/commonjs/mocks.js.map +0 -1
  231. package/lib/module/components/ReanimatedSwipeable.js.map +0 -1
  232. package/lib/module/mocks.js.map +0 -1
  233. package/lib/typescript/ActionType.js +0 -6
  234. package/lib/typescript/Directions.js +0 -18
  235. package/lib/typescript/EnableNewWebImplementation.js +0 -30
  236. package/lib/typescript/GestureHandlerRootViewContext.js +0 -2
  237. package/lib/typescript/PlatformConstants.js +0 -3
  238. package/lib/typescript/PlatformConstants.web.js +0 -5
  239. package/lib/typescript/PointerType.js +0 -8
  240. package/lib/typescript/RNGestureHandlerModule.js +0 -4
  241. package/lib/typescript/RNGestureHandlerModule.web.js +0 -92
  242. package/lib/typescript/RNGestureHandlerModule.windows.js +0 -47
  243. package/lib/typescript/RNRenderer.js +0 -3
  244. package/lib/typescript/RNRenderer.web.js +0 -3
  245. package/lib/typescript/State.js +0 -9
  246. package/lib/typescript/TouchEventType.js +0 -7
  247. package/lib/typescript/components/DrawerLayout.js +0 -417
  248. package/lib/typescript/components/GestureButtons.js +0 -165
  249. package/lib/typescript/components/GestureButtonsProps.js +0 -1
  250. package/lib/typescript/components/GestureComponents.js +0 -67
  251. package/lib/typescript/components/GestureComponents.web.js +0 -21
  252. package/lib/typescript/components/GestureHandlerButton.js +0 -2
  253. package/lib/typescript/components/GestureHandlerButton.web.js +0 -3
  254. package/lib/typescript/components/GestureHandlerRootView.android.js +0 -17
  255. package/lib/typescript/components/GestureHandlerRootView.js +0 -16
  256. package/lib/typescript/components/GestureHandlerRootView.web.js +0 -11
  257. package/lib/typescript/components/Pressable/Pressable.js +0 -231
  258. package/lib/typescript/components/Pressable/PressableProps.js +0 -1
  259. package/lib/typescript/components/Pressable/StateMachine.js +0 -34
  260. package/lib/typescript/components/Pressable/index.js +0 -1
  261. package/lib/typescript/components/Pressable/stateDefinitions.js +0 -104
  262. package/lib/typescript/components/Pressable/utils.js +0 -80
  263. package/lib/typescript/components/ReanimatedDrawerLayout.js +0 -364
  264. package/lib/typescript/components/ReanimatedSwipeable.d.ts.map +0 -1
  265. package/lib/typescript/components/ReanimatedSwipeable.js +0 -400
  266. package/lib/typescript/components/Swipeable.js +0 -287
  267. package/lib/typescript/components/Text.js +0 -38
  268. package/lib/typescript/components/gestureHandlerRootHOC.js +0 -18
  269. package/lib/typescript/components/touchables/ExtraButtonProps.js +0 -1
  270. package/lib/typescript/components/touchables/GenericTouchable.js +0 -221
  271. package/lib/typescript/components/touchables/GenericTouchableProps.js +0 -1
  272. package/lib/typescript/components/touchables/TouchableHighlight.js +0 -75
  273. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +0 -65
  274. package/lib/typescript/components/touchables/TouchableNativeFeedback.js +0 -6
  275. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +0 -1
  276. package/lib/typescript/components/touchables/TouchableOpacity.js +0 -51
  277. package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +0 -10
  278. package/lib/typescript/components/touchables/index.js +0 -4
  279. package/lib/typescript/components/utils.js +0 -11
  280. package/lib/typescript/findNodeHandle.js +0 -2
  281. package/lib/typescript/findNodeHandle.web.js +0 -31
  282. package/lib/typescript/getShadowNodeFromRef.js +0 -45
  283. package/lib/typescript/getShadowNodeFromRef.web.js +0 -7
  284. package/lib/typescript/ghQueueMicrotask.js +0 -7
  285. package/lib/typescript/handlers/FlingGestureHandler.js +0 -19
  286. package/lib/typescript/handlers/ForceTouchGestureHandler.js +0 -37
  287. package/lib/typescript/handlers/GestureHandlerEventPayload.js +0 -1
  288. package/lib/typescript/handlers/LongPressGestureHandler.js +0 -22
  289. package/lib/typescript/handlers/NativeViewGestureHandler.js +0 -20
  290. package/lib/typescript/handlers/PanGestureHandler.js +0 -128
  291. package/lib/typescript/handlers/PinchGestureHandler.js +0 -12
  292. package/lib/typescript/handlers/PressabilityDebugView.js +0 -2
  293. package/lib/typescript/handlers/PressabilityDebugView.web.js +0 -4
  294. package/lib/typescript/handlers/RotationGestureHandler.js +0 -12
  295. package/lib/typescript/handlers/TapGestureHandler.js +0 -26
  296. package/lib/typescript/handlers/createHandler.js +0 -375
  297. package/lib/typescript/handlers/createNativeWrapper.js +0 -67
  298. package/lib/typescript/handlers/customDirectEventTypes.js +0 -2
  299. package/lib/typescript/handlers/customDirectEventTypes.web.js +0 -4
  300. package/lib/typescript/handlers/gestureHandlerCommon.js +0 -42
  301. package/lib/typescript/handlers/gestureHandlerTypesCompat.js +0 -1
  302. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +0 -22
  303. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +0 -24
  304. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +0 -55
  305. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +0 -12
  306. package/lib/typescript/handlers/gestures/GestureDetector/index.js +0 -114
  307. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
  308. package/lib/typescript/handlers/gestures/GestureDetector/types.js +0 -1
  309. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +0 -54
  310. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -137
  311. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -48
  312. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +0 -35
  313. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -32
  314. package/lib/typescript/handlers/gestures/GestureDetector/utils.js +0 -140
  315. package/lib/typescript/handlers/gestures/eventReceiver.js +0 -105
  316. package/lib/typescript/handlers/gestures/flingGesture.js +0 -27
  317. package/lib/typescript/handlers/gestures/forceTouchGesture.js +0 -57
  318. package/lib/typescript/handlers/gestures/gesture.js +0 -303
  319. package/lib/typescript/handlers/gestures/gestureComposition.js +0 -78
  320. package/lib/typescript/handlers/gestures/gestureObjects.js +0 -125
  321. package/lib/typescript/handlers/gestures/gestureStateManager.js +0 -60
  322. package/lib/typescript/handlers/gestures/gestureStateManager.web.js +0 -19
  323. package/lib/typescript/handlers/gestures/hoverGesture.js +0 -45
  324. package/lib/typescript/handlers/gestures/longPressGesture.js +0 -35
  325. package/lib/typescript/handlers/gestures/manualGesture.js +0 -16
  326. package/lib/typescript/handlers/gestures/nativeGesture.js +0 -24
  327. package/lib/typescript/handlers/gestures/panGesture.js +0 -181
  328. package/lib/typescript/handlers/gestures/pinchGesture.js +0 -27
  329. package/lib/typescript/handlers/gestures/reanimatedWrapper.js +0 -23
  330. package/lib/typescript/handlers/gestures/rotationGesture.js +0 -27
  331. package/lib/typescript/handlers/gestures/tapGesture.js +0 -72
  332. package/lib/typescript/handlers/getNextHandlerTag.js +0 -4
  333. package/lib/typescript/handlers/handlersRegistry.js +0 -36
  334. package/lib/typescript/handlers/utils.js +0 -58
  335. package/lib/typescript/index.js +0 -28
  336. package/lib/typescript/init.js +0 -15
  337. package/lib/typescript/jestUtils/index.js +0 -1
  338. package/lib/typescript/jestUtils/jestUtils.js +0 -290
  339. package/lib/typescript/mocks.d.ts.map +0 -1
  340. package/lib/typescript/mocks.js +0 -59
  341. package/lib/typescript/mountRegistry.js +0 -29
  342. package/lib/typescript/specs/NativeRNGestureHandlerModule.js +0 -2
  343. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +0 -2
  344. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +0 -2
  345. package/lib/typescript/typeUtils.js +0 -1
  346. package/lib/typescript/utils.js +0 -80
  347. package/lib/typescript/web/Gestures.js +0 -38
  348. package/lib/typescript/web/constants.js +0 -2
  349. package/lib/typescript/web/detectors/RotationGestureDetector.js +0 -122
  350. package/lib/typescript/web/detectors/ScaleGestureDetector.js +0 -117
  351. package/lib/typescript/web/handlers/FlingGestureHandler.js +0 -133
  352. package/lib/typescript/web/handlers/GestureHandler.js +0 -656
  353. package/lib/typescript/web/handlers/HoverGestureHandler.js +0 -37
  354. package/lib/typescript/web/handlers/IGestureHandler.js +0 -1
  355. package/lib/typescript/web/handlers/LongPressGestureHandler.js +0 -136
  356. package/lib/typescript/web/handlers/ManualGestureHandler.js +0 -29
  357. package/lib/typescript/web/handlers/NativeViewGestureHandler.js +0 -133
  358. package/lib/typescript/web/handlers/PanGestureHandler.js +0 -420
  359. package/lib/typescript/web/handlers/PinchGestureHandler.js +0 -117
  360. package/lib/typescript/web/handlers/RotationGestureHandler.js +0 -122
  361. package/lib/typescript/web/handlers/TapGestureHandler.js +0 -202
  362. package/lib/typescript/web/interfaces.js +0 -25
  363. package/lib/typescript/web/tools/CircularBuffer.js +0 -37
  364. package/lib/typescript/web/tools/EventManager.js +0 -85
  365. package/lib/typescript/web/tools/GestureHandlerDelegate.js +0 -1
  366. package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +0 -273
  367. package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +0 -169
  368. package/lib/typescript/web/tools/InteractionManager.js +0 -91
  369. package/lib/typescript/web/tools/KeyboardEventManager.js +0 -73
  370. package/lib/typescript/web/tools/LeastSquareSolver.js +0 -147
  371. package/lib/typescript/web/tools/NodeManager.js +0 -28
  372. package/lib/typescript/web/tools/PointerEventManager.js +0 -179
  373. package/lib/typescript/web/tools/PointerTracker.js +0 -161
  374. package/lib/typescript/web/tools/Vector.js +0 -43
  375. package/lib/typescript/web/tools/VelocityTracker.js +0 -76
  376. package/lib/typescript/web/tools/WheelEventManager.js +0 -40
  377. package/lib/typescript/web/utils.js +0 -233
  378. package/lib/typescript/web_hammer/DiscreteGestureHandler.js +0 -48
  379. package/lib/typescript/web_hammer/DraggingGestureHandler.js +0 -25
  380. package/lib/typescript/web_hammer/Errors.js +0 -5
  381. package/lib/typescript/web_hammer/FlingGestureHandler.js +0 -119
  382. package/lib/typescript/web_hammer/GestureHandler.js +0 -469
  383. package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +0 -26
  384. package/lib/typescript/web_hammer/LongPressGestureHandler.js +0 -46
  385. package/lib/typescript/web_hammer/NativeViewGestureHandler.js +0 -40
  386. package/lib/typescript/web_hammer/NodeManager.js +0 -28
  387. package/lib/typescript/web_hammer/PanGestureHandler.js +0 -151
  388. package/lib/typescript/web_hammer/PinchGestureHandler.js +0 -19
  389. package/lib/typescript/web_hammer/PressGestureHandler.js +0 -133
  390. package/lib/typescript/web_hammer/RotationGestureHandler.js +0 -20
  391. package/lib/typescript/web_hammer/TapGestureHandler.js +0 -142
  392. package/lib/typescript/web_hammer/constants.js +0 -42
  393. package/lib/typescript/web_hammer/utils.js +0 -15
  394. package/src/components/ReanimatedSwipeable.tsx +0 -811
@@ -1,161 +0,0 @@
1
- import VelocityTracker from './VelocityTracker';
2
- const MAX_POINTERS = 20;
3
- export default class PointerTracker {
4
- velocityTracker = new VelocityTracker();
5
- _trackedPointers = new Map();
6
- touchEventsIds = new Map();
7
- lastMovedPointerId;
8
- cachedAbsoluteAverages = { x: 0, y: 0 };
9
- cachedRelativeAverages = { x: 0, y: 0 };
10
- constructor() {
11
- this.lastMovedPointerId = NaN;
12
- for (let i = 0; i < MAX_POINTERS; ++i) {
13
- this.touchEventsIds.set(i, NaN);
14
- }
15
- }
16
- addToTracker(event) {
17
- if (this.trackedPointers.has(event.pointerId)) {
18
- return;
19
- }
20
- this.lastMovedPointerId = event.pointerId;
21
- const newElement = {
22
- abosoluteCoords: { x: event.x, y: event.y },
23
- relativeCoords: { x: event.offsetX, y: event.offsetY },
24
- timestamp: event.time,
25
- velocityX: 0,
26
- velocityY: 0,
27
- };
28
- this.trackedPointers.set(event.pointerId, newElement);
29
- this.mapTouchEventId(event.pointerId);
30
- this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();
31
- this.cachedRelativeAverages = this.getRelativeCoordsAverage();
32
- }
33
- removeFromTracker(pointerId) {
34
- this.trackedPointers.delete(pointerId);
35
- this.removeMappedTouchId(pointerId);
36
- }
37
- track(event) {
38
- const pointerData = this.trackedPointers.get(event.pointerId);
39
- if (!pointerData) {
40
- return;
41
- }
42
- this.lastMovedPointerId = event.pointerId;
43
- this.velocityTracker.add(event);
44
- const [velocityX, velocityY] = this.velocityTracker.velocity;
45
- pointerData.velocityX = velocityX;
46
- pointerData.velocityY = velocityY;
47
- pointerData.abosoluteCoords = { x: event.x, y: event.y };
48
- pointerData.relativeCoords = { x: event.offsetX, y: event.offsetY };
49
- this.trackedPointers.set(event.pointerId, pointerData);
50
- this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();
51
- this.cachedRelativeAverages = this.getRelativeCoordsAverage();
52
- }
53
- // Mapping TouchEvents ID
54
- mapTouchEventId(id) {
55
- for (const [mappedId, touchId] of this.touchEventsIds) {
56
- if (isNaN(touchId)) {
57
- this.touchEventsIds.set(mappedId, id);
58
- break;
59
- }
60
- }
61
- }
62
- removeMappedTouchId(id) {
63
- const mappedId = this.getMappedTouchEventId(id);
64
- if (!isNaN(mappedId)) {
65
- this.touchEventsIds.set(mappedId, NaN);
66
- }
67
- }
68
- getMappedTouchEventId(touchEventId) {
69
- for (const [key, value] of this.touchEventsIds.entries()) {
70
- if (value === touchEventId) {
71
- return key;
72
- }
73
- }
74
- return NaN;
75
- }
76
- getVelocity(pointerId) {
77
- const pointerData = this.trackedPointers.get(pointerId);
78
- return pointerData
79
- ? {
80
- x: pointerData.velocityX,
81
- y: pointerData.velocityY,
82
- }
83
- : null;
84
- }
85
- getLastAbsoluteCoords(pointerId) {
86
- return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)
87
- ?.abosoluteCoords;
88
- }
89
- getLastRelativeCoords(pointerId) {
90
- return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)
91
- ?.relativeCoords;
92
- }
93
- // Some handlers use these methods to send average values in native event.
94
- // This may happen when pointers have already been removed from tracker (i.e. pointerup event).
95
- // In situation when NaN would be sent as a response, we return cached value.
96
- // That prevents handlers from crashing
97
- getAbsoluteCoordsAverage() {
98
- const coordsSum = this.getAbsoluteCoordsSum();
99
- const avgX = coordsSum.x / this.trackedPointers.size;
100
- const avgY = coordsSum.y / this.trackedPointers.size;
101
- const averages = {
102
- x: isNaN(avgX) ? this.cachedAbsoluteAverages.x : avgX,
103
- y: isNaN(avgY) ? this.cachedAbsoluteAverages.y : avgY,
104
- };
105
- return averages;
106
- }
107
- getRelativeCoordsAverage() {
108
- const coordsSum = this.getRelativeCoordsSum();
109
- const avgX = coordsSum.x / this.trackedPointers.size;
110
- const avgY = coordsSum.y / this.trackedPointers.size;
111
- const averages = {
112
- x: isNaN(avgX) ? this.cachedRelativeAverages.x : avgX,
113
- y: isNaN(avgY) ? this.cachedRelativeAverages.y : avgY,
114
- };
115
- return averages;
116
- }
117
- getAbsoluteCoordsSum(ignoredPointer) {
118
- const sum = { x: 0, y: 0 };
119
- this.trackedPointers.forEach((value, key) => {
120
- if (key !== ignoredPointer) {
121
- sum.x += value.abosoluteCoords.x;
122
- sum.y += value.abosoluteCoords.y;
123
- }
124
- });
125
- return sum;
126
- }
127
- getRelativeCoordsSum(ignoredPointer) {
128
- const sum = { x: 0, y: 0 };
129
- this.trackedPointers.forEach((value, key) => {
130
- if (key !== ignoredPointer) {
131
- sum.x += value.relativeCoords.x;
132
- sum.y += value.relativeCoords.y;
133
- }
134
- });
135
- return sum;
136
- }
137
- resetTracker() {
138
- this.velocityTracker.reset();
139
- this.trackedPointers.clear();
140
- this.lastMovedPointerId = NaN;
141
- for (let i = 0; i < MAX_POINTERS; ++i) {
142
- this.touchEventsIds.set(i, NaN);
143
- }
144
- }
145
- static shareCommonPointers(stPointers, ndPointers) {
146
- return stPointers.some((pointerId) => ndPointers.includes(pointerId));
147
- }
148
- get trackedPointersCount() {
149
- return this.trackedPointers.size;
150
- }
151
- get trackedPointersIDs() {
152
- const keys = [];
153
- this.trackedPointers.forEach((_value, key) => {
154
- keys.push(key);
155
- });
156
- return keys;
157
- }
158
- get trackedPointers() {
159
- return this._trackedPointers;
160
- }
161
- }
@@ -1,43 +0,0 @@
1
- import { DiagonalDirections, Directions } from '../../Directions';
2
- import { MINIMAL_RECOGNIZABLE_MAGNITUDE } from '../constants';
3
- export default class Vector {
4
- x;
5
- y;
6
- unitX;
7
- unitY;
8
- _magnitude;
9
- constructor(x, y) {
10
- this.x = x;
11
- this.y = y;
12
- this._magnitude = Math.hypot(this.x, this.y);
13
- const isMagnitudeSufficient = this._magnitude > MINIMAL_RECOGNIZABLE_MAGNITUDE;
14
- this.unitX = isMagnitudeSufficient ? this.x / this._magnitude : 0;
15
- this.unitY = isMagnitudeSufficient ? this.y / this._magnitude : 0;
16
- }
17
- static fromDirection(direction) {
18
- return DirectionToVectorMappings.get(direction) ?? new Vector(0, 0);
19
- }
20
- static fromVelocity(tracker, pointerId) {
21
- const velocity = tracker.getVelocity(pointerId);
22
- return velocity ? new Vector(velocity.x, velocity.y) : null;
23
- }
24
- get magnitude() {
25
- return this._magnitude;
26
- }
27
- computeSimilarity(vector) {
28
- return this.unitX * vector.unitX + this.unitY * vector.unitY;
29
- }
30
- isSimilar(vector, threshold) {
31
- return this.computeSimilarity(vector) > threshold;
32
- }
33
- }
34
- const DirectionToVectorMappings = new Map([
35
- [Directions.LEFT, new Vector(-1, 0)],
36
- [Directions.RIGHT, new Vector(1, 0)],
37
- [Directions.UP, new Vector(0, -1)],
38
- [Directions.DOWN, new Vector(0, 1)],
39
- [DiagonalDirections.UP_RIGHT, new Vector(1, -1)],
40
- [DiagonalDirections.DOWN_RIGHT, new Vector(1, 1)],
41
- [DiagonalDirections.UP_LEFT, new Vector(-1, -1)],
42
- [DiagonalDirections.DOWN_LEFT, new Vector(-1, 1)],
43
- ]);
@@ -1,76 +0,0 @@
1
- import CircularBuffer from './CircularBuffer';
2
- import LeastSquareSolver from './LeastSquareSolver';
3
- export default class VelocityTracker {
4
- assumePointerMoveStoppedMilliseconds = 40;
5
- historySize = 20;
6
- horizonMilliseconds = 300;
7
- minSampleSize = 3;
8
- samples;
9
- constructor() {
10
- this.samples = new CircularBuffer(this.historySize);
11
- }
12
- add(event) {
13
- this.samples.push(event);
14
- }
15
- // Returns an estimate of the velocity of the object being tracked by the
16
- // tracker given the current information available to the tracker.
17
- //
18
- // Information is added using [addPosition].
19
- //
20
- // Returns null if there is no data on which to base an estimate.
21
- getVelocityEstimate() {
22
- const x = [];
23
- const y = [];
24
- const w = [];
25
- const time = [];
26
- let sampleCount = 0;
27
- let index = this.samples.size - 1;
28
- const newestSample = this.samples.get(index);
29
- if (!newestSample) {
30
- return null;
31
- }
32
- let previousSample = newestSample;
33
- // Starting with the most recent PointAtTime sample, iterate backwards while
34
- // the samples represent continuous motion.
35
- while (sampleCount < this.samples.size) {
36
- const sample = this.samples.get(index);
37
- const age = newestSample.time - sample.time;
38
- const delta = Math.abs(sample.time - previousSample.time);
39
- previousSample = sample;
40
- if (age > this.horizonMilliseconds ||
41
- delta > this.assumePointerMoveStoppedMilliseconds) {
42
- break;
43
- }
44
- x.push(sample.x);
45
- y.push(sample.y);
46
- w.push(1);
47
- time.push(-age);
48
- sampleCount++;
49
- index--;
50
- }
51
- if (sampleCount >= this.minSampleSize) {
52
- const xSolver = new LeastSquareSolver(time, x, w);
53
- const xFit = xSolver.solve(2);
54
- if (xFit !== null) {
55
- const ySolver = new LeastSquareSolver(time, y, w);
56
- const yFit = ySolver.solve(2);
57
- if (yFit !== null) {
58
- const xVelocity = xFit.coefficients[1] * 1000;
59
- const yVelocity = yFit.coefficients[1] * 1000;
60
- return [xVelocity, yVelocity];
61
- }
62
- }
63
- }
64
- return null;
65
- }
66
- get velocity() {
67
- const estimate = this.getVelocityEstimate();
68
- if (estimate !== null) {
69
- return estimate;
70
- }
71
- return [0, 0];
72
- }
73
- reset() {
74
- this.samples.clear();
75
- }
76
- }
@@ -1,40 +0,0 @@
1
- import EventManager from './EventManager';
2
- import { EventTypes } from '../interfaces';
3
- import { PointerType } from '../../PointerType';
4
- export default class WheelEventManager extends EventManager {
5
- wheelDelta = { x: 0, y: 0 };
6
- resetDelta = (_event) => {
7
- this.wheelDelta = { x: 0, y: 0 };
8
- };
9
- wheelCallback = (event) => {
10
- this.wheelDelta.x += event.deltaX;
11
- this.wheelDelta.y += event.deltaY;
12
- const adaptedEvent = this.mapEvent(event);
13
- this.onWheel(adaptedEvent);
14
- };
15
- registerListeners() {
16
- this.view.addEventListener('pointermove', this.resetDelta);
17
- this.view.addEventListener('wheel', this.wheelCallback);
18
- }
19
- unregisterListeners() {
20
- this.view.removeEventListener('pointermove', this.resetDelta);
21
- this.view.removeEventListener('wheel', this.wheelCallback);
22
- }
23
- mapEvent(event) {
24
- return {
25
- x: event.clientX + this.wheelDelta.x,
26
- y: event.clientY + this.wheelDelta.y,
27
- offsetX: event.offsetX - event.deltaX,
28
- offsetY: event.offsetY - event.deltaY,
29
- pointerId: -1,
30
- eventType: EventTypes.MOVE,
31
- pointerType: PointerType.OTHER,
32
- time: event.timeStamp,
33
- // @ts-ignore It does exist, but it's deprecated
34
- wheelDeltaY: event.wheelDeltaY,
35
- };
36
- }
37
- resetManager() {
38
- super.resetManager();
39
- }
40
- }
@@ -1,233 +0,0 @@
1
- import { PointerType } from '../PointerType';
2
- export function isPointerInBounds(view, { x, y }) {
3
- const rect = view.getBoundingClientRect();
4
- return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
5
- }
6
- export const PointerTypeMapping = new Map([
7
- ['mouse', PointerType.MOUSE],
8
- ['touch', PointerType.TOUCH],
9
- ['pen', PointerType.STYLUS],
10
- ['none', PointerType.OTHER],
11
- ]);
12
- export const degToRad = (degrees) => (degrees * Math.PI) / 180;
13
- export const coneToDeviation = (degrees) => Math.cos(degToRad(degrees / 2));
14
- export function calculateViewScale(view) {
15
- const styles = getComputedStyle(view);
16
- const resultScales = {
17
- scaleX: 1,
18
- scaleY: 1,
19
- };
20
- // Get scales from scale property
21
- if (styles.scale !== undefined && styles.scale !== 'none') {
22
- const scales = styles.scale.split(' ');
23
- if (scales[0]) {
24
- resultScales.scaleX = parseFloat(scales[0]);
25
- }
26
- resultScales.scaleY = scales[1]
27
- ? parseFloat(scales[1])
28
- : parseFloat(scales[0]);
29
- }
30
- // Get scales from transform property
31
- const matrixElements = new RegExp(/matrix\((.+)\)/).exec(styles.transform)?.[1];
32
- if (matrixElements) {
33
- const matrixElementsArray = matrixElements.split(', ');
34
- resultScales.scaleX *= parseFloat(matrixElementsArray[0]);
35
- resultScales.scaleY *= parseFloat(matrixElementsArray[3]);
36
- }
37
- return resultScales;
38
- }
39
- export function tryExtractStylusData(event) {
40
- const pointerType = PointerTypeMapping.get(event.pointerType);
41
- if (pointerType !== PointerType.STYLUS) {
42
- return;
43
- }
44
- // @ts-ignore This property exists (https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent#instance_properties)
45
- const eventAzimuthAngle = event.azimuthAngle;
46
- // @ts-ignore This property exists (https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent#instance_properties)
47
- const eventAltitudeAngle = event.altitudeAngle;
48
- if (event.tiltX === 0 && event.tiltY === 0) {
49
- // If we are in this branch, it means that either tilt properties are not supported and we have to calculate them from altitude and azimuth angles,
50
- // or stylus is perpendicular to the screen and we can use altitude / azimuth instead of tilt
51
- // If azimuth and altitude are undefined in this branch, it means that we are either perpendicular to the screen,
52
- // or that none of the position sets is supported. In that case, we can treat stylus as perpendicular
53
- if (eventAzimuthAngle === undefined || eventAltitudeAngle === undefined) {
54
- return {
55
- tiltX: 0,
56
- tiltY: 0,
57
- azimuthAngle: Math.PI / 2,
58
- altitudeAngle: Math.PI / 2,
59
- pressure: event.pressure,
60
- };
61
- }
62
- const { tiltX, tiltY } = spherical2tilt(eventAltitudeAngle, eventAzimuthAngle);
63
- return {
64
- tiltX,
65
- tiltY,
66
- azimuthAngle: eventAzimuthAngle,
67
- altitudeAngle: eventAltitudeAngle,
68
- pressure: event.pressure,
69
- };
70
- }
71
- const { altitudeAngle, azimuthAngle } = tilt2spherical(event.tiltX, event.tiltY);
72
- return {
73
- tiltX: event.tiltX,
74
- tiltY: event.tiltY,
75
- azimuthAngle,
76
- altitudeAngle,
77
- pressure: event.pressure,
78
- };
79
- }
80
- // `altitudeAngle` and `azimuthAngle` are experimental properties, which are not supported on Firefox and Safari.
81
- // Given that, we use `tilt` properties and algorithm that converts one value to another.
82
- //
83
- // Source: https://w3c.github.io/pointerevents/#converting-between-tiltx-tilty-and-altitudeangle-azimuthangle
84
- function tilt2spherical(tiltX, tiltY) {
85
- const tiltXrad = (tiltX * Math.PI) / 180;
86
- const tiltYrad = (tiltY * Math.PI) / 180;
87
- // calculate azimuth angle
88
- let azimuthAngle = 0;
89
- if (tiltX === 0) {
90
- if (tiltY > 0) {
91
- azimuthAngle = Math.PI / 2;
92
- }
93
- else if (tiltY < 0) {
94
- azimuthAngle = (3 * Math.PI) / 2;
95
- }
96
- }
97
- else if (tiltY === 0) {
98
- if (tiltX < 0) {
99
- azimuthAngle = Math.PI;
100
- }
101
- }
102
- else if (Math.abs(tiltX) === 90 || Math.abs(tiltY) === 90) {
103
- // not enough information to calculate azimuth
104
- azimuthAngle = 0;
105
- }
106
- else {
107
- // Non-boundary case: neither tiltX nor tiltY is equal to 0 or +-90
108
- const tanX = Math.tan(tiltXrad);
109
- const tanY = Math.tan(tiltYrad);
110
- azimuthAngle = Math.atan2(tanY, tanX);
111
- if (azimuthAngle < 0) {
112
- azimuthAngle += 2 * Math.PI;
113
- }
114
- }
115
- // calculate altitude angle
116
- let altitudeAngle = 0;
117
- if (Math.abs(tiltX) === 90 || Math.abs(tiltY) === 90) {
118
- altitudeAngle = 0;
119
- }
120
- else if (tiltX === 0) {
121
- altitudeAngle = Math.PI / 2 - Math.abs(tiltYrad);
122
- }
123
- else if (tiltY === 0) {
124
- altitudeAngle = Math.PI / 2 - Math.abs(tiltXrad);
125
- }
126
- else {
127
- // Non-boundary case: neither tiltX nor tiltY is equal to 0 or +-90
128
- altitudeAngle = Math.atan(1.0 /
129
- Math.sqrt(Math.pow(Math.tan(tiltXrad), 2) + Math.pow(Math.tan(tiltYrad), 2)));
130
- }
131
- return { altitudeAngle: altitudeAngle, azimuthAngle: azimuthAngle };
132
- }
133
- // If we are on a platform that doesn't support `tiltX` and `tiltY`, we have to calculate them from `altitude` and `azimuth` angles.
134
- //
135
- // Source: https://w3c.github.io/pointerevents/#converting-between-tiltx-tilty-and-altitudeangle-azimuthangle
136
- function spherical2tilt(altitudeAngle, azimuthAngle) {
137
- const radToDeg = 180 / Math.PI;
138
- let tiltXrad = 0;
139
- let tiltYrad = 0;
140
- if (altitudeAngle === 0) {
141
- // the pen is in the X-Y plane
142
- if (azimuthAngle === 0 || azimuthAngle === 2 * Math.PI) {
143
- // pen is on positive X axis
144
- tiltXrad = Math.PI / 2;
145
- }
146
- if (azimuthAngle === Math.PI / 2) {
147
- // pen is on positive Y axis
148
- tiltYrad = Math.PI / 2;
149
- }
150
- if (azimuthAngle === Math.PI) {
151
- // pen is on negative X axis
152
- tiltXrad = -Math.PI / 2;
153
- }
154
- if (azimuthAngle === (3 * Math.PI) / 2) {
155
- // pen is on negative Y axis
156
- tiltYrad = -Math.PI / 2;
157
- }
158
- if (azimuthAngle > 0 && azimuthAngle < Math.PI / 2) {
159
- tiltXrad = Math.PI / 2;
160
- tiltYrad = Math.PI / 2;
161
- }
162
- if (azimuthAngle > Math.PI / 2 && azimuthAngle < Math.PI) {
163
- tiltXrad = -Math.PI / 2;
164
- tiltYrad = Math.PI / 2;
165
- }
166
- if (azimuthAngle > Math.PI && azimuthAngle < (3 * Math.PI) / 2) {
167
- tiltXrad = -Math.PI / 2;
168
- tiltYrad = -Math.PI / 2;
169
- }
170
- if (azimuthAngle > (3 * Math.PI) / 2 && azimuthAngle < 2 * Math.PI) {
171
- tiltXrad = Math.PI / 2;
172
- tiltYrad = -Math.PI / 2;
173
- }
174
- }
175
- if (altitudeAngle !== 0) {
176
- const tanAlt = Math.tan(altitudeAngle);
177
- tiltXrad = Math.atan(Math.cos(azimuthAngle) / tanAlt);
178
- tiltYrad = Math.atan(Math.sin(azimuthAngle) / tanAlt);
179
- }
180
- const tiltX = Math.round(tiltXrad * radToDeg);
181
- const tiltY = Math.round(tiltYrad * radToDeg);
182
- return { tiltX, tiltY };
183
- }
184
- export const RNSVGElements = new Set([
185
- 'Circle',
186
- 'ClipPath',
187
- 'Ellipse',
188
- 'ForeignObject',
189
- 'G',
190
- 'Image',
191
- 'Line',
192
- 'Marker',
193
- 'Mask',
194
- 'Path',
195
- 'Pattern',
196
- 'Polygon',
197
- 'Polyline',
198
- 'Rect',
199
- 'Svg',
200
- 'Symbol',
201
- 'TSpan',
202
- 'Text',
203
- 'TextPath',
204
- 'Use',
205
- ]);
206
- // This function helps us determine whether given node is SVGElement or not. In our implementation of
207
- // findNodeHandle, we can encounter such element in 2 forms - SVG tag or ref to SVG Element. Since Gesture Handler
208
- // does not depend on SVG, we use our simplified SVGRef type that has `elementRef` field. This is something that is present
209
- // in actual SVG ref object.
210
- //
211
- // In order to make sure that node passed into this function is in fact SVG element, first we check if its constructor name
212
- // corresponds to one of the possible SVG elements. Then we also check if `elementRef` field exists.
213
- // By doing both steps we decrease probability of detecting situations where, for example, user makes custom `Circle` and
214
- // we treat it as SVG.
215
- export function isRNSVGElement(viewRef) {
216
- const componentClassName = Object.getPrototypeOf(viewRef).constructor.name;
217
- return (RNSVGElements.has(componentClassName) &&
218
- Object.hasOwn(viewRef, 'elementRef'));
219
- }
220
- // This function checks if given node is SVGElement. Unlike the function above, this one
221
- // operates on React Nodes, not DOM nodes.
222
- //
223
- // Second condition was introduced to handle case where SVG element was wrapped with
224
- // `createAnimatedComponent` from Reanimated.
225
- export function isRNSVGNode(node) {
226
- // If `ref` has `rngh` field, it means that component comes from Gesture Handler. This is a special case for
227
- // `Text` component, which is present in `RNSVGElements` set, yet we don't want to treat it as SVG.
228
- if (node.ref?.rngh) {
229
- return false;
230
- }
231
- return (Object.getPrototypeOf(node?.type)?.name === 'WebShape' ||
232
- RNSVGElements.has(node?.type?.displayName));
233
- }
@@ -1,48 +0,0 @@
1
- /* eslint-disable @eslint-community/eslint-comments/no-unlimited-disable */
2
- /* eslint-disable */
3
- import GestureHandler from './GestureHandler';
4
- import { TEST_MAX_IF_NOT_NAN } from './utils';
5
- class DiscreteGestureHandler extends GestureHandler {
6
- get isDiscrete() {
7
- return true;
8
- }
9
- get shouldEnableGestureOnSetup() {
10
- return true;
11
- }
12
- shouldFailUnderCustomCriteria({ x, y, deltaX, deltaY }, { maxDeltaX, maxDeltaY, maxDistSq, shouldCancelWhenOutside }) {
13
- if (shouldCancelWhenOutside) {
14
- if (!this.isPointInView({ x, y })) {
15
- return true;
16
- }
17
- }
18
- return (TEST_MAX_IF_NOT_NAN(Math.abs(deltaX), maxDeltaX) ||
19
- TEST_MAX_IF_NOT_NAN(Math.abs(deltaY), maxDeltaY) ||
20
- TEST_MAX_IF_NOT_NAN(Math.abs(deltaY * deltaY + deltaX * deltaX), maxDistSq));
21
- }
22
- transformNativeEvent({ center: { x, y } }) {
23
- // @ts-ignore FIXME(TS)
24
- const rect = this.view.getBoundingClientRect();
25
- return {
26
- absoluteX: x,
27
- absoluteY: y,
28
- x: x - rect.left,
29
- y: y - rect.top,
30
- };
31
- }
32
- isGestureEnabledForEvent({ minPointers, maxPointers, maxDeltaX, maxDeltaY, maxDistSq, shouldCancelWhenOutside, }, _recognizer, { maxPointers: pointerLength, center, deltaX, deltaY }) {
33
- const validPointerCount = pointerLength >= minPointers && pointerLength <= maxPointers;
34
- if (this.shouldFailUnderCustomCriteria({ ...center, deltaX, deltaY }, {
35
- maxDeltaX,
36
- maxDeltaY,
37
- maxDistSq,
38
- shouldCancelWhenOutside,
39
- }) ||
40
- // A user probably won't land a multi-pointer tap on the first tick (so we cannot just cancel each time)
41
- // but if the gesture is running and the user adds or subtracts another pointer then it should fail.
42
- (!validPointerCount && this.isGestureRunning)) {
43
- return { failed: true };
44
- }
45
- return { success: validPointerCount };
46
- }
47
- }
48
- export default DiscreteGestureHandler;
@@ -1,25 +0,0 @@
1
- /* eslint-disable @eslint-community/eslint-comments/no-unlimited-disable */
2
- /* eslint-disable */
3
- import GestureHandler from './GestureHandler';
4
- import { PixelRatio } from 'react-native';
5
- class DraggingGestureHandler extends GestureHandler {
6
- get shouldEnableGestureOnSetup() {
7
- return true;
8
- }
9
- transformNativeEvent({ deltaX, deltaY, velocityX, velocityY, center: { x, y }, }) {
10
- // @ts-ignore FIXME(TS)
11
- const rect = this.view.getBoundingClientRect();
12
- const ratio = PixelRatio.get();
13
- return {
14
- translationX: deltaX - (this.__initialX || 0),
15
- translationY: deltaY - (this.__initialY || 0),
16
- absoluteX: x,
17
- absoluteY: y,
18
- velocityX: velocityX * ratio,
19
- velocityY: velocityY * ratio,
20
- x: x - rect.left,
21
- y: y - rect.top,
22
- };
23
- }
24
- }
25
- export default DraggingGestureHandler;
@@ -1,5 +0,0 @@
1
- export class GesturePropError extends Error {
2
- constructor(name, value, expectedType) {
3
- super(`Invalid property \`${name}: ${value}\` expected \`${expectedType}\``);
4
- }
5
- }