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,656 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
2
+ import { State } from '../../State';
3
+ import { TouchEventType, EventTypes, } from '../interfaces';
4
+ import GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';
5
+ import InteractionManager from '../tools/InteractionManager';
6
+ import PointerTracker from '../tools/PointerTracker';
7
+ import { MouseButton } from '../../handlers/gestureHandlerCommon';
8
+ import { PointerType } from '../../PointerType';
9
+ export default class GestureHandler {
10
+ lastSentState = null;
11
+ _state = State.UNDETERMINED;
12
+ _shouldCancelWhenOutside = false;
13
+ hasCustomActivationCriteria = false;
14
+ _enabled = false;
15
+ viewRef;
16
+ propsRef;
17
+ _handlerTag;
18
+ _config = { enabled: false };
19
+ _tracker = new PointerTracker();
20
+ // Orchestrator properties
21
+ _activationIndex = 0;
22
+ _awaiting = false;
23
+ _active = false;
24
+ _shouldResetProgress = false;
25
+ _pointerType = PointerType.MOUSE;
26
+ _delegate;
27
+ constructor(delegate) {
28
+ this._delegate = delegate;
29
+ }
30
+ //
31
+ // Initializing handler
32
+ //
33
+ init(viewRef, propsRef) {
34
+ this.propsRef = propsRef;
35
+ this.viewRef = viewRef;
36
+ this.state = State.UNDETERMINED;
37
+ this.delegate.init(viewRef, this);
38
+ }
39
+ attachEventManager(manager) {
40
+ manager.setOnPointerDown(this.onPointerDown.bind(this));
41
+ manager.setOnPointerAdd(this.onPointerAdd.bind(this));
42
+ manager.setOnPointerUp(this.onPointerUp.bind(this));
43
+ manager.setOnPointerRemove(this.onPointerRemove.bind(this));
44
+ manager.setOnPointerMove(this.onPointerMove.bind(this));
45
+ manager.setOnPointerEnter(this.onPointerEnter.bind(this));
46
+ manager.setOnPointerLeave(this.onPointerLeave.bind(this));
47
+ manager.setOnPointerCancel(this.onPointerCancel.bind(this));
48
+ manager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));
49
+ manager.setOnPointerMoveOver(this.onPointerMoveOver.bind(this));
50
+ manager.setOnPointerMoveOut(this.onPointerMoveOut.bind(this));
51
+ manager.setOnWheel(this.onWheel.bind(this));
52
+ manager.registerListeners();
53
+ }
54
+ //
55
+ // Resetting handler
56
+ //
57
+ onCancel() { }
58
+ onReset() { }
59
+ resetProgress() { }
60
+ reset() {
61
+ this.tracker.resetTracker();
62
+ this.onReset();
63
+ this.resetProgress();
64
+ this.delegate.reset();
65
+ this.state = State.UNDETERMINED;
66
+ }
67
+ //
68
+ // State logic
69
+ //
70
+ moveToState(newState, sendIfDisabled) {
71
+ if (this.state === newState) {
72
+ return;
73
+ }
74
+ const oldState = this.state;
75
+ this.state = newState;
76
+ if (this.tracker.trackedPointersCount > 0 &&
77
+ this.config.needsPointerData &&
78
+ this.isFinished()) {
79
+ this.cancelTouches();
80
+ }
81
+ GestureHandlerOrchestrator.instance.onHandlerStateChange(this, newState, oldState, sendIfDisabled);
82
+ this.onStateChange(newState, oldState);
83
+ if (!this.enabled && this.isFinished()) {
84
+ this.state = State.UNDETERMINED;
85
+ }
86
+ }
87
+ onStateChange(_newState, _oldState) { }
88
+ begin() {
89
+ if (!this.checkHitSlop()) {
90
+ return;
91
+ }
92
+ if (this.state === State.UNDETERMINED) {
93
+ this.moveToState(State.BEGAN);
94
+ }
95
+ }
96
+ /**
97
+ * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send fail event
98
+ */
99
+ fail(sendIfDisabled) {
100
+ if (this.state === State.ACTIVE || this.state === State.BEGAN) {
101
+ // Here the order of calling the delegate and moveToState is important.
102
+ // At this point we can use currentState as previuos state, because immediately after changing cursor we call moveToState method.
103
+ this.delegate.onFail();
104
+ this.moveToState(State.FAILED, sendIfDisabled);
105
+ }
106
+ this.resetProgress();
107
+ }
108
+ /**
109
+ * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send cancel event
110
+ */
111
+ cancel(sendIfDisabled) {
112
+ if (this.state === State.ACTIVE ||
113
+ this.state === State.UNDETERMINED ||
114
+ this.state === State.BEGAN) {
115
+ this.onCancel();
116
+ // Same as above - order matters
117
+ this.delegate.onCancel();
118
+ this.moveToState(State.CANCELLED, sendIfDisabled);
119
+ }
120
+ }
121
+ activate(force = false) {
122
+ if ((this.config.manualActivation !== true || force) &&
123
+ (this.state === State.UNDETERMINED || this.state === State.BEGAN)) {
124
+ this.delegate.onActivate();
125
+ this.moveToState(State.ACTIVE);
126
+ }
127
+ }
128
+ end() {
129
+ if (this.state === State.BEGAN || this.state === State.ACTIVE) {
130
+ // Same as above - order matters
131
+ this.delegate.onEnd();
132
+ this.moveToState(State.END);
133
+ }
134
+ this.resetProgress();
135
+ }
136
+ //
137
+ // Methods for orchestrator
138
+ //
139
+ getShouldResetProgress() {
140
+ return this.shouldResetProgress;
141
+ }
142
+ setShouldResetProgress(value) {
143
+ this.shouldResetProgress = value;
144
+ }
145
+ shouldWaitForHandlerFailure(handler) {
146
+ if (handler === this) {
147
+ return false;
148
+ }
149
+ return InteractionManager.instance.shouldWaitForHandlerFailure(this, handler);
150
+ }
151
+ shouldRequireToWaitForFailure(handler) {
152
+ if (handler === this) {
153
+ return false;
154
+ }
155
+ return InteractionManager.instance.shouldRequireHandlerToWaitForFailure(this, handler);
156
+ }
157
+ shouldRecognizeSimultaneously(handler) {
158
+ if (handler === this) {
159
+ return true;
160
+ }
161
+ return InteractionManager.instance.shouldRecognizeSimultaneously(this, handler);
162
+ }
163
+ shouldBeCancelledByOther(handler) {
164
+ if (handler === this) {
165
+ return false;
166
+ }
167
+ return InteractionManager.instance.shouldHandlerBeCancelledBy(this, handler);
168
+ }
169
+ //
170
+ // Event actions
171
+ //
172
+ onPointerDown(event) {
173
+ GestureHandlerOrchestrator.instance.recordHandlerIfNotPresent(this);
174
+ this.pointerType = event.pointerType;
175
+ if (this.pointerType === PointerType.TOUCH) {
176
+ GestureHandlerOrchestrator.instance.cancelMouseAndPenGestures(this);
177
+ }
178
+ // TODO: Bring back touch events along with introducing `handleDown` method that will handle handler specific stuff
179
+ }
180
+ // Adding another pointer to existing ones
181
+ onPointerAdd(event) {
182
+ this.tryToSendTouchEvent(event);
183
+ }
184
+ onPointerUp(event) {
185
+ this.tryToSendTouchEvent(event);
186
+ }
187
+ // Removing pointer, when there is more than one pointers
188
+ onPointerRemove(event) {
189
+ this.tryToSendTouchEvent(event);
190
+ }
191
+ onPointerMove(event) {
192
+ this.tryToSendMoveEvent(false, event);
193
+ }
194
+ onPointerLeave(event) {
195
+ if (this.shouldCancelWhenOutside) {
196
+ switch (this.state) {
197
+ case State.ACTIVE:
198
+ this.cancel();
199
+ break;
200
+ case State.BEGAN:
201
+ this.fail();
202
+ break;
203
+ }
204
+ return;
205
+ }
206
+ this.tryToSendTouchEvent(event);
207
+ }
208
+ onPointerEnter(event) {
209
+ this.tryToSendTouchEvent(event);
210
+ }
211
+ onPointerCancel(event) {
212
+ this.tryToSendTouchEvent(event);
213
+ this.cancel();
214
+ this.reset();
215
+ }
216
+ onPointerOutOfBounds(event) {
217
+ this.tryToSendMoveEvent(true, event);
218
+ }
219
+ onPointerMoveOver(_event) {
220
+ // Used only by hover gesture handler atm
221
+ }
222
+ onPointerMoveOut(_event) {
223
+ // Used only by hover gesture handler atm
224
+ }
225
+ onWheel(_event) {
226
+ // Used only by pan gesture handler
227
+ }
228
+ tryToSendMoveEvent(out, event) {
229
+ if ((out && this.shouldCancelWhenOutside) || !this.enabled) {
230
+ return;
231
+ }
232
+ if (this.active) {
233
+ this.sendEvent(this.state, this.state);
234
+ }
235
+ this.tryToSendTouchEvent(event);
236
+ }
237
+ tryToSendTouchEvent(event) {
238
+ if (this.config.needsPointerData) {
239
+ this.sendTouchEvent(event);
240
+ }
241
+ }
242
+ sendTouchEvent(event) {
243
+ if (!this.enabled) {
244
+ return;
245
+ }
246
+ const { onGestureHandlerEvent } = this.propsRef
247
+ .current;
248
+ const touchEvent = this.transformTouchEvent(event);
249
+ if (touchEvent) {
250
+ invokeNullableMethod(onGestureHandlerEvent, touchEvent);
251
+ }
252
+ }
253
+ //
254
+ // Events Sending
255
+ //
256
+ sendEvent = (newState, oldState) => {
257
+ const { onGestureHandlerEvent, onGestureHandlerStateChange } = this.propsRef.current;
258
+ const resultEvent = this.transformEventData(newState, oldState);
259
+ // In the new API oldState field has to be undefined, unless we send event state changed
260
+ // Here the order is flipped to avoid workarounds such as making backup of the state and setting it to undefined first, then changing it back
261
+ // Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once
262
+ // However, this may cause trouble in the future (but for now we don't know that)
263
+ if (this.lastSentState !== newState) {
264
+ this.lastSentState = newState;
265
+ invokeNullableMethod(onGestureHandlerStateChange, resultEvent);
266
+ }
267
+ if (this.state === State.ACTIVE) {
268
+ resultEvent.nativeEvent.oldState = undefined;
269
+ invokeNullableMethod(onGestureHandlerEvent, resultEvent);
270
+ }
271
+ };
272
+ transformEventData(newState, oldState) {
273
+ return {
274
+ nativeEvent: {
275
+ numberOfPointers: this.tracker.trackedPointersCount,
276
+ state: newState,
277
+ pointerInside: this.delegate.isPointerInBounds(this.tracker.getAbsoluteCoordsAverage()),
278
+ ...this.transformNativeEvent(),
279
+ handlerTag: this.handlerTag,
280
+ target: this.viewRef,
281
+ oldState: newState !== oldState ? oldState : undefined,
282
+ pointerType: this.pointerType,
283
+ },
284
+ timeStamp: Date.now(),
285
+ };
286
+ }
287
+ transformTouchEvent(event) {
288
+ const rect = this.delegate.measureView();
289
+ const all = [];
290
+ const changed = [];
291
+ const trackerData = this.tracker.trackedPointers;
292
+ // This if handles edge case where all pointers have been cancelled
293
+ // When pointercancel is triggered, reset method is called. This means that tracker will be reset after first pointer being cancelled
294
+ // The problem is, that handler will receive another pointercancel event from the rest of the pointers
295
+ // To avoid crashing, we don't send event if tracker tracks no pointers, i.e. has been reset
296
+ if (trackerData.size === 0 || !trackerData.has(event.pointerId)) {
297
+ return;
298
+ }
299
+ trackerData.forEach((element, key) => {
300
+ const id = this.tracker.getMappedTouchEventId(key);
301
+ all.push({
302
+ id: id,
303
+ x: element.abosoluteCoords.x - rect.pageX,
304
+ y: element.abosoluteCoords.y - rect.pageY,
305
+ absoluteX: element.abosoluteCoords.x,
306
+ absoluteY: element.abosoluteCoords.y,
307
+ });
308
+ });
309
+ // Each pointer sends its own event, so we want changed touches to contain only the pointer that has changed.
310
+ // However, if the event is cancel, we want to cancel all pointers to avoid crashes
311
+ if (event.eventType !== EventTypes.CANCEL) {
312
+ changed.push({
313
+ id: this.tracker.getMappedTouchEventId(event.pointerId),
314
+ x: event.x - rect.pageX,
315
+ y: event.y - rect.pageY,
316
+ absoluteX: event.x,
317
+ absoluteY: event.y,
318
+ });
319
+ }
320
+ else {
321
+ trackerData.forEach((element, key) => {
322
+ const id = this.tracker.getMappedTouchEventId(key);
323
+ changed.push({
324
+ id: id,
325
+ x: element.abosoluteCoords.x - rect.pageX,
326
+ y: element.abosoluteCoords.y - rect.pageY,
327
+ absoluteX: element.abosoluteCoords.x,
328
+ absoluteY: element.abosoluteCoords.y,
329
+ });
330
+ });
331
+ }
332
+ let eventType = TouchEventType.UNDETERMINED;
333
+ switch (event.eventType) {
334
+ case EventTypes.DOWN:
335
+ case EventTypes.ADDITIONAL_POINTER_DOWN:
336
+ eventType = TouchEventType.DOWN;
337
+ break;
338
+ case EventTypes.UP:
339
+ case EventTypes.ADDITIONAL_POINTER_UP:
340
+ eventType = TouchEventType.UP;
341
+ break;
342
+ case EventTypes.MOVE:
343
+ eventType = TouchEventType.MOVE;
344
+ break;
345
+ case EventTypes.CANCEL:
346
+ eventType = TouchEventType.CANCELLED;
347
+ break;
348
+ }
349
+ // Here, when we receive up event, we want to decrease number of touches
350
+ // That's because we want handler to send information that there's one pointer less
351
+ // However, we still want this pointer to be present in allTouches array, so that its data can be accessed
352
+ let numberOfTouches = all.length;
353
+ if (event.eventType === EventTypes.UP ||
354
+ event.eventType === EventTypes.ADDITIONAL_POINTER_UP) {
355
+ --numberOfTouches;
356
+ }
357
+ return {
358
+ nativeEvent: {
359
+ handlerTag: this.handlerTag,
360
+ state: this.state,
361
+ eventType: eventType,
362
+ changedTouches: changed,
363
+ allTouches: all,
364
+ numberOfTouches: numberOfTouches,
365
+ pointerType: this.pointerType,
366
+ },
367
+ timeStamp: Date.now(),
368
+ };
369
+ }
370
+ cancelTouches() {
371
+ const rect = this.delegate.measureView();
372
+ const all = [];
373
+ const changed = [];
374
+ const trackerData = this.tracker.trackedPointers;
375
+ if (trackerData.size === 0) {
376
+ return;
377
+ }
378
+ trackerData.forEach((element, key) => {
379
+ const id = this.tracker.getMappedTouchEventId(key);
380
+ all.push({
381
+ id: id,
382
+ x: element.abosoluteCoords.x - rect.pageX,
383
+ y: element.abosoluteCoords.y - rect.pageY,
384
+ absoluteX: element.abosoluteCoords.x,
385
+ absoluteY: element.abosoluteCoords.y,
386
+ });
387
+ changed.push({
388
+ id: id,
389
+ x: element.abosoluteCoords.x - rect.pageX,
390
+ y: element.abosoluteCoords.y - rect.pageY,
391
+ absoluteX: element.abosoluteCoords.x,
392
+ absoluteY: element.abosoluteCoords.y,
393
+ });
394
+ });
395
+ const cancelEvent = {
396
+ nativeEvent: {
397
+ handlerTag: this.handlerTag,
398
+ state: this.state,
399
+ eventType: TouchEventType.CANCELLED,
400
+ changedTouches: changed,
401
+ allTouches: all,
402
+ numberOfTouches: all.length,
403
+ pointerType: this.pointerType,
404
+ },
405
+ timeStamp: Date.now(),
406
+ };
407
+ const { onGestureHandlerEvent } = this.propsRef
408
+ .current;
409
+ invokeNullableMethod(onGestureHandlerEvent, cancelEvent);
410
+ }
411
+ transformNativeEvent() {
412
+ // Those properties are shared by most handlers and if not this method will be overriden
413
+ const lastCoords = this.tracker.getAbsoluteCoordsAverage();
414
+ const lastRelativeCoords = this.tracker.getRelativeCoordsAverage();
415
+ return {
416
+ x: lastRelativeCoords.x,
417
+ y: lastRelativeCoords.y,
418
+ absoluteX: lastCoords.x,
419
+ absoluteY: lastCoords.y,
420
+ };
421
+ }
422
+ //
423
+ // Handling config
424
+ //
425
+ updateGestureConfig({ enabled = true, ...props }) {
426
+ this._config = { enabled: enabled, ...props };
427
+ this.enabled = enabled;
428
+ this.delegate.onEnabledChange(enabled);
429
+ if (this.config.shouldCancelWhenOutside !== undefined) {
430
+ this.shouldCancelWhenOutside = this.config.shouldCancelWhenOutside;
431
+ }
432
+ this.validateHitSlops();
433
+ if (this.enabled) {
434
+ return;
435
+ }
436
+ switch (this.state) {
437
+ case State.ACTIVE:
438
+ this.fail(true);
439
+ break;
440
+ case State.UNDETERMINED:
441
+ GestureHandlerOrchestrator.instance.removeHandlerFromOrchestrator(this);
442
+ break;
443
+ default:
444
+ this.cancel(true);
445
+ break;
446
+ }
447
+ }
448
+ checkCustomActivationCriteria(criterias) {
449
+ for (const key in this.config) {
450
+ if (criterias.indexOf(key) >= 0) {
451
+ this.hasCustomActivationCriteria = true;
452
+ }
453
+ }
454
+ }
455
+ validateHitSlops() {
456
+ if (!this.config.hitSlop) {
457
+ return;
458
+ }
459
+ if (this.config.hitSlop.left !== undefined &&
460
+ this.config.hitSlop.right !== undefined &&
461
+ this.config.hitSlop.width !== undefined) {
462
+ throw new Error('HitSlop Error: Cannot define left, right and width at the same time');
463
+ }
464
+ if (this.config.hitSlop.width !== undefined &&
465
+ this.config.hitSlop.left === undefined &&
466
+ this.config.hitSlop.right === undefined) {
467
+ throw new Error('HitSlop Error: When width is defined, either left or right has to be defined');
468
+ }
469
+ if (this.config.hitSlop.height !== undefined &&
470
+ this.config.hitSlop.top !== undefined &&
471
+ this.config.hitSlop.bottom !== undefined) {
472
+ throw new Error('HitSlop Error: Cannot define top, bottom and height at the same time');
473
+ }
474
+ if (this.config.hitSlop.height !== undefined &&
475
+ this.config.hitSlop.top === undefined &&
476
+ this.config.hitSlop.bottom === undefined) {
477
+ throw new Error('HitSlop Error: When height is defined, either top or bottom has to be defined');
478
+ }
479
+ }
480
+ checkHitSlop() {
481
+ if (!this.config.hitSlop) {
482
+ return true;
483
+ }
484
+ const { width, height } = this.delegate.measureView();
485
+ let left = 0;
486
+ let top = 0;
487
+ let right = width;
488
+ let bottom = height;
489
+ if (this.config.hitSlop.horizontal !== undefined) {
490
+ left -= this.config.hitSlop.horizontal;
491
+ right += this.config.hitSlop.horizontal;
492
+ }
493
+ if (this.config.hitSlop.vertical !== undefined) {
494
+ top -= this.config.hitSlop.vertical;
495
+ bottom += this.config.hitSlop.vertical;
496
+ }
497
+ if (this.config.hitSlop.left !== undefined) {
498
+ left = -this.config.hitSlop.left;
499
+ }
500
+ if (this.config.hitSlop.right !== undefined) {
501
+ right = width + this.config.hitSlop.right;
502
+ }
503
+ if (this.config.hitSlop.top !== undefined) {
504
+ top = -this.config.hitSlop.top;
505
+ }
506
+ if (this.config.hitSlop.bottom !== undefined) {
507
+ bottom = width + this.config.hitSlop.bottom;
508
+ }
509
+ if (this.config.hitSlop.width !== undefined) {
510
+ if (this.config.hitSlop.left !== undefined) {
511
+ right = left + this.config.hitSlop.width;
512
+ }
513
+ else if (this.config.hitSlop.right !== undefined) {
514
+ left = right - this.config.hitSlop.width;
515
+ }
516
+ }
517
+ if (this.config.hitSlop.height !== undefined) {
518
+ if (this.config.hitSlop.top !== undefined) {
519
+ bottom = top + this.config.hitSlop.height;
520
+ }
521
+ else if (this.config.hitSlop.bottom !== undefined) {
522
+ top = bottom - this.config.hitSlop.height;
523
+ }
524
+ }
525
+ const rect = this.delegate.measureView();
526
+ const lastCoords = this.tracker.getLastAbsoluteCoords();
527
+ if (!lastCoords) {
528
+ return false;
529
+ }
530
+ const offsetX = lastCoords.x - rect.pageX;
531
+ const offsetY = lastCoords.y - rect.pageY;
532
+ return (offsetX >= left && offsetX <= right && offsetY >= top && offsetY <= bottom);
533
+ }
534
+ isButtonInConfig(mouseButton) {
535
+ return (!mouseButton ||
536
+ (!this.config.mouseButton && mouseButton === MouseButton.LEFT) ||
537
+ (this.config.mouseButton && mouseButton & this.config.mouseButton));
538
+ }
539
+ resetConfig() { }
540
+ onDestroy() {
541
+ this.delegate.destroy(this.config);
542
+ }
543
+ //
544
+ // Getters and setters
545
+ //
546
+ get handlerTag() {
547
+ return this._handlerTag;
548
+ }
549
+ set handlerTag(value) {
550
+ this._handlerTag = value;
551
+ }
552
+ get config() {
553
+ return this._config;
554
+ }
555
+ get delegate() {
556
+ return this._delegate;
557
+ }
558
+ get tracker() {
559
+ return this._tracker;
560
+ }
561
+ get state() {
562
+ return this._state;
563
+ }
564
+ set state(value) {
565
+ this._state = value;
566
+ }
567
+ get shouldCancelWhenOutside() {
568
+ return this._shouldCancelWhenOutside;
569
+ }
570
+ set shouldCancelWhenOutside(value) {
571
+ this._shouldCancelWhenOutside = value;
572
+ }
573
+ get enabled() {
574
+ return this._enabled;
575
+ }
576
+ set enabled(value) {
577
+ this._enabled = value;
578
+ }
579
+ get pointerType() {
580
+ return this._pointerType;
581
+ }
582
+ set pointerType(value) {
583
+ this._pointerType = value;
584
+ }
585
+ get active() {
586
+ return this._active;
587
+ }
588
+ set active(value) {
589
+ this._active = value;
590
+ }
591
+ get awaiting() {
592
+ return this._awaiting;
593
+ }
594
+ set awaiting(value) {
595
+ this._awaiting = value;
596
+ }
597
+ get activationIndex() {
598
+ return this._activationIndex;
599
+ }
600
+ set activationIndex(value) {
601
+ this._activationIndex = value;
602
+ }
603
+ get shouldResetProgress() {
604
+ return this._shouldResetProgress;
605
+ }
606
+ set shouldResetProgress(value) {
607
+ this._shouldResetProgress = value;
608
+ }
609
+ getTrackedPointersID() {
610
+ return this.tracker.trackedPointersIDs;
611
+ }
612
+ isFinished() {
613
+ return (this.state === State.END ||
614
+ this.state === State.FAILED ||
615
+ this.state === State.CANCELLED);
616
+ }
617
+ }
618
+ function invokeNullableMethod(method, event) {
619
+ if (!method) {
620
+ return;
621
+ }
622
+ if (typeof method === 'function') {
623
+ method(event);
624
+ return;
625
+ }
626
+ if ('__getHandler' in method && typeof method.__getHandler === 'function') {
627
+ const handler = method.__getHandler();
628
+ invokeNullableMethod(handler, event);
629
+ return;
630
+ }
631
+ if (!('__nodeConfig' in method)) {
632
+ return;
633
+ }
634
+ const { argMapping } = method.__nodeConfig;
635
+ if (!Array.isArray(argMapping)) {
636
+ return;
637
+ }
638
+ for (const [index, [key, value]] of argMapping.entries()) {
639
+ if (!(key in event.nativeEvent)) {
640
+ continue;
641
+ }
642
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
643
+ const nativeValue = event.nativeEvent[key];
644
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
645
+ if (value?.setValue) {
646
+ // Reanimated API
647
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
648
+ value.setValue(nativeValue);
649
+ }
650
+ else {
651
+ // RN Animated API
652
+ method.__nodeConfig.argMapping[index] = [key, nativeValue];
653
+ }
654
+ }
655
+ return;
656
+ }
@@ -8,4 +8,3 @@ export default class HoverGestureHandler extends GestureHandler {
8
8
  protected onPointerMove(event: AdaptedEvent): void;
9
9
  protected onPointerCancel(event: AdaptedEvent): void;
10
10
  }
