react-native-gesture-handler 2.23.0 → 2.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/RNGestureHandler.podspec +8 -0
  2. package/apple/RNGestureHandlerButton.mm +12 -2
  3. package/lib/commonjs/ActionType.js +3 -3
  4. package/lib/commonjs/ActionType.js.map +1 -1
  5. package/lib/commonjs/Directions.js +8 -11
  6. package/lib/commonjs/Directions.js.map +1 -1
  7. package/lib/commonjs/EnableNewWebImplementation.js +10 -2
  8. package/lib/commonjs/EnableNewWebImplementation.js.map +1 -1
  9. package/lib/commonjs/GestureHandlerRootViewContext.js +7 -2
  10. package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -1
  11. package/lib/commonjs/PlatformConstants.js +6 -1
  12. package/lib/commonjs/PlatformConstants.js.map +1 -1
  13. package/lib/commonjs/PlatformConstants.web.js +3 -1
  14. package/lib/commonjs/PlatformConstants.web.js.map +1 -1
  15. package/lib/commonjs/PointerType.js +5 -3
  16. package/lib/commonjs/PointerType.js.map +1 -1
  17. package/lib/commonjs/RNGestureHandlerModule.js +6 -2
  18. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  19. package/lib/commonjs/RNGestureHandlerModule.web.js +37 -11
  20. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  21. package/lib/commonjs/RNGestureHandlerModule.windows.js +32 -22
  22. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
  23. package/lib/commonjs/RNRenderer.js +3 -1
  24. package/lib/commonjs/RNRenderer.js.map +1 -1
  25. package/lib/commonjs/RNRenderer.web.js +2 -1
  26. package/lib/commonjs/RNRenderer.web.js.map +1 -1
  27. package/lib/commonjs/State.js +3 -4
  28. package/lib/commonjs/State.js.map +1 -1
  29. package/lib/commonjs/TouchEventType.js +3 -3
  30. package/lib/commonjs/TouchEventType.js.map +1 -1
  31. package/lib/commonjs/components/DrawerLayout.js +115 -90
  32. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  33. package/lib/commonjs/components/GestureButtons.js +81 -28
  34. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  35. package/lib/commonjs/components/GestureButtonsProps.js.map +1 -1
  36. package/lib/commonjs/components/GestureComponents.js +37 -26
  37. package/lib/commonjs/components/GestureComponents.js.map +1 -1
  38. package/lib/commonjs/components/GestureComponents.web.js +27 -13
  39. package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
  40. package/lib/commonjs/components/GestureHandlerButton.js +6 -2
  41. package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
  42. package/lib/commonjs/components/GestureHandlerButton.web.js +12 -4
  43. package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -1
  44. package/lib/commonjs/components/GestureHandlerRootView.android.js +15 -4
  45. package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
  46. package/lib/commonjs/components/GestureHandlerRootView.js +14 -4
  47. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  48. package/lib/commonjs/components/GestureHandlerRootView.web.js +13 -4
  49. package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
  50. package/lib/commonjs/components/Pressable/Pressable.js +77 -29
  51. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  52. package/lib/commonjs/components/Pressable/PressableProps.js.map +1 -1
  53. package/lib/commonjs/components/Pressable/index.js +3 -1
  54. package/lib/commonjs/components/Pressable/index.js.map +1 -1
  55. package/lib/commonjs/components/Pressable/utils.js +20 -5
  56. package/lib/commonjs/components/Pressable/utils.js.map +1 -1
  57. package/lib/commonjs/components/ReanimatedDrawerLayout.js +76 -38
  58. package/lib/commonjs/components/ReanimatedDrawerLayout.js.map +1 -1
  59. package/lib/commonjs/components/ReanimatedSwipeable.js +45 -18
  60. package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
  61. package/lib/commonjs/components/Swipeable.js +75 -34
  62. package/lib/commonjs/components/Swipeable.js.map +1 -1
  63. package/lib/commonjs/components/Text.js +23 -9
  64. package/lib/commonjs/components/Text.js.map +1 -1
  65. package/lib/commonjs/components/gestureHandlerRootHOC.js +14 -5
  66. package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
  67. package/lib/commonjs/components/touchables/GenericTouchable.js +76 -40
  68. package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
  69. package/lib/commonjs/components/touchables/GenericTouchableProps.js.map +1 -1
  70. package/lib/commonjs/components/touchables/TouchableHighlight.js +34 -19
  71. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
  72. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +32 -16
  73. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  74. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -2
  75. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -1
  76. package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
  77. package/lib/commonjs/components/touchables/TouchableOpacity.js +25 -16
  78. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  79. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +13 -9
  80. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  81. package/lib/commonjs/components/touchables/index.js +12 -7
  82. package/lib/commonjs/components/touchables/index.js.map +1 -1
  83. package/lib/commonjs/findNodeHandle.js +4 -1
  84. package/lib/commonjs/findNodeHandle.js.map +1 -1
  85. package/lib/commonjs/findNodeHandle.web.js +14 -5
  86. package/lib/commonjs/findNodeHandle.web.js.map +1 -1
  87. package/lib/commonjs/getReactNativeVersion.js +6 -1
  88. package/lib/commonjs/getReactNativeVersion.js.map +1 -1
  89. package/lib/commonjs/getReactNativeVersion.web.js +1 -0
  90. package/lib/commonjs/getReactNativeVersion.web.js.map +1 -1
  91. package/lib/commonjs/getShadowNodeFromRef.js +14 -13
  92. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  93. package/lib/commonjs/getShadowNodeFromRef.web.js +1 -0
  94. package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -1
  95. package/lib/commonjs/ghQueueMicrotask.js +2 -1
  96. package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
  97. package/lib/commonjs/handlers/FlingGestureHandler.js +11 -9
  98. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
  99. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +22 -15
  100. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
  101. package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -1
  102. package/lib/commonjs/handlers/LongPressGestureHandler.js +11 -9
  103. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  104. package/lib/commonjs/handlers/NativeViewGestureHandler.js +13 -10
  105. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  106. package/lib/commonjs/handlers/PanGestureHandler.js +32 -13
  107. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  108. package/lib/commonjs/handlers/PinchGestureHandler.js +9 -7
  109. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
  110. package/lib/commonjs/handlers/PressabilityDebugView.js +1 -0
  111. package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
  112. package/lib/commonjs/handlers/PressabilityDebugView.web.js +1 -0
  113. package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -1
  114. package/lib/commonjs/handlers/RotationGestureHandler.js +9 -7
  115. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
  116. package/lib/commonjs/handlers/TapGestureHandler.js +11 -9
  117. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  118. package/lib/commonjs/handlers/createHandler.js +134 -50
  119. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  120. package/lib/commonjs/handlers/createNativeWrapper.js +27 -17
  121. package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
  122. package/lib/commonjs/handlers/customDirectEventTypes.js +1 -0
  123. package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -1
  124. package/lib/commonjs/handlers/customDirectEventTypes.web.js +2 -1
  125. package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -1
  126. package/lib/commonjs/handlers/gestureHandlerCommon.js +10 -9
  127. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  128. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -1
  129. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +14 -5
  130. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  131. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +20 -10
  132. package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
  133. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +29 -9
  134. package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  135. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +10 -1
  136. package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  137. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +36 -11
  138. package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
  139. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +3 -0
  140. package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
  141. package/lib/commonjs/handlers/gestures/GestureDetector/types.js.map +1 -1
  142. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +24 -12
  143. package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  144. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +48 -12
  145. package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
  146. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +13 -3
  147. package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  148. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +9 -2
  149. package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  150. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +14 -6
  151. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  152. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +55 -27
  153. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  154. package/lib/commonjs/handlers/gestures/eventReceiver.js +46 -14
  155. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  156. package/lib/commonjs/handlers/gestures/flingGesture.js +12 -5
  157. package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
  158. package/lib/commonjs/handlers/gestures/forceTouchGesture.js +19 -8
  159. package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
  160. package/lib/commonjs/handlers/gestures/gesture.js +84 -44
  161. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  162. package/lib/commonjs/handlers/gestures/gestureComposition.js +31 -17
  163. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
  164. package/lib/commonjs/handlers/gestures/gestureObjects.js +27 -1
  165. package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
  166. package/lib/commonjs/handlers/gestures/gestureStateManager.js +9 -3
  167. package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
  168. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +7 -2
  169. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
  170. package/lib/commonjs/handlers/gestures/hoverGesture.js +25 -11
  171. package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
  172. package/lib/commonjs/handlers/gestures/longPressGesture.js +14 -6
  173. package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
  174. package/lib/commonjs/handlers/gestures/manualGesture.js +6 -0
  175. package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -1
  176. package/lib/commonjs/handlers/gestures/nativeGesture.js +12 -5
  177. package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
  178. package/lib/commonjs/handlers/gestures/panGesture.js +43 -18
  179. package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
  180. package/lib/commonjs/handlers/gestures/pinchGesture.js +9 -2
  181. package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
  182. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +8 -1
  183. package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
  184. package/lib/commonjs/handlers/gestures/rotationGesture.js +9 -2
  185. package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
  186. package/lib/commonjs/handlers/gestures/tapGesture.js +22 -10
  187. package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
  188. package/lib/commonjs/handlers/getNextHandlerTag.js +1 -0
  189. package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -1
  190. package/lib/commonjs/handlers/handlersRegistry.js +21 -6
  191. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
  192. package/lib/commonjs/handlers/utils.js +26 -6
  193. package/lib/commonjs/handlers/utils.js.map +1 -1
  194. package/lib/commonjs/index.js +104 -75
  195. package/lib/commonjs/index.js.map +1 -1
  196. package/lib/commonjs/init.js +11 -4
  197. package/lib/commonjs/init.js.map +1 -1
  198. package/lib/commonjs/jestUtils/index.js +5 -4
  199. package/lib/commonjs/jestUtils/index.js.map +1 -1
  200. package/lib/commonjs/jestUtils/jestUtils.js +83 -19
  201. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  202. package/lib/commonjs/mocks.js +15 -5
  203. package/lib/commonjs/mocks.js.map +1 -1
  204. package/lib/commonjs/mountRegistry.js +12 -3
  205. package/lib/commonjs/mountRegistry.js.map +1 -1
  206. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +5 -1
  207. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
  208. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +7 -2
  209. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  210. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +7 -2
  211. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  212. package/lib/commonjs/typeUtils.js.map +1 -1
  213. package/lib/commonjs/utils.js +28 -13
  214. package/lib/commonjs/utils.js.map +1 -1
  215. package/lib/commonjs/web/Gestures.js +23 -5
  216. package/lib/commonjs/web/Gestures.js.map +1 -1
  217. package/lib/commonjs/web/constants.js +4 -2
  218. package/lib/commonjs/web/constants.js.map +1 -1
  219. package/lib/commonjs/web/detectors/RotationGestureDetector.js +41 -5
  220. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  221. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +42 -13
  222. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
  223. package/lib/commonjs/web/handlers/FlingGestureHandler.js +49 -6
  224. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  225. package/lib/commonjs/web/handlers/GestureHandler.js +195 -62
  226. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  227. package/lib/commonjs/web/handlers/HoverGestureHandler.js +19 -6
  228. package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
  229. package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -1
  230. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +47 -6
  231. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  232. package/lib/commonjs/web/handlers/ManualGestureHandler.js +11 -1
  233. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  234. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +49 -8
  235. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  236. package/lib/commonjs/web/handlers/PanGestureHandler.js +123 -8
  237. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  238. package/lib/commonjs/web/handlers/PinchGestureHandler.js +41 -4
  239. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  240. package/lib/commonjs/web/handlers/RotationGestureHandler.js +42 -4
  241. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  242. package/lib/commonjs/web/handlers/TapGestureHandler.js +67 -6
  243. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  244. package/lib/commonjs/web/interfaces.js +17 -9
  245. package/lib/commonjs/web/interfaces.js.map +1 -1
  246. package/lib/commonjs/web/tools/CircularBuffer.js +15 -3
  247. package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
  248. package/lib/commonjs/web/tools/EventManager.js +41 -7
  249. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  250. package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -1
  251. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +78 -11
  252. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  253. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +48 -8
  254. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  255. package/lib/commonjs/web/tools/InteractionManager.js +22 -5
  256. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  257. package/lib/commonjs/web/tools/KeyboardEventManager.js +26 -4
  258. package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
  259. package/lib/commonjs/web/tools/LeastSquareSolver.js +67 -30
  260. package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
  261. package/lib/commonjs/web/tools/NodeManager.js +14 -7
  262. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  263. package/lib/commonjs/web/tools/PointerEventManager.js +45 -10
  264. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
  265. package/lib/commonjs/web/tools/PointerTracker.js +45 -9
  266. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  267. package/lib/commonjs/web/tools/Vector.js +18 -3
  268. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  269. package/lib/commonjs/web/tools/VelocityTracker.js +31 -9
  270. package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
  271. package/lib/commonjs/web/tools/WheelEventManager.js +17 -4
  272. package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
  273. package/lib/commonjs/web/utils.js +55 -26
  274. package/lib/commonjs/web/utils.js.map +1 -1
  275. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +19 -7
  276. package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -1
  277. package/lib/commonjs/web_hammer/DraggingGestureHandler.js +13 -3
  278. package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -1
  279. package/lib/commonjs/web_hammer/Errors.js +3 -0
  280. package/lib/commonjs/web_hammer/Errors.js.map +1 -1
  281. package/lib/commonjs/web_hammer/FlingGestureHandler.js +44 -13
  282. package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -1
  283. package/lib/commonjs/web_hammer/GestureHandler.js +142 -55
  284. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  285. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +11 -2
  286. package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -1
  287. package/lib/commonjs/web_hammer/LongPressGestureHandler.js +19 -5
  288. package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -1
  289. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +24 -16
  290. package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -1
  291. package/lib/commonjs/web_hammer/NodeManager.js +16 -9
  292. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  293. package/lib/commonjs/web_hammer/PanGestureHandler.js +49 -8
  294. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  295. package/lib/commonjs/web_hammer/PinchGestureHandler.js +11 -2
  296. package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -1
  297. package/lib/commonjs/web_hammer/PressGestureHandler.js +43 -15
  298. package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -1
  299. package/lib/commonjs/web_hammer/RotationGestureHandler.js +13 -2
  300. package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -1
  301. package/lib/commonjs/web_hammer/TapGestureHandler.js +52 -33
  302. package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -1
  303. package/lib/commonjs/web_hammer/constants.js +26 -13
  304. package/lib/commonjs/web_hammer/constants.js.map +1 -1
  305. package/lib/commonjs/web_hammer/utils.js +14 -4
  306. package/lib/commonjs/web_hammer/utils.js.map +1 -1
  307. package/lib/module/ActionType.js +1 -3
  308. package/lib/module/ActionType.js.map +1 -1
  309. package/lib/module/Directions.js +3 -9
  310. package/lib/module/Directions.js.map +1 -1
  311. package/lib/module/EnableNewWebImplementation.js +5 -2
  312. package/lib/module/EnableNewWebImplementation.js.map +1 -1
  313. package/lib/module/GestureHandlerRootViewContext.js.map +1 -1
  314. package/lib/module/PlatformConstants.js +1 -0
  315. package/lib/module/PlatformConstants.js.map +1 -1
  316. package/lib/module/PlatformConstants.web.js +1 -0
  317. package/lib/module/PlatformConstants.web.js.map +1 -1
  318. package/lib/module/PointerType.js +4 -3
  319. package/lib/module/PointerType.js.map +1 -1
  320. package/lib/module/RNGestureHandlerModule.js +0 -1
  321. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  322. package/lib/module/RNGestureHandlerModule.web.js +20 -10
  323. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  324. package/lib/module/RNGestureHandlerModule.windows.js +17 -18
  325. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
  326. package/lib/module/RNRenderer.js.map +1 -1
  327. package/lib/module/RNRenderer.web.js.map +1 -1
  328. package/lib/module/State.js +1 -4
  329. package/lib/module/State.js.map +1 -1
  330. package/lib/module/TouchEventType.js +1 -3
  331. package/lib/module/TouchEventType.js.map +1 -1
  332. package/lib/module/components/DrawerLayout.js +99 -80
  333. package/lib/module/components/DrawerLayout.js.map +1 -1
  334. package/lib/module/components/GestureButtons.js +55 -19
  335. package/lib/module/components/GestureButtons.js.map +1 -1
  336. package/lib/module/components/GestureButtonsProps.js.map +1 -1
  337. package/lib/module/components/GestureComponents.js +12 -17
  338. package/lib/module/components/GestureComponents.js.map +1 -1
  339. package/lib/module/components/GestureComponents.web.js +4 -4
  340. package/lib/module/components/GestureComponents.web.js.map +1 -1
  341. package/lib/module/components/GestureHandlerButton.js.map +1 -1
  342. package/lib/module/components/GestureHandlerButton.web.js +2 -1
  343. package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
  344. package/lib/module/components/GestureHandlerRootView.android.js +2 -1
  345. package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
  346. package/lib/module/components/GestureHandlerRootView.js +2 -1
  347. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  348. package/lib/module/components/GestureHandlerRootView.web.js +2 -1
  349. package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
  350. package/lib/module/components/Pressable/Pressable.js +59 -26
  351. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  352. package/lib/module/components/Pressable/PressableProps.js.map +1 -1
  353. package/lib/module/components/Pressable/index.js.map +1 -1
  354. package/lib/module/components/Pressable/utils.js +14 -4
  355. package/lib/module/components/Pressable/utils.js.map +1 -1
  356. package/lib/module/components/ReanimatedDrawerLayout.js +56 -34
  357. package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
  358. package/lib/module/components/ReanimatedSwipeable.js +30 -14
  359. package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
  360. package/lib/module/components/Swipeable.js +59 -28
  361. package/lib/module/components/Swipeable.js.map +1 -1
  362. package/lib/module/components/Text.js +10 -6
  363. package/lib/module/components/Text.js.map +1 -1
  364. package/lib/module/components/gestureHandlerRootHOC.js +2 -2
  365. package/lib/module/components/gestureHandlerRootHOC.js.map +1 -1
  366. package/lib/module/components/touchables/GenericTouchable.js +63 -34
  367. package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
  368. package/lib/module/components/touchables/GenericTouchableProps.js.map +1 -1
  369. package/lib/module/components/touchables/TouchableHighlight.js +24 -15
  370. package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
  371. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +20 -10
  372. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  373. package/lib/module/components/touchables/TouchableNativeFeedback.js +2 -2
  374. package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -1
  375. package/lib/module/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
  376. package/lib/module/components/touchables/TouchableOpacity.js +16 -10
  377. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  378. package/lib/module/components/touchables/TouchableWithoutFeedback.js +3 -6
  379. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  380. package/lib/module/components/touchables/index.js.map +1 -1
  381. package/lib/module/findNodeHandle.js.map +1 -1
  382. package/lib/module/findNodeHandle.web.js +11 -5
  383. package/lib/module/findNodeHandle.web.js.map +1 -1
  384. package/lib/module/getReactNativeVersion.js.map +1 -1
  385. package/lib/module/getReactNativeVersion.web.js.map +1 -1
  386. package/lib/module/getShadowNodeFromRef.js +13 -13
  387. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  388. package/lib/module/getShadowNodeFromRef.web.js.map +1 -1
  389. package/lib/module/ghQueueMicrotask.js.map +1 -1
  390. package/lib/module/handlers/FlingGestureHandler.js +0 -6
  391. package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
  392. package/lib/module/handlers/ForceTouchGestureHandler.js +8 -12
  393. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
  394. package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -1
  395. package/lib/module/handlers/LongPressGestureHandler.js +0 -6
  396. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  397. package/lib/module/handlers/NativeViewGestureHandler.js +0 -6
  398. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  399. package/lib/module/handlers/PanGestureHandler.js +19 -8
  400. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  401. package/lib/module/handlers/PinchGestureHandler.js +0 -2
  402. package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
  403. package/lib/module/handlers/PressabilityDebugView.js.map +1 -1
  404. package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -1
  405. package/lib/module/handlers/RotationGestureHandler.js +0 -2
  406. package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
  407. package/lib/module/handlers/TapGestureHandler.js +0 -6
  408. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  409. package/lib/module/handlers/createHandler.js +106 -47
  410. package/lib/module/handlers/createHandler.js.map +1 -1
  411. package/lib/module/handlers/createNativeWrapper.js +17 -12
  412. package/lib/module/handlers/createNativeWrapper.js.map +1 -1
  413. package/lib/module/handlers/customDirectEventTypes.js.map +1 -1
  414. package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -1
  415. package/lib/module/handlers/gestureHandlerCommon.js +4 -9
  416. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  417. package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -1
  418. package/lib/module/handlers/gestures/GestureDetector/Wrap.js +4 -3
  419. package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
  420. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +6 -5
  421. package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
  422. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +16 -8
  423. package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
  424. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +1 -0
  425. package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
  426. package/lib/module/handlers/gestures/GestureDetector/index.js +13 -7
  427. package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
  428. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +2 -0
  429. package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
  430. package/lib/module/handlers/gestures/GestureDetector/types.js.map +1 -1
  431. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +14 -11
  432. package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
  433. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +39 -12
  434. package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
  435. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +5 -5
  436. package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
  437. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +6 -2
  438. package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
  439. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +7 -5
  440. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  441. package/lib/module/handlers/gestures/GestureDetector/utils.js +28 -23
  442. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  443. package/lib/module/handlers/gestures/eventReceiver.js +38 -14
  444. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  445. package/lib/module/handlers/gestures/flingGesture.js +9 -5
  446. package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
  447. package/lib/module/handlers/gestures/forceTouchGesture.js +17 -8
  448. package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
  449. package/lib/module/handlers/gestures/gesture.js +73 -44
  450. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  451. package/lib/module/handlers/gestures/gestureComposition.js +24 -16
  452. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  453. package/lib/module/handlers/gestures/gestureObjects.js +14 -1
  454. package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
  455. package/lib/module/handlers/gestures/gestureStateManager.js +4 -3
  456. package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
  457. package/lib/module/handlers/gestures/gestureStateManager.web.js +1 -0
  458. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
  459. package/lib/module/handlers/gestures/hoverGesture.js +18 -9
  460. package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
  461. package/lib/module/handlers/gestures/longPressGesture.js +11 -6
  462. package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
  463. package/lib/module/handlers/gestures/manualGesture.js +4 -0
  464. package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
  465. package/lib/module/handlers/gestures/nativeGesture.js +9 -5
  466. package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
  467. package/lib/module/handlers/gestures/panGesture.js +41 -18
  468. package/lib/module/handlers/gestures/panGesture.js.map +1 -1
  469. package/lib/module/handlers/gestures/pinchGesture.js +7 -2
  470. package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
  471. package/lib/module/handlers/gestures/reanimatedWrapper.js +5 -0
  472. package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
  473. package/lib/module/handlers/gestures/rotationGesture.js +7 -2
  474. package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
  475. package/lib/module/handlers/gestures/tapGesture.js +19 -10
  476. package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
  477. package/lib/module/handlers/getNextHandlerTag.js.map +1 -1
  478. package/lib/module/handlers/handlersRegistry.js +5 -0
  479. package/lib/module/handlers/handlersRegistry.js.map +1 -1
  480. package/lib/module/handlers/utils.js +13 -4
  481. package/lib/module/handlers/utils.js.map +1 -1
  482. package/lib/module/index.js.map +1 -1
  483. package/lib/module/init.js +2 -3
  484. package/lib/module/init.js.map +1 -1
  485. package/lib/module/jestUtils/index.js.map +1 -1
  486. package/lib/module/jestUtils/jestUtils.js +66 -20
  487. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  488. package/lib/module/mocks.js +7 -3
  489. package/lib/module/mocks.js.map +1 -1
  490. package/lib/module/mountRegistry.js +10 -3
  491. package/lib/module/mountRegistry.js.map +1 -1
  492. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
  493. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  494. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  495. package/lib/module/typeUtils.js.map +1 -1
  496. package/lib/module/utils.js +11 -6
  497. package/lib/module/utils.js.map +1 -1
  498. package/lib/module/web/Gestures.js +1 -2
  499. package/lib/module/web/Gestures.js.map +1 -1
  500. package/lib/module/web/constants.js.map +1 -1
  501. package/lib/module/web/detectors/RotationGestureDetector.js +38 -5
  502. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  503. package/lib/module/web/detectors/ScaleGestureDetector.js +38 -13
  504. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
  505. package/lib/module/web/handlers/FlingGestureHandler.js +39 -5
  506. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  507. package/lib/module/web/handlers/GestureHandler.js +181 -61
  508. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  509. package/lib/module/web/handlers/HoverGestureHandler.js +11 -5
  510. package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
  511. package/lib/module/web/handlers/IGestureHandler.js.map +1 -1
  512. package/lib/module/web/handlers/LongPressGestureHandler.js +40 -5
  513. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  514. package/lib/module/web/handlers/ManualGestureHandler.js +6 -0
  515. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  516. package/lib/module/web/handlers/NativeViewGestureHandler.js +41 -7
  517. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  518. package/lib/module/web/handlers/PanGestureHandler.js +114 -7
  519. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  520. package/lib/module/web/handlers/PinchGestureHandler.js +33 -3
  521. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  522. package/lib/module/web/handlers/RotationGestureHandler.js +34 -3
  523. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  524. package/lib/module/web/handlers/TapGestureHandler.js +59 -5
  525. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  526. package/lib/module/web/interfaces.js +14 -9
  527. package/lib/module/web/interfaces.js.map +1 -1
  528. package/lib/module/web/tools/CircularBuffer.js +13 -3
  529. package/lib/module/web/tools/CircularBuffer.js.map +1 -1
  530. package/lib/module/web/tools/EventManager.js +39 -7
  531. package/lib/module/web/tools/EventManager.js.map +1 -1
  532. package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -1
  533. package/lib/module/web/tools/GestureHandlerOrchestrator.js +71 -10
  534. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  535. package/lib/module/web/tools/GestureHandlerWebDelegate.js +37 -7
  536. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  537. package/lib/module/web/tools/InteractionManager.js +19 -5
  538. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  539. package/lib/module/web/tools/KeyboardEventManager.js +19 -3
  540. package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
  541. package/lib/module/web/tools/LeastSquareSolver.js +65 -30
  542. package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
  543. package/lib/module/web/tools/NodeManager.js +12 -7
  544. package/lib/module/web/tools/NodeManager.js.map +1 -1
  545. package/lib/module/web/tools/PointerEventManager.js +35 -9
  546. package/lib/module/web/tools/PointerEventManager.js.map +1 -1
  547. package/lib/module/web/tools/PointerTracker.js +39 -8
  548. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  549. package/lib/module/web/tools/Vector.js +14 -3
  550. package/lib/module/web/tools/Vector.js.map +1 -1
  551. package/lib/module/web/tools/VelocityTracker.js +25 -8
  552. package/lib/module/web/tools/VelocityTracker.js.map +1 -1
  553. package/lib/module/web/tools/WheelEventManager.js +10 -3
  554. package/lib/module/web/tools/WheelEventManager.js.map +1 -1
  555. package/lib/module/web/utils.js +40 -21
  556. package/lib/module/web/utils.js.map +1 -1
  557. package/lib/module/web_hammer/DiscreteGestureHandler.js +13 -4
  558. package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -1
  559. package/lib/module/web_hammer/DraggingGestureHandler.js +5 -0
  560. package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -1
  561. package/lib/module/web_hammer/Errors.js +1 -0
  562. package/lib/module/web_hammer/Errors.js.map +1 -1
  563. package/lib/module/web_hammer/FlingGestureHandler.js +35 -10
  564. package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -1
  565. package/lib/module/web_hammer/GestureHandler.js +130 -53
  566. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  567. package/lib/module/web_hammer/IndiscreteGestureHandler.js +6 -1
  568. package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -1
  569. package/lib/module/web_hammer/LongPressGestureHandler.js +11 -2
  570. package/lib/module/web_hammer/LongPressGestureHandler.js.map +1 -1
  571. package/lib/module/web_hammer/NativeViewGestureHandler.js +12 -12
  572. package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -1
  573. package/lib/module/web_hammer/NodeManager.js +8 -6
  574. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  575. package/lib/module/web_hammer/PanGestureHandler.js +40 -6
  576. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  577. package/lib/module/web_hammer/PinchGestureHandler.js +5 -0
  578. package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -1
  579. package/lib/module/web_hammer/PressGestureHandler.js +34 -13
  580. package/lib/module/web_hammer/PressGestureHandler.js.map +1 -1
  581. package/lib/module/web_hammer/RotationGestureHandler.js +6 -0
  582. package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -1
  583. package/lib/module/web_hammer/TapGestureHandler.js +45 -31
  584. package/lib/module/web_hammer/TapGestureHandler.js.map +1 -1
  585. package/lib/module/web_hammer/constants.js +1 -2
  586. package/lib/module/web_hammer/constants.js.map +1 -1
  587. package/lib/module/web_hammer/utils.js +2 -2
  588. package/lib/module/web_hammer/utils.js.map +1 -1
  589. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +2 -2
  590. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +1 -1
  591. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +1 -1
  592. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +1 -1
  593. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +2 -2
  594. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +2 -2
  595. package/package.json +1 -1
  596. package/src/components/touchables/TouchableHighlight.tsx +2 -2
  597. package/src/components/touchables/TouchableNativeFeedback.android.tsx +1 -1
  598. package/src/components/touchables/TouchableNativeFeedback.tsx +1 -1
  599. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +1 -1
  600. package/src/components/touchables/TouchableOpacity.tsx +2 -2
  601. package/src/components/touchables/TouchableWithoutFeedback.tsx +2 -2
