react-native-gesture-handler 2.26.0 → 2.27.1

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 (415) hide show
  1. package/README.md +69 -0
  2. package/android/src/main/jni/CMakeLists.txt +7 -26
  3. package/lib/commonjs/components/Pressable/Pressable.js +139 -188
  4. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  5. package/lib/commonjs/components/Pressable/StateMachine.js +38 -0
  6. package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -0
  7. package/lib/commonjs/components/Pressable/stateDefinitions.js +88 -0
  8. package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -0
  9. package/lib/commonjs/components/Pressable/utils.js +1 -1
  10. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  11. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +12 -0
  12. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  13. package/lib/commonjs/handlers/gestures/gestureObjects.js +3 -1
  14. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  15. package/lib/commonjs/web/detectors/RotationGestureDetector.js +3 -0
  16. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  17. package/lib/commonjs/web/handlers/FlingGestureHandler.js +3 -0
  18. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  19. package/lib/commonjs/web/handlers/GestureHandler.js +6 -6
  20. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  21. package/lib/commonjs/web/handlers/PanGestureHandler.js +24 -33
  22. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  23. package/lib/commonjs/web/handlers/TapGestureHandler.js +15 -17
  24. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  25. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +1 -1
  26. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  27. package/lib/commonjs/web/tools/PointerEventManager.js +1 -1
  28. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  29. package/lib/commonjs/web/tools/PointerTracker.js +12 -11
  30. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  31. package/lib/commonjs/web/tools/Vector.js +1 -1
  32. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  33. package/lib/module/components/Pressable/Pressable.js +141 -190
  34. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  35. package/lib/module/components/Pressable/StateMachine.js +34 -0
  36. package/lib/module/components/Pressable/StateMachine.js.map +1 -0
  37. package/lib/module/components/Pressable/stateDefinitions.js +83 -0
  38. package/lib/module/components/Pressable/stateDefinitions.js.map +1 -0
  39. package/lib/module/components/Pressable/utils.js +1 -1
  40. package/lib/module/components/Pressable/utils.js.map +1 -1
  41. package/lib/module/handlers/gestures/forceTouchGesture.js +13 -0
  42. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  43. package/lib/module/handlers/gestures/gestureObjects.js +3 -1
  44. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  45. package/lib/module/web/detectors/RotationGestureDetector.js +3 -0
  46. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  47. package/lib/module/web/handlers/FlingGestureHandler.js +3 -0
  48. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  49. package/lib/module/web/handlers/GestureHandler.js +6 -6
  50. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  51. package/lib/module/web/handlers/PanGestureHandler.js +24 -33
  52. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  53. package/lib/module/web/handlers/TapGestureHandler.js +15 -17
  54. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  55. package/lib/module/web/tools/GestureHandlerOrchestrator.js +1 -1
  56. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  57. package/lib/module/web/tools/PointerEventManager.js +1 -1
  58. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  59. package/lib/module/web/tools/PointerTracker.js +12 -11
  60. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  61. package/lib/module/web/tools/Vector.js +1 -1
  62. package/lib/module/web/tools/Vector.js.map +1 -1
  63. package/lib/typescript/ActionType.d.ts +0 -1
  64. package/lib/typescript/ActionType.js +6 -0
  65. package/lib/typescript/Directions.d.ts +0 -1
  66. package/lib/typescript/Directions.js +18 -0
  67. package/lib/typescript/EnableNewWebImplementation.d.ts +0 -1
  68. package/lib/typescript/EnableNewWebImplementation.js +30 -0
  69. package/lib/typescript/GestureHandlerRootViewContext.d.ts +0 -1
  70. package/lib/typescript/GestureHandlerRootViewContext.js +2 -0
  71. package/lib/typescript/PlatformConstants.d.ts +0 -1
  72. package/lib/typescript/PlatformConstants.js +3 -0
  73. package/lib/typescript/PlatformConstants.web.d.ts +0 -1
  74. package/lib/typescript/PlatformConstants.web.js +5 -0
  75. package/lib/typescript/PointerType.d.ts +0 -1
  76. package/lib/typescript/PointerType.js +8 -0
  77. package/lib/typescript/RNGestureHandlerModule.d.ts +0 -1
  78. package/lib/typescript/RNGestureHandlerModule.js +4 -0
  79. package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -1
  80. package/lib/typescript/RNGestureHandlerModule.web.js +92 -0
  81. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +0 -1
  82. package/lib/typescript/RNGestureHandlerModule.windows.js +47 -0
  83. package/lib/typescript/RNRenderer.d.ts +0 -1
  84. package/lib/typescript/RNRenderer.js +3 -0
  85. package/lib/typescript/RNRenderer.web.d.ts +0 -1
  86. package/lib/typescript/RNRenderer.web.js +3 -0
  87. package/lib/typescript/State.d.ts +0 -1
  88. package/lib/typescript/State.js +9 -0
  89. package/lib/typescript/TouchEventType.d.ts +0 -1
  90. package/lib/typescript/TouchEventType.js +7 -0
  91. package/lib/typescript/components/DrawerLayout.d.ts +0 -1
  92. package/lib/typescript/components/DrawerLayout.js +417 -0
  93. package/lib/typescript/components/GestureButtons.d.ts +0 -1
  94. package/lib/typescript/components/GestureButtons.js +165 -0
  95. package/lib/typescript/components/GestureButtonsProps.d.ts +0 -1
  96. package/lib/typescript/components/GestureButtonsProps.js +1 -0
  97. package/lib/typescript/components/GestureComponents.d.ts +0 -1
  98. package/lib/typescript/components/GestureComponents.js +67 -0
  99. package/lib/typescript/components/GestureComponents.web.d.ts +0 -1
  100. package/lib/typescript/components/GestureComponents.web.js +21 -0
  101. package/lib/typescript/components/GestureHandlerButton.d.ts +0 -1
  102. package/lib/typescript/components/GestureHandlerButton.js +2 -0
  103. package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -1
  104. package/lib/typescript/components/GestureHandlerButton.web.js +3 -0
  105. package/lib/typescript/components/GestureHandlerRootView.android.d.ts +0 -1
  106. package/lib/typescript/components/GestureHandlerRootView.android.js +17 -0
  107. package/lib/typescript/components/GestureHandlerRootView.d.ts +0 -1
  108. package/lib/typescript/components/GestureHandlerRootView.js +16 -0
  109. package/lib/typescript/components/GestureHandlerRootView.web.d.ts +0 -1
  110. package/lib/typescript/components/GestureHandlerRootView.web.js +11 -0
  111. package/lib/typescript/components/Pressable/Pressable.d.ts +1 -3
  112. package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
  113. package/lib/typescript/components/Pressable/Pressable.js +231 -0
  114. package/lib/typescript/components/Pressable/PressableProps.d.ts +15 -2
  115. package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
  116. package/lib/typescript/components/Pressable/PressableProps.js +1 -0
  117. package/lib/typescript/components/Pressable/StateMachine.d.ts +14 -0
  118. package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -0
  119. package/lib/typescript/components/Pressable/StateMachine.js +34 -0
  120. package/lib/typescript/components/Pressable/index.d.ts +0 -1
  121. package/lib/typescript/components/Pressable/index.js +1 -0
  122. package/lib/typescript/components/Pressable/stateDefinitions.d.ts +9 -0
  123. package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -0
  124. package/lib/typescript/components/Pressable/stateDefinitions.js +104 -0
  125. package/lib/typescript/components/Pressable/utils.d.ts +3 -7
  126. package/lib/typescript/components/Pressable/utils.d.ts.map +1 -1
  127. package/lib/typescript/components/Pressable/utils.js +80 -0
  128. package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +0 -1
  129. package/lib/typescript/components/ReanimatedDrawerLayout.js +364 -0
  130. package/lib/typescript/components/ReanimatedSwipeable.d.ts +0 -1
  131. package/lib/typescript/components/ReanimatedSwipeable.js +400 -0
  132. package/lib/typescript/components/Swipeable.d.ts +0 -1
  133. package/lib/typescript/components/Swipeable.js +287 -0
  134. package/lib/typescript/components/Text.d.ts +0 -1
  135. package/lib/typescript/components/Text.js +38 -0
  136. package/lib/typescript/components/gestureHandlerRootHOC.d.ts +0 -1
  137. package/lib/typescript/components/gestureHandlerRootHOC.js +18 -0
  138. package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +0 -1
  139. package/lib/typescript/components/touchables/ExtraButtonProps.js +1 -0
  140. package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -1
  141. package/lib/typescript/components/touchables/GenericTouchable.js +221 -0
  142. package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +0 -1
  143. package/lib/typescript/components/touchables/GenericTouchableProps.js +1 -0
  144. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +0 -1
  145. package/lib/typescript/components/touchables/TouchableHighlight.js +75 -0
  146. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +0 -1
  147. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +65 -0
  148. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +0 -1
  149. package/lib/typescript/components/touchables/TouchableNativeFeedback.js +6 -0
  150. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +0 -1
  151. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +1 -0
  152. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +0 -1
  153. package/lib/typescript/components/touchables/TouchableOpacity.js +51 -0
  154. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +0 -1
  155. package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +10 -0
  156. package/lib/typescript/components/touchables/index.d.ts +0 -1
  157. package/lib/typescript/components/touchables/index.js +4 -0
  158. package/lib/typescript/components/utils.d.ts +0 -1
  159. package/lib/typescript/components/utils.js +11 -0
  160. package/lib/typescript/findNodeHandle.d.ts +0 -1
  161. package/lib/typescript/findNodeHandle.js +2 -0
  162. package/lib/typescript/findNodeHandle.web.d.ts +0 -1
  163. package/lib/typescript/findNodeHandle.web.js +31 -0
  164. package/lib/typescript/getShadowNodeFromRef.d.ts +0 -1
  165. package/lib/typescript/getShadowNodeFromRef.js +45 -0
  166. package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
  167. package/lib/typescript/getShadowNodeFromRef.web.js +7 -0
  168. package/lib/typescript/ghQueueMicrotask.d.ts +0 -1
  169. package/lib/typescript/ghQueueMicrotask.js +7 -0
  170. package/lib/typescript/handlers/FlingGestureHandler.d.ts +0 -1
  171. package/lib/typescript/handlers/FlingGestureHandler.js +19 -0
  172. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +0 -1
  173. package/lib/typescript/handlers/ForceTouchGestureHandler.js +37 -0
  174. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +3 -1
  175. package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts.map +1 -1
  176. package/lib/typescript/handlers/GestureHandlerEventPayload.js +1 -0
  177. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +0 -1
  178. package/lib/typescript/handlers/LongPressGestureHandler.js +22 -0
  179. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +0 -1
  180. package/lib/typescript/handlers/NativeViewGestureHandler.js +20 -0
  181. package/lib/typescript/handlers/PanGestureHandler.d.ts +0 -1
  182. package/lib/typescript/handlers/PanGestureHandler.js +128 -0
  183. package/lib/typescript/handlers/PinchGestureHandler.d.ts +0 -1
  184. package/lib/typescript/handlers/PinchGestureHandler.js +12 -0
  185. package/lib/typescript/handlers/PressabilityDebugView.d.ts +0 -1
  186. package/lib/typescript/handlers/PressabilityDebugView.js +2 -0
  187. package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
  188. package/lib/typescript/handlers/PressabilityDebugView.web.js +4 -0
  189. package/lib/typescript/handlers/RotationGestureHandler.d.ts +0 -1
  190. package/lib/typescript/handlers/RotationGestureHandler.js +12 -0
  191. package/lib/typescript/handlers/TapGestureHandler.d.ts +0 -1
  192. package/lib/typescript/handlers/TapGestureHandler.js +26 -0
  193. package/lib/typescript/handlers/createHandler.d.ts +0 -1
  194. package/lib/typescript/handlers/createHandler.js +375 -0
  195. package/lib/typescript/handlers/createNativeWrapper.d.ts +0 -1
  196. package/lib/typescript/handlers/createNativeWrapper.js +67 -0
  197. package/lib/typescript/handlers/customDirectEventTypes.d.ts +0 -1
  198. package/lib/typescript/handlers/customDirectEventTypes.js +2 -0
  199. package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +0 -1
  200. package/lib/typescript/handlers/customDirectEventTypes.web.js +4 -0
  201. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -1
  202. package/lib/typescript/handlers/gestureHandlerCommon.js +42 -0
  203. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +9 -1
  204. package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts.map +1 -1
  205. package/lib/typescript/handlers/gestureHandlerTypesCompat.js +1 -0
  206. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +0 -1
  207. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +22 -0
  208. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +0 -1
  209. package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +24 -0
  210. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +0 -1
  211. package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +55 -0
  212. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +0 -1
  213. package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +12 -0
  214. package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +0 -1
  215. package/lib/typescript/handlers/gestures/GestureDetector/index.js +114 -0
  216. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +0 -1
  217. package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +18 -0
  218. package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +0 -1
  219. package/lib/typescript/handlers/gestures/GestureDetector/types.js +1 -0
  220. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +0 -1
  221. package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +54 -0
  222. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +0 -1
  223. package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +137 -0
  224. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +0 -1
  225. package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +48 -0
  226. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +0 -1
  227. package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +35 -0
  228. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +0 -1
  229. package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +32 -0
  230. package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
  231. package/lib/typescript/handlers/gestures/GestureDetector/utils.js +140 -0
  232. package/lib/typescript/handlers/gestures/eventReceiver.d.ts +0 -1
  233. package/lib/typescript/handlers/gestures/eventReceiver.js +105 -0
  234. package/lib/typescript/handlers/gestures/flingGesture.d.ts +0 -1
  235. package/lib/typescript/handlers/gestures/flingGesture.js +27 -0
  236. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +9 -1
  237. package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts.map +1 -1
  238. package/lib/typescript/handlers/gestures/forceTouchGesture.js +57 -0
  239. package/lib/typescript/handlers/gestures/gesture.d.ts +0 -1
  240. package/lib/typescript/handlers/gestures/gesture.js +303 -0
  241. package/lib/typescript/handlers/gestures/gestureComposition.d.ts +0 -1
  242. package/lib/typescript/handlers/gestures/gestureComposition.js +78 -0
  243. package/lib/typescript/handlers/gestures/gestureObjects.d.ts +3 -2
  244. package/lib/typescript/handlers/gestures/gestureObjects.d.ts.map +1 -1
  245. package/lib/typescript/handlers/gestures/gestureObjects.js +125 -0
  246. package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +0 -1
  247. package/lib/typescript/handlers/gestures/gestureStateManager.js +60 -0
  248. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +0 -1
  249. package/lib/typescript/handlers/gestures/gestureStateManager.web.js +19 -0
  250. package/lib/typescript/handlers/gestures/hoverGesture.d.ts +0 -1
  251. package/lib/typescript/handlers/gestures/hoverGesture.js +45 -0
  252. package/lib/typescript/handlers/gestures/longPressGesture.d.ts +0 -1
  253. package/lib/typescript/handlers/gestures/longPressGesture.js +35 -0
  254. package/lib/typescript/handlers/gestures/manualGesture.d.ts +0 -1
  255. package/lib/typescript/handlers/gestures/manualGesture.js +16 -0
  256. package/lib/typescript/handlers/gestures/nativeGesture.d.ts +0 -1
  257. package/lib/typescript/handlers/gestures/nativeGesture.js +24 -0
  258. package/lib/typescript/handlers/gestures/panGesture.d.ts +0 -1
  259. package/lib/typescript/handlers/gestures/panGesture.js +181 -0
  260. package/lib/typescript/handlers/gestures/pinchGesture.d.ts +0 -1
  261. package/lib/typescript/handlers/gestures/pinchGesture.js +27 -0
  262. package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +0 -1
  263. package/lib/typescript/handlers/gestures/reanimatedWrapper.js +23 -0
  264. package/lib/typescript/handlers/gestures/rotationGesture.d.ts +0 -1
  265. package/lib/typescript/handlers/gestures/rotationGesture.js +27 -0
  266. package/lib/typescript/handlers/gestures/tapGesture.d.ts +0 -1
  267. package/lib/typescript/handlers/gestures/tapGesture.js +72 -0
  268. package/lib/typescript/handlers/getNextHandlerTag.d.ts +0 -1
  269. package/lib/typescript/handlers/getNextHandlerTag.js +4 -0
  270. package/lib/typescript/handlers/handlersRegistry.d.ts +0 -1
  271. package/lib/typescript/handlers/handlersRegistry.js +36 -0
  272. package/lib/typescript/handlers/utils.d.ts +0 -1
  273. package/lib/typescript/handlers/utils.js +58 -0
  274. package/lib/typescript/index.d.ts +0 -1
  275. package/lib/typescript/index.js +28 -0
  276. package/lib/typescript/init.d.ts +0 -1
  277. package/lib/typescript/init.js +15 -0
  278. package/lib/typescript/jestUtils/index.d.ts +0 -1
  279. package/lib/typescript/jestUtils/index.js +1 -0
  280. package/lib/typescript/jestUtils/jestUtils.d.ts +0 -1
  281. package/lib/typescript/jestUtils/jestUtils.js +290 -0
  282. package/lib/typescript/mocks.d.ts +0 -1
  283. package/lib/typescript/mocks.js +59 -0
  284. package/lib/typescript/mountRegistry.d.ts +0 -1
  285. package/lib/typescript/mountRegistry.js +29 -0
  286. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +0 -1
  287. package/lib/typescript/specs/NativeRNGestureHandlerModule.js +2 -0
  288. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +0 -1
  289. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +2 -0
  290. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +0 -1
  291. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +2 -0
  292. package/lib/typescript/typeUtils.d.ts +0 -1
  293. package/lib/typescript/typeUtils.js +1 -0
  294. package/lib/typescript/utils.d.ts +0 -1
  295. package/lib/typescript/utils.js +80 -0
  296. package/lib/typescript/web/Gestures.d.ts +0 -1
  297. package/lib/typescript/web/Gestures.js +38 -0
  298. package/lib/typescript/web/constants.d.ts +0 -1
  299. package/lib/typescript/web/constants.js +2 -0
  300. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +0 -1
  301. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts.map +1 -1
  302. package/lib/typescript/web/detectors/RotationGestureDetector.js +122 -0
  303. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +0 -1
  304. package/lib/typescript/web/detectors/ScaleGestureDetector.js +117 -0
  305. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
  306. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts.map +1 -1
  307. package/lib/typescript/web/handlers/FlingGestureHandler.js +133 -0
  308. package/lib/typescript/web/handlers/GestureHandler.d.ts +0 -1
  309. package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
  310. package/lib/typescript/web/handlers/GestureHandler.js +656 -0
  311. package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +0 -1
  312. package/lib/typescript/web/handlers/HoverGestureHandler.js +37 -0
  313. package/lib/typescript/web/handlers/IGestureHandler.d.ts +0 -1
  314. package/lib/typescript/web/handlers/IGestureHandler.js +1 -0
  315. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -1
  316. package/lib/typescript/web/handlers/LongPressGestureHandler.js +136 -0
  317. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
  318. package/lib/typescript/web/handlers/ManualGestureHandler.js +29 -0
  319. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
  320. package/lib/typescript/web/handlers/NativeViewGestureHandler.js +133 -0
  321. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +2 -1
  322. package/lib/typescript/web/handlers/PanGestureHandler.d.ts.map +1 -1
  323. package/lib/typescript/web/handlers/PanGestureHandler.js +420 -0
  324. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
  325. package/lib/typescript/web/handlers/PinchGestureHandler.js +117 -0
  326. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
  327. package/lib/typescript/web/handlers/RotationGestureHandler.js +122 -0
  328. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -1
  329. package/lib/typescript/web/handlers/TapGestureHandler.d.ts.map +1 -1
  330. package/lib/typescript/web/handlers/TapGestureHandler.js +202 -0
  331. package/lib/typescript/web/interfaces.d.ts +0 -1
  332. package/lib/typescript/web/interfaces.js +25 -0
  333. package/lib/typescript/web/tools/CircularBuffer.d.ts +0 -1
  334. package/lib/typescript/web/tools/CircularBuffer.js +37 -0
  335. package/lib/typescript/web/tools/EventManager.d.ts +0 -1
  336. package/lib/typescript/web/tools/EventManager.js +85 -0
  337. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +0 -1
  338. package/lib/typescript/web/tools/GestureHandlerDelegate.js +1 -0
  339. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +0 -1
  340. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts.map +1 -1
  341. package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +273 -0
  342. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +0 -1
  343. package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +169 -0
  344. package/lib/typescript/web/tools/InteractionManager.d.ts +0 -1
  345. package/lib/typescript/web/tools/InteractionManager.js +91 -0
  346. package/lib/typescript/web/tools/KeyboardEventManager.d.ts +0 -1
  347. package/lib/typescript/web/tools/KeyboardEventManager.js +73 -0
  348. package/lib/typescript/web/tools/LeastSquareSolver.d.ts +0 -1
  349. package/lib/typescript/web/tools/LeastSquareSolver.js +147 -0
  350. package/lib/typescript/web/tools/NodeManager.d.ts +0 -1
  351. package/lib/typescript/web/tools/NodeManager.js +28 -0
  352. package/lib/typescript/web/tools/PointerEventManager.d.ts +0 -1
  353. package/lib/typescript/web/tools/PointerEventManager.js +179 -0
  354. package/lib/typescript/web/tools/PointerTracker.d.ts +3 -4
  355. package/lib/typescript/web/tools/PointerTracker.d.ts.map +1 -1
  356. package/lib/typescript/web/tools/PointerTracker.js +161 -0
  357. package/lib/typescript/web/tools/Vector.d.ts +1 -2
  358. package/lib/typescript/web/tools/Vector.js +43 -0
  359. package/lib/typescript/web/tools/VelocityTracker.d.ts +0 -1
  360. package/lib/typescript/web/tools/VelocityTracker.js +76 -0
  361. package/lib/typescript/web/tools/WheelEventManager.d.ts +0 -1
  362. package/lib/typescript/web/tools/WheelEventManager.js +40 -0
  363. package/lib/typescript/web/utils.d.ts +0 -1
  364. package/lib/typescript/web/utils.js +233 -0
  365. package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +0 -1
  366. package/lib/typescript/web_hammer/DiscreteGestureHandler.js +48 -0
  367. package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +0 -1
  368. package/lib/typescript/web_hammer/DraggingGestureHandler.js +25 -0
  369. package/lib/typescript/web_hammer/Errors.d.ts +0 -1
  370. package/lib/typescript/web_hammer/Errors.js +5 -0
  371. package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +0 -1
  372. package/lib/typescript/web_hammer/FlingGestureHandler.js +119 -0
  373. package/lib/typescript/web_hammer/GestureHandler.d.ts +0 -1
  374. package/lib/typescript/web_hammer/GestureHandler.js +469 -0
  375. package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +0 -1
  376. package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +26 -0
  377. package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +0 -1
  378. package/lib/typescript/web_hammer/LongPressGestureHandler.js +46 -0
  379. package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +0 -1
  380. package/lib/typescript/web_hammer/NativeViewGestureHandler.js +40 -0
  381. package/lib/typescript/web_hammer/NodeManager.d.ts +0 -1
  382. package/lib/typescript/web_hammer/NodeManager.js +28 -0
  383. package/lib/typescript/web_hammer/PanGestureHandler.d.ts +0 -1
  384. package/lib/typescript/web_hammer/PanGestureHandler.js +151 -0
  385. package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +0 -1
  386. package/lib/typescript/web_hammer/PinchGestureHandler.js +19 -0
  387. package/lib/typescript/web_hammer/PressGestureHandler.d.ts +0 -1
  388. package/lib/typescript/web_hammer/PressGestureHandler.js +133 -0
  389. package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +0 -1
  390. package/lib/typescript/web_hammer/RotationGestureHandler.js +20 -0
  391. package/lib/typescript/web_hammer/TapGestureHandler.d.ts +0 -1
  392. package/lib/typescript/web_hammer/TapGestureHandler.js +142 -0
  393. package/lib/typescript/web_hammer/constants.d.ts +0 -1
  394. package/lib/typescript/web_hammer/constants.js +42 -0
  395. package/lib/typescript/web_hammer/utils.d.ts +0 -1
  396. package/lib/typescript/web_hammer/utils.js +15 -0
  397. package/package.json +4 -2
  398. package/src/components/Pressable/Pressable.tsx +357 -445
  399. package/src/components/Pressable/PressableProps.tsx +15 -0
  400. package/src/components/Pressable/StateMachine.tsx +49 -0
  401. package/src/components/Pressable/stateDefinitions.ts +125 -0
  402. package/src/components/Pressable/utils.ts +11 -7
  403. package/src/handlers/GestureHandlerEventPayload.ts +3 -0
  404. package/src/handlers/gestureHandlerTypesCompat.ts +9 -0
  405. package/src/handlers/gestures/forceTouchGesture.ts +9 -0
  406. package/src/handlers/gestures/gestureObjects.ts +3 -1
  407. package/src/web/detectors/RotationGestureDetector.ts +4 -0
  408. package/src/web/handlers/FlingGestureHandler.ts +4 -0
  409. package/src/web/handlers/GestureHandler.ts +9 -3
  410. package/src/web/handlers/PanGestureHandler.ts +25 -36
  411. package/src/web/handlers/TapGestureHandler.ts +14 -19
  412. package/src/web/tools/GestureHandlerOrchestrator.ts +1 -0
  413. package/src/web/tools/PointerEventManager.ts +1 -1
  414. package/src/web/tools/PointerTracker.ts +17 -15
  415. package/src/web/tools/Vector.ts +1 -1
