@amazon-devices/react-native-gesture-handler 4.0.1 → 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 (507) hide show
  1. package/kepler-compatibility.json +2 -1
  2. package/lib/commonjs/index.js +0 -268
  3. package/package.json +1 -1
  4. package/src/index.ts +0 -168
  5. package/README.md +0 -70
  6. package/lib/commonjs/ActionType.js +0 -15
  7. package/lib/commonjs/Directions.js +0 -31
  8. package/lib/commonjs/EnableNewWebImplementation.js +0 -40
  9. package/lib/commonjs/GestureHandlerRootViewContext.js +0 -10
  10. package/lib/commonjs/PlatformConstants.js +0 -9
  11. package/lib/commonjs/PlatformConstants.kepler.js +0 -12
  12. package/lib/commonjs/PlatformConstants.web.js +0 -12
  13. package/lib/commonjs/PointerType.js +0 -15
  14. package/lib/commonjs/RNGestureHandlerModule.js +0 -12
  15. package/lib/commonjs/RNGestureHandlerModule.kepler.js +0 -29
  16. package/lib/commonjs/RNGestureHandlerModule.web.js +0 -95
  17. package/lib/commonjs/RNGestureHandlerModule.windows.js +0 -56
  18. package/lib/commonjs/RNRenderer.js +0 -14
  19. package/lib/commonjs/RNRenderer.web.js +0 -10
  20. package/lib/commonjs/State.js +0 -19
  21. package/lib/commonjs/TouchEventType.js +0 -16
  22. package/lib/commonjs/components/DrawerLayout.js +0 -548
  23. package/lib/commonjs/components/GestureButtons.js +0 -212
  24. package/lib/commonjs/components/GestureButtonsProps.js +0 -6
  25. package/lib/commonjs/components/GestureComponents.js +0 -106
  26. package/lib/commonjs/components/GestureComponents.web.js +0 -39
  27. package/lib/commonjs/components/GestureHandlerButton.js +0 -10
  28. package/lib/commonjs/components/GestureHandlerButton.web.js +0 -16
  29. package/lib/commonjs/components/GestureHandlerRootView.android.js +0 -36
  30. package/lib/commonjs/components/GestureHandlerRootView.js +0 -35
  31. package/lib/commonjs/components/GestureHandlerRootView.kepler.js +0 -21
  32. package/lib/commonjs/components/GestureHandlerRootView.web.js +0 -30
  33. package/lib/commonjs/components/Pressable/Pressable.js +0 -274
  34. package/lib/commonjs/components/Pressable/PressableProps.js +0 -6
  35. package/lib/commonjs/components/Pressable/StateMachine.js +0 -44
  36. package/lib/commonjs/components/Pressable/index.js +0 -14
  37. package/lib/commonjs/components/Pressable/stateDefinitions.js +0 -88
  38. package/lib/commonjs/components/Pressable/utils.js +0 -92
  39. package/lib/commonjs/components/ReanimatedDrawerLayout.js +0 -357
  40. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -337
  41. package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -12
  42. package/lib/commonjs/components/ReanimatedSwipeable/index.js +0 -21
  43. package/lib/commonjs/components/Swipeable.js +0 -370
  44. package/lib/commonjs/components/Text.js +0 -60
  45. package/lib/commonjs/components/gestureHandlerRootHOC.js +0 -37
  46. package/lib/commonjs/components/touchables/ExtraButtonProps.js +0 -2
  47. package/lib/commonjs/components/touchables/GenericTouchable.js +0 -245
  48. package/lib/commonjs/components/touchables/GenericTouchableProps.js +0 -6
  49. package/lib/commonjs/components/touchables/TouchableHighlight.js +0 -93
  50. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +0 -84
  51. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +0 -13
  52. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +0 -6
  53. package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -65
  54. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -33
  55. package/lib/commonjs/components/touchables/index.js +0 -35
  56. package/lib/commonjs/components/utils.js +0 -17
  57. package/lib/commonjs/findNodeHandle.js +0 -9
  58. package/lib/commonjs/findNodeHandle.web.js +0 -39
  59. package/lib/commonjs/getShadowNodeFromRef.js +0 -51
  60. package/lib/commonjs/getShadowNodeFromRef.web.js +0 -14
  61. package/lib/commonjs/ghQueueMicrotask.js +0 -10
  62. package/lib/commonjs/handlers/FlingGestureHandler.js +0 -31
  63. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +0 -46
  64. package/lib/commonjs/handlers/GestureHandlerEventPayload.js +0 -6
  65. package/lib/commonjs/handlers/LongPressGestureHandler.js +0 -33
  66. package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -32
  67. package/lib/commonjs/handlers/PanGestureHandler.js +0 -112
  68. package/lib/commonjs/handlers/PinchGestureHandler.js +0 -29
  69. package/lib/commonjs/handlers/PressabilityDebugView.js +0 -13
  70. package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -11
  71. package/lib/commonjs/handlers/RotationGestureHandler.js +0 -29
  72. package/lib/commonjs/handlers/TapGestureHandler.js +0 -33
  73. package/lib/commonjs/handlers/createHandler.js +0 -405
  74. package/lib/commonjs/handlers/createNativeWrapper.js +0 -77
  75. package/lib/commonjs/handlers/customDirectEventTypes.js +0 -13
  76. package/lib/commonjs/handlers/customDirectEventTypes.web.js +0 -10
  77. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -27
  78. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +0 -6
  79. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +0 -32
  80. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +0 -41
  81. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +0 -67
  82. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +0 -20
  83. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +0 -125
  84. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -22
  85. package/lib/commonjs/handlers/gestures/GestureDetector/types.js +0 -6
  86. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +0 -66
  87. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -143
  88. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -47
  89. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +0 -41
  90. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -45
  91. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +0 -143
  92. package/lib/commonjs/handlers/gestures/eventReceiver.js +0 -117
  93. package/lib/commonjs/handlers/gestures/flingGesture.js +0 -37
  94. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +0 -80
  95. package/lib/commonjs/handlers/gestures/gesture.js +0 -338
  96. package/lib/commonjs/handlers/gestures/gestureComposition.js +0 -90
  97. package/lib/commonjs/handlers/gestures/gestureObjects.js +0 -132
  98. package/lib/commonjs/handlers/gestures/gestureStateManager.js +0 -70
  99. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +0 -28
  100. package/lib/commonjs/handlers/gestures/hoverGesture.js +0 -57
  101. package/lib/commonjs/handlers/gestures/longPressGesture.js +0 -46
  102. package/lib/commonjs/handlers/gestures/manualGesture.js +0 -25
  103. package/lib/commonjs/handlers/gestures/nativeGesture.js +0 -34
  104. package/lib/commonjs/handlers/gestures/panGesture.js +0 -197
  105. package/lib/commonjs/handlers/gestures/pinchGesture.js +0 -38
  106. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +0 -29
  107. package/lib/commonjs/handlers/gestures/rotationGesture.js +0 -38
  108. package/lib/commonjs/handlers/gestures/tapGesture.js +0 -87
  109. package/lib/commonjs/handlers/getNextHandlerTag.js +0 -11
  110. package/lib/commonjs/handlers/handlersRegistry.js +0 -50
  111. package/lib/commonjs/handlers/utils.js +0 -69
  112. package/lib/commonjs/init.js +0 -25
  113. package/lib/commonjs/jestUtils/index.js +0 -19
  114. package/lib/commonjs/jestUtils/jestUtils.js +0 -316
  115. package/lib/commonjs/mocks/Pressable.js +0 -13
  116. package/lib/commonjs/mocks/mocks.js +0 -70
  117. package/lib/commonjs/mocks.js +0 -61
  118. package/lib/commonjs/mountRegistry.js +0 -37
  119. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +0 -9
  120. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -20
  121. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  122. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -17
  123. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  124. package/lib/commonjs/typeUtils.js +0 -2
  125. package/lib/commonjs/utils.js +0 -95
  126. package/lib/commonjs/web/Gestures.js +0 -48
  127. package/lib/commonjs/web/constants.js +0 -9
  128. package/lib/commonjs/web/detectors/RotationGestureDetector.js +0 -124
  129. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +0 -111
  130. package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -143
  131. package/lib/commonjs/web/handlers/GestureHandler.js +0 -689
  132. package/lib/commonjs/web/handlers/HoverGestureHandler.js +0 -45
  133. package/lib/commonjs/web/handlers/IGestureHandler.js +0 -2
  134. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -146
  135. package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -38
  136. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -141
  137. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -399
  138. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -122
  139. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -129
  140. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -215
  141. package/lib/commonjs/web/interfaces.js +0 -32
  142. package/lib/commonjs/web/tools/CircularBuffer.js +0 -40
  143. package/lib/commonjs/web/tools/EventManager.js +0 -94
  144. package/lib/commonjs/web/tools/GestureHandlerDelegate.js +0 -6
  145. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +0 -267
  146. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -165
  147. package/lib/commonjs/web/tools/InteractionManager.js +0 -96
  148. package/lib/commonjs/web/tools/KeyboardEventManager.js +0 -108
  149. package/lib/commonjs/web/tools/LeastSquareSolver.js +0 -159
  150. package/lib/commonjs/web/tools/NodeManager.js +0 -39
  151. package/lib/commonjs/web/tools/PointerEventManager.js +0 -189
  152. package/lib/commonjs/web/tools/PointerTracker.js +0 -192
  153. package/lib/commonjs/web/tools/Vector.js +0 -37
  154. package/lib/commonjs/web/tools/VelocityTracker.js +0 -85
  155. package/lib/commonjs/web/tools/WheelEventManager.js +0 -55
  156. package/lib/commonjs/web/utils.js +0 -235
  157. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +0 -93
  158. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +0 -43
  159. package/lib/commonjs/web_hammer/Errors.js +0 -13
  160. package/lib/commonjs/web_hammer/FlingGestureHandler.js +0 -139
  161. package/lib/commonjs/web_hammer/GestureHandler.js +0 -484
  162. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +0 -45
  163. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +0 -57
  164. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +0 -57
  165. package/lib/commonjs/web_hammer/NodeManager.js +0 -41
  166. package/lib/commonjs/web_hammer/PanGestureHandler.js +0 -167
  167. package/lib/commonjs/web_hammer/PinchGestureHandler.js +0 -31
  168. package/lib/commonjs/web_hammer/PressGestureHandler.js +0 -153
  169. package/lib/commonjs/web_hammer/RotationGestureHandler.js +0 -32
  170. package/lib/commonjs/web_hammer/TapGestureHandler.js +0 -165
  171. package/lib/commonjs/web_hammer/constants.js +0 -51
  172. package/lib/commonjs/web_hammer/utils.js +0 -32
  173. package/lib/module/ActionType.js +0 -11
  174. package/lib/module/Directions.js +0 -27
  175. package/lib/module/EnableNewWebImplementation.js +0 -34
  176. package/lib/module/GestureHandlerRootViewContext.js +0 -5
  177. package/lib/module/PlatformConstants.js +0 -5
  178. package/lib/module/PlatformConstants.kepler.js +0 -8
  179. package/lib/module/PlatformConstants.web.js +0 -8
  180. package/lib/module/PointerType.js +0 -11
  181. package/lib/module/RNGestureHandlerModule.js +0 -8
  182. package/lib/module/RNGestureHandlerModule.kepler.js +0 -25
  183. package/lib/module/RNGestureHandlerModule.web.js +0 -90
  184. package/lib/module/RNGestureHandlerModule.windows.js +0 -50
  185. package/lib/module/RNRenderer.js +0 -6
  186. package/lib/module/RNRenderer.web.js +0 -6
  187. package/lib/module/State.js +0 -15
  188. package/lib/module/TouchEventType.js +0 -12
  189. package/lib/module/components/DrawerLayout.js +0 -541
  190. package/lib/module/components/GestureButtons.js +0 -200
  191. package/lib/module/components/GestureButtonsProps.js +0 -4
  192. package/lib/module/components/GestureComponents.js +0 -100
  193. package/lib/module/components/GestureComponents.web.js +0 -32
  194. package/lib/module/components/GestureHandlerButton.js +0 -5
  195. package/lib/module/components/GestureHandlerButton.web.js +0 -11
  196. package/lib/module/components/GestureHandlerRootView.android.js +0 -30
  197. package/lib/module/components/GestureHandlerRootView.js +0 -29
  198. package/lib/module/components/GestureHandlerRootView.kepler.js +0 -15
  199. package/lib/module/components/GestureHandlerRootView.web.js +0 -24
  200. package/lib/module/components/Pressable/Pressable.js +0 -268
  201. package/lib/module/components/Pressable/PressableProps.js +0 -4
  202. package/lib/module/components/Pressable/StateMachine.js +0 -40
  203. package/lib/module/components/Pressable/index.js +0 -4
  204. package/lib/module/components/Pressable/stateDefinitions.js +0 -83
  205. package/lib/module/components/Pressable/utils.js +0 -84
  206. package/lib/module/components/ReanimatedDrawerLayout.js +0 -352
  207. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -332
  208. package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -8
  209. package/lib/module/components/ReanimatedSwipeable/index.js +0 -5
  210. package/lib/module/components/Swipeable.js +0 -364
  211. package/lib/module/components/Text.js +0 -55
  212. package/lib/module/components/gestureHandlerRootHOC.js +0 -33
  213. package/lib/module/components/touchables/ExtraButtonProps.js +0 -2
  214. package/lib/module/components/touchables/GenericTouchable.js +0 -239
  215. package/lib/module/components/touchables/GenericTouchableProps.js +0 -4
  216. package/lib/module/components/touchables/TouchableHighlight.js +0 -87
  217. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +0 -77
  218. package/lib/module/components/touchables/TouchableNativeFeedback.js +0 -10
  219. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +0 -4
  220. package/lib/module/components/touchables/TouchableOpacity.js +0 -59
  221. package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -27
  222. package/lib/module/components/touchables/index.js +0 -7
  223. package/lib/module/components/utils.js +0 -13
  224. package/lib/module/findNodeHandle.js +0 -5
  225. package/lib/module/findNodeHandle.web.js +0 -35
  226. package/lib/module/getShadowNodeFromRef.js +0 -47
  227. package/lib/module/getShadowNodeFromRef.web.js +0 -10
  228. package/lib/module/ghQueueMicrotask.js +0 -6
  229. package/lib/module/handlers/FlingGestureHandler.js +0 -26
  230. package/lib/module/handlers/ForceTouchGestureHandler.js +0 -41
  231. package/lib/module/handlers/GestureHandlerEventPayload.js +0 -4
  232. package/lib/module/handlers/LongPressGestureHandler.js +0 -28
  233. package/lib/module/handlers/NativeViewGestureHandler.js +0 -27
  234. package/lib/module/handlers/PanGestureHandler.js +0 -105
  235. package/lib/module/handlers/PinchGestureHandler.js +0 -25
  236. package/lib/module/handlers/PressabilityDebugView.js +0 -5
  237. package/lib/module/handlers/PressabilityDebugView.web.js +0 -7
  238. package/lib/module/handlers/RotationGestureHandler.js +0 -25
  239. package/lib/module/handlers/TapGestureHandler.js +0 -28
  240. package/lib/module/handlers/createHandler.js +0 -399
  241. package/lib/module/handlers/createNativeWrapper.js +0 -74
  242. package/lib/module/handlers/customDirectEventTypes.js +0 -5
  243. package/lib/module/handlers/customDirectEventTypes.web.js +0 -7
  244. package/lib/module/handlers/gestureHandlerCommon.js +0 -26
  245. package/lib/module/handlers/gestureHandlerTypesCompat.js +0 -4
  246. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +0 -26
  247. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +0 -36
  248. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +0 -62
  249. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -15
  250. package/lib/module/handlers/gestures/GestureDetector/index.js +0 -117
  251. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
  252. package/lib/module/handlers/gestures/GestureDetector/types.js +0 -4
  253. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +0 -61
  254. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -139
  255. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -43
  256. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +0 -37
  257. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -40
  258. package/lib/module/handlers/gestures/GestureDetector/utils.js +0 -134
  259. package/lib/module/handlers/gestures/eventReceiver.js +0 -110
  260. package/lib/module/handlers/gestures/flingGesture.js +0 -32
  261. package/lib/module/handlers/gestures/forceTouchGesture.js +0 -76
  262. package/lib/module/handlers/gestures/gesture.js +0 -332
  263. package/lib/module/handlers/gestures/gestureComposition.js +0 -83
  264. package/lib/module/handlers/gestures/gestureObjects.js +0 -129
  265. package/lib/module/handlers/gestures/gestureStateManager.js +0 -66
  266. package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -23
  267. package/lib/module/handlers/gestures/hoverGesture.js +0 -52
  268. package/lib/module/handlers/gestures/longPressGesture.js +0 -41
  269. package/lib/module/handlers/gestures/manualGesture.js +0 -20
  270. package/lib/module/handlers/gestures/nativeGesture.js +0 -29
  271. package/lib/module/handlers/gestures/panGesture.js +0 -192
  272. package/lib/module/handlers/gestures/pinchGesture.js +0 -33
  273. package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -26
  274. package/lib/module/handlers/gestures/rotationGesture.js +0 -33
  275. package/lib/module/handlers/gestures/tapGesture.js +0 -82
  276. package/lib/module/handlers/getNextHandlerTag.js +0 -7
  277. package/lib/module/handlers/handlersRegistry.js +0 -39
  278. package/lib/module/handlers/utils.js +0 -61
  279. package/lib/module/index.js +0 -31
  280. package/lib/module/init.js +0 -19
  281. package/lib/module/jestUtils/index.js +0 -4
  282. package/lib/module/jestUtils/jestUtils.js +0 -311
  283. package/lib/module/mocks/Pressable.js +0 -4
  284. package/lib/module/mocks/mocks.js +0 -64
  285. package/lib/module/mocks.js +0 -57
  286. package/lib/module/mountRegistry.js +0 -32
  287. package/lib/module/specs/NativeRNGestureHandlerModule.js +0 -5
  288. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -14
  289. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  290. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -11
  291. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  292. package/lib/module/typeUtils.js +0 -2
  293. package/lib/module/utils.js +0 -81
  294. package/lib/module/web/Gestures.js +0 -42
  295. package/lib/module/web/constants.js +0 -5
  296. package/lib/module/web/detectors/RotationGestureDetector.js +0 -119
  297. package/lib/module/web/detectors/ScaleGestureDetector.js +0 -106
  298. package/lib/module/web/handlers/FlingGestureHandler.js +0 -137
  299. package/lib/module/web/handlers/GestureHandler.js +0 -682
  300. package/lib/module/web/handlers/HoverGestureHandler.js +0 -39
  301. package/lib/module/web/handlers/IGestureHandler.js +0 -2
  302. package/lib/module/web/handlers/LongPressGestureHandler.js +0 -140
  303. package/lib/module/web/handlers/ManualGestureHandler.js +0 -32
  304. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -135
  305. package/lib/module/web/handlers/PanGestureHandler.js +0 -393
  306. package/lib/module/web/handlers/PinchGestureHandler.js +0 -116
  307. package/lib/module/web/handlers/RotationGestureHandler.js +0 -123
  308. package/lib/module/web/handlers/TapGestureHandler.js +0 -209
  309. package/lib/module/web/interfaces.js +0 -28
  310. package/lib/module/web/tools/CircularBuffer.js +0 -35
  311. package/lib/module/web/tools/EventManager.js +0 -89
  312. package/lib/module/web/tools/GestureHandlerDelegate.js +0 -4
  313. package/lib/module/web/tools/GestureHandlerOrchestrator.js +0 -261
  314. package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -159
  315. package/lib/module/web/tools/InteractionManager.js +0 -91
  316. package/lib/module/web/tools/KeyboardEventManager.js +0 -102
  317. package/lib/module/web/tools/LeastSquareSolver.js +0 -154
  318. package/lib/module/web/tools/NodeManager.js +0 -34
  319. package/lib/module/web/tools/PointerEventManager.js +0 -183
  320. package/lib/module/web/tools/PointerTracker.js +0 -186
  321. package/lib/module/web/tools/Vector.js +0 -32
  322. package/lib/module/web/tools/VelocityTracker.js +0 -79
  323. package/lib/module/web/tools/WheelEventManager.js +0 -49
  324. package/lib/module/web/utils.js +0 -223
  325. package/lib/module/web_hammer/DiscreteGestureHandler.js +0 -87
  326. package/lib/module/web_hammer/DraggingGestureHandler.js +0 -37
  327. package/lib/module/web_hammer/Errors.js +0 -8
  328. package/lib/module/web_hammer/FlingGestureHandler.js +0 -133
  329. package/lib/module/web_hammer/GestureHandler.js +0 -478
  330. package/lib/module/web_hammer/IndiscreteGestureHandler.js +0 -41
  331. package/lib/module/web_hammer/LongPressGestureHandler.js +0 -51
  332. package/lib/module/web_hammer/NativeViewGestureHandler.js +0 -51
  333. package/lib/module/web_hammer/NodeManager.js +0 -33
  334. package/lib/module/web_hammer/PanGestureHandler.js +0 -162
  335. package/lib/module/web_hammer/PinchGestureHandler.js +0 -26
  336. package/lib/module/web_hammer/PressGestureHandler.js +0 -148
  337. package/lib/module/web_hammer/RotationGestureHandler.js +0 -27
  338. package/lib/module/web_hammer/TapGestureHandler.js +0 -160
  339. package/lib/module/web_hammer/constants.js +0 -46
  340. package/lib/module/web_hammer/utils.js +0 -21
  341. package/src/ActionType.ts +0 -9
  342. package/src/Directions.ts +0 -26
  343. package/src/EnableNewWebImplementation.ts +0 -53
  344. package/src/GestureHandlerRootViewContext.ts +0 -3
  345. package/src/PlatformConstants.kepler.ts +0 -5
  346. package/src/PlatformConstants.ts +0 -8
  347. package/src/PlatformConstants.web.ts +0 -5
  348. package/src/PointerType.ts +0 -7
  349. package/src/RNGestureHandlerModule.kepler.ts +0 -63
  350. package/src/RNGestureHandlerModule.ts +0 -5
  351. package/src/RNGestureHandlerModule.web.ts +0 -124
  352. package/src/RNGestureHandlerModule.windows.ts +0 -62
  353. package/src/RNRenderer.ts +0 -3
  354. package/src/RNRenderer.web.ts +0 -3
  355. package/src/State.ts +0 -13
  356. package/src/TouchEventType.ts +0 -11
  357. package/src/components/DrawerLayout.tsx +0 -788
  358. package/src/components/GestureButtons.tsx +0 -272
  359. package/src/components/GestureButtonsProps.ts +0 -156
  360. package/src/components/GestureComponents.tsx +0 -148
  361. package/src/components/GestureComponents.web.tsx +0 -41
  362. package/src/components/GestureHandlerButton.tsx +0 -5
  363. package/src/components/GestureHandlerButton.web.tsx +0 -6
  364. package/src/components/GestureHandlerRootView.android.tsx +0 -32
  365. package/src/components/GestureHandlerRootView.kepler.tsx +0 -18
  366. package/src/components/GestureHandlerRootView.tsx +0 -28
  367. package/src/components/GestureHandlerRootView.web.tsx +0 -22
  368. package/src/components/Pressable/Pressable.tsx +0 -401
  369. package/src/components/Pressable/PressableProps.tsx +0 -174
  370. package/src/components/Pressable/StateMachine.tsx +0 -57
  371. package/src/components/Pressable/index.ts +0 -5
  372. package/src/components/Pressable/stateDefinitions.ts +0 -126
  373. package/src/components/Pressable/utils.ts +0 -140
  374. package/src/components/ReanimatedDrawerLayout.tsx +0 -754
  375. package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +0 -607
  376. package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +0 -199
  377. package/src/components/ReanimatedSwipeable/index.ts +0 -6
  378. package/src/components/Swipeable.tsx +0 -595
  379. package/src/components/Text.tsx +0 -77
  380. package/src/components/gestureHandlerRootHOC.tsx +0 -33
  381. package/src/components/touchables/ExtraButtonProps.ts +0 -7
  382. package/src/components/touchables/GenericTouchable.tsx +0 -275
  383. package/src/components/touchables/GenericTouchableProps.ts +0 -28
  384. package/src/components/touchables/TouchableHighlight.tsx +0 -118
  385. package/src/components/touchables/TouchableNativeFeedback.android.tsx +0 -83
  386. package/src/components/touchables/TouchableNativeFeedback.tsx +0 -8
  387. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +0 -10
  388. package/src/components/touchables/TouchableOpacity.tsx +0 -78
  389. package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -39
  390. package/src/components/touchables/index.ts +0 -7
  391. package/src/components/utils.ts +0 -26
  392. package/src/findNodeHandle.ts +0 -3
  393. package/src/findNodeHandle.web.ts +0 -41
  394. package/src/getShadowNodeFromRef.ts +0 -50
  395. package/src/getShadowNodeFromRef.web.ts +0 -7
  396. package/src/ghQueueMicrotask.ts +0 -8
  397. package/src/handlers/FlingGestureHandler.ts +0 -64
  398. package/src/handlers/ForceTouchGestureHandler.ts +0 -88
  399. package/src/handlers/GestureHandlerEventPayload.ts +0 -229
  400. package/src/handlers/LongPressGestureHandler.ts +0 -65
  401. package/src/handlers/NativeViewGestureHandler.ts +0 -59
  402. package/src/handlers/PanGestureHandler.ts +0 -282
  403. package/src/handlers/PinchGestureHandler.ts +0 -32
  404. package/src/handlers/PressabilityDebugView.tsx +0 -2
  405. package/src/handlers/PressabilityDebugView.web.tsx +0 -4
  406. package/src/handlers/RotationGestureHandler.ts +0 -32
  407. package/src/handlers/TapGestureHandler.ts +0 -99
  408. package/src/handlers/createHandler.tsx +0 -586
  409. package/src/handlers/createNativeWrapper.tsx +0 -89
  410. package/src/handlers/customDirectEventTypes.ts +0 -2
  411. package/src/handlers/customDirectEventTypes.web.ts +0 -5
  412. package/src/handlers/gestureHandlerCommon.ts +0 -211
  413. package/src/handlers/gestureHandlerTypesCompat.ts +0 -101
  414. package/src/handlers/gestures/GestureDetector/Wrap.tsx +0 -35
  415. package/src/handlers/gestures/GestureDetector/Wrap.web.tsx +0 -42
  416. package/src/handlers/gestures/GestureDetector/attachHandlers.ts +0 -112
  417. package/src/handlers/gestures/GestureDetector/dropHandlers.ts +0 -17
  418. package/src/handlers/gestures/GestureDetector/index.tsx +0 -191
  419. package/src/handlers/gestures/GestureDetector/needsToReattach.ts +0 -27
  420. package/src/handlers/gestures/GestureDetector/types.ts +0 -32
  421. package/src/handlers/gestures/GestureDetector/updateHandlers.ts +0 -92
  422. package/src/handlers/gestures/GestureDetector/useAnimatedGesture.ts +0 -209
  423. package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +0 -69
  424. package/src/handlers/gestures/GestureDetector/useMountReactions.ts +0 -51
  425. package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +0 -58
  426. package/src/handlers/gestures/GestureDetector/utils.ts +0 -181
  427. package/src/handlers/gestures/eventReceiver.ts +0 -173
  428. package/src/handlers/gestures/flingGesture.ts +0 -36
  429. package/src/handlers/gestures/forceTouchGesture.ts +0 -95
  430. package/src/handlers/gestures/gesture.ts +0 -472
  431. package/src/handlers/gestures/gestureComposition.ts +0 -124
  432. package/src/handlers/gestures/gestureObjects.ts +0 -143
  433. package/src/handlers/gestures/gestureStateManager.ts +0 -76
  434. package/src/handlers/gestures/gestureStateManager.web.ts +0 -26
  435. package/src/handlers/gestures/hoverGesture.ts +0 -77
  436. package/src/handlers/gestures/longPressGesture.ts +0 -45
  437. package/src/handlers/gestures/manualGesture.ts +0 -31
  438. package/src/handlers/gestures/nativeGesture.ts +0 -33
  439. package/src/handlers/gestures/panGesture.ts +0 -221
  440. package/src/handlers/gestures/pinchGesture.ts +0 -51
  441. package/src/handlers/gestures/reanimatedWrapper.ts +0 -57
  442. package/src/handlers/gestures/rotationGesture.ts +0 -51
  443. package/src/handlers/gestures/tapGesture.ts +0 -86
  444. package/src/handlers/getNextHandlerTag.ts +0 -5
  445. package/src/handlers/handlersRegistry.ts +0 -58
  446. package/src/handlers/utils.ts +0 -76
  447. package/src/init.ts +0 -18
  448. package/src/jestUtils/index.ts +0 -1
  449. package/src/jestUtils/jestUtils.ts +0 -513
  450. package/src/mocks/Pressable.tsx +0 -1
  451. package/src/mocks/mocks.tsx +0 -70
  452. package/src/mocks.ts +0 -67
  453. package/src/mountRegistry.ts +0 -51
  454. package/src/specs/NativeRNGestureHandlerModule.ts +0 -26
  455. package/src/specs/RNGestureHandlerButtonNativeComponent.kepler.ts +0 -27
  456. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
  457. package/src/specs/RNGestureHandlerRootViewNativeComponent.kepler.ts +0 -21
  458. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
  459. package/src/typeUtils.ts +0 -1
  460. package/src/utils.ts +0 -107
  461. package/src/web/Gestures.ts +0 -41
  462. package/src/web/constants.ts +0 -2
  463. package/src/web/detectors/RotationGestureDetector.ts +0 -170
  464. package/src/web/detectors/ScaleGestureDetector.ts +0 -171
  465. package/src/web/handlers/FlingGestureHandler.ts +0 -196
  466. package/src/web/handlers/GestureHandler.ts +0 -881
  467. package/src/web/handlers/HoverGestureHandler.ts +0 -49
  468. package/src/web/handlers/IGestureHandler.ts +0 -49
  469. package/src/web/handlers/LongPressGestureHandler.ts +0 -175
  470. package/src/web/handlers/ManualGestureHandler.ts +0 -37
  471. package/src/web/handlers/NativeViewGestureHandler.ts +0 -175
  472. package/src/web/handlers/PanGestureHandler.ts +0 -571
  473. package/src/web/handlers/PinchGestureHandler.ts +0 -152
  474. package/src/web/handlers/RotationGestureHandler.ts +0 -166
  475. package/src/web/handlers/TapGestureHandler.ts +0 -274
  476. package/src/web/interfaces.ts +0 -190
  477. package/src/web/tools/CircularBuffer.ts +0 -42
  478. package/src/web/tools/EventManager.ts +0 -108
  479. package/src/web/tools/GestureHandlerDelegate.ts +0 -26
  480. package/src/web/tools/GestureHandlerOrchestrator.ts +0 -392
  481. package/src/web/tools/GestureHandlerWebDelegate.ts +0 -227
  482. package/src/web/tools/InteractionManager.ts +0 -135
  483. package/src/web/tools/KeyboardEventManager.ts +0 -133
  484. package/src/web/tools/LeastSquareSolver.ts +0 -182
  485. package/src/web/tools/NodeManager.ts +0 -48
  486. package/src/web/tools/PointerEventManager.ts +0 -226
  487. package/src/web/tools/PointerTracker.ts +0 -228
  488. package/src/web/tools/Vector.ts +0 -59
  489. package/src/web/tools/VelocityTracker.ts +0 -98
  490. package/src/web/tools/WheelEventManager.ts +0 -48
  491. package/src/web/utils.ts +0 -293
  492. package/src/web_hammer/DiscreteGestureHandler.ts +0 -82
  493. package/src/web_hammer/DraggingGestureHandler.ts +0 -34
  494. package/src/web_hammer/Errors.ts +0 -7
  495. package/src/web_hammer/FlingGestureHandler.ts +0 -134
  496. package/src/web_hammer/GestureHandler.ts +0 -600
  497. package/src/web_hammer/IndiscreteGestureHandler.ts +0 -33
  498. package/src/web_hammer/LongPressGestureHandler.ts +0 -56
  499. package/src/web_hammer/NativeViewGestureHandler.ts +0 -47
  500. package/src/web_hammer/NodeManager.ts +0 -33
  501. package/src/web_hammer/PanGestureHandler.ts +0 -226
  502. package/src/web_hammer/PinchGestureHandler.ts +0 -25
  503. package/src/web_hammer/PressGestureHandler.ts +0 -170
  504. package/src/web_hammer/RotationGestureHandler.ts +0 -25
  505. package/src/web_hammer/TapGestureHandler.ts +0 -172
  506. package/src/web_hammer/constants.ts +0 -48
  507. 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
- }