@@ -4,32 +4,46 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.GestureHandlerWebDelegate = void 0;
7
+
7
8
  var _findNodeHandle = _interopRequireDefault(require("../../findNodeHandle"));
9
+
8
10
  var _PointerEventManager = _interopRequireDefault(require("./PointerEventManager"));
11
+
9
12
  var _State = require("../../State");
13
+
10
14
  var _utils = require("../utils");
15
+
11
16
  var _gestureHandlerCommon = require("../../handlers/gestureHandlerCommon");
17
+
12
18
  var _KeyboardEventManager = _interopRequireDefault(require("./KeyboardEventManager"));
19
+
13
20
  var _WheelEventManager = _interopRequireDefault(require("./WheelEventManager"));
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
16
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+
18
26
  class GestureHandlerWebDelegate {
19
27
  constructor() {
20
28
  _defineProperty(this, "isInitialized", false);
29
+
21
30
  _defineProperty(this, "_view", void 0);
31
+
22
32
  _defineProperty(this, "gestureHandler", void 0);
33
+
23
34
  _defineProperty(this, "eventManagers", []);
35
+
24
36
  _defineProperty(this, "defaultViewStyles", {
25
37
  userSelect: '',
26
38
  touchAction: ''
27
39
  });
28
40
  }
41
+
29
42
  init(viewRef, handler) {
30
43
  if (!viewRef) {
31
44
  throw new Error(`Cannot find HTML Element for handler ${handler.handlerTag}`);
32
45
  }
46
+
33
47
  this.isInitialized = true;
34
48
  this.gestureHandler = handler;
35
49
  this.view = (0, _findNodeHandle.default)(viewRef);
@@ -46,6 +60,7 @@ class GestureHandlerWebDelegate {
46
60
  this.eventManagers.push(new _WheelEventManager.default(this.view));
47
61
  this.eventManagers.forEach(manager => this.gestureHandler.attachEventManager(manager));
48
62
  }
63
+
49
64
  isPointerInBounds({
50
65
  x,
51
66
  y
@@ -55,6 +70,7 @@ class GestureHandlerWebDelegate {
55
70
  y
56
71
  });
57
72
  }
73
+
58
74
  measureView() {
59
75
  const rect = this.view.getBoundingClientRect();
60
76
  return {
@@ -64,18 +80,23 @@ class GestureHandlerWebDelegate {
64
80
  height: rect.height
65
81
  };
66
82
  }
83
+
67
84
  reset() {
68
85
  this.eventManagers.forEach(manager => manager.resetManager());
69
86
  }
87
+
70
88
  tryResetCursor() {
71
89
  const config = this.gestureHandler.config;
90
+
72
91
  if (config.activeCursor && config.activeCursor !== 'auto' && this.gestureHandler.state === _State.State.ACTIVE) {
73
92
  this.view.style.cursor = 'auto';
74
93
  }
75
94
  }
95
+
76
96
  shouldDisableContextMenu(config) {
77
97
  return config.enableContextMenu === undefined && this.gestureHandler.isButtonInConfig(_gestureHandlerCommon.MouseButton.RIGHT) || config.enableContextMenu === false;
78
98
  }
99
+
79
100
  addContextMenuListeners(config) {
80
101
  if (this.shouldDisableContextMenu(config)) {
81
102
  this.view.addEventListener('contextmenu', this.disableContextMenu);
@@ -83,6 +104,7 @@ class GestureHandlerWebDelegate {
83
104
  this.view.addEventListener('contextmenu', this.enableContextMenu);
84
105
  }
85
106
  }
107
+
86
108
  removeContextMenuListeners(config) {
87
109
  if (this.shouldDisableContextMenu(config)) {
88
110
  this.view.removeEventListener('contextmenu', this.disableContextMenu);
@@ -90,12 +112,15 @@ class GestureHandlerWebDelegate {
90
112
  this.view.removeEventListener('contextmenu', this.enableContextMenu);
91
113
  }
92
114
  }
115
+
93
116
  disableContextMenu(e) {
94
117
  e.preventDefault();
95
118
  }
119
+
96
120
  enableContextMenu(e) {
97
121
  e.stopPropagation();
98
122
  }
123
+
99
124
  setUserSelect(isHandlerEnabled) {
100
125
  const {
101
126
  userSelect
@@ -103,30 +128,35 @@ class GestureHandlerWebDelegate {
103
128
  this.view.style['userSelect'] = isHandlerEnabled ? userSelect !== null && userSelect !== void 0 ? userSelect : 'none' : this.defaultViewStyles.userSelect;
104
129
  this.view.style['webkitUserSelect'] = isHandlerEnabled ? userSelect !== null && userSelect !== void 0 ? userSelect : 'none' : this.defaultViewStyles.userSelect;
105
130
  }
131
+
106
132
  setTouchAction(isHandlerEnabled) {
107
133
  const {
108
134
  touchAction
109
135
  } = this.gestureHandler.config;
110
- this.view.style['touchAction'] = isHandlerEnabled ? touchAction !== null && touchAction !== void 0 ? touchAction : 'none' : this.defaultViewStyles.touchAction;
136
+ this.view.style['touchAction'] = isHandlerEnabled ? touchAction !== null && touchAction !== void 0 ? touchAction : 'none' : this.defaultViewStyles.touchAction; // @ts-ignore This one disables default events on Safari
111
137
 
112
- // @ts-ignore This one disables default events on Safari
113
138
  this.view.style['WebkitTouchCallout'] = isHandlerEnabled ? touchAction !== null && touchAction !== void 0 ? touchAction : 'none' : this.defaultViewStyles.touchAction;
114
139
  }
140
+
115
141
  setContextMenu(isHandlerEnabled) {
116
142
  const config = this.gestureHandler.config;
143
+
117
144
  if (isHandlerEnabled) {
118
145
  this.addContextMenuListeners(config);
119
146
  } else {
120
147
  this.removeContextMenuListeners(config);
121
148
  }
122
149
  }
150
+
123
151
  onEnabledChange(enabled) {
124
152
  if (!this.isInitialized) {
125
153
  return;
126
154
  }
155
+
127
156
  this.setUserSelect(enabled);
128
157
  this.setTouchAction(enabled);
129
158
  this.setContextMenu(enabled);
159
+
130
160
  if (enabled) {
131
161
  this.eventManagers.forEach(manager => {
132
162
  // It may look like managers will be registered twice when handler is mounted for the first time.
@@ -142,36 +172,46 @@ class GestureHandlerWebDelegate {
142
172
  });
143
173
  }
144
174
  }
145
- onBegin() {
146
- // no-op for now
175
+
176
+ onBegin() {// no-op for now
147
177
  }
178
+
148
179
  onActivate() {
149
180
  const config = this.gestureHandler.config;
181
+
150
182
  if ((!this.view.style.cursor || this.view.style.cursor === 'auto') && config.activeCursor) {
151
183
  this.view.style.cursor = config.activeCursor;
152
184
  }
153
185
  }
186
+
154
187
  onEnd() {
155
188
  this.tryResetCursor();
156
189
  }
190
+
157
191
  onCancel() {
158
192
  this.tryResetCursor();
159
193
  }
194
+
160
195
  onFail() {
161
196
  this.tryResetCursor();
162
197
  }
198
+
163
199
  destroy(config) {
164
200
  this.removeContextMenuListeners(config);
165
201
  this.eventManagers.forEach(manager => {
166
202
  manager.unregisterListeners();
167
203
  });
168
204
  }
205
+
169
206
  get view() {
170
207
  return this._view;
171
208
  }
209
+
172
210
  set view(value) {
173
211
  this._view = value;
174
212
  }
213
+
175
214
  }
215
+
176
216
  exports.GestureHandlerWebDelegate = GestureHandlerWebDelegate;
177
217
  //# sourceMappingURL=GestureHandlerWebDelegate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_findNodeHandle","_interopRequireDefault","require","_PointerEventManager","_State","_utils","_gestureHandlerCommon","_KeyboardEventManager","_WheelEventManager","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","GestureHandlerWebDelegate","constructor","userSelect","touchAction","init","viewRef","handler","Error","handlerTag","isInitialized","gestureHandler","view","findNodeHandle","defaultViewStyles","style","config","setUserSelect","enabled","setTouchAction","setContextMenu","eventManagers","push","PointerEventManager","KeyboardEventManager","WheelEventManager","forEach","manager","attachEventManager","isPointerInBounds","x","y","measureView","rect","getBoundingClientRect","pageX","left","pageY","top","width","height","reset","resetManager","tryResetCursor","activeCursor","state","State","ACTIVE","cursor","shouldDisableContextMenu","enableContextMenu","undefined","isButtonInConfig","MouseButton","RIGHT","addContextMenuListeners","addEventListener","disableContextMenu","removeContextMenuListeners","removeEventListener","preventDefault","stopPropagation","isHandlerEnabled","onEnabledChange","registerListeners","unregisterListeners","onBegin","onActivate","onEnd","onCancel","onFail","destroy","_view","exports"],"sources":["GestureHandlerWebDelegate.ts"],"sourcesContent":["import findNodeHandle from '../../findNodeHandle';\nimport type IGestureHandler from '../handlers/IGestureHandler';\nimport {\n GestureHandlerDelegate,\n MeasureResult,\n} from './GestureHandlerDelegate';\nimport PointerEventManager from './PointerEventManager';\nimport { State } from '../../State';\nimport { isPointerInBounds } from '../utils';\nimport EventManager from './EventManager';\nimport { Config } from '../interfaces';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport KeyboardEventManager from './KeyboardEventManager';\nimport WheelEventManager from './WheelEventManager';\n\ninterface DefaultViewStyles {\n userSelect: string;\n touchAction: string;\n}\n\nexport class GestureHandlerWebDelegate\n implements GestureHandlerDelegate<HTMLElement, IGestureHandler>\n{\n private isInitialized = false;\n private _view!: HTMLElement;\n\n private gestureHandler!: IGestureHandler;\n private eventManagers: EventManager<unknown>[] = [];\n private defaultViewStyles: DefaultViewStyles = {\n userSelect: '',\n touchAction: '',\n };\n\n init(viewRef: number, handler: IGestureHandler): void {\n if (!viewRef) {\n throw new Error(\n `Cannot find HTML Element for handler ${handler.handlerTag}`\n );\n }\n\n this.isInitialized = true;\n\n this.gestureHandler = handler;\n this.view = findNodeHandle(viewRef) as unknown as HTMLElement;\n\n this.defaultViewStyles = {\n userSelect: this.view.style.userSelect,\n touchAction: this.view.style.touchAction,\n };\n\n const config = handler.config;\n\n this.setUserSelect(config.enabled);\n this.setTouchAction(config.enabled);\n this.setContextMenu(config.enabled);\n\n this.eventManagers.push(new PointerEventManager(this.view));\n this.eventManagers.push(new KeyboardEventManager(this.view));\n this.eventManagers.push(new WheelEventManager(this.view));\n\n this.eventManagers.forEach((manager) =>\n this.gestureHandler.attachEventManager(manager)\n );\n }\n\n isPointerInBounds({ x, y }: { x: number; y: number }): boolean {\n return isPointerInBounds(this.view, { x, y });\n }\n\n measureView(): MeasureResult {\n const rect = this.view.getBoundingClientRect();\n\n return {\n pageX: rect.left,\n pageY: rect.top,\n width: rect.width,\n height: rect.height,\n };\n }\n\n reset(): void {\n this.eventManagers.forEach((manager: EventManager<unknown>) =>\n manager.resetManager()\n );\n }\n\n tryResetCursor() {\n const config = this.gestureHandler.config;\n\n if (\n config.activeCursor &&\n config.activeCursor !== 'auto' &&\n this.gestureHandler.state === State.ACTIVE\n ) {\n this.view.style.cursor = 'auto';\n }\n }\n\n private shouldDisableContextMenu(config: Config) {\n return (\n (config.enableContextMenu === undefined &&\n this.gestureHandler.isButtonInConfig(MouseButton.RIGHT)) ||\n config.enableContextMenu === false\n );\n }\n\n private addContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.addEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.addEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private removeContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.removeEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.removeEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private disableContextMenu(this: void, e: MouseEvent): void {\n e.preventDefault();\n }\n\n private enableContextMenu(this: void, e: MouseEvent): void {\n e.stopPropagation();\n }\n\n private setUserSelect(isHandlerEnabled: boolean) {\n const { userSelect } = this.gestureHandler.config;\n\n this.view.style['userSelect'] = isHandlerEnabled\n ? (userSelect ?? 'none')\n : this.defaultViewStyles.userSelect;\n\n this.view.style['webkitUserSelect'] = isHandlerEnabled\n ? (userSelect ?? 'none')\n : this.defaultViewStyles.userSelect;\n }\n\n private setTouchAction(isHandlerEnabled: boolean) {\n const { touchAction } = this.gestureHandler.config;\n\n this.view.style['touchAction'] = isHandlerEnabled\n ? (touchAction ?? 'none')\n : this.defaultViewStyles.touchAction;\n\n // @ts-ignore This one disables default events on Safari\n this.view.style['WebkitTouchCallout'] = isHandlerEnabled\n ? (touchAction ?? 'none')\n : this.defaultViewStyles.touchAction;\n }\n\n private setContextMenu(isHandlerEnabled: boolean) {\n const config = this.gestureHandler.config;\n\n if (isHandlerEnabled) {\n this.addContextMenuListeners(config);\n } else {\n this.removeContextMenuListeners(config);\n }\n }\n\n onEnabledChange(enabled: boolean): void {\n if (!this.isInitialized) {\n return;\n }\n\n this.setUserSelect(enabled);\n this.setTouchAction(enabled);\n this.setContextMenu(enabled);\n\n if (enabled) {\n this.eventManagers.forEach((manager) => {\n // It may look like managers will be registered twice when handler is mounted for the first time.\n // However, `init` method is called AFTER `updateGestureConfig` - it means that delegate has not\n // been initialized yet, so this code won't be executed.\n //\n // Also, because we use defined functions, not lambdas, they will not be registered multiple times.\n manager.registerListeners();\n });\n } else {\n this.eventManagers.forEach((manager) => {\n manager.unregisterListeners();\n });\n }\n }\n\n onBegin(): void {\n // no-op for now\n }\n\n onActivate(): void {\n const config = this.gestureHandler.config;\n\n if (\n (!this.view.style.cursor || this.view.style.cursor === 'auto') &&\n config.activeCursor\n ) {\n this.view.style.cursor = config.activeCursor;\n }\n }\n\n onEnd(): void {\n this.tryResetCursor();\n }\n\n onCancel(): void {\n this.tryResetCursor();\n }\n\n onFail(): void {\n this.tryResetCursor();\n }\n\n public destroy(config: Config): void {\n this.removeContextMenuListeners(config);\n\n this.eventManagers.forEach((manager) => {\n manager.unregisterListeners();\n });\n }\n\n public get view() {\n return this._view;\n }\n public set view(value: HTMLElement) {\n this._view = value;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,oBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAGA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,kBAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAoD,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAO7C,MAAMgB,yBAAyB,CAEtC;EAAAC,YAAA;IAAAnB,eAAA,wBAC0B,KAAK;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,wBAIoB,EAAE;IAAAA,eAAA,4BACJ;MAC7CoB,UAAU,EAAE,EAAE;MACdC,WAAW,EAAE;IACf,CAAC;EAAA;EAEDC,IAAIA,CAACC,OAAe,EAAEC,OAAwB,EAAQ;IACpD,IAAI,CAACD,OAAO,EAAE;MACZ,MAAM,IAAIE,KAAK,CACb,wCAAwCD,OAAO,CAACE,UAAU,EAC5D,CAAC;IACH;IAEA,IAAI,CAACC,aAAa,GAAG,IAAI;IAEzB,IAAI,CAACC,cAAc,GAAGJ,OAAO;IAC7B,IAAI,CAACK,IAAI,GAAG,IAAAC,uBAAc,EAACP,OAAO,CAA2B;IAE7D,IAAI,CAACQ,iBAAiB,GAAG;MACvBX,UAAU,EAAE,IAAI,CAACS,IAAI,CAACG,KAAK,CAACZ,UAAU;MACtCC,WAAW,EAAE,IAAI,CAACQ,IAAI,CAACG,KAAK,CAACX;IAC/B,CAAC;IAED,MAAMY,MAAM,GAAGT,OAAO,CAACS,MAAM;IAE7B,IAAI,CAACC,aAAa,CAACD,MAAM,CAACE,OAAO,CAAC;IAClC,IAAI,CAACC,cAAc,CAACH,MAAM,CAACE,OAAO,CAAC;IACnC,IAAI,CAACE,cAAc,CAACJ,MAAM,CAACE,OAAO,CAAC;IAEnC,IAAI,CAACG,aAAa,CAACC,IAAI,CAAC,IAAIC,4BAAmB,CAAC,IAAI,CAACX,IAAI,CAAC,CAAC;IAC3D,IAAI,CAACS,aAAa,CAACC,IAAI,CAAC,IAAIE,6BAAoB,CAAC,IAAI,CAACZ,IAAI,CAAC,CAAC;IAC5D,IAAI,CAACS,aAAa,CAACC,IAAI,CAAC,IAAIG,0BAAiB,CAAC,IAAI,CAACb,IAAI,CAAC,CAAC;IAEzD,IAAI,CAACS,aAAa,CAACK,OAAO,CAAEC,OAAO,IACjC,IAAI,CAAChB,cAAc,CAACiB,kBAAkB,CAACD,OAAO,CAChD,CAAC;EACH;EAEAE,iBAAiBA,CAAC;IAAEC,CAAC;IAAEC;EAA4B,CAAC,EAAW;IAC7D,OAAO,IAAAF,wBAAiB,EAAC,IAAI,CAACjB,IAAI,EAAE;MAAEkB,CAAC;MAAEC;IAAE,CAAC,CAAC;EAC/C;EAEAC,WAAWA,CAAA,EAAkB;IAC3B,MAAMC,IAAI,GAAG,IAAI,CAACrB,IAAI,CAACsB,qBAAqB,CAAC,CAAC;IAE9C,OAAO;MACLC,KAAK,EAAEF,IAAI,CAACG,IAAI;MAChBC,KAAK,EAAEJ,IAAI,CAACK,GAAG;MACfC,KAAK,EAAEN,IAAI,CAACM,KAAK;MACjBC,MAAM,EAAEP,IAAI,CAACO;IACf,CAAC;EACH;EAEAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACpB,aAAa,CAACK,OAAO,CAAEC,OAA8B,IACxDA,OAAO,CAACe,YAAY,CAAC,CACvB,CAAC;EACH;EAEAC,cAAcA,CAAA,EAAG;IACf,MAAM3B,MAAM,GAAG,IAAI,CAACL,cAAc,CAACK,MAAM;IAEzC,IACEA,MAAM,CAAC4B,YAAY,IACnB5B,MAAM,CAAC4B,YAAY,KAAK,MAAM,IAC9B,IAAI,CAACjC,cAAc,CAACkC,KAAK,KAAKC,YAAK,CAACC,MAAM,EAC1C;MACA,IAAI,CAACnC,IAAI,CAACG,KAAK,CAACiC,MAAM,GAAG,MAAM;IACjC;EACF;EAEQC,wBAAwBA,CAACjC,MAAc,EAAE;IAC/C,OACGA,MAAM,CAACkC,iBAAiB,KAAKC,SAAS,IACrC,IAAI,CAACxC,cAAc,CAACyC,gBAAgB,CAACC,iCAAW,CAACC,KAAK,CAAC,IACzDtC,MAAM,CAACkC,iBAAiB,KAAK,KAAK;EAEtC;EAEQK,uBAAuBA,CAACvC,MAAc,EAAQ;IACpD,IAAI,IAAI,CAACiC,wBAAwB,CAACjC,MAAM,CAAC,EAAE;MACzC,IAAI,CAACJ,IAAI,CAAC4C,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAACC,kBAAkB,CAAC;IACpE,CAAC,MAAM,IAAIzC,MAAM,CAACkC,iBAAiB,EAAE;MACnC,IAAI,CAACtC,IAAI,CAAC4C,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAACN,iBAAiB,CAAC;IACnE;EACF;EAEQQ,0BAA0BA,CAAC1C,MAAc,EAAQ;IACvD,IAAI,IAAI,CAACiC,wBAAwB,CAACjC,MAAM,CAAC,EAAE;MACzC,IAAI,CAACJ,IAAI,CAAC+C,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAACF,kBAAkB,CAAC;IACvE,CAAC,MAAM,IAAIzC,MAAM,CAACkC,iBAAiB,EAAE;MACnC,IAAI,CAACtC,IAAI,CAAC+C,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAACT,iBAAiB,CAAC;IACtE;EACF;EAEQO,kBAAkBA,CAAa7E,CAAa,EAAQ;IAC1DA,CAAC,CAACgF,cAAc,CAAC,CAAC;EACpB;EAEQV,iBAAiBA,CAAatE,CAAa,EAAQ;IACzDA,CAAC,CAACiF,eAAe,CAAC,CAAC;EACrB;EAEQ5C,aAAaA,CAAC6C,gBAAyB,EAAE;IAC/C,MAAM;MAAE3D;IAAW,CAAC,GAAG,IAAI,CAACQ,cAAc,CAACK,MAAM;IAEjD,IAAI,CAACJ,IAAI,CAACG,KAAK,CAAC,YAAY,CAAC,GAAG+C,gBAAgB,GAC3C3D,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,MAAM,GACrB,IAAI,CAACW,iBAAiB,CAACX,UAAU;IAErC,IAAI,CAACS,IAAI,CAACG,KAAK,CAAC,kBAAkB,CAAC,GAAG+C,gBAAgB,GACjD3D,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,MAAM,GACrB,IAAI,CAACW,iBAAiB,CAACX,UAAU;EACvC;EAEQgB,cAAcA,CAAC2C,gBAAyB,EAAE;IAChD,MAAM;MAAE1D;IAAY,CAAC,GAAG,IAAI,CAACO,cAAc,CAACK,MAAM;IAElD,IAAI,CAACJ,IAAI,CAACG,KAAK,CAAC,aAAa,CAAC,GAAG+C,gBAAgB,GAC5C1D,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,MAAM,GACtB,IAAI,CAACU,iBAAiB,CAACV,WAAW;;IAEtC;IACA,IAAI,CAACQ,IAAI,CAACG,KAAK,CAAC,oBAAoB,CAAC,GAAG+C,gBAAgB,GACnD1D,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,MAAM,GACtB,IAAI,CAACU,iBAAiB,CAACV,WAAW;EACxC;EAEQgB,cAAcA,CAAC0C,gBAAyB,EAAE;IAChD,MAAM9C,MAAM,GAAG,IAAI,CAACL,cAAc,CAACK,MAAM;IAEzC,IAAI8C,gBAAgB,EAAE;MACpB,IAAI,CAACP,uBAAuB,CAACvC,MAAM,CAAC;IACtC,CAAC,MAAM;MACL,IAAI,CAAC0C,0BAA0B,CAAC1C,MAAM,CAAC;IACzC;EACF;EAEA+C,eAAeA,CAAC7C,OAAgB,EAAQ;IACtC,IAAI,CAAC,IAAI,CAACR,aAAa,EAAE;MACvB;IACF;IAEA,IAAI,CAACO,aAAa,CAACC,OAAO,CAAC;IAC3B,IAAI,CAACC,cAAc,CAACD,OAAO,CAAC;IAC5B,IAAI,CAACE,cAAc,CAACF,OAAO,CAAC;IAE5B,IAAIA,OAAO,EAAE;MACX,IAAI,CAACG,aAAa,CAACK,OAAO,CAAEC,OAAO,IAAK;QACtC;QACA;QACA;QACA;QACA;QACAA,OAAO,CAACqC,iBAAiB,CAAC,CAAC;MAC7B,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,IAAI,CAAC3C,aAAa,CAACK,OAAO,CAAEC,OAAO,IAAK;QACtCA,OAAO,CAACsC,mBAAmB,CAAC,CAAC;MAC/B,CAAC,CAAC;IACJ;EACF;EAEAC,OAAOA,CAAA,EAAS;IACd;EAAA;EAGFC,UAAUA,CAAA,EAAS;IACjB,MAAMnD,MAAM,GAAG,IAAI,CAACL,cAAc,CAACK,MAAM;IAEzC,IACE,CAAC,CAAC,IAAI,CAACJ,IAAI,CAACG,KAAK,CAACiC,MAAM,IAAI,IAAI,CAACpC,IAAI,CAACG,KAAK,CAACiC,MAAM,KAAK,MAAM,KAC7DhC,MAAM,CAAC4B,YAAY,EACnB;MACA,IAAI,CAAChC,IAAI,CAACG,KAAK,CAACiC,MAAM,GAAGhC,MAAM,CAAC4B,YAAY;IAC9C;EACF;EAEAwB,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACzB,cAAc,CAAC,CAAC;EACvB;EAEA0B,QAAQA,CAAA,EAAS;IACf,IAAI,CAAC1B,cAAc,CAAC,CAAC;EACvB;EAEA2B,MAAMA,CAAA,EAAS;IACb,IAAI,CAAC3B,cAAc,CAAC,CAAC;EACvB;EAEO4B,OAAOA,CAACvD,MAAc,EAAQ;IACnC,IAAI,CAAC0C,0BAA0B,CAAC1C,MAAM,CAAC;IAEvC,IAAI,CAACK,aAAa,CAACK,OAAO,CAAEC,OAAO,IAAK;MACtCA,OAAO,CAACsC,mBAAmB,CAAC,CAAC;IAC/B,CAAC,CAAC;EACJ;EAEA,IAAWrD,IAAIA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAC4D,KAAK;EACnB;EACA,IAAW5D,IAAIA,CAACvB,KAAkB,EAAE;IAClC,IAAI,CAACmF,KAAK,GAAGnF,KAAK;EACpB;AACF;AAACoF,OAAA,CAAAxE,yBAAA,GAAAA,yBAAA","ignoreList":[]}
1
+ {"version":3,"sources":["GestureHandlerWebDelegate.ts"],"names":["GestureHandlerWebDelegate","userSelect","touchAction","init","viewRef","handler","Error","handlerTag","isInitialized","gestureHandler","view","defaultViewStyles","style","config","setUserSelect","enabled","setTouchAction","setContextMenu","eventManagers","push","PointerEventManager","KeyboardEventManager","WheelEventManager","forEach","manager","attachEventManager","isPointerInBounds","x","y","measureView","rect","getBoundingClientRect","pageX","left","pageY","top","width","height","reset","resetManager","tryResetCursor","activeCursor","state","State","ACTIVE","cursor","shouldDisableContextMenu","enableContextMenu","undefined","isButtonInConfig","MouseButton","RIGHT","addContextMenuListeners","addEventListener","disableContextMenu","removeContextMenuListeners","removeEventListener","e","preventDefault","stopPropagation","isHandlerEnabled","onEnabledChange","registerListeners","unregisterListeners","onBegin","onActivate","onEnd","onCancel","onFail","destroy","_view","value"],"mappings":"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","sourcesContent":["import findNodeHandle from '../../findNodeHandle';\nimport type IGestureHandler from '../handlers/IGestureHandler';\nimport {\n GestureHandlerDelegate,\n MeasureResult,\n} from './GestureHandlerDelegate';\nimport PointerEventManager from './PointerEventManager';\nimport { State } from '../../State';\nimport { isPointerInBounds } from '../utils';\nimport EventManager from './EventManager';\nimport { Config } from '../interfaces';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport KeyboardEventManager from './KeyboardEventManager';\nimport WheelEventManager from './WheelEventManager';\n\ninterface DefaultViewStyles {\n userSelect: string;\n touchAction: string;\n}\n\nexport class GestureHandlerWebDelegate\n implements GestureHandlerDelegate<HTMLElement, IGestureHandler>\n{\n private isInitialized = false;\n private _view!: HTMLElement;\n\n private gestureHandler!: IGestureHandler;\n private eventManagers: EventManager<unknown>[] = [];\n private defaultViewStyles: DefaultViewStyles = {\n userSelect: '',\n touchAction: '',\n };\n\n init(viewRef: number, handler: IGestureHandler): void {\n if (!viewRef) {\n throw new Error(\n `Cannot find HTML Element for handler ${handler.handlerTag}`\n );\n }\n\n this.isInitialized = true;\n\n this.gestureHandler = handler;\n this.view = findNodeHandle(viewRef) as unknown as HTMLElement;\n\n this.defaultViewStyles = {\n userSelect: this.view.style.userSelect,\n touchAction: this.view.style.touchAction,\n };\n\n const config = handler.config;\n\n this.setUserSelect(config.enabled);\n this.setTouchAction(config.enabled);\n this.setContextMenu(config.enabled);\n\n this.eventManagers.push(new PointerEventManager(this.view));\n this.eventManagers.push(new KeyboardEventManager(this.view));\n this.eventManagers.push(new WheelEventManager(this.view));\n\n this.eventManagers.forEach((manager) =>\n this.gestureHandler.attachEventManager(manager)\n );\n }\n\n isPointerInBounds({ x, y }: { x: number; y: number }): boolean {\n return isPointerInBounds(this.view, { x, y });\n }\n\n measureView(): MeasureResult {\n const rect = this.view.getBoundingClientRect();\n\n return {\n pageX: rect.left,\n pageY: rect.top,\n width: rect.width,\n height: rect.height,\n };\n }\n\n reset(): void {\n this.eventManagers.forEach((manager: EventManager<unknown>) =>\n manager.resetManager()\n );\n }\n\n tryResetCursor() {\n const config = this.gestureHandler.config;\n\n if (\n config.activeCursor &&\n config.activeCursor !== 'auto' &&\n this.gestureHandler.state === State.ACTIVE\n ) {\n this.view.style.cursor = 'auto';\n }\n }\n\n private shouldDisableContextMenu(config: Config) {\n return (\n (config.enableContextMenu === undefined &&\n this.gestureHandler.isButtonInConfig(MouseButton.RIGHT)) ||\n config.enableContextMenu === false\n );\n }\n\n private addContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.addEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.addEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private removeContextMenuListeners(config: Config): void {\n if (this.shouldDisableContextMenu(config)) {\n this.view.removeEventListener('contextmenu', this.disableContextMenu);\n } else if (config.enableContextMenu) {\n this.view.removeEventListener('contextmenu', this.enableContextMenu);\n }\n }\n\n private disableContextMenu(this: void, e: MouseEvent): void {\n e.preventDefault();\n }\n\n private enableContextMenu(this: void, e: MouseEvent): void {\n e.stopPropagation();\n }\n\n private setUserSelect(isHandlerEnabled: boolean) {\n const { userSelect } = this.gestureHandler.config;\n\n this.view.style['userSelect'] = isHandlerEnabled\n ? (userSelect ?? 'none')\n : this.defaultViewStyles.userSelect;\n\n this.view.style['webkitUserSelect'] = isHandlerEnabled\n ? (userSelect ?? 'none')\n : this.defaultViewStyles.userSelect;\n }\n\n private setTouchAction(isHandlerEnabled: boolean) {\n const { touchAction } = this.gestureHandler.config;\n\n this.view.style['touchAction'] = isHandlerEnabled\n ? (touchAction ?? 'none')\n : this.defaultViewStyles.touchAction;\n\n // @ts-ignore This one disables default events on Safari\n this.view.style['WebkitTouchCallout'] = isHandlerEnabled\n ? (touchAction ?? 'none')\n : this.defaultViewStyles.touchAction;\n }\n\n private setContextMenu(isHandlerEnabled: boolean) {\n const config = this.gestureHandler.config;\n\n if (isHandlerEnabled) {\n this.addContextMenuListeners(config);\n } else {\n this.removeContextMenuListeners(config);\n }\n }\n\n onEnabledChange(enabled: boolean): void {\n if (!this.isInitialized) {\n return;\n }\n\n this.setUserSelect(enabled);\n this.setTouchAction(enabled);\n this.setContextMenu(enabled);\n\n if (enabled) {\n this.eventManagers.forEach((manager) => {\n // It may look like managers will be registered twice when handler is mounted for the first time.\n // However, `init` method is called AFTER `updateGestureConfig` - it means that delegate has not\n // been initialized yet, so this code won't be executed.\n //\n // Also, because we use defined functions, not lambdas, they will not be registered multiple times.\n manager.registerListeners();\n });\n } else {\n this.eventManagers.forEach((manager) => {\n manager.unregisterListeners();\n });\n }\n }\n\n onBegin(): void {\n // no-op for now\n }\n\n onActivate(): void {\n const config = this.gestureHandler.config;\n\n if (\n (!this.view.style.cursor || this.view.style.cursor === 'auto') &&\n config.activeCursor\n ) {\n this.view.style.cursor = config.activeCursor;\n }\n }\n\n onEnd(): void {\n this.tryResetCursor();\n }\n\n onCancel(): void {\n this.tryResetCursor();\n }\n\n onFail(): void {\n this.tryResetCursor();\n }\n\n public destroy(config: Config): void {\n this.removeContextMenuListeners(config);\n\n this.eventManagers.forEach((manager) => {\n manager.unregisterListeners();\n });\n }\n\n public get view() {\n return this._view;\n }\n public set view(value: HTMLElement) {\n this._view = value;\n }\n}\n"]}
@@ -4,21 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _State = require("../../State");
8
- var _InteractionManager;
9
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
10
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
11
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
+
10
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+
12
12
  class InteractionManager {
13
13
  // Private becaues of singleton
14
14
  // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function
15
15
  constructor() {
16
16
  _defineProperty(this, "waitForRelations", new Map());
17
+
17
18
  _defineProperty(this, "simultaneousRelations", new Map());
19
+
18
20
  _defineProperty(this, "blocksHandlersRelations", new Map());
19
21
  }
22
+
20
23
  configureInteractions(handler, config) {
21
24
  this.dropRelationsForHandlerWithTag(handler.handlerTag);
25
+
22
26
  if (config.waitFor) {
23
27
  const waitFor = [];
24
28
  config.waitFor.forEach(otherHandler => {
@@ -32,6 +36,7 @@ class InteractionManager {
32
36
  });
33
37
  this.waitForRelations.set(handler.handlerTag, waitFor);
34
38
  }
39
+
35
40
  if (config.simultaneousHandlers) {
36
41
  const simultaneousHandlers = [];
37
42
  config.simultaneousHandlers.forEach(otherHandler => {
@@ -43,6 +48,7 @@ class InteractionManager {
43
48
  });
44
49
  this.simultaneousRelations.set(handler.handlerTag, simultaneousHandlers);
45
50
  }
51
+
46
52
  if (config.blocksHandlers) {
47
53
  const blocksHandlers = [];
48
54
  config.blocksHandlers.forEach(otherHandler => {
@@ -55,50 +61,61 @@ class InteractionManager {
55
61
  this.blocksHandlersRelations.set(handler.handlerTag, blocksHandlers);
56
62
  }
57
63
  }
64
+
58
65
  shouldWaitForHandlerFailure(handler, otherHandler) {
59
66
  const waitFor = this.waitForRelations.get(handler.handlerTag);
60
67
  return (waitFor === null || waitFor === void 0 ? void 0 : waitFor.find(tag => {
61
68
  return tag === otherHandler.handlerTag;
62
69
  })) !== undefined;
63
70
  }
71
+
64
72
  shouldRecognizeSimultaneously(handler, otherHandler) {
65
73
  const simultaneousHandlers = this.simultaneousRelations.get(handler.handlerTag);
66
74
  return (simultaneousHandlers === null || simultaneousHandlers === void 0 ? void 0 : simultaneousHandlers.find(tag => {
67
75
  return tag === otherHandler.handlerTag;
68
76
  })) !== undefined;
69
77
  }
78
+
70
79
  shouldRequireHandlerToWaitForFailure(handler, otherHandler) {
71
80
  const waitFor = this.blocksHandlersRelations.get(handler.handlerTag);
72
81
  return (waitFor === null || waitFor === void 0 ? void 0 : waitFor.find(tag => {
73
82
  return tag === otherHandler.handlerTag;
74
83
  })) !== undefined;
75
84
  }
85
+
76
86
  shouldHandlerBeCancelledBy(_handler, otherHandler) {
77
87
  var _otherHandler$isButto;
88
+
78
89
  // We check constructor name instead of using `instanceof` in order do avoid circular dependencies
79
90
  const isNativeHandler = otherHandler.constructor.name === 'NativeViewGestureHandler';
80
91
  const isActive = otherHandler.state === _State.State.ACTIVE;
81
92
  const isButton = ((_otherHandler$isButto = otherHandler.isButton) === null || _otherHandler$isButto === void 0 ? void 0 : _otherHandler$isButto.call(otherHandler)) === true;
82
93
  return isNativeHandler && isActive && !isButton;
83
94
  }
95
+
84
96
  dropRelationsForHandlerWithTag(handlerTag) {
85
97
  this.waitForRelations.delete(handlerTag);
86
98
  this.simultaneousRelations.delete(handlerTag);
87
99
  this.blocksHandlersRelations.delete(handlerTag);
88
100
  }
101
+
89
102
  reset() {
90
103
  this.waitForRelations.clear();
91
104
  this.simultaneousRelations.clear();
92
105
  this.blocksHandlersRelations.clear();
93
106
  }
107
+
94
108
  static get instance() {
95
109
  if (!this._instance) {
96
110
  this._instance = new InteractionManager();
97
111
  }
112
+
98
113
  return this._instance;
99
114
  }
115
+
100
116
  }
117
+
101
118
  exports.default = InteractionManager;
102
- _InteractionManager = InteractionManager;
119
+
103
120
  _defineProperty(InteractionManager, "_instance", void 0);
104
121
  //# sourceMappingURL=InteractionManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_State","require","_InteractionManager","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","InteractionManager","constructor","Map","configureInteractions","handler","config","dropRelationsForHandlerWithTag","handlerTag","waitFor","forEach","otherHandler","push","waitForRelations","set","simultaneousHandlers","simultaneousRelations","blocksHandlers","blocksHandlersRelations","shouldWaitForHandlerFailure","get","find","tag","undefined","shouldRecognizeSimultaneously","shouldRequireHandlerToWaitForFailure","shouldHandlerBeCancelledBy","_handler","_otherHandler$isButto","isNativeHandler","name","isActive","state","State","ACTIVE","isButton","delete","reset","clear","instance","_instance","exports","default"],"sources":["InteractionManager.ts"],"sourcesContent":["import type IGestureHandler from '../handlers/IGestureHandler';\nimport { State } from '../../State';\nimport { Config, Handler } from '../interfaces';\n\nexport default class InteractionManager {\n private static _instance: InteractionManager;\n private readonly waitForRelations: Map<number, number[]> = new Map();\n private readonly simultaneousRelations: Map<number, number[]> = new Map();\n private readonly blocksHandlersRelations: Map<number, number[]> = new Map();\n\n // Private becaues of singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n public configureInteractions(handler: IGestureHandler, config: Config) {\n this.dropRelationsForHandlerWithTag(handler.handlerTag);\n\n if (config.waitFor) {\n const waitFor: number[] = [];\n config.waitFor.forEach((otherHandler: Handler): void => {\n // New API reference\n if (typeof otherHandler === 'number') {\n waitFor.push(otherHandler);\n } else {\n // Old API reference\n waitFor.push(otherHandler.handlerTag);\n }\n });\n\n this.waitForRelations.set(handler.handlerTag, waitFor);\n }\n\n if (config.simultaneousHandlers) {\n const simultaneousHandlers: number[] = [];\n config.simultaneousHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n simultaneousHandlers.push(otherHandler);\n } else {\n simultaneousHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.simultaneousRelations.set(handler.handlerTag, simultaneousHandlers);\n }\n\n if (config.blocksHandlers) {\n const blocksHandlers: number[] = [];\n config.blocksHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n blocksHandlers.push(otherHandler);\n } else {\n blocksHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.blocksHandlersRelations.set(handler.handlerTag, blocksHandlers);\n }\n }\n\n public shouldWaitForHandlerFailure(\n handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.waitForRelations.get(\n handler.handlerTag\n );\n\n return (\n waitFor?.find((tag: number) => {\n return tag === otherHandler.handlerTag;\n }) !== undefined\n );\n }\n\n public shouldRecognizeSimultaneously(\n handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n const simultaneousHandlers: number[] | undefined =\n this.simultaneousRelations.get(handler.handlerTag);\n\n return (\n simultaneousHandlers?.find((tag: number) => {\n return tag === otherHandler.handlerTag;\n }) !== undefined\n );\n }\n\n public shouldRequireHandlerToWaitForFailure(\n handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.blocksHandlersRelations.get(\n handler.handlerTag\n );\n\n return (\n waitFor?.find((tag: number) => {\n return tag === otherHandler.handlerTag;\n }) !== undefined\n );\n }\n\n public shouldHandlerBeCancelledBy(\n _handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n // We check constructor name instead of using `instanceof` in order do avoid circular dependencies\n const isNativeHandler =\n otherHandler.constructor.name === 'NativeViewGestureHandler';\n const isActive = otherHandler.state === State.ACTIVE;\n const isButton = otherHandler.isButton?.() === true;\n\n return isNativeHandler && isActive && !isButton;\n }\n\n public dropRelationsForHandlerWithTag(handlerTag: number): void {\n this.waitForRelations.delete(handlerTag);\n this.simultaneousRelations.delete(handlerTag);\n this.blocksHandlersRelations.delete(handlerTag);\n }\n\n public reset() {\n this.waitForRelations.clear();\n this.simultaneousRelations.clear();\n this.blocksHandlersRelations.clear();\n }\n\n public static get instance(): InteractionManager {\n if (!this._instance) {\n this._instance = new InteractionManager();\n }\n\n return this._instance;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["InteractionManager.ts"],"names":["InteractionManager","constructor","Map","configureInteractions","handler","config","dropRelationsForHandlerWithTag","handlerTag","waitFor","forEach","otherHandler","push","waitForRelations","set","simultaneousHandlers","simultaneousRelations","blocksHandlers","blocksHandlersRelations","shouldWaitForHandlerFailure","get","find","tag","undefined","shouldRecognizeSimultaneously","shouldRequireHandlerToWaitForFailure","shouldHandlerBeCancelledBy","_handler","isNativeHandler","name","isActive","state","State","ACTIVE","isButton","delete","reset","clear","instance","_instance"],"mappings":";;;;;;;AACA;;;;AAGe,MAAMA,kBAAN,CAAyB;AAMtC;AACA;AACQC,EAAAA,WAAW,GAAG;AAAA,8CANqC,IAAIC,GAAJ,EAMrC;;AAAA,mDAL0C,IAAIA,GAAJ,EAK1C;;AAAA,qDAJ4C,IAAIA,GAAJ,EAI5C;AAAE;;AAEjBC,EAAAA,qBAAqB,CAACC,OAAD,EAA2BC,MAA3B,EAA2C;AACrE,SAAKC,8BAAL,CAAoCF,OAAO,CAACG,UAA5C;;AAEA,QAAIF,MAAM,CAACG,OAAX,EAAoB;AAClB,YAAMA,OAAiB,GAAG,EAA1B;AACAH,MAAAA,MAAM,CAACG,OAAP,CAAeC,OAAf,CAAwBC,YAAD,IAAiC;AACtD;AACA,YAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AACpCF,UAAAA,OAAO,CAACG,IAAR,CAAaD,YAAb;AACD,SAFD,MAEO;AACL;AACAF,UAAAA,OAAO,CAACG,IAAR,CAAaD,YAAY,CAACH,UAA1B;AACD;AACF,OARD;AAUA,WAAKK,gBAAL,CAAsBC,GAAtB,CAA0BT,OAAO,CAACG,UAAlC,EAA8CC,OAA9C;AACD;;AAED,QAAIH,MAAM,CAACS,oBAAX,EAAiC;AAC/B,YAAMA,oBAA8B,GAAG,EAAvC;AACAT,MAAAA,MAAM,CAACS,oBAAP,CAA4BL,OAA5B,CAAqCC,YAAD,IAAiC;AACnE,YAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AACpCI,UAAAA,oBAAoB,CAACH,IAArB,CAA0BD,YAA1B;AACD,SAFD,MAEO;AACLI,UAAAA,oBAAoB,CAACH,IAArB,CAA0BD,YAAY,CAACH,UAAvC;AACD;AACF,OAND;AAQA,WAAKQ,qBAAL,CAA2BF,GAA3B,CAA+BT,OAAO,CAACG,UAAvC,EAAmDO,oBAAnD;AACD;;AAED,QAAIT,MAAM,CAACW,cAAX,EAA2B;AACzB,YAAMA,cAAwB,GAAG,EAAjC;AACAX,MAAAA,MAAM,CAACW,cAAP,CAAsBP,OAAtB,CAA+BC,YAAD,IAAiC;AAC7D,YAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AACpCM,UAAAA,cAAc,CAACL,IAAf,CAAoBD,YAApB;AACD,SAFD,MAEO;AACLM,UAAAA,cAAc,CAACL,IAAf,CAAoBD,YAAY,CAACH,UAAjC;AACD;AACF,OAND;AAQA,WAAKU,uBAAL,CAA6BJ,GAA7B,CAAiCT,OAAO,CAACG,UAAzC,EAAqDS,cAArD;AACD;AACF;;AAEME,EAAAA,2BAA2B,CAChCd,OADgC,EAEhCM,YAFgC,EAGvB;AACT,UAAMF,OAA6B,GAAG,KAAKI,gBAAL,CAAsBO,GAAtB,CACpCf,OAAO,CAACG,UAD4B,CAAtC;AAIA,WACE,CAAAC,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEY,IAAT,CAAeC,GAAD,IAAiB;AAC7B,aAAOA,GAAG,KAAKX,YAAY,CAACH,UAA5B;AACD,KAFD,OAEOe,SAHT;AAKD;;AAEMC,EAAAA,6BAA6B,CAClCnB,OADkC,EAElCM,YAFkC,EAGzB;AACT,UAAMI,oBAA0C,GAC9C,KAAKC,qBAAL,CAA2BI,GAA3B,CAA+Bf,OAAO,CAACG,UAAvC,CADF;AAGA,WACE,CAAAO,oBAAoB,SAApB,IAAAA,oBAAoB,WAApB,YAAAA,oBAAoB,CAAEM,IAAtB,CAA4BC,GAAD,IAAiB;AAC1C,aAAOA,GAAG,KAAKX,YAAY,CAACH,UAA5B;AACD,KAFD,OAEOe,SAHT;AAKD;;AAEME,EAAAA,oCAAoC,CACzCpB,OADyC,EAEzCM,YAFyC,EAGhC;AACT,UAAMF,OAA6B,GAAG,KAAKS,uBAAL,CAA6BE,GAA7B,CACpCf,OAAO,CAACG,UAD4B,CAAtC;AAIA,WACE,CAAAC,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEY,IAAT,CAAeC,GAAD,IAAiB;AAC7B,aAAOA,GAAG,KAAKX,YAAY,CAACH,UAA5B;AACD,KAFD,OAEOe,SAHT;AAKD;;AAEMG,EAAAA,0BAA0B,CAC/BC,QAD+B,EAE/BhB,YAF+B,EAGtB;AAAA;;AACT;AACA,UAAMiB,eAAe,GACnBjB,YAAY,CAACT,WAAb,CAAyB2B,IAAzB,KAAkC,0BADpC;AAEA,UAAMC,QAAQ,GAAGnB,YAAY,CAACoB,KAAb,KAAuBC,aAAMC,MAA9C;AACA,UAAMC,QAAQ,GAAG,0BAAAvB,YAAY,CAACuB,QAAb,qFAAAvB,YAAY,OAAkB,IAA/C;AAEA,WAAOiB,eAAe,IAAIE,QAAnB,IAA+B,CAACI,QAAvC;AACD;;AAEM3B,EAAAA,8BAA8B,CAACC,UAAD,EAA2B;AAC9D,SAAKK,gBAAL,CAAsBsB,MAAtB,CAA6B3B,UAA7B;AACA,SAAKQ,qBAAL,CAA2BmB,MAA3B,CAAkC3B,UAAlC;AACA,SAAKU,uBAAL,CAA6BiB,MAA7B,CAAoC3B,UAApC;AACD;;AAEM4B,EAAAA,KAAK,GAAG;AACb,SAAKvB,gBAAL,CAAsBwB,KAAtB;AACA,SAAKrB,qBAAL,CAA2BqB,KAA3B;AACA,SAAKnB,uBAAL,CAA6BmB,KAA7B;AACD;;AAEyB,aAARC,QAAQ,GAAuB;AAC/C,QAAI,CAAC,KAAKC,SAAV,EAAqB;AACnB,WAAKA,SAAL,GAAiB,IAAItC,kBAAJ,EAAjB;AACD;;AAED,WAAO,KAAKsC,SAAZ;AACD;;AAlIqC;;;;gBAAnBtC,kB","sourcesContent":["import type IGestureHandler from '../handlers/IGestureHandler';\nimport { State } from '../../State';\nimport { Config, Handler } from '../interfaces';\n\nexport default class InteractionManager {\n private static _instance: InteractionManager;\n private readonly waitForRelations: Map<number, number[]> = new Map();\n private readonly simultaneousRelations: Map<number, number[]> = new Map();\n private readonly blocksHandlersRelations: Map<number, number[]> = new Map();\n\n // Private becaues of singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n public configureInteractions(handler: IGestureHandler, config: Config) {\n this.dropRelationsForHandlerWithTag(handler.handlerTag);\n\n if (config.waitFor) {\n const waitFor: number[] = [];\n config.waitFor.forEach((otherHandler: Handler): void => {\n // New API reference\n if (typeof otherHandler === 'number') {\n waitFor.push(otherHandler);\n } else {\n // Old API reference\n waitFor.push(otherHandler.handlerTag);\n }\n });\n\n this.waitForRelations.set(handler.handlerTag, waitFor);\n }\n\n if (config.simultaneousHandlers) {\n const simultaneousHandlers: number[] = [];\n config.simultaneousHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n simultaneousHandlers.push(otherHandler);\n } else {\n simultaneousHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.simultaneousRelations.set(handler.handlerTag, simultaneousHandlers);\n }\n\n if (config.blocksHandlers) {\n const blocksHandlers: number[] = [];\n config.blocksHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n blocksHandlers.push(otherHandler);\n } else {\n blocksHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.blocksHandlersRelations.set(handler.handlerTag, blocksHandlers);\n }\n }\n\n public shouldWaitForHandlerFailure(\n handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.waitForRelations.get(\n handler.handlerTag\n );\n\n return (\n waitFor?.find((tag: number) => {\n return tag === otherHandler.handlerTag;\n }) !== undefined\n );\n }\n\n public shouldRecognizeSimultaneously(\n handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n const simultaneousHandlers: number[] | undefined =\n this.simultaneousRelations.get(handler.handlerTag);\n\n return (\n simultaneousHandlers?.find((tag: number) => {\n return tag === otherHandler.handlerTag;\n }) !== undefined\n );\n }\n\n public shouldRequireHandlerToWaitForFailure(\n handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.blocksHandlersRelations.get(\n handler.handlerTag\n );\n\n return (\n waitFor?.find((tag: number) => {\n return tag === otherHandler.handlerTag;\n }) !== undefined\n );\n }\n\n public shouldHandlerBeCancelledBy(\n _handler: IGestureHandler,\n otherHandler: IGestureHandler\n ): boolean {\n // We check constructor name instead of using `instanceof` in order do avoid circular dependencies\n const isNativeHandler =\n otherHandler.constructor.name === 'NativeViewGestureHandler';\n const isActive = otherHandler.state === State.ACTIVE;\n const isButton = otherHandler.isButton?.() === true;\n\n return isNativeHandler && isActive && !isButton;\n }\n\n public dropRelationsForHandlerWithTag(handlerTag: number): void {\n this.waitForRelations.delete(handlerTag);\n this.simultaneousRelations.delete(handlerTag);\n this.blocksHandlersRelations.delete(handlerTag);\n }\n\n public reset() {\n this.waitForRelations.clear();\n this.simultaneousRelations.clear();\n this.blocksHandlersRelations.clear();\n }\n\n public static get instance(): InteractionManager {\n if (!this._instance) {\n this._instance = new InteractionManager();\n }\n\n return this._instance;\n }\n}\n"]}
@@ -4,64 +4,84 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+
7
8
  var _interfaces = require("../interfaces");
9
+
8
10
  var _EventManager = _interopRequireDefault(require("./EventManager"));
11
+
9
12
  var _PointerType = require("../../PointerType");
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
13
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
14
18
  class KeyboardEventManager extends _EventManager.default {
15
19
  constructor(...args) {
16
20
  super(...args);
21
+
17
22
  _defineProperty(this, "activationKeys", ['Enter', ' ']);
23
+
18
24
  _defineProperty(this, "cancelationKeys", ['Tab']);
25
+
19
26
  _defineProperty(this, "isPressed", false);
27
+
20
28
  _defineProperty(this, "keyDownCallback", event => {
21
29
  if (this.cancelationKeys.indexOf(event.key) !== -1 && this.isPressed) {
22
30
  this.dispatchEvent(event, _interfaces.EventTypes.CANCEL);
23
31
  return;
24
32
  }
33
+
25
34
  if (this.activationKeys.indexOf(event.key) === -1) {
26
35
  return;
27
36
  }
37
+
28
38
  this.dispatchEvent(event, _interfaces.EventTypes.DOWN);
29
39
  });
40
+
30
41
  _defineProperty(this, "keyUpCallback", event => {
31
42
  if (this.activationKeys.indexOf(event.key) === -1 || !this.isPressed) {
32
43
  return;
33
44
  }
45
+
34
46
  this.dispatchEvent(event, _interfaces.EventTypes.UP);
35
47
  });
36
48
  }
49
+
37
50
  dispatchEvent(event, eventType) {
38
51
  if (!(event.target instanceof HTMLElement)) {
39
52
  return;
40
53
  }
54
+
41
55
  const adaptedEvent = this.mapEvent(event, eventType);
56
+
42
57
  switch (eventType) {
43
58
  case _interfaces.EventTypes.UP:
44
59
  this.isPressed = false;
45
60
  this.onPointerUp(adaptedEvent);
46
61
  break;
62
+
47
63
  case _interfaces.EventTypes.DOWN:
48
64
  this.isPressed = true;
49
65
  this.onPointerDown(adaptedEvent);
50
66
  break;
67
+
51
68
  case _interfaces.EventTypes.CANCEL:
52
69
  this.isPressed = false;
53
70
  this.onPointerCancel(adaptedEvent);
54
71
  break;
55
72
  }
56
73
  }
74
+
57
75
  registerListeners() {
58
76
  this.view.addEventListener('keydown', this.keyDownCallback);
59
77
  this.view.addEventListener('keyup', this.keyUpCallback);
60
78
  }
79
+
61
80
  unregisterListeners() {
62
81
  this.view.removeEventListener('keydown', this.keyDownCallback);
63
82
  this.view.removeEventListener('keyup', this.keyUpCallback);
64
83
  }
84
+
65
85
  mapEvent(event, eventType) {
66
86
  const viewRect = event.target.getBoundingClientRect();
67
87
  const viewportPosition = {
@@ -83,6 +103,8 @@ class KeyboardEventManager extends _EventManager.default {
83
103
  time: event.timeStamp
84
104
  };
85
105
  }
106
+
86
107
  }
108
+
87
109
  exports.default = KeyboardEventManager;
88
110
  //# sourceMappingURL=KeyboardEventManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_interfaces","require","_EventManager","_interopRequireDefault","_PointerType","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","KeyboardEventManager","EventManager","constructor","args","event","cancelationKeys","indexOf","key","isPressed","dispatchEvent","EventTypes","CANCEL","activationKeys","DOWN","UP","eventType","target","HTMLElement","adaptedEvent","mapEvent","onPointerUp","onPointerDown","onPointerCancel","registerListeners","view","addEventListener","keyDownCallback","keyUpCallback","unregisterListeners","removeEventListener","viewRect","getBoundingClientRect","viewportPosition","x","width","y","height","relativePosition","offsetX","offsetY","pointerId","pointerType","PointerType","KEY","time","timeStamp","exports"],"sources":["KeyboardEventManager.ts"],"sourcesContent":["import { AdaptedEvent, EventTypes } from '../interfaces';\nimport EventManager from './EventManager';\nimport { PointerType } from '../../PointerType';\n\nexport default class KeyboardEventManager extends EventManager<HTMLElement> {\n private activationKeys = ['Enter', ' '];\n private cancelationKeys = ['Tab'];\n private isPressed = false;\n\n private keyDownCallback = (event: KeyboardEvent): void => {\n if (this.cancelationKeys.indexOf(event.key) !== -1 && this.isPressed) {\n this.dispatchEvent(event, EventTypes.CANCEL);\n return;\n }\n\n if (this.activationKeys.indexOf(event.key) === -1) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.DOWN);\n };\n\n private keyUpCallback = (event: KeyboardEvent): void => {\n if (this.activationKeys.indexOf(event.key) === -1 || !this.isPressed) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.UP);\n };\n\n private dispatchEvent(event: KeyboardEvent, eventType: EventTypes) {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const adaptedEvent = this.mapEvent(event, eventType);\n\n switch (eventType) {\n case EventTypes.UP:\n this.isPressed = false;\n this.onPointerUp(adaptedEvent);\n break;\n case EventTypes.DOWN:\n this.isPressed = true;\n this.onPointerDown(adaptedEvent);\n break;\n case EventTypes.CANCEL:\n this.isPressed = false;\n this.onPointerCancel(adaptedEvent);\n break;\n }\n }\n\n public registerListeners(): void {\n this.view.addEventListener('keydown', this.keyDownCallback);\n this.view.addEventListener('keyup', this.keyUpCallback);\n }\n\n public unregisterListeners(): void {\n this.view.removeEventListener('keydown', this.keyDownCallback);\n this.view.removeEventListener('keyup', this.keyUpCallback);\n }\n\n protected mapEvent(\n event: KeyboardEvent,\n eventType: EventTypes\n ): AdaptedEvent {\n const viewRect = (event.target as HTMLElement).getBoundingClientRect();\n\n const viewportPosition = {\n x: viewRect?.x + viewRect?.width / 2,\n y: viewRect?.y + viewRect?.height / 2,\n };\n\n const relativePosition = {\n x: viewRect?.width / 2,\n y: viewRect?.height / 2,\n };\n\n return {\n x: viewportPosition.x,\n y: viewportPosition.y,\n offsetX: relativePosition.x,\n offsetY: relativePosition.y,\n pointerId: 0,\n eventType: eventType,\n pointerType: PointerType.KEY,\n time: event.timeStamp,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["KeyboardEventManager.ts"],"names":["KeyboardEventManager","EventManager","event","cancelationKeys","indexOf","key","isPressed","dispatchEvent","EventTypes","CANCEL","activationKeys","DOWN","UP","eventType","target","HTMLElement","adaptedEvent","mapEvent","onPointerUp","onPointerDown","onPointerCancel","registerListeners","view","addEventListener","keyDownCallback","keyUpCallback","unregisterListeners","removeEventListener","viewRect","getBoundingClientRect","viewportPosition","x","width","y","height","relativePosition","offsetX","offsetY","pointerId","pointerType","PointerType","KEY","time","timeStamp"],"mappings":"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","sourcesContent":["import { AdaptedEvent, EventTypes } from '../interfaces';\nimport EventManager from './EventManager';\nimport { PointerType } from '../../PointerType';\n\nexport default class KeyboardEventManager extends EventManager<HTMLElement> {\n private activationKeys = ['Enter', ' '];\n private cancelationKeys = ['Tab'];\n private isPressed = false;\n\n private keyDownCallback = (event: KeyboardEvent): void => {\n if (this.cancelationKeys.indexOf(event.key) !== -1 && this.isPressed) {\n this.dispatchEvent(event, EventTypes.CANCEL);\n return;\n }\n\n if (this.activationKeys.indexOf(event.key) === -1) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.DOWN);\n };\n\n private keyUpCallback = (event: KeyboardEvent): void => {\n if (this.activationKeys.indexOf(event.key) === -1 || !this.isPressed) {\n return;\n }\n\n this.dispatchEvent(event, EventTypes.UP);\n };\n\n private dispatchEvent(event: KeyboardEvent, eventType: EventTypes) {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const adaptedEvent = this.mapEvent(event, eventType);\n\n switch (eventType) {\n case EventTypes.UP:\n this.isPressed = false;\n this.onPointerUp(adaptedEvent);\n break;\n case EventTypes.DOWN:\n this.isPressed = true;\n this.onPointerDown(adaptedEvent);\n break;\n case EventTypes.CANCEL:\n this.isPressed = false;\n this.onPointerCancel(adaptedEvent);\n break;\n }\n }\n\n public registerListeners(): void {\n this.view.addEventListener('keydown', this.keyDownCallback);\n this.view.addEventListener('keyup', this.keyUpCallback);\n }\n\n public unregisterListeners(): void {\n this.view.removeEventListener('keydown', this.keyDownCallback);\n this.view.removeEventListener('keyup', this.keyUpCallback);\n }\n\n protected mapEvent(\n event: KeyboardEvent,\n eventType: EventTypes\n ): AdaptedEvent {\n const viewRect = (event.target as HTMLElement).getBoundingClientRect();\n\n const viewportPosition = {\n x: viewRect?.x + viewRect?.width / 2,\n y: viewRect?.y + viewRect?.height / 2,\n };\n\n const relativePosition = {\n x: viewRect?.width / 2,\n y: viewRect?.height / 2,\n };\n\n return {\n x: viewportPosition.x,\n y: viewportPosition.y,\n offsetX: relativePosition.x,\n offsetY: relativePosition.y,\n pointerId: 0,\n eventType: eventType,\n pointerType: PointerType.KEY,\n time: event.timeStamp,\n };\n }\n}\n"]}