@@ -0,0 +1,233 @@
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
+ }
@@ -18,4 +18,3 @@ declare abstract class DiscreteGestureHandler extends GestureHandler {
18
18
  };
19
19
  }
20
20
  export default DiscreteGestureHandler;
21
- //# sourceMappingURL=DiscreteGestureHandler.d.ts.map
@@ -0,0 +1,48 @@
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;
@@ -13,4 +13,3 @@ declare abstract class DraggingGestureHandler extends GestureHandler {
13
13
  };
14
14
  }
15
15
  export default DraggingGestureHandler;
16
- //# sourceMappingURL=DraggingGestureHandler.d.ts.map
@@ -0,0 +1,25 @@
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,4 +1,3 @@
1
1
  export declare class GesturePropError extends Error {
2
2
  constructor(name: string, value: unknown, expectedType: string);
3
3
  }
4
- //# sourceMappingURL=Errors.d.ts.map
@@ -0,0 +1,5 @@
1
+ export class GesturePropError extends Error {
2
+ constructor(name, value, expectedType) {
3
+ super(`Invalid property \`${name}: ${value}\` expected \`${expectedType}\``);
4
+ }
5
+ }
@@ -41,4 +41,3 @@ declare class FlingGestureHandler extends DraggingGestureHandler {
41
41
  }>;
