@amazon-devices/react-native-gesture-handler 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/SystemModules/amzn__react-native-gesture-handler-4.modules.txt +3 -0
  2. package/SystemModules/amzn__react-native-gesture-handler-4.private.modules.txt +81 -35
  3. package/kepler-compatibility.json +3 -1
  4. package/lib/commonjs/RNGestureHandlerModule.kepler.js.map +1 -1
  5. package/lib/commonjs/index.js +0 -268
  6. package/lib/module/RNGestureHandlerModule.kepler.js.map +1 -1
  7. package/lib/typescript/RNGestureHandlerModule.kepler.d.ts.map +1 -1
  8. package/oss-attribution/attribution.txt +0 -0
  9. package/oss-attribution/licenseInfos.json +1 -0
  10. package/package.json +1 -1
  11. package/src/index.ts +0 -168
  12. package/README.md +0 -70
  13. package/SystemBundles/6340ec90c9b9f38941444b2ca176a58b9d8116a6cd975690f53747ed00595c90.bundle +0 -14669
  14. package/SystemBundles/6340ec90c9b9f38941444b2ca176a58b9d8116a6cd975690f53747ed00595c90.map +0 -5041
  15. package/lib/commonjs/ActionType.js +0 -15
  16. package/lib/commonjs/Directions.js +0 -31
  17. package/lib/commonjs/EnableNewWebImplementation.js +0 -40
  18. package/lib/commonjs/GestureHandlerRootViewContext.js +0 -10
  19. package/lib/commonjs/PlatformConstants.js +0 -9
  20. package/lib/commonjs/PlatformConstants.kepler.js +0 -12
  21. package/lib/commonjs/PlatformConstants.web.js +0 -12
  22. package/lib/commonjs/PointerType.js +0 -15
  23. package/lib/commonjs/RNGestureHandlerModule.js +0 -12
  24. package/lib/commonjs/RNGestureHandlerModule.kepler.js +0 -32
  25. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -95
  26. package/lib/commonjs/RNGestureHandlerModule.windows.js +0 -56
  27. package/lib/commonjs/RNRenderer.js +0 -14
  28. package/lib/commonjs/RNRenderer.web.js +0 -10
  29. package/lib/commonjs/State.js +0 -19
  30. package/lib/commonjs/TouchEventType.js +0 -16
  31. package/lib/commonjs/components/DrawerLayout.js +0 -548
  32. package/lib/commonjs/components/GestureButtons.js +0 -212
  33. package/lib/commonjs/components/GestureButtonsProps.js +0 -6
  34. package/lib/commonjs/components/GestureComponents.js +0 -106
  35. package/lib/commonjs/components/GestureComponents.web.js +0 -39
  36. package/lib/commonjs/components/GestureHandlerButton.js +0 -10
  37. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -16
  38. package/lib/commonjs/components/GestureHandlerRootView.android.js +0 -36
  39. package/lib/commonjs/components/GestureHandlerRootView.js +0 -35
  40. package/lib/commonjs/components/GestureHandlerRootView.kepler.js +0 -21
  41. package/lib/commonjs/components/GestureHandlerRootView.web.js +0 -30
  42. package/lib/commonjs/components/Pressable/Pressable.js +0 -274
  43. package/lib/commonjs/components/Pressable/PressableProps.js +0 -6
  44. package/lib/commonjs/components/Pressable/StateMachine.js +0 -44
  45. package/lib/commonjs/components/Pressable/index.js +0 -14
  46. package/lib/commonjs/components/Pressable/stateDefinitions.js +0 -88
  47. package/lib/commonjs/components/Pressable/utils.js +0 -92
  48. package/lib/commonjs/components/ReanimatedDrawerLayout.js +0 -357
  49. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -337
  50. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -12
  51. package/lib/commonjs/components/ReanimatedSwipeable/index.js +0 -21
  52. package/lib/commonjs/components/Swipeable.js +0 -370
  53. package/lib/commonjs/components/Text.js +0 -60
  54. package/lib/commonjs/components/gestureHandlerRootHOC.js +0 -37
  55. package/lib/commonjs/components/touchables/ExtraButtonProps.js +0 -2
  56. package/lib/commonjs/components/touchables/GenericTouchable.js +0 -245
  57. package/lib/commonjs/components/touchables/GenericTouchableProps.js +0 -6
  58. package/lib/commonjs/components/touchables/TouchableHighlight.js +0 -93
  59. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +0 -84
  60. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +0 -13
  61. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +0 -6
  62. package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -65
  63. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -33
  64. package/lib/commonjs/components/touchables/index.js +0 -35
  65. package/lib/commonjs/components/utils.js +0 -17
  66. package/lib/commonjs/findNodeHandle.js +0 -9
  67. package/lib/commonjs/findNodeHandle.web.js +0 -39
  68. package/lib/commonjs/getShadowNodeFromRef.js +0 -51
  69. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -14
  70. package/lib/commonjs/ghQueueMicrotask.js +0 -10
  71. package/lib/commonjs/handlers/FlingGestureHandler.js +0 -31
  72. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +0 -46
  73. package/lib/commonjs/handlers/GestureHandlerEventPayload.js +0 -6
  74. package/lib/commonjs/handlers/LongPressGestureHandler.js +0 -33
  75. package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -32
  76. package/lib/commonjs/handlers/PanGestureHandler.js +0 -112
  77. package/lib/commonjs/handlers/PinchGestureHandler.js +0 -29
  78. package/lib/commonjs/handlers/PressabilityDebugView.js +0 -13
  79. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -11
  80. package/lib/commonjs/handlers/RotationGestureHandler.js +0 -29
  81. package/lib/commonjs/handlers/TapGestureHandler.js +0 -33
  82. package/lib/commonjs/handlers/createHandler.js +0 -405
  83. package/lib/commonjs/handlers/createNativeWrapper.js +0 -77
  84. package/lib/commonjs/handlers/customDirectEventTypes.js +0 -13
  85. package/lib/commonjs/handlers/customDirectEventTypes.web.js +0 -10
  86. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -27
  87. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +0 -6
  88. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +0 -32
  89. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +0 -41
  90. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +0 -67
  91. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +0 -20
  92. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +0 -125
  93. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -22
  94. package/lib/commonjs/handlers/gestures/GestureDetector/types.js +0 -6
  95. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +0 -66
  96. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -143
  97. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -47
  98. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +0 -41
  99. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -45
  100. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +0 -143
  101. package/lib/commonjs/handlers/gestures/eventReceiver.js +0 -117
  102. package/lib/commonjs/handlers/gestures/flingGesture.js +0 -37
  103. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +0 -80
  104. package/lib/commonjs/handlers/gestures/gesture.js +0 -338
  105. package/lib/commonjs/handlers/gestures/gestureComposition.js +0 -90
  106. package/lib/commonjs/handlers/gestures/gestureObjects.js +0 -132
  107. package/lib/commonjs/handlers/gestures/gestureStateManager.js +0 -70
  108. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +0 -28
  109. package/lib/commonjs/handlers/gestures/hoverGesture.js +0 -57
  110. package/lib/commonjs/handlers/gestures/longPressGesture.js +0 -46
  111. package/lib/commonjs/handlers/gestures/manualGesture.js +0 -25
  112. package/lib/commonjs/handlers/gestures/nativeGesture.js +0 -34
  113. package/lib/commonjs/handlers/gestures/panGesture.js +0 -197
  114. package/lib/commonjs/handlers/gestures/pinchGesture.js +0 -38
  115. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +0 -29
  116. package/lib/commonjs/handlers/gestures/rotationGesture.js +0 -38
  117. package/lib/commonjs/handlers/gestures/tapGesture.js +0 -87
  118. package/lib/commonjs/handlers/getNextHandlerTag.js +0 -11
  119. package/lib/commonjs/handlers/handlersRegistry.js +0 -50
  120. package/lib/commonjs/handlers/utils.js +0 -69
  121. package/lib/commonjs/init.js +0 -25
  122. package/lib/commonjs/jestUtils/index.js +0 -19
  123. package/lib/commonjs/jestUtils/jestUtils.js +0 -316
  124. package/lib/commonjs/mocks/Pressable.js +0 -13
  125. package/lib/commonjs/mocks/mocks.js +0 -70
  126. package/lib/commonjs/mocks.js +0 -61
  127. package/lib/commonjs/mountRegistry.js +0 -37
  128. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +0 -9
  129. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -20
  130. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  131. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -17
  132. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  133. package/lib/commonjs/typeUtils.js +0 -2
  134. package/lib/commonjs/utils.js +0 -95
  135. package/lib/commonjs/web/Gestures.js +0 -48
  136. package/lib/commonjs/web/constants.js +0 -9
  137. package/lib/commonjs/web/detectors/RotationGestureDetector.js +0 -124
  138. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +0 -111
  139. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -143
  140. package/lib/commonjs/web/handlers/GestureHandler.js +0 -689
  141. package/lib/commonjs/web/handlers/HoverGestureHandler.js +0 -45
  142. package/lib/commonjs/web/handlers/IGestureHandler.js +0 -2
  143. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -146
  144. package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -38
  145. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -141
  146. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -399
  147. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -122
  148. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -129
  149. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -215
  150. package/lib/commonjs/web/interfaces.js +0 -32
  151. package/lib/commonjs/web/tools/CircularBuffer.js +0 -40
  152. package/lib/commonjs/web/tools/EventManager.js +0 -94
  153. package/lib/commonjs/web/tools/GestureHandlerDelegate.js +0 -6
  154. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +0 -267
  155. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -165
  156. package/lib/commonjs/web/tools/InteractionManager.js +0 -96
  157. package/lib/commonjs/web/tools/KeyboardEventManager.js +0 -108
  158. package/lib/commonjs/web/tools/LeastSquareSolver.js +0 -159
  159. package/lib/commonjs/web/tools/NodeManager.js +0 -39
  160. package/lib/commonjs/web/tools/PointerEventManager.js +0 -189
  161. package/lib/commonjs/web/tools/PointerTracker.js +0 -192
  162. package/lib/commonjs/web/tools/Vector.js +0 -37
  163. package/lib/commonjs/web/tools/VelocityTracker.js +0 -85
  164. package/lib/commonjs/web/tools/WheelEventManager.js +0 -55
  165. package/lib/commonjs/web/utils.js +0 -235
  166. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +0 -93
  167. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +0 -43
  168. package/lib/commonjs/web_hammer/Errors.js +0 -13
  169. package/lib/commonjs/web_hammer/FlingGestureHandler.js +0 -139
  170. package/lib/commonjs/web_hammer/GestureHandler.js +0 -484
  171. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +0 -45
  172. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +0 -57
  173. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +0 -57
  174. package/lib/commonjs/web_hammer/NodeManager.js +0 -41
  175. package/lib/commonjs/web_hammer/PanGestureHandler.js +0 -167
  176. package/lib/commonjs/web_hammer/PinchGestureHandler.js +0 -31
  177. package/lib/commonjs/web_hammer/PressGestureHandler.js +0 -153
  178. package/lib/commonjs/web_hammer/RotationGestureHandler.js +0 -32
  179. package/lib/commonjs/web_hammer/TapGestureHandler.js +0 -165
  180. package/lib/commonjs/web_hammer/constants.js +0 -51
  181. package/lib/commonjs/web_hammer/utils.js +0 -32
  182. package/lib/module/ActionType.js +0 -11
  183. package/lib/module/Directions.js +0 -27
  184. package/lib/module/EnableNewWebImplementation.js +0 -34
  185. package/lib/module/GestureHandlerRootViewContext.js +0 -5
  186. package/lib/module/PlatformConstants.js +0 -5
  187. package/lib/module/PlatformConstants.kepler.js +0 -8
  188. package/lib/module/PlatformConstants.web.js +0 -8
  189. package/lib/module/PointerType.js +0 -11
  190. package/lib/module/RNGestureHandlerModule.js +0 -8
  191. package/lib/module/RNGestureHandlerModule.kepler.js +0 -26
  192. package/lib/module/RNGestureHandlerModule.web.js +0 -90
  193. package/lib/module/RNGestureHandlerModule.windows.js +0 -50
  194. package/lib/module/RNRenderer.js +0 -6
  195. package/lib/module/RNRenderer.web.js +0 -6
  196. package/lib/module/State.js +0 -15
  197. package/lib/module/TouchEventType.js +0 -12
  198. package/lib/module/components/DrawerLayout.js +0 -541
  199. package/lib/module/components/GestureButtons.js +0 -200
  200. package/lib/module/components/GestureButtonsProps.js +0 -4
  201. package/lib/module/components/GestureComponents.js +0 -100
  202. package/lib/module/components/GestureComponents.web.js +0 -32
  203. package/lib/module/components/GestureHandlerButton.js +0 -5
  204. package/lib/module/components/GestureHandlerButton.web.js +0 -11
  205. package/lib/module/components/GestureHandlerRootView.android.js +0 -30
  206. package/lib/module/components/GestureHandlerRootView.js +0 -29
  207. package/lib/module/components/GestureHandlerRootView.kepler.js +0 -15
  208. package/lib/module/components/GestureHandlerRootView.web.js +0 -24
  209. package/lib/module/components/Pressable/Pressable.js +0 -268
  210. package/lib/module/components/Pressable/PressableProps.js +0 -4
  211. package/lib/module/components/Pressable/StateMachine.js +0 -40
  212. package/lib/module/components/Pressable/index.js +0 -4
  213. package/lib/module/components/Pressable/stateDefinitions.js +0 -83
  214. package/lib/module/components/Pressable/utils.js +0 -84
  215. package/lib/module/components/ReanimatedDrawerLayout.js +0 -352
  216. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -332
  217. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -8
  218. package/lib/module/components/ReanimatedSwipeable/index.js +0 -5
  219. package/lib/module/components/Swipeable.js +0 -364
  220. package/lib/module/components/Text.js +0 -55
  221. package/lib/module/components/gestureHandlerRootHOC.js +0 -33
  222. package/lib/module/components/touchables/ExtraButtonProps.js +0 -2
  223. package/lib/module/components/touchables/GenericTouchable.js +0 -239
  224. package/lib/module/components/touchables/GenericTouchableProps.js +0 -4
  225. package/lib/module/components/touchables/TouchableHighlight.js +0 -87
  226. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +0 -77
  227. package/lib/module/components/touchables/TouchableNativeFeedback.js +0 -10
  228. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +0 -4
  229. package/lib/module/components/touchables/TouchableOpacity.js +0 -59
  230. package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -27
  231. package/lib/module/components/touchables/index.js +0 -7
  232. package/lib/module/components/utils.js +0 -13
  233. package/lib/module/findNodeHandle.js +0 -5
  234. package/lib/module/findNodeHandle.web.js +0 -35
  235. package/lib/module/getShadowNodeFromRef.js +0 -47
  236. package/lib/module/getShadowNodeFromRef.web.js +0 -10
  237. package/lib/module/ghQueueMicrotask.js +0 -6
  238. package/lib/module/handlers/FlingGestureHandler.js +0 -26
  239. package/lib/module/handlers/ForceTouchGestureHandler.js +0 -41
  240. package/lib/module/handlers/GestureHandlerEventPayload.js +0 -4
  241. package/lib/module/handlers/LongPressGestureHandler.js +0 -28
  242. package/lib/module/handlers/NativeViewGestureHandler.js +0 -27
  243. package/lib/module/handlers/PanGestureHandler.js +0 -105
  244. package/lib/module/handlers/PinchGestureHandler.js +0 -25
  245. package/lib/module/handlers/PressabilityDebugView.js +0 -5
  246. package/lib/module/handlers/PressabilityDebugView.web.js +0 -7
  247. package/lib/module/handlers/RotationGestureHandler.js +0 -25
  248. package/lib/module/handlers/TapGestureHandler.js +0 -28
  249. package/lib/module/handlers/createHandler.js +0 -399
  250. package/lib/module/handlers/createNativeWrapper.js +0 -74
  251. package/lib/module/handlers/customDirectEventTypes.js +0 -5
  252. package/lib/module/handlers/customDirectEventTypes.web.js +0 -7
  253. package/lib/module/handlers/gestureHandlerCommon.js +0 -26
  254. package/lib/module/handlers/gestureHandlerTypesCompat.js +0 -4
  255. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +0 -26
  256. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +0 -36
  257. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +0 -62
  258. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -15
  259. package/lib/module/handlers/gestures/GestureDetector/index.js +0 -117
  260. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
  261. package/lib/module/handlers/gestures/GestureDetector/types.js +0 -4
  262. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +0 -61
  263. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -139
  264. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -43
  265. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +0 -37
  266. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -40
  267. package/lib/module/handlers/gestures/GestureDetector/utils.js +0 -134
  268. package/lib/module/handlers/gestures/eventReceiver.js +0 -110
  269. package/lib/module/handlers/gestures/flingGesture.js +0 -32
  270. package/lib/module/handlers/gestures/forceTouchGesture.js +0 -76
  271. package/lib/module/handlers/gestures/gesture.js +0 -332
  272. package/lib/module/handlers/gestures/gestureComposition.js +0 -83
  273. package/lib/module/handlers/gestures/gestureObjects.js +0 -129
  274. package/lib/module/handlers/gestures/gestureStateManager.js +0 -66
  275. package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -23
  276. package/lib/module/handlers/gestures/hoverGesture.js +0 -52
  277. package/lib/module/handlers/gestures/longPressGesture.js +0 -41
  278. package/lib/module/handlers/gestures/manualGesture.js +0 -20
  279. package/lib/module/handlers/gestures/nativeGesture.js +0 -29
  280. package/lib/module/handlers/gestures/panGesture.js +0 -192
  281. package/lib/module/handlers/gestures/pinchGesture.js +0 -33
  282. package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -26
  283. package/lib/module/handlers/gestures/rotationGesture.js +0 -33
  284. package/lib/module/handlers/gestures/tapGesture.js +0 -82
  285. package/lib/module/handlers/getNextHandlerTag.js +0 -7
  286. package/lib/module/handlers/handlersRegistry.js +0 -39
  287. package/lib/module/handlers/utils.js +0 -61
  288. package/lib/module/index.js +0 -31
  289. package/lib/module/init.js +0 -19
  290. package/lib/module/jestUtils/index.js +0 -4
  291. package/lib/module/jestUtils/jestUtils.js +0 -311
  292. package/lib/module/mocks/Pressable.js +0 -4
  293. package/lib/module/mocks/mocks.js +0 -64
  294. package/lib/module/mocks.js +0 -57
  295. package/lib/module/mountRegistry.js +0 -32
  296. package/lib/module/specs/NativeRNGestureHandlerModule.js +0 -5
  297. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -14
  298. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  299. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -11
  300. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  301. package/lib/module/typeUtils.js +0 -2
  302. package/lib/module/utils.js +0 -81
  303. package/lib/module/web/Gestures.js +0 -42
  304. package/lib/module/web/constants.js +0 -5
  305. package/lib/module/web/detectors/RotationGestureDetector.js +0 -119
  306. package/lib/module/web/detectors/ScaleGestureDetector.js +0 -106
  307. package/lib/module/web/handlers/FlingGestureHandler.js +0 -137
  308. package/lib/module/web/handlers/GestureHandler.js +0 -682
  309. package/lib/module/web/handlers/HoverGestureHandler.js +0 -39
  310. package/lib/module/web/handlers/IGestureHandler.js +0 -2
  311. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -140
  312. package/lib/module/web/handlers/ManualGestureHandler.js +0 -32
  313. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -135
  314. package/lib/module/web/handlers/PanGestureHandler.js +0 -393
  315. package/lib/module/web/handlers/PinchGestureHandler.js +0 -116
  316. package/lib/module/web/handlers/RotationGestureHandler.js +0 -123
  317. package/lib/module/web/handlers/TapGestureHandler.js +0 -209
  318. package/lib/module/web/interfaces.js +0 -28
  319. package/lib/module/web/tools/CircularBuffer.js +0 -35
  320. package/lib/module/web/tools/EventManager.js +0 -89
  321. package/lib/module/web/tools/GestureHandlerDelegate.js +0 -4
  322. package/lib/module/web/tools/GestureHandlerOrchestrator.js +0 -261
  323. package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -159
  324. package/lib/module/web/tools/InteractionManager.js +0 -91
  325. package/lib/module/web/tools/KeyboardEventManager.js +0 -102
  326. package/lib/module/web/tools/LeastSquareSolver.js +0 -154
  327. package/lib/module/web/tools/NodeManager.js +0 -34
  328. package/lib/module/web/tools/PointerEventManager.js +0 -183
  329. package/lib/module/web/tools/PointerTracker.js +0 -186
  330. package/lib/module/web/tools/Vector.js +0 -32
  331. package/lib/module/web/tools/VelocityTracker.js +0 -79
  332. package/lib/module/web/tools/WheelEventManager.js +0 -49
  333. package/lib/module/web/utils.js +0 -223
  334. package/lib/module/web_hammer/DiscreteGestureHandler.js +0 -87
  335. package/lib/module/web_hammer/DraggingGestureHandler.js +0 -37
  336. package/lib/module/web_hammer/Errors.js +0 -8
  337. package/lib/module/web_hammer/FlingGestureHandler.js +0 -133
  338. package/lib/module/web_hammer/GestureHandler.js +0 -478
  339. package/lib/module/web_hammer/IndiscreteGestureHandler.js +0 -41
  340. package/lib/module/web_hammer/LongPressGestureHandler.js +0 -51
  341. package/lib/module/web_hammer/NativeViewGestureHandler.js +0 -51
  342. package/lib/module/web_hammer/NodeManager.js +0 -33
  343. package/lib/module/web_hammer/PanGestureHandler.js +0 -162
  344. package/lib/module/web_hammer/PinchGestureHandler.js +0 -26
  345. package/lib/module/web_hammer/PressGestureHandler.js +0 -148
  346. package/lib/module/web_hammer/RotationGestureHandler.js +0 -27
  347. package/lib/module/web_hammer/TapGestureHandler.js +0 -160
  348. package/lib/module/web_hammer/constants.js +0 -46
  349. package/lib/module/web_hammer/utils.js +0 -21
  350. package/src/ActionType.ts +0 -9
  351. package/src/Directions.ts +0 -26
  352. package/src/EnableNewWebImplementation.ts +0 -53
  353. package/src/GestureHandlerRootViewContext.ts +0 -3
  354. package/src/PlatformConstants.kepler.ts +0 -5
  355. package/src/PlatformConstants.ts +0 -8
  356. package/src/PlatformConstants.web.ts +0 -5
  357. package/src/PointerType.ts +0 -7
  358. package/src/RNGestureHandlerModule.kepler.ts +0 -64
  359. package/src/RNGestureHandlerModule.ts +0 -5
  360. package/src/RNGestureHandlerModule.web.ts +0 -124
  361. package/src/RNGestureHandlerModule.windows.ts +0 -62
  362. package/src/RNRenderer.ts +0 -3
  363. package/src/RNRenderer.web.ts +0 -3
  364. package/src/State.ts +0 -13
  365. package/src/TouchEventType.ts +0 -11
  366. package/src/components/DrawerLayout.tsx +0 -788
  367. package/src/components/GestureButtons.tsx +0 -272
  368. package/src/components/GestureButtonsProps.ts +0 -156
  369. package/src/components/GestureComponents.tsx +0 -148
  370. package/src/components/GestureComponents.web.tsx +0 -41
  371. package/src/components/GestureHandlerButton.tsx +0 -5
  372. package/src/components/GestureHandlerButton.web.tsx +0 -6
  373. package/src/components/GestureHandlerRootView.android.tsx +0 -32
  374. package/src/components/GestureHandlerRootView.kepler.tsx +0 -18
  375. package/src/components/GestureHandlerRootView.tsx +0 -28
  376. package/src/components/GestureHandlerRootView.web.tsx +0 -22
  377. package/src/components/Pressable/Pressable.tsx +0 -401
  378. package/src/components/Pressable/PressableProps.tsx +0 -174
  379. package/src/components/Pressable/StateMachine.tsx +0 -57
  380. package/src/components/Pressable/index.ts +0 -5
  381. package/src/components/Pressable/stateDefinitions.ts +0 -126
  382. package/src/components/Pressable/utils.ts +0 -140
  383. package/src/components/ReanimatedDrawerLayout.tsx +0 -754
  384. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +0 -607
  385. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +0 -199
  386. package/src/components/ReanimatedSwipeable/index.ts +0 -6
  387. package/src/components/Swipeable.tsx +0 -595
  388. package/src/components/Text.tsx +0 -77
  389. package/src/components/gestureHandlerRootHOC.tsx +0 -33
  390. package/src/components/touchables/ExtraButtonProps.ts +0 -7
  391. package/src/components/touchables/GenericTouchable.tsx +0 -275
  392. package/src/components/touchables/GenericTouchableProps.ts +0 -28
  393. package/src/components/touchables/TouchableHighlight.tsx +0 -118
  394. package/src/components/touchables/TouchableNativeFeedback.android.tsx +0 -83
  395. package/src/components/touchables/TouchableNativeFeedback.tsx +0 -8
  396. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +0 -10
  397. package/src/components/touchables/TouchableOpacity.tsx +0 -78
  398. package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -39
  399. package/src/components/touchables/index.ts +0 -7
  400. package/src/components/utils.ts +0 -26
  401. package/src/findNodeHandle.ts +0 -3
  402. package/src/findNodeHandle.web.ts +0 -41
  403. package/src/getShadowNodeFromRef.ts +0 -50
  404. package/src/getShadowNodeFromRef.web.ts +0 -7
  405. package/src/ghQueueMicrotask.ts +0 -8
  406. package/src/handlers/FlingGestureHandler.ts +0 -64
  407. package/src/handlers/ForceTouchGestureHandler.ts +0 -88
  408. package/src/handlers/GestureHandlerEventPayload.ts +0 -229
  409. package/src/handlers/LongPressGestureHandler.ts +0 -65
  410. package/src/handlers/NativeViewGestureHandler.ts +0 -59
  411. package/src/handlers/PanGestureHandler.ts +0 -282
  412. package/src/handlers/PinchGestureHandler.ts +0 -32
  413. package/src/handlers/PressabilityDebugView.tsx +0 -2
  414. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  415. package/src/handlers/RotationGestureHandler.ts +0 -32
  416. package/src/handlers/TapGestureHandler.ts +0 -99
  417. package/src/handlers/createHandler.tsx +0 -586
  418. package/src/handlers/createNativeWrapper.tsx +0 -89
  419. package/src/handlers/customDirectEventTypes.ts +0 -2
  420. package/src/handlers/customDirectEventTypes.web.ts +0 -5
  421. package/src/handlers/gestureHandlerCommon.ts +0 -211
  422. package/src/handlers/gestureHandlerTypesCompat.ts +0 -101
  423. package/src/handlers/gestures/GestureDetector/Wrap.tsx +0 -35
  424. package/src/handlers/gestures/GestureDetector/Wrap.web.tsx +0 -42
  425. package/src/handlers/gestures/GestureDetector/attachHandlers.ts +0 -112
  426. package/src/handlers/gestures/GestureDetector/dropHandlers.ts +0 -17
  427. package/src/handlers/gestures/GestureDetector/index.tsx +0 -191
  428. package/src/handlers/gestures/GestureDetector/needsToReattach.ts +0 -27
  429. package/src/handlers/gestures/GestureDetector/types.ts +0 -32
  430. package/src/handlers/gestures/GestureDetector/updateHandlers.ts +0 -92
  431. package/src/handlers/gestures/GestureDetector/useAnimatedGesture.ts +0 -209
  432. package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +0 -69
  433. package/src/handlers/gestures/GestureDetector/useMountReactions.ts +0 -51
  434. package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +0 -58
  435. package/src/handlers/gestures/GestureDetector/utils.ts +0 -181
  436. package/src/handlers/gestures/eventReceiver.ts +0 -173
  437. package/src/handlers/gestures/flingGesture.ts +0 -36
  438. package/src/handlers/gestures/forceTouchGesture.ts +0 -95
  439. package/src/handlers/gestures/gesture.ts +0 -472
  440. package/src/handlers/gestures/gestureComposition.ts +0 -124
  441. package/src/handlers/gestures/gestureObjects.ts +0 -143
  442. package/src/handlers/gestures/gestureStateManager.ts +0 -76
  443. package/src/handlers/gestures/gestureStateManager.web.ts +0 -26
  444. package/src/handlers/gestures/hoverGesture.ts +0 -77
  445. package/src/handlers/gestures/longPressGesture.ts +0 -45
  446. package/src/handlers/gestures/manualGesture.ts +0 -31
  447. package/src/handlers/gestures/nativeGesture.ts +0 -33
  448. package/src/handlers/gestures/panGesture.ts +0 -221
  449. package/src/handlers/gestures/pinchGesture.ts +0 -51
  450. package/src/handlers/gestures/reanimatedWrapper.ts +0 -57
  451. package/src/handlers/gestures/rotationGesture.ts +0 -51
  452. package/src/handlers/gestures/tapGesture.ts +0 -86
  453. package/src/handlers/getNextHandlerTag.ts +0 -5
  454. package/src/handlers/handlersRegistry.ts +0 -58
  455. package/src/handlers/utils.ts +0 -76
  456. package/src/init.ts +0 -18
  457. package/src/jestUtils/index.ts +0 -1
  458. package/src/jestUtils/jestUtils.ts +0 -513
  459. package/src/mocks/Pressable.tsx +0 -1
  460. package/src/mocks/mocks.tsx +0 -70
  461. package/src/mocks.ts +0 -67
  462. package/src/mountRegistry.ts +0 -51
  463. package/src/specs/NativeRNGestureHandlerModule.ts +0 -26
  464. package/src/specs/RNGestureHandlerButtonNativeComponent.kepler.ts +0 -27
  465. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  466. package/src/specs/RNGestureHandlerRootViewNativeComponent.kepler.ts +0 -21
  467. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  468. package/src/typeUtils.ts +0 -1
  469. package/src/utils.ts +0 -107
  470. package/src/web/Gestures.ts +0 -41
  471. package/src/web/constants.ts +0 -2
  472. package/src/web/detectors/RotationGestureDetector.ts +0 -170
  473. package/src/web/detectors/ScaleGestureDetector.ts +0 -171
  474. package/src/web/handlers/FlingGestureHandler.ts +0 -196
  475. package/src/web/handlers/GestureHandler.ts +0 -881
  476. package/src/web/handlers/HoverGestureHandler.ts +0 -49
  477. package/src/web/handlers/IGestureHandler.ts +0 -49
  478. package/src/web/handlers/LongPressGestureHandler.ts +0 -175
  479. package/src/web/handlers/ManualGestureHandler.ts +0 -37
  480. package/src/web/handlers/NativeViewGestureHandler.ts +0 -175
  481. package/src/web/handlers/PanGestureHandler.ts +0 -571
  482. package/src/web/handlers/PinchGestureHandler.ts +0 -152
  483. package/src/web/handlers/RotationGestureHandler.ts +0 -166
  484. package/src/web/handlers/TapGestureHandler.ts +0 -274
  485. package/src/web/interfaces.ts +0 -190
  486. package/src/web/tools/CircularBuffer.ts +0 -42
  487. package/src/web/tools/EventManager.ts +0 -108
  488. package/src/web/tools/GestureHandlerDelegate.ts +0 -26
  489. package/src/web/tools/GestureHandlerOrchestrator.ts +0 -392
  490. package/src/web/tools/GestureHandlerWebDelegate.ts +0 -227
  491. package/src/web/tools/InteractionManager.ts +0 -135
  492. package/src/web/tools/KeyboardEventManager.ts +0 -133
  493. package/src/web/tools/LeastSquareSolver.ts +0 -182
  494. package/src/web/tools/NodeManager.ts +0 -48
  495. package/src/web/tools/PointerEventManager.ts +0 -226
  496. package/src/web/tools/PointerTracker.ts +0 -228
  497. package/src/web/tools/Vector.ts +0 -59
  498. package/src/web/tools/VelocityTracker.ts +0 -98
  499. package/src/web/tools/WheelEventManager.ts +0 -48
  500. package/src/web/utils.ts +0 -293
  501. package/src/web_hammer/DiscreteGestureHandler.ts +0 -82
  502. package/src/web_hammer/DraggingGestureHandler.ts +0 -34
  503. package/src/web_hammer/Errors.ts +0 -7
  504. package/src/web_hammer/FlingGestureHandler.ts +0 -134
  505. package/src/web_hammer/GestureHandler.ts +0 -600
  506. package/src/web_hammer/IndiscreteGestureHandler.ts +0 -33
  507. package/src/web_hammer/LongPressGestureHandler.ts +0 -56
  508. package/src/web_hammer/NativeViewGestureHandler.ts +0 -47
  509. package/src/web_hammer/NodeManager.ts +0 -33
  510. package/src/web_hammer/PanGestureHandler.ts +0 -226
  511. package/src/web_hammer/PinchGestureHandler.ts +0 -25
  512. package/src/web_hammer/PressGestureHandler.ts +0 -170
  513. package/src/web_hammer/RotationGestureHandler.ts +0 -25
  514. package/src/web_hammer/TapGestureHandler.ts +0 -172
  515. package/src/web_hammer/constants.ts +0 -48
  516. package/src/web_hammer/utils.ts +0 -24
