@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,108 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-empty-function */
2
- import { AdaptedEvent, EventTypes } from '../interfaces';
3
-
4
- type PointerEventCallback = (event: AdaptedEvent) => void;
5
-
6
- export default abstract class EventManager<T> {
7
- protected readonly view: T;
8
- protected pointersInBounds: number[] = [];
9
- protected activePointersCounter: number;
10
-
11
- constructor(view: T) {
12
- this.view = view;
13
- this.activePointersCounter = 0;
14
- }
15
-
16
- public abstract registerListeners(): void;
17
- public abstract unregisterListeners(): void;
18
-
19
- protected abstract mapEvent(
20
- event: Event,
21
- eventType: EventTypes
22
- ): AdaptedEvent;
23
-
24
- protected onPointerDown(_event: AdaptedEvent): void {}
25
- protected onPointerAdd(_event: AdaptedEvent): void {}
26
- protected onPointerUp(_event: AdaptedEvent): void {}
27
- protected onPointerRemove(_event: AdaptedEvent): void {}
28
- protected onPointerMove(_event: AdaptedEvent): void {}
29
- protected onPointerLeave(_event: AdaptedEvent): void {} // Called only when pointer is pressed (or touching)
30
- protected onPointerEnter(_event: AdaptedEvent): void {} // Called only when pointer is pressed (or touching)
31
- protected onPointerCancel(_event: AdaptedEvent): void {
32
- // When pointer cancel is triggered and there are more pointers on the view, only one pointer is cancelled
33
- // Because we want all pointers to be cancelled by that event, we are doing it manually by reseting handler and changing activePointersCounter to 0
34
- // Events that correspond to removing the pointer (pointerup, touchend) have condition, that they don't perform any action when activePointersCounter
35
- // is equal to 0. This prevents counter from going to negative values, when pointers are removed from view after one of them has been cancelled
36
- }
37
- protected onPointerOutOfBounds(_event: AdaptedEvent): void {}
38
- protected onPointerMoveOver(_event: AdaptedEvent): void {}
39
- protected onPointerMoveOut(_event: AdaptedEvent): void {}
40
- protected onWheel(_event: AdaptedEvent): void {}
41
-
42
- public setOnPointerDown(callback: PointerEventCallback): void {
43
- this.onPointerDown = callback;
44
- }
45
- public setOnPointerAdd(callback: PointerEventCallback): void {
46
- this.onPointerAdd = callback;
47
- }
48
- public setOnPointerUp(callback: PointerEventCallback): void {
49
- this.onPointerUp = callback;
50
- }
51
- public setOnPointerRemove(callback: PointerEventCallback): void {
52
- this.onPointerRemove = callback;
53
- }
54
- public setOnPointerMove(callback: PointerEventCallback): void {
55
- this.onPointerMove = callback;
56
- }
57
- public setOnPointerLeave(callback: PointerEventCallback): void {
58
- this.onPointerLeave = callback;
59
- }
60
- public setOnPointerEnter(callback: PointerEventCallback): void {
61
- this.onPointerEnter = callback;
62
- }
63
- public setOnPointerCancel(callback: PointerEventCallback): void {
64
- this.onPointerCancel = callback;
65
- }
66
- public setOnPointerOutOfBounds(callback: PointerEventCallback): void {
67
- this.onPointerOutOfBounds = callback;
68
- }
69
- public setOnPointerMoveOver(callback: PointerEventCallback): void {
70
- this.onPointerMoveOver = callback;
71
- }
72
- public setOnPointerMoveOut(callback: PointerEventCallback): void {
73
- this.onPointerMoveOut = callback;
74
- }
75
- public setOnWheel(callback: PointerEventCallback): void {
76
- this.onWheel = callback;
77
- }
78
-
79
- protected markAsInBounds(pointerId: number): void {
80
- if (this.pointersInBounds.indexOf(pointerId) >= 0) {
81
- return;
82
- }
83
-
84
- this.pointersInBounds.push(pointerId);
85
- }
86
-
87
- protected markAsOutOfBounds(pointerId: number): void {
88
- const index: number = this.pointersInBounds.indexOf(pointerId);
89
-
90
- if (index < 0) {
91
- return;
92
- }
93
-
94
- this.pointersInBounds.splice(index, 1);
95
- }
96
-
97
- public resetManager(): void {
98
- // Reseting activePointersCounter is necessary to make gestures such as pinch work properly
99
- // There are gestures that end when there is still one active pointer (like pinch/rotation)
100
- // When these gestures end, they are reset, but they still receive events from pointer that is active
101
- // This causes trouble, since only onPointerDown registers gesture in orchestrator, and while gestures receive
102
- // Events from active pointer after they finished, next pointerdown event will be registered as additional pointer, not the first one
103
- // This casues trouble like gestures getting stuck in END state, even though they should have gone to UNDETERMINED
104
-
105
- this.activePointersCounter = 0;
106
- this.pointersInBounds = [];
107
- }
108
- }
@@ -1,26 +0,0 @@
1
- import { Config } from '../interfaces';
2
-
3
- export interface MeasureResult {
4
- pageX: number;
5
- pageY: number;
6
- width: number;
7
- height: number;
8
- }
9
-
10
- export interface GestureHandlerDelegate<TComponent, THandler> {
11
- view: TComponent;
12
-
13
- init(viewRef: number, handler: THandler): void;
14
- isPointerInBounds({ x, y }: { x: number; y: number }): boolean;
15
- measureView(): MeasureResult;
16
- reset(): void;
17
-
18
- onBegin(): void;
19
- onActivate(): void;
20
- onEnd(): void;
21
- onCancel(): void;
22
- onFail(): void;
23
- onEnabledChange(enabled: boolean): void;
24
-
25
- destroy(config: Config): void;
26
- }
@@ -1,392 +0,0 @@
1
- import { PointerType } from '../../PointerType';
2
- import { State } from '../../State';
3
-
4
- import type IGestureHandler from '../handlers/IGestureHandler';
5
- import PointerTracker from './PointerTracker';
6
-
7
- export default class GestureHandlerOrchestrator {
8
- private static _instance: GestureHandlerOrchestrator;
9
-
10
- private gestureHandlers: IGestureHandler[] = [];
11
- private awaitingHandlers: IGestureHandler[] = [];
12
- private awaitingHandlersTags: Set<number> = new Set();
13
-
14
- private handlingChangeSemaphore = 0;
15
- private activationIndex = 0;
16
-
17
- // Private beacuse of Singleton
18
- // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function
19
- private constructor() {}
20
-
21
- private scheduleFinishedHandlersCleanup(): void {
22
- if (this.handlingChangeSemaphore === 0) {
23
- this.cleanupFinishedHandlers();
24
- }
25
- }
26
-
27
- private cleanHandler(handler: IGestureHandler): void {
28
- handler.reset();
29
- handler.active = false;
30
- handler.awaiting = false;
31
- handler.activationIndex = Number.MAX_VALUE;
32
- }
33
-
34
- public removeHandlerFromOrchestrator(handler: IGestureHandler): void {
35
- const indexInGestureHandlers = this.gestureHandlers.indexOf(handler);
36
- const indexInAwaitingHandlers = this.awaitingHandlers.indexOf(handler);
37
-
38
- if (indexInGestureHandlers >= 0) {
39
- this.gestureHandlers.splice(indexInGestureHandlers, 1);
40
- }
41
-
42
- if (indexInAwaitingHandlers >= 0) {
43
- this.awaitingHandlers.splice(indexInAwaitingHandlers, 1);
44
- this.awaitingHandlersTags.delete(handler.handlerTag);
45
- }
46
- }
47
-
48
- private cleanupFinishedHandlers(): void {
49
- const handlersToRemove = new Set<IGestureHandler>();
50
-
51
- for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {
52
- const handler = this.gestureHandlers[i];
53
-
54
- if (this.isFinished(handler.state) && !handler.awaiting) {
55
- this.cleanHandler(handler);
56
- handlersToRemove.add(handler);
57
- }
58
- }
59
-
60
- this.gestureHandlers = this.gestureHandlers.filter(
61
- (handler) => !handlersToRemove.has(handler)
62
- );
63
- }
64
-
65
- private hasOtherHandlerToWaitFor(handler: IGestureHandler): boolean {
66
- const hasToWaitFor = (otherHandler: IGestureHandler) => {
67
- return (
68
- !this.isFinished(otherHandler.state) &&
69
- this.shouldHandlerWaitForOther(handler, otherHandler)
70
- );
71
- };
72
-
73
- return this.gestureHandlers.some(hasToWaitFor);
74
- }
75
-
76
- private shouldBeCancelledByFinishedHandler(
77
- handler: IGestureHandler
78
- ): boolean {
79
- const shouldBeCancelled = (otherHandler: IGestureHandler) => {
80
- return (
81
- this.shouldHandlerWaitForOther(handler, otherHandler) &&
82
- otherHandler.state === State.END
83
- );
84
- };
85
-
86
- return this.gestureHandlers.some(shouldBeCancelled);
87
- }
88
-
89
- private tryActivate(handler: IGestureHandler): void {
90
- if (this.shouldBeCancelledByFinishedHandler(handler)) {
91
- handler.cancel();
92
- return;
93
- }
94
-
95
- if (this.hasOtherHandlerToWaitFor(handler)) {
96
- this.addAwaitingHandler(handler);
97
- return;
98
- }
99
-
100
- const handlerState = handler.state;
101
-
102
- if (handlerState === State.CANCELLED || handlerState === State.FAILED) {
103
- return;
104
- }
105
-
106
- if (this.shouldActivate(handler)) {
107
- this.makeActive(handler);
108
- return;
109
- }
110
-
111
- if (handlerState === State.ACTIVE) {
112
- handler.fail();
113
- return;
114
- }
115
-
116
- if (handlerState === State.BEGAN) {
117
- handler.cancel();
118
- }
119
- }
120
-
121
- private shouldActivate(handler: IGestureHandler): boolean {
122
- const shouldBeCancelledBy = (otherHandler: IGestureHandler) => {
123
- return this.shouldHandlerBeCancelledBy(handler, otherHandler);
124
- };
125
-
126
- return !this.gestureHandlers.some(shouldBeCancelledBy);
127
- }
128
-
129
- private cleanupAwaitingHandlers(handler: IGestureHandler): void {
130
- const shouldWait = (otherHandler: IGestureHandler) => {
131
- return (
132
- !otherHandler.awaiting &&
133
- this.shouldHandlerWaitForOther(otherHandler, handler)
134
- );
135
- };
136
-
137
- for (const otherHandler of this.awaitingHandlers) {
138
- if (shouldWait(otherHandler)) {
139
- this.cleanHandler(otherHandler);
140
- this.awaitingHandlersTags.delete(otherHandler.handlerTag);
141
- }
142
- }
143
-
144
- this.awaitingHandlers = this.awaitingHandlers.filter((otherHandler) =>
145
- this.awaitingHandlersTags.has(otherHandler.handlerTag)
146
- );
147
- }
148
-
149
- public onHandlerStateChange(
150
- handler: IGestureHandler,
151
- newState: State,
152
- oldState: State,
153
- sendIfDisabled?: boolean
154
- ): void {
155
- if (!handler.enabled && !sendIfDisabled) {
156
- return;
157
- }
158
-
159
- this.handlingChangeSemaphore += 1;
160
-
161
- if (this.isFinished(newState)) {
162
- for (const otherHandler of this.awaitingHandlers) {
163
- if (
164
- !this.shouldHandlerWaitForOther(otherHandler, handler) ||
165
- !this.awaitingHandlersTags.has(otherHandler.handlerTag)
166
- ) {
167
- continue;
168
- }
169
-
170
- if (newState !== State.END) {
171
- this.tryActivate(otherHandler);
172
- continue;
173
- }
174
-
175
- otherHandler.cancel();
176
-
177
- if (otherHandler.state === State.END) {
178
- // Handle edge case, where discrete gestures end immediately after activation thus
179
- // their state is set to END and when the gesture they are waiting for activates they
180
- // should be cancelled, however `cancel` was never sent as gestures were already in the END state.
181
- // Send synthetic BEGAN -> CANCELLED to properly handle JS logic
182
- otherHandler.sendEvent(State.CANCELLED, State.BEGAN);
183
- }
184
-
185
- otherHandler.awaiting = false;
186
- }
187
- }
188
-
189
- if (newState === State.ACTIVE) {
190
- this.tryActivate(handler);
191
- } else if (oldState === State.ACTIVE || oldState === State.END) {
192
- if (handler.active) {
193
- handler.sendEvent(newState, oldState);
194
- } else if (
195
- oldState === State.ACTIVE &&
196
- (newState === State.CANCELLED || newState === State.FAILED)
197
- ) {
198
- handler.sendEvent(newState, State.BEGAN);
199
- }
200
- } else if (
201
- oldState !== State.UNDETERMINED ||
202
- newState !== State.CANCELLED
203
- ) {
204
- handler.sendEvent(newState, oldState);
205
- }
206
-
207
- this.handlingChangeSemaphore -= 1;
208
-
209
- this.scheduleFinishedHandlersCleanup();
210
-
211
- if (!this.awaitingHandlers.includes(handler)) {
212
- this.cleanupAwaitingHandlers(handler);
213
- }
214
- }
215
-
216
- private makeActive(handler: IGestureHandler): void {
217
- const currentState = handler.state;
218
-
219
- handler.active = true;
220
- handler.shouldResetProgress = true;
221
- handler.activationIndex = this.activationIndex++;
222
-
223
- for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {
224
- if (this.shouldHandlerBeCancelledBy(this.gestureHandlers[i], handler)) {
225
- this.gestureHandlers[i].cancel();
226
- }
227
- }
228
-
229
- for (const otherHandler of this.awaitingHandlers) {
230
- if (this.shouldHandlerBeCancelledBy(otherHandler, handler)) {
231
- otherHandler.awaiting = false;
232
- }
233
- }
234
-
235
- handler.sendEvent(State.ACTIVE, State.BEGAN);
236
-
237
- if (currentState !== State.ACTIVE) {
238
- handler.sendEvent(State.END, State.ACTIVE);
239
- if (currentState !== State.END) {
240
- handler.sendEvent(State.UNDETERMINED, State.END);
241
- }
242
- }
243
-
244
- if (!handler.awaiting) {
245
- return;
246
- }
247
-
248
- handler.awaiting = false;
249
-
250
- this.awaitingHandlers = this.awaitingHandlers.filter(
251
- (otherHandler) => otherHandler !== handler
252
- );
253
- }
254
-
255
- private addAwaitingHandler(handler: IGestureHandler): void {
256
- if (this.awaitingHandlers.includes(handler)) {
257
- return;
258
- }
259
-
260
- this.awaitingHandlers.push(handler);
261
- this.awaitingHandlersTags.add(handler.handlerTag);
262
-
263
- handler.awaiting = true;
264
- handler.activationIndex = this.activationIndex++;
265
- }
266
-
267
- public recordHandlerIfNotPresent(handler: IGestureHandler): void {
268
- if (this.gestureHandlers.includes(handler)) {
269
- return;
270
- }
271
-
272
- this.gestureHandlers.push(handler);
273
-
274
- handler.active = false;
275
- handler.awaiting = false;
276
- handler.activationIndex = Number.MAX_SAFE_INTEGER;
277
- }
278
-
279
- private shouldHandlerWaitForOther(
280
- handler: IGestureHandler,
281
- otherHandler: IGestureHandler
282
- ): boolean {
283
- return (
284
- handler !== otherHandler &&
285
- (handler.shouldWaitForHandlerFailure(otherHandler) ||
286
- otherHandler.shouldRequireToWaitForFailure(handler))
287
- );
288
- }
289
-
290
- private canRunSimultaneously(
291
- gh1: IGestureHandler,
292
- gh2: IGestureHandler
293
- ): boolean {
294
- return (
295
- gh1 === gh2 ||
296
- gh1.shouldRecognizeSimultaneously(gh2) ||
297
- gh2.shouldRecognizeSimultaneously(gh1)
298
- );
299
- }
300
-
301
- private shouldHandlerBeCancelledBy(
302
- handler: IGestureHandler,
303
- otherHandler: IGestureHandler
304
- ): boolean {
305
- if (this.canRunSimultaneously(handler, otherHandler)) {
306
- return false;
307
- }
308
-
309
- if (handler.awaiting || handler.state === State.ACTIVE) {
310
- return handler.shouldBeCancelledByOther(otherHandler);
311
- }
312
-
313
- const handlerPointers: number[] = handler.getTrackedPointersID();
314
- const otherPointers: number[] = otherHandler.getTrackedPointersID();
315
-
316
- if (
317
- !PointerTracker.shareCommonPointers(handlerPointers, otherPointers) &&
318
- handler.delegate.view !== otherHandler.delegate.view
319
- ) {
320
- return this.checkOverlap(handler, otherHandler);
321
- }
322
-
323
- return true;
324
- }
325
-
326
- private checkOverlap(
327
- handler: IGestureHandler,
328
- otherHandler: IGestureHandler
329
- ): boolean {
330
- // If handlers don't have common pointers, default return value is false.
331
- // However, if at least on pointer overlaps with both handlers, we return true
332
- // This solves issue in overlapping parents example
333
-
334
- // TODO: Find better way to handle that issue, for example by activation order and handler cancelling
335
-
336
- const isPointerWithinBothBounds = (pointer: number) => {
337
- const point = handler.tracker.getLastAbsoluteCoords(pointer);
338
-
339
- return (
340
- point &&
341
- handler.delegate.isPointerInBounds(point) &&
342
- otherHandler.delegate.isPointerInBounds(point)
343
- );
344
- };
345
-
346
- return handler.getTrackedPointersID().some(isPointerWithinBothBounds);
347
- }
348
-
349
- private isFinished(state: State): boolean {
350
- return (
351
- state === State.END || state === State.FAILED || state === State.CANCELLED
352
- );
353
- }
354
-
355
- // This function is called when handler receives touchdown event
356
- // If handler is using mouse or pen as a pointer and any handler receives touch event,
357
- // mouse/pen event dissappears - it doesn't send onPointerCancel nor onPointerUp (and others)
358
- // This became a problem because handler was left at active state without any signal to end or fail
359
- // To handle this, when new touch event is received, we loop through active handlers and check which type of
360
- // pointer they're using. If there are any handler with mouse/pen as a pointer, we cancel them
361
- public cancelMouseAndPenGestures(currentHandler: IGestureHandler): void {
362
- this.gestureHandlers.forEach((handler: IGestureHandler) => {
363
- if (
364
- handler.pointerType !== PointerType.MOUSE &&
365
- handler.pointerType !== PointerType.STYLUS
366
- ) {
367
- return;
368
- }
369
-
370
- if (handler !== currentHandler) {
371
- handler.cancel();
372
- } else {
373
- // Handler that received touch event should have its pointer tracker reset
374
- // This allows handler to smoothly change from mouse/pen to touch
375
- // The drawback is, that when we try to use mouse/pen one more time, it doesn't send onPointerDown at the first time
376
- // so it is required to click two times to get handler to work
377
- //
378
- // However, handler will receive manually created onPointerEnter that is triggered in EventManager in onPointerMove method.
379
- // There may be possibility to use that fact to make handler respond properly to first mouse click
380
- handler.tracker.resetTracker();
381
- }
382
- });
383
- }
384
-
385
- public static get instance(): GestureHandlerOrchestrator {
386
- if (!GestureHandlerOrchestrator._instance) {
387
- GestureHandlerOrchestrator._instance = new GestureHandlerOrchestrator();
388
- }
389
-
390
- return GestureHandlerOrchestrator._instance;
391
- }
392
- }