42
42
  }
43
43
  export default FlingGestureHandler;
44
- //# sourceMappingURL=FlingGestureHandler.d.ts.map
@@ -0,0 +1,119 @@
1
+ /* eslint-disable @eslint-community/eslint-comments/no-unlimited-disable */
2
+ /* eslint-disable */
3
+ import Hammer from '@egjs/hammerjs';
4
+ import { Direction } from './constants';
5
+ import { GesturePropError } from './Errors';
6
+ import DraggingGestureHandler from './DraggingGestureHandler';
7
+ import { isnan } from './utils';
8
+ class FlingGestureHandler extends DraggingGestureHandler {
9
+ get name() {
10
+ return 'swipe';
11
+ }
12
+ get NativeGestureClass() {
13
+ return Hammer.Swipe;
14
+ }
15
+ onGestureActivated(event) {
16
+ this.sendEvent({
17
+ ...event,
18
+ eventType: Hammer.INPUT_MOVE,
19
+ isFinal: false,
20
+ isFirst: true,
21
+ });
22
+ this.isGestureRunning = false;
23
+ this.hasGestureFailed = false;
24
+ this.sendEvent({
25
+ ...event,
26
+ eventType: Hammer.INPUT_END,
27
+ isFinal: true,
28
+ });
29
+ }
30
+ onRawEvent(ev) {
31
+ super.onRawEvent(ev);
32
+ if (this.hasGestureFailed) {
33
+ return;
34
+ }
35
+ // Hammer doesn't send a `cancel` event for taps.
36
+ // Manually fail the event.
37
+ if (ev.isFinal) {
38
+ setTimeout(() => {
39
+ if (this.isGestureRunning) {
40
+ this.cancelEvent(ev);
41
+ }
42
+ });
43
+ }
44
+ else if (!this.hasGestureFailed && !this.isGestureRunning) {
45
+ // Tap Gesture start event
46
+ const gesture = this.hammer.get(this.name);
47
+ // @ts-ignore FIXME(TS)
48
+ if (gesture.options.enable(gesture, ev)) {
49
+ this.onStart(ev);
50
+ this.sendEvent(ev);
51
+ }
52
+ }
53
+ }
54
+ getHammerConfig() {
55
+ return {
56
+ // @ts-ignore FIXME(TS)
57
+ pointers: this.config.numberOfPointers,
58
+ direction: this.getDirection(),
59
+ };
60
+ }
61
+ getTargetDirections(direction) {
62
+ const directions = [];
63
+ if (direction & Direction.RIGHT) {
64
+ directions.push(Hammer.DIRECTION_RIGHT);
65
+ }
66
+ if (direction & Direction.LEFT) {
67
+ directions.push(Hammer.DIRECTION_LEFT);
68
+ }
69
+ if (direction & Direction.UP) {
70
+ directions.push(Hammer.DIRECTION_UP);
71
+ }
72
+ if (direction & Direction.DOWN) {
73
+ directions.push(Hammer.DIRECTION_DOWN);
74
+ }
75
+ // const hammerDirection = directions.reduce((a, b) => a | b, 0);
76
+ return directions;
77
+ }
78
+ getDirection() {
79
+ // @ts-ignore FIXME(TS)
80
+ const { direction } = this.getConfig();
81
+ let directions = [];
82
+ if (direction & Direction.RIGHT) {
83
+ directions.push(Hammer.DIRECTION_HORIZONTAL);
84
+ }
85
+ if (direction & Direction.LEFT) {
86
+ directions.push(Hammer.DIRECTION_HORIZONTAL);
87
+ }
88
+ if (direction & Direction.UP) {
89
+ directions.push(Hammer.DIRECTION_VERTICAL);
90
+ }
91
+ if (direction & Direction.DOWN) {
92
+ directions.push(Hammer.DIRECTION_VERTICAL);
93
+ }
94
+ directions = [...new Set(directions)];
95
+ if (directions.length === 0)
96
+ return Hammer.DIRECTION_NONE;
97
+ if (directions.length === 1)
98
+ return directions[0];
99
+ return Hammer.DIRECTION_ALL;
100
+ }
101
+ isGestureEnabledForEvent({ numberOfPointers }, _recognizer, { maxPointers: pointerLength }) {
102
+ const validPointerCount = pointerLength === numberOfPointers;
103
+ if (!validPointerCount && this.isGestureRunning) {
104
+ return { failed: true };
105
+ }
106
+ return { success: validPointerCount };
107
+ }
108
+ updateGestureConfig({ numberOfPointers = 1, direction, ...props }) {
109
+ if (isnan(direction) || typeof direction !== 'number') {
110
+ throw new GesturePropError('direction', direction, 'number');
111
+ }
112
+ return super.updateGestureConfig({
113
+ numberOfPointers,
114
+ direction,
115
+ ...props,
116
+ });
117
+ }
118
+ }
119
+ export default FlingGestureHandler;
@@ -143,4 +143,3 @@ declare abstract class GestureHandler {
143
143
  ensureConfig(config: Config): Required<Config>;
144
144
  }
145
145
  export default GestureHandler;
146
- //# sourceMappingURL=GestureHandler.d.ts.map