@@ -1,881 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
2
- import { State } from '../../State';
3
- import {
4
- Config,
5
- AdaptedEvent,
6
- PropsRef,
7
- ResultEvent,
8
- PointerData,
9
- ResultTouchEvent,
10
- TouchEventType,
11
- EventTypes,
12
- } from '../interfaces';
13
- import EventManager from '../tools/EventManager';
14
- import GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';
15
- import InteractionManager from '../tools/InteractionManager';
16
- import PointerTracker, { TrackerElement } from '../tools/PointerTracker';
17
- import IGestureHandler from './IGestureHandler';
18
- import { MouseButton } from '../../handlers/gestureHandlerCommon';
19
- import { PointerType } from '../../PointerType';
20
- import { GestureHandlerDelegate } from '../tools/GestureHandlerDelegate';
21
-
22
- export default abstract class GestureHandler implements IGestureHandler {
23
- private lastSentState: State | null = null;
24
-
25
- private _state: State = State.UNDETERMINED;
26
-
27
- private _shouldCancelWhenOutside = false;
28
- protected hasCustomActivationCriteria = false;
29
- private _enabled = false;
30
-
31
- private viewRef!: number;
32
- private propsRef!: React.RefObject<unknown>;
33
- private _handlerTag!: number;
34
- private _config: Config = { enabled: false };
35
-
36
- private _tracker: PointerTracker = new PointerTracker();
37
-
38
- // Orchestrator properties
39
- private _activationIndex = 0;
40
-
41
- private _awaiting = false;
42
- private _active = false;
43
-
44
- private _shouldResetProgress = false;
45
- private _pointerType: PointerType = PointerType.MOUSE;
46
-
47
- private _delegate: GestureHandlerDelegate<unknown, IGestureHandler>;
48
-
49
- public constructor(
50
- delegate: GestureHandlerDelegate<unknown, IGestureHandler>
51
- ) {
52
- this._delegate = delegate;
53
- }
54
-
55
- //
56
- // Initializing handler
57
- //
58
-
59
- protected init(viewRef: number, propsRef: React.RefObject<unknown>) {
60
- this.propsRef = propsRef;
61
- this.viewRef = viewRef;
62
-
63
- this.state = State.UNDETERMINED;
64
-
65
- this.delegate.init(viewRef, this);
66
- }
67
-
68
- public attachEventManager(manager: EventManager<unknown>): void {
69
- manager.setOnPointerDown(this.onPointerDown.bind(this));
70
- manager.setOnPointerAdd(this.onPointerAdd.bind(this));
71
- manager.setOnPointerUp(this.onPointerUp.bind(this));
72
- manager.setOnPointerRemove(this.onPointerRemove.bind(this));
73
- manager.setOnPointerMove(this.onPointerMove.bind(this));
74
- manager.setOnPointerEnter(this.onPointerEnter.bind(this));
75
- manager.setOnPointerLeave(this.onPointerLeave.bind(this));
76
- manager.setOnPointerCancel(this.onPointerCancel.bind(this));
77
- manager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));
78
- manager.setOnPointerMoveOver(this.onPointerMoveOver.bind(this));
79
- manager.setOnPointerMoveOut(this.onPointerMoveOut.bind(this));
80
- manager.setOnWheel(this.onWheel.bind(this));
81
-
82
- manager.registerListeners();
83
- }
84
-
85
- //
86
- // Resetting handler
87
- //
88
-
89
- protected onCancel(): void {}
90
- protected onReset(): void {}
91
- protected resetProgress(): void {}
92
-
93
- public reset(): void {
94
- this.tracker.resetTracker();
95
- this.onReset();
96
- this.resetProgress();
97
- this.delegate.reset();
98
- this.state = State.UNDETERMINED;
99
- }
100
-
101
- //
102
- // State logic
103
- //
104
-
105
- public moveToState(newState: State, sendIfDisabled?: boolean) {
106
- if (this.state === newState) {
107
- return;
108
- }
109
-
110
- const oldState = this.state;
111
- this.state = newState;
112
-
113
- if (
114
- this.tracker.trackedPointersCount > 0 &&
115
- this.config.needsPointerData &&
116
- this.isFinished()
117
- ) {
118
- this.cancelTouches();
119
- }
120
-
121
- GestureHandlerOrchestrator.instance.onHandlerStateChange(
122
- this,
123
- newState,
124
- oldState,
125
- sendIfDisabled
126
- );
127
-
128
- this.onStateChange(newState, oldState);
129
-
130
- if (!this.enabled && this.isFinished()) {
131
- this.state = State.UNDETERMINED;
132
- }
133
- }
134
-
135
- protected onStateChange(_newState: State, _oldState: State): void {}
136
-
137
- public begin(): void {
138
- if (!this.checkHitSlop()) {
139
- return;
140
- }
141
-
142
- if (this.state === State.UNDETERMINED) {
143
- this.moveToState(State.BEGAN);
144
- }
145
- }
146
-
147
- /**
148
- * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send fail event
149
- */
150
- public fail(sendIfDisabled?: boolean): void {
151
- if (this.state === State.ACTIVE || this.state === State.BEGAN) {
152
- // Here the order of calling the delegate and moveToState is important.
153
- // At this point we can use currentState as previuos state, because immediately after changing cursor we call moveToState method.
154
- this.delegate.onFail();
155
-
156
- this.moveToState(State.FAILED, sendIfDisabled);
157
- }
158
-
159
- this.resetProgress();
160
- }
161
-
162
- /**
163
- * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send cancel event
164
- */
165
- public cancel(sendIfDisabled?: boolean): void {
166
- if (
167
- this.state === State.ACTIVE ||
168
- this.state === State.UNDETERMINED ||
169
- this.state === State.BEGAN
170
- ) {
171
- this.onCancel();
172
-
173
- // Same as above - order matters
174
- this.delegate.onCancel();
175
-
176
- this.moveToState(State.CANCELLED, sendIfDisabled);
177
- }
178
- }
179
-
180
- public activate(force = false) {
181
- if (
182
- (this.config.manualActivation !== true || force) &&
183
- (this.state === State.UNDETERMINED || this.state === State.BEGAN)
184
- ) {
185
- this.delegate.onActivate();
186
- this.moveToState(State.ACTIVE);
187
- }
188
- }
189
-
190
- public end() {
191
- if (this.state === State.BEGAN || this.state === State.ACTIVE) {
192
- // Same as above - order matters
193
- this.delegate.onEnd();
194
-
195
- this.moveToState(State.END);
196
- }
197
-
198
- this.resetProgress();
199
- }
200
-
201
- //
202
- // Methods for orchestrator
203
- //
204
-
205
- public getShouldResetProgress(): boolean {
206
- return this.shouldResetProgress;
207
- }
208
- public setShouldResetProgress(value: boolean): void {
209
- this.shouldResetProgress = value;
210
- }
211
-
212
- public shouldWaitForHandlerFailure(handler: IGestureHandler): boolean {
213
- if (handler === this) {
214
- return false;
215
- }
216
-
217
- return InteractionManager.instance.shouldWaitForHandlerFailure(
218
- this,
219
- handler
220
- );
221
- }
222
-
223
- public shouldRequireToWaitForFailure(handler: IGestureHandler): boolean {
224
- if (handler === this) {
225
- return false;
226
- }
227
-
228
- return InteractionManager.instance.shouldRequireHandlerToWaitForFailure(
229
- this,
230
- handler
231
- );
232
- }
233
-
234
- public shouldRecognizeSimultaneously(handler: IGestureHandler): boolean {
235
- if (handler === this) {
236
- return true;
237
- }
238
-
239
- return InteractionManager.instance.shouldRecognizeSimultaneously(
240
- this,
241
- handler
242
- );
243
- }
244
-
245
- public shouldBeCancelledByOther(handler: IGestureHandler): boolean {
246
- if (handler === this) {
247
- return false;
248
- }
249
-
250
- return InteractionManager.instance.shouldHandlerBeCancelledBy(
251
- this,
252
- handler
253
- );
254
- }
255
-
256
- //
257
- // Event actions
258
- //
259
-
260
- protected onPointerDown(event: AdaptedEvent): void {
261
- GestureHandlerOrchestrator.instance.recordHandlerIfNotPresent(this);
262
- this.pointerType = event.pointerType;
263
-
264
- if (this.pointerType === PointerType.TOUCH) {
265
- GestureHandlerOrchestrator.instance.cancelMouseAndPenGestures(this);
266
- }
267
-
268
- // TODO: Bring back touch events along with introducing `handleDown` method that will handle handler specific stuff
269
- }
270
- // Adding another pointer to existing ones
271
- protected onPointerAdd(event: AdaptedEvent): void {
272
- this.tryToSendTouchEvent(event);
273
- }
274
- protected onPointerUp(event: AdaptedEvent): void {
275
- this.tryToSendTouchEvent(event);
276
- }
277
- // Removing pointer, when there is more than one pointers
278
- protected onPointerRemove(event: AdaptedEvent): void {
279
- this.tryToSendTouchEvent(event);
280
- }
281
- protected onPointerMove(event: AdaptedEvent): void {
282
- this.tryToSendMoveEvent(false, event);
283
- }
284
- protected onPointerLeave(event: AdaptedEvent): void {
285
- if (this.shouldCancelWhenOutside) {
286
- switch (this.state) {
287
- case State.ACTIVE:
288
- this.cancel();
289
- break;
290
- case State.BEGAN:
291
- this.fail();
292
- break;
293
- }
294
- return;
295
- }
296
-
297
- this.tryToSendTouchEvent(event);
298
- }
299
- protected onPointerEnter(event: AdaptedEvent): void {
300
- this.tryToSendTouchEvent(event);
301
- }
302
- protected onPointerCancel(event: AdaptedEvent): void {
303
- this.tryToSendTouchEvent(event);
304
-
305
- this.cancel();
306
- this.reset();
307
- }
308
- protected onPointerOutOfBounds(event: AdaptedEvent): void {
309
- this.tryToSendMoveEvent(true, event);
310
- }
311
- protected onPointerMoveOver(_event: AdaptedEvent): void {
312
- // Used only by hover gesture handler atm
313
- }
314
- protected onPointerMoveOut(_event: AdaptedEvent): void {
315
- // Used only by hover gesture handler atm
316
- }
317
- protected onWheel(_event: AdaptedEvent): void {
318
- // Used only by pan gesture handler
319
- }
320
- protected tryToSendMoveEvent(out: boolean, event: AdaptedEvent): void {
321
- if ((out && this.shouldCancelWhenOutside) || !this.enabled) {
322
- return;
323
- }
324
-
325
- if (this.active) {
326
- this.sendEvent(this.state, this.state);
327
- }
328
-
329
- this.tryToSendTouchEvent(event);
330
- }
331
-
332
- protected tryToSendTouchEvent(event: AdaptedEvent): void {
333
- if (this.config.needsPointerData) {
334
- this.sendTouchEvent(event);
335
- }
336
- }
337
-
338
- public sendTouchEvent(event: AdaptedEvent): void {
339
- if (!this.enabled) {
340
- return;
341
- }
342
-
343
- const { onGestureHandlerEvent }: PropsRef = this.propsRef
344
- .current as PropsRef;
345
-
346
- const touchEvent: ResultTouchEvent | undefined =
347
- this.transformTouchEvent(event);
348
-
349
- if (touchEvent) {
350
- invokeNullableMethod(onGestureHandlerEvent, touchEvent);
351
- }
352
- }
353
-
354
- //
355
- // Events Sending
356
- //
357
-
358
- public sendEvent = (newState: State, oldState: State): void => {
359
- const { onGestureHandlerEvent, onGestureHandlerStateChange }: PropsRef =
360
- this.propsRef.current as PropsRef;
361
-
362
- const resultEvent: ResultEvent = this.transformEventData(
363
- newState,
364
- oldState
365
- );
366
-
367
- // In the new API oldState field has to be undefined, unless we send event state changed
368
- // 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
369
- // Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once
370
- // However, this may cause trouble in the future (but for now we don't know that)
371
-
372
- if (this.lastSentState !== newState) {
373
- this.lastSentState = newState;
374
- invokeNullableMethod(onGestureHandlerStateChange, resultEvent);
375
- }
376
- if (this.state === State.ACTIVE) {
377
- resultEvent.nativeEvent.oldState = undefined;
378
- invokeNullableMethod(onGestureHandlerEvent, resultEvent);
379
- }
380
- };
381
-
382
- private transformEventData(newState: State, oldState: State): ResultEvent {
383
- return {
384
- nativeEvent: {
385
- numberOfPointers: this.tracker.trackedPointersCount,
386
- state: newState,
387
- pointerInside: this.delegate.isPointerInBounds(
388
- this.tracker.getAbsoluteCoordsAverage()
389
- ),
390
- ...this.transformNativeEvent(),
391
- handlerTag: this.handlerTag,
392
- target: this.viewRef,
393
- oldState: newState !== oldState ? oldState : undefined,
394
- pointerType: this.pointerType,
395
- },
396
- timeStamp: Date.now(),
397
- };
398
- }
399
-
400
- private transformTouchEvent(
401
- event: AdaptedEvent
402
- ): ResultTouchEvent | undefined {
403
- const rect = this.delegate.measureView();
404
-
405
- const all: PointerData[] = [];
406
- const changed: PointerData[] = [];
407
-
408
- const trackerData = this.tracker.trackedPointers;
409
-
410
- // This if handles edge case where all pointers have been cancelled
411
- // When pointercancel is triggered, reset method is called. This means that tracker will be reset after first pointer being cancelled
412
- // The problem is, that handler will receive another pointercancel event from the rest of the pointers
413
- // To avoid crashing, we don't send event if tracker tracks no pointers, i.e. has been reset
414
- if (trackerData.size === 0 || !trackerData.has(event.pointerId)) {
415
- return;
416
- }
417
-
418
- trackerData.forEach((element: TrackerElement, key: number): void => {
419
- const id: number = this.tracker.getMappedTouchEventId(key);
420
-
421
- all.push({
422
- id: id,
423
- x: element.abosoluteCoords.x - rect.pageX,
424
- y: element.abosoluteCoords.y - rect.pageY,
425
- absoluteX: element.abosoluteCoords.x,
426
- absoluteY: element.abosoluteCoords.y,
427
- });
428
- });
429
-
430
- // Each pointer sends its own event, so we want changed touches to contain only the pointer that has changed.
431
- // However, if the event is cancel, we want to cancel all pointers to avoid crashes
432
- if (event.eventType !== EventTypes.CANCEL) {
433
- changed.push({
434
- id: this.tracker.getMappedTouchEventId(event.pointerId),
435
- x: event.x - rect.pageX,
436
- y: event.y - rect.pageY,
437
- absoluteX: event.x,
438
- absoluteY: event.y,
439
- });
440
- } else {
441
- trackerData.forEach((element: TrackerElement, key: number): void => {
442
- const id: number = this.tracker.getMappedTouchEventId(key);
443
-
444
- changed.push({
445
- id: id,
446
- x: element.abosoluteCoords.x - rect.pageX,
447
- y: element.abosoluteCoords.y - rect.pageY,
448
- absoluteX: element.abosoluteCoords.x,
449
- absoluteY: element.abosoluteCoords.y,
450
- });
451
- });
452
- }
453
-
454
- let eventType: TouchEventType = TouchEventType.UNDETERMINED;
455
-
456
- switch (event.eventType) {
457
- case EventTypes.DOWN:
458
- case EventTypes.ADDITIONAL_POINTER_DOWN:
459
- eventType = TouchEventType.DOWN;
460
- break;
461
- case EventTypes.UP:
462
- case EventTypes.ADDITIONAL_POINTER_UP:
463
- eventType = TouchEventType.UP;
464
- break;
465
- case EventTypes.MOVE:
466
- eventType = TouchEventType.MOVE;
467
- break;
468
- case EventTypes.CANCEL:
469
- eventType = TouchEventType.CANCELLED;
470
- break;
471
- }
472
-
473
- // Here, when we receive up event, we want to decrease number of touches
474
- // That's because we want handler to send information that there's one pointer less
475
- // However, we still want this pointer to be present in allTouches array, so that its data can be accessed
476
- let numberOfTouches: number = all.length;
477
-
478
- if (
479
- event.eventType === EventTypes.UP ||
480
- event.eventType === EventTypes.ADDITIONAL_POINTER_UP
481
- ) {
482
- --numberOfTouches;
483
- }
484
-
485
- return {
486
- nativeEvent: {
487
- handlerTag: this.handlerTag,
488
- state: this.state,
489
- eventType: eventType,
490
- changedTouches: changed,
491
- allTouches: all,
492
- numberOfTouches: numberOfTouches,
493
- pointerType: this.pointerType,
494
- },
495
- timeStamp: Date.now(),
496
- };
497
- }
498
-
499
- private cancelTouches(): void {
500
- const rect = this.delegate.measureView();
501
-
502
- const all: PointerData[] = [];
503
- const changed: PointerData[] = [];
504
-
505
- const trackerData = this.tracker.trackedPointers;
506
-
507
- if (trackerData.size === 0) {
508
- return;
509
- }
510
-
511
- trackerData.forEach((element: TrackerElement, key: number): void => {
512
- const id: number = this.tracker.getMappedTouchEventId(key);
513
-
514
- all.push({
515
- id: id,
516
- x: element.abosoluteCoords.x - rect.pageX,
517
- y: element.abosoluteCoords.y - rect.pageY,
518
- absoluteX: element.abosoluteCoords.x,
519
- absoluteY: element.abosoluteCoords.y,
520
- });
521
-
522
- changed.push({
523
- id: id,
524
- x: element.abosoluteCoords.x - rect.pageX,
525
- y: element.abosoluteCoords.y - rect.pageY,
526
- absoluteX: element.abosoluteCoords.x,
527
- absoluteY: element.abosoluteCoords.y,
528
- });
529
- });
530
-
531
- const cancelEvent: ResultTouchEvent = {
532
- nativeEvent: {
533
- handlerTag: this.handlerTag,
534
- state: this.state,
535
- eventType: TouchEventType.CANCELLED,
536
- changedTouches: changed,
537
- allTouches: all,
538
- numberOfTouches: all.length,
539
- pointerType: this.pointerType,
540
- },
541
- timeStamp: Date.now(),
542
- };
543
-
544
- const { onGestureHandlerEvent }: PropsRef = this.propsRef
545
- .current as PropsRef;
546
-
547
- invokeNullableMethod(onGestureHandlerEvent, cancelEvent);
548
- }
549
-
550
- protected transformNativeEvent(): Record<string, unknown> {
551
- // Those properties are shared by most handlers and if not this method will be overriden
552
- const lastCoords = this.tracker.getAbsoluteCoordsAverage();
553
- const lastRelativeCoords = this.tracker.getRelativeCoordsAverage();
554
-
555
- return {
556
- x: lastRelativeCoords.x,
557
- y: lastRelativeCoords.y,
558
- absoluteX: lastCoords.x,
559
- absoluteY: lastCoords.y,
560
- };
561
- }
562
-
563
- //
564
- // Handling config
565
- //
566
-
567
- public updateGestureConfig({ enabled = true, ...props }: Config): void {
568
- this._config = { enabled: enabled, ...props };
569
-
570
- if (this.enabled !== enabled) {
571
- this.delegate.onEnabledChange(enabled);
572
- }
573
-
574
- this.enabled = enabled;
575
-
576
- if (this.config.shouldCancelWhenOutside !== undefined) {
577
- this.shouldCancelWhenOutside = this.config.shouldCancelWhenOutside;
578
- }
579
-
580
- this.validateHitSlops();
581
-
582
- if (this.enabled) {
583
- return;
584
- }
585
-
586
- switch (this.state) {
587
- case State.ACTIVE:
588
- this.fail(true);
589
- break;
590
- case State.UNDETERMINED:
591
- GestureHandlerOrchestrator.instance.removeHandlerFromOrchestrator(this);
592
- break;
593
- default:
594
- this.cancel(true);
595
- break;
596
- }
597
- }
598
-
599
- protected checkCustomActivationCriteria(criterias: string[]): void {
600
- for (const key in this.config) {
601
- if (criterias.indexOf(key) >= 0) {
602
- this.hasCustomActivationCriteria = true;
603
- }
604
- }
605
- }
606
-
607
- private validateHitSlops(): void {
608
- if (!this.config.hitSlop) {
609
- return;
610
- }
611
-
612
- if (
613
- this.config.hitSlop.left !== undefined &&
614
- this.config.hitSlop.right !== undefined &&
615
- this.config.hitSlop.width !== undefined
616
- ) {
617
- throw new Error(
618
- 'HitSlop Error: Cannot define left, right and width at the same time'
619
- );
620
- }
621
-
622
- if (
623
- this.config.hitSlop.width !== undefined &&
624
- this.config.hitSlop.left === undefined &&
625
- this.config.hitSlop.right === undefined
626
- ) {
627
- throw new Error(
628
- 'HitSlop Error: When width is defined, either left or right has to be defined'
629
- );
630
- }
631
-
632
- if (
633
- this.config.hitSlop.height !== undefined &&
634
- this.config.hitSlop.top !== undefined &&
635
- this.config.hitSlop.bottom !== undefined
636
- ) {
637
- throw new Error(
638
- 'HitSlop Error: Cannot define top, bottom and height at the same time'
639
- );
640
- }
641
-
642
- if (
643
- this.config.hitSlop.height !== undefined &&
644
- this.config.hitSlop.top === undefined &&
645
- this.config.hitSlop.bottom === undefined
646
- ) {
647
- throw new Error(
648
- 'HitSlop Error: When height is defined, either top or bottom has to be defined'
649
- );
650
- }
651
- }
652
-
653
- private checkHitSlop(): boolean {
654
- if (!this.config.hitSlop) {
655
- return true;
656
- }
657
-
658
- const { width, height } = this.delegate.measureView();
659
-
660
- let left = 0;
661
- let top = 0;
662
- let right: number = width;
663
- let bottom: number = height;
664
-
665
- if (this.config.hitSlop.horizontal !== undefined) {
666
- left -= this.config.hitSlop.horizontal;
667
- right += this.config.hitSlop.horizontal;
668
- }
669
-
670
- if (this.config.hitSlop.vertical !== undefined) {
671
- top -= this.config.hitSlop.vertical;
672
- bottom += this.config.hitSlop.vertical;
673
- }
674
-
675
- if (this.config.hitSlop.left !== undefined) {
676
- left = -this.config.hitSlop.left;
677
- }
678
-
679
- if (this.config.hitSlop.right !== undefined) {
680
- right = width + this.config.hitSlop.right;
681
- }
682
-
683
- if (this.config.hitSlop.top !== undefined) {
684
- top = -this.config.hitSlop.top;
685
- }
686
-
687
- if (this.config.hitSlop.bottom !== undefined) {
688
- bottom = height + this.config.hitSlop.bottom;
689
- }
690
-
691
- if (this.config.hitSlop.width !== undefined) {
692
- if (this.config.hitSlop.left !== undefined) {
693
- right = left + this.config.hitSlop.width;
694
- } else if (this.config.hitSlop.right !== undefined) {
695
- left = right - this.config.hitSlop.width;
696
- }
697
- }
698
-
699
- if (this.config.hitSlop.height !== undefined) {
700
- if (this.config.hitSlop.top !== undefined) {
701
- bottom = top + this.config.hitSlop.height;
702
- } else if (this.config.hitSlop.bottom !== undefined) {
703
- top = bottom - this.config.hitSlop.height;
704
- }
705
- }
706
-
707
- const rect = this.delegate.measureView();
708
-
709
- const lastCoords = this.tracker.getLastAbsoluteCoords();
710
-
711
- if (!lastCoords) {
712
- return false;
713
- }
714
-
715
- const offsetX: number = lastCoords.x - rect.pageX;
716
- const offsetY: number = lastCoords.y - rect.pageY;
717
-
718
- return (
719
- offsetX >= left && offsetX <= right && offsetY >= top && offsetY <= bottom
720
- );
721
- }
722
-
723
- public isButtonInConfig(mouseButton: MouseButton | undefined) {
724
- return (
725
- !mouseButton ||
726
- (!this.config.mouseButton && mouseButton === MouseButton.LEFT) ||
727
- (this.config.mouseButton && mouseButton & this.config.mouseButton)
728
- );
729
- }
730
-
731
- protected resetConfig(): void {}
732
-
733
- public onDestroy(): void {
734
- GestureHandlerOrchestrator.instance.removeHandlerFromOrchestrator(this);
735
- this.delegate.destroy(this.config);
736
- }
737
-
738
- //
739
- // Getters and setters
740
- //
741
-
742
- public get handlerTag() {
743
- return this._handlerTag;
744
- }
745
- public set handlerTag(value: number) {
746
- this._handlerTag = value;
747
- }
748
-
749
- public get config(): Config {
750
- return this._config;
751
- }
752
-
753
- public get delegate() {
754
- return this._delegate;
755
- }
756
-
757
- public get tracker() {
758
- return this._tracker;
759
- }
760
-
761
- public get state(): State {
762
- return this._state;
763
- }
764
- protected set state(value: State) {
765
- this._state = value;
766
- }
767
-
768
- public get shouldCancelWhenOutside() {
769
- return this._shouldCancelWhenOutside;
770
- }
771
- protected set shouldCancelWhenOutside(value) {
772
- this._shouldCancelWhenOutside = value;
773
- }
774
-
775
- public get enabled() {
776
- return this._enabled;
777
- }
778
- protected set enabled(value) {
779
- this._enabled = value;
780
- }
781
-
782
- public get pointerType(): PointerType {
783
- return this._pointerType;
784
- }
785
- protected set pointerType(value: PointerType) {
786
- this._pointerType = value;
787
- }
788
-
789
- public get active() {
790
- return this._active;
791
- }
792
- protected set active(value) {
793
- this._active = value;
794
- }
795
-
796
- public get awaiting() {
797
- return this._awaiting;
798
- }
799
- protected set awaiting(value) {
800
- this._awaiting = value;
801
- }
802
-
803
- public get activationIndex() {
804
- return this._activationIndex;
805
- }
806
- protected set activationIndex(value) {
807
- this._activationIndex = value;
808
- }
809
-
810
- public get shouldResetProgress() {
811
- return this._shouldResetProgress;
812
- }
813
- protected set shouldResetProgress(value) {
814
- this._shouldResetProgress = value;
815
- }
816
-
817
- public getTrackedPointersID(): number[] {
818
- return this.tracker.trackedPointersIDs;
819
- }
820
-
821
- private isFinished(): boolean {
822
- return (
823
- this.state === State.END ||
824
- this.state === State.FAILED ||
825
- this.state === State.CANCELLED
826
- );
827
- }
828
- }
829
-
830
- function invokeNullableMethod(
831
- method:
832
- | ((event: ResultEvent | ResultTouchEvent) => void)
833
- | { __getHandler: () => (event: ResultEvent | ResultTouchEvent) => void }
834
- | { __nodeConfig: { argMapping: unknown[] } },
835
- event: ResultEvent | ResultTouchEvent
836
- ): void {
837
- if (!method) {
838
- return;
839
- }
840
-
841
- if (typeof method === 'function') {
842
- method(event);
843
- return;
844
- }
845
-
846
- if ('__getHandler' in method && typeof method.__getHandler === 'function') {
847
- const handler = method.__getHandler();
848
- invokeNullableMethod(handler, event);
849
- return;
850
- }
851
-
852
- if (!('__nodeConfig' in method)) {
853
- return;
854
- }
855
-
856
- const { argMapping }: { argMapping: unknown } = method.__nodeConfig;
857
- if (!Array.isArray(argMapping)) {
858
- return;
859
- }
860
-
861
- for (const [index, [key, value]] of argMapping.entries()) {
862
- if (!(key in event.nativeEvent)) {
863
- continue;
864
- }
865
-
866
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
867
- const nativeValue = event.nativeEvent[key];
868
-
869
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
870
- if (value?.setValue) {
871
- // Reanimated API
872
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
873
- value.setValue(nativeValue);
874
- } else {
875
- // RN Animated API
876
- method.__nodeConfig.argMapping[index] = [key, nativeValue];
877
- }
878
- }
879
-
880
- return;
881
- }