11
- //# sourceMappingURL=HoverGestureHandler.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { State } from '../../State';
2
+ import GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';
3
+ import GestureHandler from './GestureHandler';
4
+ export default class HoverGestureHandler extends GestureHandler {
5
+ stylusData;
6
+ transformNativeEvent() {
7
+ return {
8
+ ...super.transformNativeEvent(),
9
+ stylusData: this.stylusData,
10
+ };
11
+ }
12
+ onPointerMoveOver(event) {
13
+ GestureHandlerOrchestrator.instance.recordHandlerIfNotPresent(this);
14
+ this.tracker.addToTracker(event);
15
+ this.stylusData = event.stylusData;
16
+ super.onPointerMoveOver(event);
17
+ if (this.state === State.UNDETERMINED) {
18
+ this.begin();
19
+ this.activate();
20
+ }
21
+ }
22
+ onPointerMoveOut(event) {
23
+ this.tracker.removeFromTracker(event.pointerId);
24
+ this.stylusData = event.stylusData;
25
+ super.onPointerMoveOut(event);
26
+ this.end();
27
+ }
28
+ onPointerMove(event) {
29
+ this.tracker.track(event);
30
+ this.stylusData = event.stylusData;
31
+ super.onPointerMove(event);
32
+ }
33
+ onPointerCancel(event) {
34
+ super.onPointerCancel(event);
35
+ this.reset();
36
+ }
37
+ }
@@ -35,4 +35,3 @@ export default interface IGestureHandler {
35
35
  updateGestureConfig: (config: Config) => void;
36
36
  isButton?: () => boolean;
37
37
  }
38
- //# sourceMappingURL=IGestureHandler.d.ts.map
@@ -0,0 +1 @@
1
+ export {};