react-native-gesture-handler 2.22.1 → 2.23.0
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.
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +14 -0
- package/android/src/main/jni/cpp-adapter.cpp +19 -12
- package/apple/RNGestureHandler.mm +15 -8
- package/apple/RNGestureHandlerModule.mm +17 -5
- package/lib/commonjs/ActionType.js +3 -3
- package/lib/commonjs/ActionType.js.map +1 -1
- package/lib/commonjs/Directions.js +11 -8
- package/lib/commonjs/Directions.js.map +1 -1
- package/lib/commonjs/EnableNewWebImplementation.js +2 -10
- package/lib/commonjs/EnableNewWebImplementation.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootViewContext.js +2 -7
- package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -1
- package/lib/commonjs/PlatformConstants.js +1 -6
- package/lib/commonjs/PlatformConstants.js.map +1 -1
- package/lib/commonjs/PlatformConstants.web.js +1 -3
- package/lib/commonjs/PlatformConstants.web.js.map +1 -1
- package/lib/commonjs/PointerType.js +3 -5
- package/lib/commonjs/PointerType.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.js +2 -6
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +13 -39
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +22 -32
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/commonjs/RNRenderer.js +1 -3
- package/lib/commonjs/RNRenderer.js.map +1 -1
- package/lib/commonjs/RNRenderer.web.js +1 -2
- package/lib/commonjs/RNRenderer.web.js.map +1 -1
- package/lib/commonjs/State.js +4 -3
- package/lib/commonjs/State.js.map +1 -1
- package/lib/commonjs/TouchEventType.js +3 -3
- package/lib/commonjs/TouchEventType.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +96 -115
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +36 -80
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureButtonsProps.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +26 -37
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +13 -27
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js +2 -6
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.web.js +4 -12
- package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.android.js +4 -15
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.js +4 -14
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.web.js +4 -13
- package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/commonjs/components/Pressable/Pressable.js +46 -78
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
- package/lib/commonjs/components/Pressable/PressableProps.js.map +1 -1
- package/lib/commonjs/components/Pressable/index.js +1 -3
- package/lib/commonjs/components/Pressable/index.js.map +1 -1
- package/lib/commonjs/components/Pressable/utils.js +5 -20
- package/lib/commonjs/components/Pressable/utils.js.map +1 -1
- package/lib/commonjs/components/ReanimatedDrawerLayout.js +38 -76
- package/lib/commonjs/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/commonjs/components/ReanimatedSwipeable.js +61 -59
- package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +34 -75
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/Text.js +18 -26
- package/lib/commonjs/components/Text.js.map +1 -1
- package/lib/commonjs/components/gestureHandlerRootHOC.js +5 -14
- package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +40 -76
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchableProps.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableHighlight.js +20 -33
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +17 -31
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -4
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js +17 -24
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +12 -13
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/index.js +7 -12
- package/lib/commonjs/components/touchables/index.js.map +1 -1
- package/lib/commonjs/findNodeHandle.js +1 -4
- package/lib/commonjs/findNodeHandle.js.map +1 -1
- package/lib/commonjs/findNodeHandle.web.js +9 -10
- package/lib/commonjs/findNodeHandle.web.js.map +1 -1
- package/lib/commonjs/getReactNativeVersion.js +1 -6
- package/lib/commonjs/getReactNativeVersion.js.map +1 -1
- package/lib/commonjs/getReactNativeVersion.web.js +0 -1
- package/lib/commonjs/getReactNativeVersion.web.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +13 -14
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.web.js +0 -1
- package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -1
- package/lib/commonjs/ghQueueMicrotask.js +1 -2
- package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
- package/lib/commonjs/handlers/FlingGestureHandler.js +16 -10
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +20 -23
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js +16 -10
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +17 -12
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +20 -31
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PinchGestureHandler.js +14 -8
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.js +0 -1
- package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -1
- package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -1
- package/lib/commonjs/handlers/RotationGestureHandler.js +14 -8
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +16 -10
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +55 -135
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/createNativeWrapper.js +17 -27
- package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
- package/lib/commonjs/handlers/customDirectEventTypes.js +0 -1
- package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -1
- package/lib/commonjs/handlers/customDirectEventTypes.web.js +1 -2
- package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +9 -10
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +5 -14
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +10 -20
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +9 -29
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +1 -10
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +12 -37
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -3
- package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/types.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +12 -24
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +12 -48
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +3 -13
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +2 -9
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +8 -16
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +28 -56
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js +14 -46
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/flingGesture.js +5 -12
- package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js +8 -19
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +44 -84
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +17 -31
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js +1 -27
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +3 -9
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +2 -7
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/hoverGesture.js +11 -25
- package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js +6 -14
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/manualGesture.js +0 -6
- package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/nativeGesture.js +5 -12
- package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js +18 -43
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/pinchGesture.js +2 -9
- package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +1 -8
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/handlers/gestures/rotationGesture.js +2 -9
- package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/tapGesture.js +10 -22
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/commonjs/handlers/getNextHandlerTag.js +0 -1
- package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -1
- package/lib/commonjs/handlers/handlersRegistry.js +11 -21
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
- package/lib/commonjs/handlers/utils.js +6 -26
- package/lib/commonjs/handlers/utils.js.map +1 -1
- package/lib/commonjs/index.js +75 -104
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +4 -11
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/jestUtils/index.js +4 -5
- package/lib/commonjs/jestUtils/index.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js +19 -83
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/mocks.js +5 -15
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/mountRegistry.js +3 -12
- package/lib/commonjs/mountRegistry.js.map +1 -1
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +1 -5
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +2 -7
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +2 -7
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
- package/lib/commonjs/typeUtils.js.map +1 -1
- package/lib/commonjs/utils.js +15 -30
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/Gestures.js +5 -23
- package/lib/commonjs/web/Gestures.js.map +1 -1
- package/lib/commonjs/web/constants.js +2 -4
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +26 -62
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +36 -65
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +12 -55
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +160 -273
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +8 -21
- package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +12 -53
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +1 -11
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +21 -62
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +23 -138
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +19 -56
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +16 -54
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +10 -71
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js +9 -17
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/CircularBuffer.js +17 -29
- package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
- package/lib/commonjs/web/tools/EventManager.js +7 -41
- package/lib/commonjs/web/tools/EventManager.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +51 -118
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +37 -58
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js +21 -40
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web/tools/KeyboardEventManager.js +4 -26
- package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/LeastSquareSolver.js +30 -67
- package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/commonjs/web/tools/NodeManager.js +9 -16
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerEventManager.js +10 -45
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +24 -60
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/Vector.js +3 -18
- package/lib/commonjs/web/tools/Vector.js.map +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js +10 -32
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
- package/lib/commonjs/web/tools/WheelEventManager.js +4 -17
- package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
- package/lib/commonjs/web/utils.js +26 -55
- package/lib/commonjs/web/utils.js.map +1 -1
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +7 -19
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js +3 -13
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/Errors.js +0 -3
- package/lib/commonjs/web_hammer/Errors.js.map +1 -1
- package/lib/commonjs/web_hammer/FlingGestureHandler.js +13 -44
- package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js +55 -142
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +2 -11
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js +5 -19
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +16 -24
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +9 -16
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +8 -49
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/PinchGestureHandler.js +2 -11
- package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/PressGestureHandler.js +15 -43
- package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/RotationGestureHandler.js +2 -13
- package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/TapGestureHandler.js +33 -52
- package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/constants.js +13 -26
- package/lib/commonjs/web_hammer/constants.js.map +1 -1
- package/lib/commonjs/web_hammer/utils.js +4 -14
- package/lib/commonjs/web_hammer/utils.js.map +1 -1
- package/lib/module/ActionType.js +3 -1
- package/lib/module/ActionType.js.map +1 -1
- package/lib/module/Directions.js +9 -3
- package/lib/module/Directions.js.map +1 -1
- package/lib/module/EnableNewWebImplementation.js +2 -5
- package/lib/module/EnableNewWebImplementation.js.map +1 -1
- package/lib/module/GestureHandlerRootViewContext.js.map +1 -1
- package/lib/module/PlatformConstants.js +0 -1
- package/lib/module/PlatformConstants.js.map +1 -1
- package/lib/module/PlatformConstants.web.js +0 -1
- package/lib/module/PlatformConstants.web.js.map +1 -1
- package/lib/module/PointerType.js +3 -4
- package/lib/module/PointerType.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.js +1 -0
- package/lib/module/RNGestureHandlerModule.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +12 -22
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +18 -17
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/module/RNRenderer.js.map +1 -1
- package/lib/module/RNRenderer.web.js.map +1 -1
- package/lib/module/State.js +4 -1
- package/lib/module/State.js.map +1 -1
- package/lib/module/TouchEventType.js +3 -1
- package/lib/module/TouchEventType.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +87 -99
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +27 -55
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureButtonsProps.js.map +1 -1
- package/lib/module/components/GestureComponents.js +17 -12
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +4 -4
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.web.js +1 -2
- package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js +1 -2
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.js +1 -2
- package/lib/module/components/GestureHandlerRootView.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.web.js +1 -2
- package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +44 -61
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/PressableProps.js.map +1 -1
- package/lib/module/components/Pressable/index.js.map +1 -1
- package/lib/module/components/Pressable/utils.js +4 -14
- package/lib/module/components/Pressable/utils.js.map +1 -1
- package/lib/module/components/ReanimatedDrawerLayout.js +34 -56
- package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable.js +57 -44
- package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/components/Swipeable.js +28 -59
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/Text.js +14 -13
- package/lib/module/components/Text.js.map +1 -1
- package/lib/module/components/gestureHandlerRootHOC.js +2 -2
- package/lib/module/components/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +34 -63
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchableProps.js.map +1 -1
- package/lib/module/components/touchables/TouchableHighlight.js +16 -23
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js +11 -19
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.js +6 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js +13 -14
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/components/touchables/TouchableWithoutFeedback.js +9 -2
- package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/module/components/touchables/index.js.map +1 -1
- package/lib/module/findNodeHandle.js.map +1 -1
- package/lib/module/findNodeHandle.web.js +9 -8
- package/lib/module/findNodeHandle.web.js.map +1 -1
- package/lib/module/getReactNativeVersion.js.map +1 -1
- package/lib/module/getReactNativeVersion.web.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +13 -13
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.web.js.map +1 -1
- package/lib/module/ghQueueMicrotask.js.map +1 -1
- package/lib/module/handlers/FlingGestureHandler.js +13 -0
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +16 -8
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -1
- package/lib/module/handlers/LongPressGestureHandler.js +13 -0
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/NativeViewGestureHandler.js +13 -0
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +15 -19
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PinchGestureHandler.js +13 -0
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/handlers/PressabilityDebugView.js.map +1 -1
- package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -1
- package/lib/module/handlers/RotationGestureHandler.js +13 -0
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +13 -0
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +54 -108
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/createNativeWrapper.js +12 -17
- package/lib/module/handlers/createNativeWrapper.js.map +1 -1
- package/lib/module/handlers/customDirectEventTypes.js.map +1 -1
- package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +9 -4
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js +3 -4
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +5 -6
- package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +8 -16
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -1
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +9 -15
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -2
- package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/types.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +11 -14
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +12 -39
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +5 -5
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +2 -6
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +7 -9
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +25 -30
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js +14 -38
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/flingGesture.js +5 -9
- package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/module/handlers/gestures/forceTouchGesture.js +8 -17
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +44 -73
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +16 -24
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/handlers/gestures/gestureObjects.js +1 -14
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +3 -4
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -1
- package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/module/handlers/gestures/hoverGesture.js +9 -18
- package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +6 -11
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/manualGesture.js +0 -4
- package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
- package/lib/module/handlers/gestures/nativeGesture.js +5 -9
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js +18 -41
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/pinchGesture.js +2 -7
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -5
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/handlers/gestures/rotationGesture.js +2 -7
- package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js +10 -19
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/module/handlers/getNextHandlerTag.js.map +1 -1
- package/lib/module/handlers/handlersRegistry.js +6 -8
- package/lib/module/handlers/handlersRegistry.js.map +1 -1
- package/lib/module/handlers/utils.js +4 -13
- package/lib/module/handlers/utils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +3 -2
- package/lib/module/init.js.map +1 -1
- package/lib/module/jestUtils/index.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js +20 -66
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/mocks.js +3 -7
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/mountRegistry.js +3 -10
- package/lib/module/mountRegistry.js.map +1 -1
- package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
- package/lib/module/typeUtils.js.map +1 -1
- package/lib/module/utils.js +8 -13
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/Gestures.js +2 -1
- package/lib/module/web/Gestures.js.map +1 -1
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +26 -59
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/detectors/ScaleGestureDetector.js +36 -61
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +11 -45
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +159 -259
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/HoverGestureHandler.js +7 -13
- package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/IGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +11 -46
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +0 -6
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +20 -54
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +22 -129
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +18 -48
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +15 -46
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +9 -63
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js +9 -14
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/CircularBuffer.js +17 -27
- package/lib/module/web/tools/CircularBuffer.js.map +1 -1
- package/lib/module/web/tools/EventManager.js +7 -39
- package/lib/module/web/tools/EventManager.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +50 -111
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +36 -47
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js +21 -35
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web/tools/KeyboardEventManager.js +3 -19
- package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/module/web/tools/LeastSquareSolver.js +30 -65
- package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/module/web/tools/NodeManager.js +9 -14
- package/lib/module/web/tools/NodeManager.js.map +1 -1
- package/lib/module/web/tools/PointerEventManager.js +9 -35
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +23 -54
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/Vector.js +3 -14
- package/lib/module/web/tools/Vector.js.map +1 -1
- package/lib/module/web/tools/VelocityTracker.js +9 -26
- package/lib/module/web/tools/VelocityTracker.js.map +1 -1
- package/lib/module/web/tools/WheelEventManager.js +3 -10
- package/lib/module/web/tools/WheelEventManager.js.map +1 -1
- package/lib/module/web/utils.js +21 -40
- package/lib/module/web/utils.js.map +1 -1
- package/lib/module/web_hammer/DiscreteGestureHandler.js +4 -13
- package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/DraggingGestureHandler.js +0 -5
- package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/Errors.js +0 -1
- package/lib/module/web_hammer/Errors.js.map +1 -1
- package/lib/module/web_hammer/FlingGestureHandler.js +10 -35
- package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js +53 -130
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/IndiscreteGestureHandler.js +1 -6
- package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/LongPressGestureHandler.js +2 -11
- package/lib/module/web_hammer/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NativeViewGestureHandler.js +12 -12
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +6 -8
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +6 -40
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/PinchGestureHandler.js +0 -5
- package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/PressGestureHandler.js +13 -34
- package/lib/module/web_hammer/PressGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/RotationGestureHandler.js +0 -6
- package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/TapGestureHandler.js +31 -45
- package/lib/module/web_hammer/TapGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/constants.js +2 -1
- package/lib/module/web_hammer/constants.js.map +1 -1
- package/lib/module/web_hammer/utils.js +2 -2
- package/lib/module/web_hammer/utils.js.map +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +27 -0
- package/lib/typescript/components/GestureButtonsProps.d.ts +18 -2
- package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -10
- package/lib/typescript/components/Pressable/index.d.ts +1 -1
- package/lib/typescript/components/ReanimatedSwipeable.d.ts +6 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +5 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +2 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +5 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +3 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +5 -0
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +6 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/utils.d.ts +1 -1
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +7 -7
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +8 -8
- package/lib/typescript/web/handlers/GestureHandler.d.ts +33 -28
- package/lib/typescript/web/handlers/IGestureHandler.d.ts +12 -13
- package/lib/typescript/web/tools/CircularBuffer.d.ts +3 -3
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -1
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +2 -2
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -2
- package/lib/typescript/web/tools/InteractionManager.d.ts +2 -2
- package/lib/typescript/web/tools/NodeManager.d.ts +1 -1
- package/lib/typescript/web/tools/PointerTracker.d.ts +4 -4
- package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -1
- package/package.json +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/components/DrawerLayout.tsx +29 -0
- package/src/components/GestureButtons.tsx +13 -2
- package/src/components/GestureButtonsProps.ts +31 -2
- package/src/components/Pressable/Pressable.tsx +22 -5
- package/src/components/Pressable/PressableProps.tsx +4 -11
- package/src/components/Pressable/index.ts +4 -1
- package/src/components/ReanimatedSwipeable.tsx +97 -66
- package/src/components/Text.tsx +13 -4
- package/src/components/touchables/TouchableHighlight.tsx +5 -0
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +2 -0
- package/src/components/touchables/TouchableNativeFeedback.tsx +6 -1
- package/src/components/touchables/TouchableNativeFeedbackProps.tsx +3 -0
- package/src/components/touchables/TouchableOpacity.tsx +5 -0
- package/src/components/touchables/TouchableWithoutFeedback.tsx +6 -0
- package/src/findNodeHandle.web.ts +6 -0
- package/src/handlers/FlingGestureHandler.ts +10 -0
- package/src/handlers/ForceTouchGestureHandler.ts +9 -0
- package/src/handlers/LongPressGestureHandler.ts +10 -0
- package/src/handlers/NativeViewGestureHandler.ts +10 -0
- package/src/handlers/PanGestureHandler.ts +10 -0
- package/src/handlers/PinchGestureHandler.ts +10 -0
- package/src/handlers/RotationGestureHandler.ts +10 -0
- package/src/handlers/TapGestureHandler.ts +10 -0
- package/src/handlers/createHandler.tsx +11 -4
- package/src/handlers/gestures/GestureDetector/index.tsx +2 -2
- package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +3 -3
- package/src/handlers/gestures/GestureDetector/utils.ts +2 -2
- package/src/handlers/handlersRegistry.ts +7 -3
- package/src/index.ts +4 -1
- package/src/utils.ts +2 -2
- package/src/web/detectors/RotationGestureDetector.ts +22 -22
- package/src/web/detectors/ScaleGestureDetector.ts +24 -24
- package/src/web/handlers/FlingGestureHandler.ts +6 -7
- package/src/web/handlers/GestureHandler.ts +115 -105
- package/src/web/handlers/HoverGestureHandler.ts +2 -2
- package/src/web/handlers/IGestureHandler.ts +12 -13
- package/src/web/handlers/LongPressGestureHandler.ts +7 -7
- package/src/web/handlers/NativeViewGestureHandler.ts +14 -19
- package/src/web/handlers/PanGestureHandler.ts +17 -17
- package/src/web/handlers/PinchGestureHandler.ts +17 -21
- package/src/web/handlers/RotationGestureHandler.ts +12 -12
- package/src/web/handlers/TapGestureHandler.ts +4 -6
- package/src/web/tools/CircularBuffer.ts +15 -15
- package/src/web/tools/GestureHandlerDelegate.ts +1 -1
- package/src/web/tools/GestureHandlerOrchestrator.ts +42 -42
- package/src/web/tools/GestureHandlerWebDelegate.ts +32 -13
- package/src/web/tools/InteractionManager.ts +16 -16
- package/src/web/tools/NodeManager.ts +2 -2
- package/src/web/tools/PointerTracker.ts +20 -20
- package/src/web/tools/Vector.ts +1 -1
- package/src/web/tools/VelocityTracker.ts +1 -1
|
@@ -4,24 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
7
|
+
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; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
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); }
|
|
10
10
|
// Implementation taken from Flutter's LeastSquareSolver
|
|
11
11
|
// https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/gestures/lsq_solver.dart
|
|
12
|
+
|
|
12
13
|
class Vector {
|
|
13
14
|
constructor(length) {
|
|
14
15
|
_defineProperty(this, "offset", void 0);
|
|
15
|
-
|
|
16
16
|
_defineProperty(this, "length", void 0);
|
|
17
|
-
|
|
18
17
|
_defineProperty(this, "elements", void 0);
|
|
19
|
-
|
|
20
18
|
this.offset = 0;
|
|
21
19
|
this.length = length;
|
|
22
20
|
this.elements = new Array(length);
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
static fromVOL(values, offset, length) {
|
|
26
23
|
const result = new Vector(0);
|
|
27
24
|
result.offset = offset;
|
|
@@ -29,176 +26,142 @@ class Vector {
|
|
|
29
26
|
result.elements = values;
|
|
30
27
|
return result;
|
|
31
28
|
}
|
|
32
|
-
|
|
33
29
|
get(index) {
|
|
34
30
|
return this.elements[this.offset + index];
|
|
35
31
|
}
|
|
36
|
-
|
|
37
32
|
set(index, value) {
|
|
38
33
|
this.elements[this.offset + index] = value;
|
|
39
34
|
}
|
|
40
|
-
|
|
41
35
|
dot(other) {
|
|
42
36
|
let result = 0;
|
|
43
|
-
|
|
44
37
|
for (let i = 0; i < this.length; i++) {
|
|
45
38
|
result += this.get(i) * other.get(i);
|
|
46
39
|
}
|
|
47
|
-
|
|
48
40
|
return result;
|
|
49
41
|
}
|
|
50
|
-
|
|
51
42
|
norm() {
|
|
52
43
|
return Math.sqrt(this.dot(this));
|
|
53
44
|
}
|
|
54
|
-
|
|
55
45
|
}
|
|
56
|
-
|
|
57
46
|
class Matrix {
|
|
58
47
|
constructor(rows, columns) {
|
|
59
48
|
_defineProperty(this, "columns", void 0);
|
|
60
|
-
|
|
61
49
|
_defineProperty(this, "elements", void 0);
|
|
62
|
-
|
|
63
50
|
this.columns = columns;
|
|
64
51
|
this.elements = new Array(rows * columns);
|
|
65
52
|
}
|
|
66
|
-
|
|
67
53
|
get(row, column) {
|
|
68
54
|
return this.elements[row * this.columns + column];
|
|
69
55
|
}
|
|
70
|
-
|
|
71
56
|
set(row, column, value) {
|
|
72
57
|
this.elements[row * this.columns + column] = value;
|
|
73
58
|
}
|
|
74
|
-
|
|
75
59
|
getRow(row) {
|
|
76
60
|
return Vector.fromVOL(this.elements, row * this.columns, this.columns);
|
|
77
61
|
}
|
|
62
|
+
}
|
|
78
63
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
64
|
+
// An nth degree polynomial fit to a dataset.
|
|
82
65
|
class PolynomialFit {
|
|
83
|
-
// The polynomial coefficients of the fit.
|
|
84
|
-
//
|
|
85
|
-
// For each `i`, the element `coefficients[i]` is the coefficient of
|
|
86
|
-
// the `i`-th power of the variable.
|
|
87
66
|
// Creates a polynomial fit of the given degree.
|
|
88
67
|
//
|
|
89
68
|
// There are n + 1 coefficients in a fit of degree n.
|
|
90
69
|
constructor(degree) {
|
|
70
|
+
// The polynomial coefficients of the fit.
|
|
71
|
+
//
|
|
72
|
+
// For each `i`, the element `coefficients[i]` is the coefficient of
|
|
73
|
+
// the `i`-th power of the variable.
|
|
91
74
|
_defineProperty(this, "coefficients", void 0);
|
|
92
|
-
|
|
93
75
|
this.coefficients = new Array(degree + 1);
|
|
94
76
|
}
|
|
95
|
-
|
|
96
77
|
}
|
|
78
|
+
const precisionErrorTolerance = 1e-10;
|
|
97
79
|
|
|
98
|
-
|
|
99
|
-
|
|
80
|
+
// Uses the least-squares algorithm to fit a polynomial to a set of data.
|
|
100
81
|
class LeastSquareSolver {
|
|
101
|
-
// The x-coordinates of each data point.
|
|
102
|
-
// The y-coordinates of each data point.
|
|
103
|
-
// The weight to use for each data point.
|
|
104
82
|
// Creates a least-squares solver.
|
|
105
83
|
//
|
|
106
84
|
// The [x], [y], and [w] arguments must not be null.
|
|
107
85
|
constructor(x, y, w) {
|
|
86
|
+
// The x-coordinates of each data point.
|
|
108
87
|
_defineProperty(this, "x", void 0);
|
|
109
|
-
|
|
88
|
+
// The y-coordinates of each data point.
|
|
110
89
|
_defineProperty(this, "y", void 0);
|
|
111
|
-
|
|
90
|
+
// The weight to use for each data point.
|
|
112
91
|
_defineProperty(this, "w", void 0);
|
|
113
|
-
|
|
114
92
|
this.x = x;
|
|
115
93
|
this.y = y;
|
|
116
94
|
this.w = w;
|
|
117
|
-
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Fits a polynomial of the given degree to the data points.
|
|
118
98
|
//
|
|
119
99
|
// When there is not enough data to fit a curve null is returned.
|
|
120
|
-
|
|
121
|
-
|
|
122
100
|
solve(degree) {
|
|
123
101
|
if (degree > this.x.length) {
|
|
124
102
|
// Not enough data to fit a curve.
|
|
125
103
|
return null;
|
|
126
104
|
}
|
|
105
|
+
const result = new PolynomialFit(degree);
|
|
127
106
|
|
|
128
|
-
|
|
129
|
-
|
|
107
|
+
// Shorthands for the purpose of notation equivalence to original C++ code.
|
|
130
108
|
const m = this.x.length;
|
|
131
|
-
const n = degree + 1;
|
|
109
|
+
const n = degree + 1;
|
|
132
110
|
|
|
111
|
+
// Expand the X vector to a matrix A, pre-multiplied by the weights.
|
|
133
112
|
const a = new Matrix(n, m);
|
|
134
|
-
|
|
135
113
|
for (let h = 0; h < m; h++) {
|
|
136
114
|
a.set(0, h, this.w[h]);
|
|
137
|
-
|
|
138
115
|
for (let i = 1; i < n; i++) {
|
|
139
116
|
a.set(i, h, a.get(i - 1, h) * this.x[h]);
|
|
140
117
|
}
|
|
141
|
-
}
|
|
142
|
-
// Orthonormal basis, column-major ordVectorer.
|
|
143
|
-
|
|
118
|
+
}
|
|
144
119
|
|
|
145
|
-
|
|
120
|
+
// Apply the Gram-Schmidt process to A to obtain its QR decomposition.
|
|
146
121
|
|
|
122
|
+
// Orthonormal basis, column-major ordVectorer.
|
|
123
|
+
const q = new Matrix(n, m);
|
|
124
|
+
// Upper triangular matrix, row-major order.
|
|
147
125
|
const r = new Matrix(n, m);
|
|
148
|
-
|
|
149
126
|
for (let j = 0; j < n; j += 1) {
|
|
150
127
|
for (let h = 0; h < m; h += 1) {
|
|
151
128
|
q.set(j, h, a.get(j, h));
|
|
152
129
|
}
|
|
153
|
-
|
|
154
130
|
for (let i = 0; i < j; i += 1) {
|
|
155
131
|
const dot = q.getRow(j).dot(q.getRow(i));
|
|
156
|
-
|
|
157
132
|
for (let h = 0; h < m; h += 1) {
|
|
158
133
|
q.set(j, h, q.get(j, h) - dot * q.get(i, h));
|
|
159
134
|
}
|
|
160
135
|
}
|
|
161
|
-
|
|
162
136
|
const norm = q.getRow(j).norm();
|
|
163
|
-
|
|
164
137
|
if (norm < precisionErrorTolerance) {
|
|
165
138
|
// Vectors are linearly dependent or zero so no solution.
|
|
166
139
|
return null;
|
|
167
140
|
}
|
|
168
|
-
|
|
169
141
|
const inverseNorm = 1.0 / norm;
|
|
170
|
-
|
|
171
142
|
for (let h = 0; h < m; h += 1) {
|
|
172
143
|
q.set(j, h, q.get(j, h) * inverseNorm);
|
|
173
144
|
}
|
|
174
|
-
|
|
175
145
|
for (let i = 0; i < n; i += 1) {
|
|
176
146
|
r.set(j, i, i < j ? 0.0 : q.getRow(j).dot(a.getRow(i)));
|
|
177
147
|
}
|
|
178
|
-
}
|
|
179
|
-
// We just work from bottom-right to top-left calculating B's coefficients.
|
|
180
|
-
|
|
148
|
+
}
|
|
181
149
|
|
|
150
|
+
// Solve R B = Qt W Y to find B. This is easy because R is upper triangular.
|
|
151
|
+
// We just work from bottom-right to top-left calculating B's coefficients.
|
|
182
152
|
const wy = new Vector(m);
|
|
183
|
-
|
|
184
153
|
for (let h = 0; h < m; h += 1) {
|
|
185
154
|
wy.set(h, this.y[h] * this.w[h]);
|
|
186
155
|
}
|
|
187
|
-
|
|
188
156
|
for (let i = n - 1; i >= 0; i -= 1) {
|
|
189
157
|
result.coefficients[i] = q.getRow(i).dot(wy);
|
|
190
|
-
|
|
191
158
|
for (let j = n - 1; j > i; j -= 1) {
|
|
192
159
|
result.coefficients[i] -= r.get(i, j) * result.coefficients[j];
|
|
193
160
|
}
|
|
194
|
-
|
|
195
161
|
result.coefficients[i] /= r.get(i, i);
|
|
196
162
|
}
|
|
197
|
-
|
|
198
163
|
return result;
|
|
199
164
|
}
|
|
200
|
-
|
|
201
165
|
}
|
|
202
|
-
|
|
203
166
|
exports.default = LeastSquareSolver;
|
|
204
167
|
//# sourceMappingURL=LeastSquareSolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["LeastSquareSolver.ts"],"names":["Vector","constructor","length","offset","elements","Array","fromVOL","values","result","get","index","set","value","dot","other","i","norm","Math","sqrt","Matrix","rows","columns","row","column","getRow","PolynomialFit","degree","coefficients","precisionErrorTolerance","LeastSquareSolver","x","y","w","solve","m","n","a","h","q","r","j","inverseNorm","wy"],"mappings":"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","sourcesContent":["// Implementation taken from Flutter's LeastSquareSolver\n// https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/gestures/lsq_solver.dart\n\nclass Vector {\n private offset: number;\n private length: number;\n private elements: number[];\n\n constructor(length: number) {\n this.offset = 0;\n this.length = length;\n this.elements = new Array<number>(length);\n }\n\n public static fromVOL(\n values: number[],\n offset: number,\n length: number\n ): Vector {\n const result = new Vector(0);\n\n result.offset = offset;\n result.length = length;\n result.elements = values;\n\n return result;\n }\n\n public get(index: number): number {\n return this.elements[this.offset + index];\n }\n\n public set(index: number, value: number): void {\n this.elements[this.offset + index] = value;\n }\n\n public dot(other: Vector): number {\n let result = 0;\n for (let i = 0; i < this.length; i++) {\n result += this.get(i) * other.get(i);\n }\n return result;\n }\n\n public norm() {\n return Math.sqrt(this.dot(this));\n }\n}\n\nclass Matrix {\n private columns: number;\n private elements: number[];\n\n constructor(rows: number, columns: number) {\n this.columns = columns;\n this.elements = new Array<number>(rows * columns);\n }\n\n public get(row: number, column: number): number {\n return this.elements[row * this.columns + column];\n }\n\n public set(row: number, column: number, value: number): void {\n this.elements[row * this.columns + column] = value;\n }\n\n public getRow(row: number): Vector {\n return Vector.fromVOL(this.elements, row * this.columns, this.columns);\n }\n}\n\n// An nth degree polynomial fit to a dataset.\nclass PolynomialFit {\n // The polynomial coefficients of the fit.\n //\n // For each `i`, the element `coefficients[i]` is the coefficient of\n // the `i`-th power of the variable.\n public coefficients: number[];\n\n // Creates a polynomial fit of the given degree.\n //\n // There are n + 1 coefficients in a fit of degree n.\n constructor(degree: number) {\n this.coefficients = new Array<number>(degree + 1);\n }\n}\n\nconst precisionErrorTolerance = 1e-10;\n\n// Uses the least-squares algorithm to fit a polynomial to a set of data.\nexport default class LeastSquareSolver {\n // The x-coordinates of each data point.\n private x: number[];\n // The y-coordinates of each data point.\n private y: number[];\n // The weight to use for each data point.\n private w: number[];\n\n // Creates a least-squares solver.\n //\n // The [x], [y], and [w] arguments must not be null.\n constructor(x: number[], y: number[], w: number[]) {\n this.x = x;\n this.y = y;\n this.w = w;\n }\n\n // Fits a polynomial of the given degree to the data points.\n //\n // When there is not enough data to fit a curve null is returned.\n public solve(degree: number): PolynomialFit | null {\n if (degree > this.x.length) {\n // Not enough data to fit a curve.\n return null;\n }\n\n const result = new PolynomialFit(degree);\n\n // Shorthands for the purpose of notation equivalence to original C++ code.\n const m = this.x.length;\n const n = degree + 1;\n\n // Expand the X vector to a matrix A, pre-multiplied by the weights.\n const a = new Matrix(n, m);\n for (let h = 0; h < m; h++) {\n a.set(0, h, this.w[h]);\n\n for (let i = 1; i < n; i++) {\n a.set(i, h, a.get(i - 1, h) * this.x[h]);\n }\n }\n\n // Apply the Gram-Schmidt process to A to obtain its QR decomposition.\n\n // Orthonormal basis, column-major ordVectorer.\n const q = new Matrix(n, m);\n // Upper triangular matrix, row-major order.\n const r = new Matrix(n, m);\n\n for (let j = 0; j < n; j += 1) {\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, a.get(j, h));\n }\n for (let i = 0; i < j; i += 1) {\n const dot = q.getRow(j).dot(q.getRow(i));\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, q.get(j, h) - dot * q.get(i, h));\n }\n }\n\n const norm = q.getRow(j).norm();\n if (norm < precisionErrorTolerance) {\n // Vectors are linearly dependent or zero so no solution.\n return null;\n }\n\n const inverseNorm = 1.0 / norm;\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, q.get(j, h) * inverseNorm);\n }\n for (let i = 0; i < n; i += 1) {\n r.set(j, i, i < j ? 0.0 : q.getRow(j).dot(a.getRow(i)));\n }\n }\n\n // Solve R B = Qt W Y to find B. This is easy because R is upper triangular.\n // We just work from bottom-right to top-left calculating B's coefficients.\n const wy = new Vector(m);\n for (let h = 0; h < m; h += 1) {\n wy.set(h, this.y[h] * this.w[h]);\n }\n for (let i = n - 1; i >= 0; i -= 1) {\n result.coefficients[i] = q.getRow(i).dot(wy);\n for (let j = n - 1; j > i; j -= 1) {\n result.coefficients[i] -= r.get(i, j) * result.coefficients[j];\n }\n result.coefficients[i] /= r.get(i, i);\n }\n\n return result;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"names":["Vector","constructor","length","_defineProperty","offset","elements","Array","fromVOL","values","result","get","index","set","value","dot","other","i","norm","Math","sqrt","Matrix","rows","columns","row","column","getRow","PolynomialFit","degree","coefficients","precisionErrorTolerance","LeastSquareSolver","x","y","w","solve","m","n","a","h","q","r","j","inverseNorm","wy","exports","default"],"sources":["LeastSquareSolver.ts"],"sourcesContent":["// Implementation taken from Flutter's LeastSquareSolver\n// https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/gestures/lsq_solver.dart\n\nclass Vector {\n private offset: number;\n private length: number;\n private elements: number[];\n\n constructor(length: number) {\n this.offset = 0;\n this.length = length;\n this.elements = new Array<number>(length);\n }\n\n public static fromVOL(\n values: number[],\n offset: number,\n length: number\n ): Vector {\n const result = new Vector(0);\n\n result.offset = offset;\n result.length = length;\n result.elements = values;\n\n return result;\n }\n\n public get(index: number): number {\n return this.elements[this.offset + index];\n }\n\n public set(index: number, value: number): void {\n this.elements[this.offset + index] = value;\n }\n\n public dot(other: Vector): number {\n let result = 0;\n for (let i = 0; i < this.length; i++) {\n result += this.get(i) * other.get(i);\n }\n return result;\n }\n\n public norm() {\n return Math.sqrt(this.dot(this));\n }\n}\n\nclass Matrix {\n private columns: number;\n private elements: number[];\n\n constructor(rows: number, columns: number) {\n this.columns = columns;\n this.elements = new Array<number>(rows * columns);\n }\n\n public get(row: number, column: number): number {\n return this.elements[row * this.columns + column];\n }\n\n public set(row: number, column: number, value: number): void {\n this.elements[row * this.columns + column] = value;\n }\n\n public getRow(row: number): Vector {\n return Vector.fromVOL(this.elements, row * this.columns, this.columns);\n }\n}\n\n// An nth degree polynomial fit to a dataset.\nclass PolynomialFit {\n // The polynomial coefficients of the fit.\n //\n // For each `i`, the element `coefficients[i]` is the coefficient of\n // the `i`-th power of the variable.\n public coefficients: number[];\n\n // Creates a polynomial fit of the given degree.\n //\n // There are n + 1 coefficients in a fit of degree n.\n constructor(degree: number) {\n this.coefficients = new Array<number>(degree + 1);\n }\n}\n\nconst precisionErrorTolerance = 1e-10;\n\n// Uses the least-squares algorithm to fit a polynomial to a set of data.\nexport default class LeastSquareSolver {\n // The x-coordinates of each data point.\n private x: number[];\n // The y-coordinates of each data point.\n private y: number[];\n // The weight to use for each data point.\n private w: number[];\n\n // Creates a least-squares solver.\n //\n // The [x], [y], and [w] arguments must not be null.\n constructor(x: number[], y: number[], w: number[]) {\n this.x = x;\n this.y = y;\n this.w = w;\n }\n\n // Fits a polynomial of the given degree to the data points.\n //\n // When there is not enough data to fit a curve null is returned.\n public solve(degree: number): PolynomialFit | null {\n if (degree > this.x.length) {\n // Not enough data to fit a curve.\n return null;\n }\n\n const result = new PolynomialFit(degree);\n\n // Shorthands for the purpose of notation equivalence to original C++ code.\n const m = this.x.length;\n const n = degree + 1;\n\n // Expand the X vector to a matrix A, pre-multiplied by the weights.\n const a = new Matrix(n, m);\n for (let h = 0; h < m; h++) {\n a.set(0, h, this.w[h]);\n\n for (let i = 1; i < n; i++) {\n a.set(i, h, a.get(i - 1, h) * this.x[h]);\n }\n }\n\n // Apply the Gram-Schmidt process to A to obtain its QR decomposition.\n\n // Orthonormal basis, column-major ordVectorer.\n const q = new Matrix(n, m);\n // Upper triangular matrix, row-major order.\n const r = new Matrix(n, m);\n\n for (let j = 0; j < n; j += 1) {\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, a.get(j, h));\n }\n for (let i = 0; i < j; i += 1) {\n const dot = q.getRow(j).dot(q.getRow(i));\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, q.get(j, h) - dot * q.get(i, h));\n }\n }\n\n const norm = q.getRow(j).norm();\n if (norm < precisionErrorTolerance) {\n // Vectors are linearly dependent or zero so no solution.\n return null;\n }\n\n const inverseNorm = 1.0 / norm;\n for (let h = 0; h < m; h += 1) {\n q.set(j, h, q.get(j, h) * inverseNorm);\n }\n for (let i = 0; i < n; i += 1) {\n r.set(j, i, i < j ? 0.0 : q.getRow(j).dot(a.getRow(i)));\n }\n }\n\n // Solve R B = Qt W Y to find B. This is easy because R is upper triangular.\n // We just work from bottom-right to top-left calculating B's coefficients.\n const wy = new Vector(m);\n for (let h = 0; h < m; h += 1) {\n wy.set(h, this.y[h] * this.w[h]);\n }\n for (let i = n - 1; i >= 0; i -= 1) {\n result.coefficients[i] = q.getRow(i).dot(wy);\n for (let j = n - 1; j > i; j -= 1) {\n result.coefficients[i] -= r.get(i, j) * result.coefficients[j];\n }\n result.coefficients[i] /= r.get(i, i);\n }\n\n return result;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,46 +4,39 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
7
|
+
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; }
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9
|
+
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); }
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/no-extraneous-class
|
|
11
11
|
class NodeManager {
|
|
12
12
|
static getHandler(tag) {
|
|
13
13
|
if (tag in this.gestures) {
|
|
14
14
|
return this.gestures[tag];
|
|
15
15
|
}
|
|
16
|
-
|
|
17
16
|
throw new Error(`No handler for tag ${tag}`);
|
|
18
17
|
}
|
|
19
|
-
|
|
20
18
|
static createGestureHandler(handlerTag, handler) {
|
|
21
19
|
if (handlerTag in this.gestures) {
|
|
22
20
|
throw new Error(`Handler with tag ${handlerTag} already exists. Please ensure that no Gesture instance is used across multiple GestureDetectors.`);
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
this.gestures[handlerTag] = handler;
|
|
26
|
-
this.gestures[handlerTag].
|
|
23
|
+
this.gestures[handlerTag].handlerTag = handlerTag;
|
|
27
24
|
}
|
|
28
|
-
|
|
29
25
|
static dropGestureHandler(handlerTag) {
|
|
30
26
|
if (!(handlerTag in this.gestures)) {
|
|
31
27
|
return;
|
|
32
28
|
}
|
|
29
|
+
this.gestures[handlerTag].onDestroy();
|
|
33
30
|
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
36
32
|
delete this.gestures[handlerTag];
|
|
37
33
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
static get nodes() {
|
|
35
|
+
return {
|
|
36
|
+
...this.gestures
|
|
41
37
|
};
|
|
42
38
|
}
|
|
43
|
-
|
|
44
39
|
}
|
|
45
|
-
|
|
46
40
|
exports.default = NodeManager;
|
|
47
|
-
|
|
48
41
|
_defineProperty(NodeManager, "gestures", {});
|
|
49
42
|
//# sourceMappingURL=NodeManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["NodeManager","getHandler","tag","gestures","Error","createGestureHandler","handlerTag","handler","dropGestureHandler","onDestroy","nodes","exports","default","_defineProperty"],"sources":["NodeManager.ts"],"sourcesContent":["import { ValueOf } from '../../typeUtils';\nimport { Gestures } from '../Gestures';\nimport type IGestureHandler from '../handlers/IGestureHandler';\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport default abstract class NodeManager {\n private static gestures: Record<\n number,\n InstanceType<ValueOf<typeof Gestures>>\n > = {};\n\n public static getHandler(tag: number): IGestureHandler {\n if (tag in this.gestures) {\n return this.gestures[tag] as IGestureHandler;\n }\n\n throw new Error(`No handler for tag ${tag}`);\n }\n\n public static createGestureHandler(\n handlerTag: number,\n handler: InstanceType<ValueOf<typeof Gestures>>\n ): void {\n if (handlerTag in this.gestures) {\n throw new Error(\n `Handler with tag ${handlerTag} already exists. Please ensure that no Gesture instance is used across multiple GestureDetectors.`\n );\n }\n\n this.gestures[handlerTag] = handler;\n this.gestures[handlerTag].handlerTag = handlerTag;\n }\n\n public static dropGestureHandler(handlerTag: number): void {\n if (!(handlerTag in this.gestures)) {\n return;\n }\n\n this.gestures[handlerTag].onDestroy();\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.gestures[handlerTag];\n }\n\n public static get nodes() {\n return { ...this.gestures };\n }\n}\n"],"mappings":";;;;;;;;;AAIA;AACe,MAAeA,WAAW,CAAC;EAMxC,OAAcC,UAAUA,CAACC,GAAW,EAAmB;IACrD,IAAIA,GAAG,IAAI,IAAI,CAACC,QAAQ,EAAE;MACxB,OAAO,IAAI,CAACA,QAAQ,CAACD,GAAG,CAAC;IAC3B;IAEA,MAAM,IAAIE,KAAK,CAAC,sBAAsBF,GAAG,EAAE,CAAC;EAC9C;EAEA,OAAcG,oBAAoBA,CAChCC,UAAkB,EAClBC,OAA+C,EACzC;IACN,IAAID,UAAU,IAAI,IAAI,CAACH,QAAQ,EAAE;MAC/B,MAAM,IAAIC,KAAK,CACb,oBAAoBE,UAAU,mGAChC,CAAC;IACH;IAEA,IAAI,CAACH,QAAQ,CAACG,UAAU,CAAC,GAAGC,OAAO;IACnC,IAAI,CAACJ,QAAQ,CAACG,UAAU,CAAC,CAACA,UAAU,GAAGA,UAAU;EACnD;EAEA,OAAcE,kBAAkBA,CAACF,UAAkB,EAAQ;IACzD,IAAI,EAAEA,UAAU,IAAI,IAAI,CAACH,QAAQ,CAAC,EAAE;MAClC;IACF;IAEA,IAAI,CAACA,QAAQ,CAACG,UAAU,CAAC,CAACG,SAAS,CAAC,CAAC;;IAErC;IACA,OAAO,IAAI,CAACN,QAAQ,CAACG,UAAU,CAAC;EAClC;EAEA,WAAkBI,KAAKA,CAAA,EAAG;IACxB,OAAO;MAAE,GAAG,IAAI,CAACP;IAAS,CAAC;EAC7B;AACF;AAACQ,OAAA,CAAAC,OAAA,GAAAZ,WAAA;AAAAa,eAAA,CA1C6Bb,WAAW,cAInC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,33 +4,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _EventManager = _interopRequireDefault(require("./EventManager"));
|
|
9
|
-
|
|
10
8
|
var _gestureHandlerCommon = require("../../handlers/gestureHandlerCommon");
|
|
11
|
-
|
|
12
9
|
var _interfaces = require("../interfaces");
|
|
13
|
-
|
|
14
10
|
var _utils = require("../utils");
|
|
15
|
-
|
|
16
11
|
var _PointerType = require("../../PointerType");
|
|
17
|
-
|
|
18
|
-
function
|
|
19
|
-
|
|
20
|
-
function
|
|
21
|
-
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
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; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
|
+
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); }
|
|
22
16
|
const POINTER_CAPTURE_EXCLUDE_LIST = new Set(['SELECT', 'INPUT']);
|
|
23
|
-
|
|
24
17
|
class PointerEventManager extends _EventManager.default {
|
|
25
18
|
constructor(view) {
|
|
26
19
|
super(view);
|
|
27
|
-
|
|
28
20
|
_defineProperty(this, "trackedPointers", new Set());
|
|
29
|
-
|
|
30
21
|
_defineProperty(this, "mouseButtonsMapper", new Map());
|
|
31
|
-
|
|
32
22
|
_defineProperty(this, "lastPosition", void 0);
|
|
33
|
-
|
|
34
23
|
_defineProperty(this, "pointerDownCallback", event => {
|
|
35
24
|
if (!(0, _utils.isPointerInBounds)(this.view, {
|
|
36
25
|
x: event.clientX,
|
|
@@ -38,17 +27,13 @@ class PointerEventManager extends _EventManager.default {
|
|
|
38
27
|
})) {
|
|
39
28
|
return;
|
|
40
29
|
}
|
|
41
|
-
|
|
42
30
|
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.DOWN);
|
|
43
31
|
const target = event.target;
|
|
44
|
-
|
|
45
32
|
if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {
|
|
46
33
|
target.setPointerCapture(adaptedEvent.pointerId);
|
|
47
34
|
}
|
|
48
|
-
|
|
49
35
|
this.markAsInBounds(adaptedEvent.pointerId);
|
|
50
36
|
this.trackedPointers.add(adaptedEvent.pointerId);
|
|
51
|
-
|
|
52
37
|
if (++this.activePointersCounter > 1) {
|
|
53
38
|
adaptedEvent.eventType = _interfaces.EventTypes.ADDITIONAL_POINTER_DOWN;
|
|
54
39
|
this.onPointerAdd(adaptedEvent);
|
|
@@ -56,7 +41,6 @@ class PointerEventManager extends _EventManager.default {
|
|
|
56
41
|
this.onPointerDown(adaptedEvent);
|
|
57
42
|
}
|
|
58
43
|
});
|
|
59
|
-
|
|
60
44
|
_defineProperty(this, "pointerUpCallback", event => {
|
|
61
45
|
// When we call reset on gesture handlers, it also resets their event managers
|
|
62
46
|
// In some handlers (like RotationGestureHandler) reset is called before all pointers leave view
|
|
@@ -65,17 +49,13 @@ class PointerEventManager extends _EventManager.default {
|
|
|
65
49
|
if (this.activePointersCounter === 0) {
|
|
66
50
|
return;
|
|
67
51
|
}
|
|
68
|
-
|
|
69
52
|
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.UP);
|
|
70
53
|
const target = event.target;
|
|
71
|
-
|
|
72
54
|
if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {
|
|
73
55
|
target.releasePointerCapture(adaptedEvent.pointerId);
|
|
74
56
|
}
|
|
75
|
-
|
|
76
57
|
this.markAsOutOfBounds(adaptedEvent.pointerId);
|
|
77
58
|
this.trackedPointers.delete(adaptedEvent.pointerId);
|
|
78
|
-
|
|
79
59
|
if (--this.activePointersCounter > 0) {
|
|
80
60
|
adaptedEvent.eventType = _interfaces.EventTypes.ADDITIONAL_POINTER_UP;
|
|
81
61
|
this.onPointerRemove(adaptedEvent);
|
|
@@ -83,10 +63,11 @@ class PointerEventManager extends _EventManager.default {
|
|
|
83
63
|
this.onPointerUp(adaptedEvent);
|
|
84
64
|
}
|
|
85
65
|
});
|
|
86
|
-
|
|
87
66
|
_defineProperty(this, "pointerMoveCallback", event => {
|
|
88
67
|
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.MOVE);
|
|
89
|
-
const target = event.target;
|
|
68
|
+
const target = event.target;
|
|
69
|
+
|
|
70
|
+
// You may be wondering why are we setting pointer capture here, when we
|
|
90
71
|
// already set it in `pointerdown` handler. Well, that's a great question,
|
|
91
72
|
// for which I don't have an answer. Specification (https://www.w3.org/TR/pointerevents2/#dom-element-setpointercapture)
|
|
92
73
|
// says that the requirement for `setPointerCapture` to work is that pointer
|
|
@@ -98,17 +79,14 @@ class PointerEventManager extends _EventManager.default {
|
|
|
98
79
|
// incorporating it here seems stupid), so we just call it again here, every time
|
|
99
80
|
// pointer moves until it succeeds.
|
|
100
81
|
// God, I do love web development.
|
|
101
|
-
|
|
102
82
|
if (!target.hasPointerCapture(event.pointerId) && !POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {
|
|
103
83
|
target.setPointerCapture(event.pointerId);
|
|
104
84
|
}
|
|
105
|
-
|
|
106
85
|
const inBounds = (0, _utils.isPointerInBounds)(this.view, {
|
|
107
86
|
x: adaptedEvent.x,
|
|
108
87
|
y: adaptedEvent.y
|
|
109
88
|
});
|
|
110
89
|
const pointerIndex = this.pointersInBounds.indexOf(adaptedEvent.pointerId);
|
|
111
|
-
|
|
112
90
|
if (inBounds) {
|
|
113
91
|
if (pointerIndex < 0) {
|
|
114
92
|
adaptedEvent.eventType = _interfaces.EventTypes.ENTER;
|
|
@@ -126,11 +104,9 @@ class PointerEventManager extends _EventManager.default {
|
|
|
126
104
|
this.onPointerOutOfBounds(adaptedEvent);
|
|
127
105
|
}
|
|
128
106
|
}
|
|
129
|
-
|
|
130
107
|
this.lastPosition.x = event.x;
|
|
131
108
|
this.lastPosition.y = event.y;
|
|
132
109
|
});
|
|
133
|
-
|
|
134
110
|
_defineProperty(this, "pointerCancelCallback", event => {
|
|
135
111
|
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.CANCEL);
|
|
136
112
|
this.onPointerCancel(adaptedEvent);
|
|
@@ -138,20 +114,16 @@ class PointerEventManager extends _EventManager.default {
|
|
|
138
114
|
this.activePointersCounter = 0;
|
|
139
115
|
this.trackedPointers.clear();
|
|
140
116
|
});
|
|
141
|
-
|
|
142
117
|
_defineProperty(this, "pointerEnterCallback", event => {
|
|
143
118
|
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.ENTER);
|
|
144
119
|
this.onPointerMoveOver(adaptedEvent);
|
|
145
120
|
});
|
|
146
|
-
|
|
147
121
|
_defineProperty(this, "pointerLeaveCallback", event => {
|
|
148
122
|
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.LEAVE);
|
|
149
123
|
this.onPointerMoveOut(adaptedEvent);
|
|
150
124
|
});
|
|
151
|
-
|
|
152
125
|
_defineProperty(this, "lostPointerCaptureCallback", event => {
|
|
153
126
|
const adaptedEvent = this.mapEvent(event, _interfaces.EventTypes.CANCEL);
|
|
154
|
-
|
|
155
127
|
if (this.trackedPointers.has(adaptedEvent.pointerId)) {
|
|
156
128
|
// In some cases the `pointerup` event is not fired, but `lostpointercapture` is.
|
|
157
129
|
// Here we simulate the `pointercancel` event to make sure the gesture handler stops tracking it.
|
|
@@ -160,7 +132,6 @@ class PointerEventManager extends _EventManager.default {
|
|
|
160
132
|
this.trackedPointers.clear();
|
|
161
133
|
}
|
|
162
134
|
});
|
|
163
|
-
|
|
164
135
|
this.mouseButtonsMapper.set(0, _gestureHandlerCommon.MouseButton.LEFT);
|
|
165
136
|
this.mouseButtonsMapper.set(1, _gestureHandlerCommon.MouseButton.MIDDLE);
|
|
166
137
|
this.mouseButtonsMapper.set(2, _gestureHandlerCommon.MouseButton.RIGHT);
|
|
@@ -171,21 +142,20 @@ class PointerEventManager extends _EventManager.default {
|
|
|
171
142
|
y: -Infinity
|
|
172
143
|
};
|
|
173
144
|
}
|
|
174
|
-
|
|
175
145
|
registerListeners() {
|
|
176
146
|
this.view.addEventListener('pointerdown', this.pointerDownCallback);
|
|
177
147
|
this.view.addEventListener('pointerup', this.pointerUpCallback);
|
|
178
148
|
this.view.addEventListener('pointermove', this.pointerMoveCallback);
|
|
179
|
-
this.view.addEventListener('pointercancel', this.pointerCancelCallback);
|
|
149
|
+
this.view.addEventListener('pointercancel', this.pointerCancelCallback);
|
|
150
|
+
|
|
151
|
+
// onPointerEnter and onPointerLeave are triggered by a custom logic responsible for
|
|
180
152
|
// handling shouldCancelWhenOutside flag, and are unreliable unless the pointer is down.
|
|
181
153
|
// We therefore use pointerenter and pointerleave events to handle the hover gesture,
|
|
182
154
|
// mapping them to onPointerMoveOver and onPointerMoveOut respectively.
|
|
183
|
-
|
|
184
155
|
this.view.addEventListener('pointerenter', this.pointerEnterCallback);
|
|
185
156
|
this.view.addEventListener('pointerleave', this.pointerLeaveCallback);
|
|
186
157
|
this.view.addEventListener('lostpointercapture', this.lostPointerCaptureCallback);
|
|
187
158
|
}
|
|
188
|
-
|
|
189
159
|
unregisterListeners() {
|
|
190
160
|
this.view.removeEventListener('pointerdown', this.pointerDownCallback);
|
|
191
161
|
this.view.removeEventListener('pointerup', this.pointerUpCallback);
|
|
@@ -195,10 +165,8 @@ class PointerEventManager extends _EventManager.default {
|
|
|
195
165
|
this.view.removeEventListener('pointerleave', this.pointerLeaveCallback);
|
|
196
166
|
this.view.removeEventListener('lostpointercapture', this.lostPointerCaptureCallback);
|
|
197
167
|
}
|
|
198
|
-
|
|
199
168
|
mapEvent(event, eventType) {
|
|
200
169
|
var _PointerTypeMapping$g;
|
|
201
|
-
|
|
202
170
|
const rect = this.view.getBoundingClientRect();
|
|
203
171
|
const {
|
|
204
172
|
scaleX,
|
|
@@ -217,13 +185,10 @@ class PointerEventManager extends _EventManager.default {
|
|
|
217
185
|
stylusData: (0, _utils.tryExtractStylusData)(event)
|
|
218
186
|
};
|
|
219
187
|
}
|
|
220
|
-
|
|
221
188
|
resetManager() {
|
|
222
189
|
super.resetManager();
|
|
223
190
|
this.trackedPointers.clear();
|
|
224
191
|
}
|
|
225
|
-
|
|
226
192
|
}
|
|
227
|
-
|
|
228
193
|
exports.default = PointerEventManager;
|
|
229
194
|
//# sourceMappingURL=PointerEventManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PointerEventManager.ts"],"names":["POINTER_CAPTURE_EXCLUDE_LIST","Set","PointerEventManager","EventManager","constructor","view","Map","event","x","clientX","y","clientY","adaptedEvent","mapEvent","EventTypes","DOWN","target","has","tagName","setPointerCapture","pointerId","markAsInBounds","trackedPointers","add","activePointersCounter","eventType","ADDITIONAL_POINTER_DOWN","onPointerAdd","onPointerDown","UP","releasePointerCapture","markAsOutOfBounds","delete","ADDITIONAL_POINTER_UP","onPointerRemove","onPointerUp","MOVE","hasPointerCapture","inBounds","pointerIndex","pointersInBounds","indexOf","ENTER","onPointerEnter","onPointerMove","LEAVE","onPointerLeave","onPointerOutOfBounds","lastPosition","CANCEL","onPointerCancel","clear","onPointerMoveOver","onPointerMoveOut","mouseButtonsMapper","set","MouseButton","LEFT","MIDDLE","RIGHT","BUTTON_4","BUTTON_5","Infinity","registerListeners","addEventListener","pointerDownCallback","pointerUpCallback","pointerMoveCallback","pointerCancelCallback","pointerEnterCallback","pointerLeaveCallback","lostPointerCaptureCallback","unregisterListeners","removeEventListener","rect","getBoundingClientRect","scaleX","scaleY","offsetX","left","offsetY","top","pointerType","PointerTypeMapping","get","PointerType","OTHER","button","time","timeStamp","stylusData","resetManager"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AAMA;;;;;;AAEA,MAAMA,4BAA4B,GAAG,IAAIC,GAAJ,CAAgB,CAAC,QAAD,EAAW,OAAX,CAAhB,CAArC;;AAEe,MAAMC,mBAAN,SAAkCC,qBAAlC,CAA4D;AAKzEC,EAAAA,WAAW,CAACC,IAAD,EAAoB;AAC7B,UAAMA,IAAN;;AAD6B,6CAJL,IAAIJ,GAAJ,EAIK;;AAAA,gDAHO,IAAIK,GAAJ,EAGP;;AAAA;;AAAA,iDAeAC,KAAD,IAAyB;AACrD,UAAI,CAAC,8BAAkB,KAAKF,IAAvB,EAA6B;AAAEG,QAAAA,CAAC,EAAED,KAAK,CAACE,OAAX;AAAoBC,QAAAA,CAAC,EAAEH,KAAK,CAACI;AAA7B,OAA7B,CAAL,EAA2E;AACzE;AACD;;AAED,YAAMC,YAA0B,GAAG,KAAKC,QAAL,CAAcN,KAAd,EAAqBO,uBAAWC,IAAhC,CAAnC;AACA,YAAMC,MAAM,GAAGT,KAAK,CAACS,MAArB;;AAEA,UAAI,CAAChB,4BAA4B,CAACiB,GAA7B,CAAiCD,MAAM,CAACE,OAAxC,CAAL,EAAuD;AACrDF,QAAAA,MAAM,CAACG,iBAAP,CAAyBP,YAAY,CAACQ,SAAtC;AACD;;AAED,WAAKC,cAAL,CAAoBT,YAAY,CAACQ,SAAjC;AACA,WAAKE,eAAL,CAAqBC,GAArB,CAAyBX,YAAY,CAACQ,SAAtC;;AAEA,UAAI,EAAE,KAAKI,qBAAP,GAA+B,CAAnC,EAAsC;AACpCZ,QAAAA,YAAY,CAACa,SAAb,GAAyBX,uBAAWY,uBAApC;AACA,aAAKC,YAAL,CAAkBf,YAAlB;AACD,OAHD,MAGO;AACL,aAAKgB,aAAL,CAAmBhB,YAAnB;AACD;AACF,KApC8B;;AAAA,+CAsCFL,KAAD,IAAyB;AACnD;AACA;AACA;AACA;AACA,UAAI,KAAKiB,qBAAL,KAA+B,CAAnC,EAAsC;AACpC;AACD;;AAED,YAAMZ,YAA0B,GAAG,KAAKC,QAAL,CAAcN,KAAd,EAAqBO,uBAAWe,EAAhC,CAAnC;AACA,YAAMb,MAAM,GAAGT,KAAK,CAACS,MAArB;;AAEA,UAAI,CAAChB,4BAA4B,CAACiB,GAA7B,CAAiCD,MAAM,CAACE,OAAxC,CAAL,EAAuD;AACrDF,QAAAA,MAAM,CAACc,qBAAP,CAA6BlB,YAAY,CAACQ,SAA1C;AACD;;AAED,WAAKW,iBAAL,CAAuBnB,YAAY,CAACQ,SAApC;AACA,WAAKE,eAAL,CAAqBU,MAArB,CAA4BpB,YAAY,CAACQ,SAAzC;;AAEA,UAAI,EAAE,KAAKI,qBAAP,GAA+B,CAAnC,EAAsC;AACpCZ,QAAAA,YAAY,CAACa,SAAb,GAAyBX,uBAAWmB,qBAApC;AACA,aAAKC,eAAL,CAAqBtB,YAArB;AACD,OAHD,MAGO;AACL,aAAKuB,WAAL,CAAiBvB,YAAjB;AACD;AACF,KA/D8B;;AAAA,iDAiEAL,KAAD,IAAyB;AACrD,YAAMK,YAA0B,GAAG,KAAKC,QAAL,CAAcN,KAAd,EAAqBO,uBAAWsB,IAAhC,CAAnC;AACA,YAAMpB,MAAM,GAAGT,KAAK,CAACS,MAArB,CAFqD,CAIrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,UACE,CAACA,MAAM,CAACqB,iBAAP,CAAyB9B,KAAK,CAACa,SAA/B,CAAD,IACA,CAACpB,4BAA4B,CAACiB,GAA7B,CAAiCD,MAAM,CAACE,OAAxC,CAFH,EAGE;AACAF,QAAAA,MAAM,CAACG,iBAAP,CAAyBZ,KAAK,CAACa,SAA/B;AACD;;AAED,YAAMkB,QAAiB,GAAG,8BAAkB,KAAKjC,IAAvB,EAA6B;AACrDG,QAAAA,CAAC,EAAEI,YAAY,CAACJ,CADqC;AAErDE,QAAAA,CAAC,EAAEE,YAAY,CAACF;AAFqC,OAA7B,CAA1B;AAKA,YAAM6B,YAAoB,GAAG,KAAKC,gBAAL,CAAsBC,OAAtB,CAC3B7B,YAAY,CAACQ,SADc,CAA7B;;AAIA,UAAIkB,QAAJ,EAAc;AACZ,YAAIC,YAAY,GAAG,CAAnB,EAAsB;AACpB3B,UAAAA,YAAY,CAACa,SAAb,GAAyBX,uBAAW4B,KAApC;AACA,eAAKC,cAAL,CAAoB/B,YAApB;AACA,eAAKS,cAAL,CAAoBT,YAAY,CAACQ,SAAjC;AACD,SAJD,MAIO;AACL,eAAKwB,aAAL,CAAmBhC,YAAnB;AACD;AACF,OARD,MAQO;AACL,YAAI2B,YAAY,IAAI,CAApB,EAAuB;AACrB3B,UAAAA,YAAY,CAACa,SAAb,GAAyBX,uBAAW+B,KAApC;AACA,eAAKC,cAAL,CAAoBlC,YAApB;AACA,eAAKmB,iBAAL,CAAuBnB,YAAY,CAACQ,SAApC;AACD,SAJD,MAIO;AACL,eAAK2B,oBAAL,CAA0BnC,YAA1B;AACD;AACF;;AAED,WAAKoC,YAAL,CAAkBxC,CAAlB,GAAsBD,KAAK,CAACC,CAA5B;AACA,WAAKwC,YAAL,CAAkBtC,CAAlB,GAAsBH,KAAK,CAACG,CAA5B;AACD,KArH8B;;AAAA,mDAuHEH,KAAD,IAAyB;AACvD,YAAMK,YAA0B,GAAG,KAAKC,QAAL,CAAcN,KAAd,EAAqBO,uBAAWmC,MAAhC,CAAnC;AAEA,WAAKC,eAAL,CAAqBtC,YAArB;AACA,WAAKmB,iBAAL,CAAuBnB,YAAY,CAACQ,SAApC;AACA,WAAKI,qBAAL,GAA6B,CAA7B;AACA,WAAKF,eAAL,CAAqB6B,KAArB;AACD,KA9H8B;;AAAA,kDAgIC5C,KAAD,IAAyB;AACtD,YAAMK,YAA0B,GAAG,KAAKC,QAAL,CAAcN,KAAd,EAAqBO,uBAAW4B,KAAhC,CAAnC;AAEA,WAAKU,iBAAL,CAAuBxC,YAAvB;AACD,KApI8B;;AAAA,kDAsICL,KAAD,IAAyB;AACtD,YAAMK,YAA0B,GAAG,KAAKC,QAAL,CAAcN,KAAd,EAAqBO,uBAAW+B,KAAhC,CAAnC;AAEA,WAAKQ,gBAAL,CAAsBzC,YAAtB;AACD,KA1I8B;;AAAA,wDA4IOL,KAAD,IAAyB;AAC5D,YAAMK,YAA0B,GAAG,KAAKC,QAAL,CAAcN,KAAd,EAAqBO,uBAAWmC,MAAhC,CAAnC;;AAEA,UAAI,KAAK3B,eAAL,CAAqBL,GAArB,CAAyBL,YAAY,CAACQ,SAAtC,CAAJ,EAAsD;AACpD;AACA;AACA,aAAK8B,eAAL,CAAqBtC,YAArB;AAEA,aAAKY,qBAAL,GAA6B,CAA7B;AACA,aAAKF,eAAL,CAAqB6B,KAArB;AACD;AACF,KAvJ8B;;AAG7B,SAAKG,kBAAL,CAAwBC,GAAxB,CAA4B,CAA5B,EAA+BC,kCAAYC,IAA3C;AACA,SAAKH,kBAAL,CAAwBC,GAAxB,CAA4B,CAA5B,EAA+BC,kCAAYE,MAA3C;AACA,SAAKJ,kBAAL,CAAwBC,GAAxB,CAA4B,CAA5B,EAA+BC,kCAAYG,KAA3C;AACA,SAAKL,kBAAL,CAAwBC,GAAxB,CAA4B,CAA5B,EAA+BC,kCAAYI,QAA3C;AACA,SAAKN,kBAAL,CAAwBC,GAAxB,CAA4B,CAA5B,EAA+BC,kCAAYK,QAA3C;AAEA,SAAKb,YAAL,GAAoB;AAClBxC,MAAAA,CAAC,EAAE,CAACsD,QADc;AAElBpD,MAAAA,CAAC,EAAE,CAACoD;AAFc,KAApB;AAID;;AA4IMC,EAAAA,iBAAiB,GAAS;AAC/B,SAAK1D,IAAL,CAAU2D,gBAAV,CAA2B,aAA3B,EAA0C,KAAKC,mBAA/C;AACA,SAAK5D,IAAL,CAAU2D,gBAAV,CAA2B,WAA3B,EAAwC,KAAKE,iBAA7C;AACA,SAAK7D,IAAL,CAAU2D,gBAAV,CAA2B,aAA3B,EAA0C,KAAKG,mBAA/C;AACA,SAAK9D,IAAL,CAAU2D,gBAAV,CAA2B,eAA3B,EAA4C,KAAKI,qBAAjD,EAJ+B,CAM/B;AACA;AACA;AACA;;AACA,SAAK/D,IAAL,CAAU2D,gBAAV,CAA2B,cAA3B,EAA2C,KAAKK,oBAAhD;AACA,SAAKhE,IAAL,CAAU2D,gBAAV,CAA2B,cAA3B,EAA2C,KAAKM,oBAAhD;AACA,SAAKjE,IAAL,CAAU2D,gBAAV,CACE,oBADF,EAEE,KAAKO,0BAFP;AAID;;AAEMC,EAAAA,mBAAmB,GAAS;AACjC,SAAKnE,IAAL,CAAUoE,mBAAV,CAA8B,aAA9B,EAA6C,KAAKR,mBAAlD;AACA,SAAK5D,IAAL,CAAUoE,mBAAV,CAA8B,WAA9B,EAA2C,KAAKP,iBAAhD;AACA,SAAK7D,IAAL,CAAUoE,mBAAV,CAA8B,aAA9B,EAA6C,KAAKN,mBAAlD;AACA,SAAK9D,IAAL,CAAUoE,mBAAV,CAA8B,eAA9B,EAA+C,KAAKL,qBAApD;AACA,SAAK/D,IAAL,CAAUoE,mBAAV,CAA8B,cAA9B,EAA8C,KAAKJ,oBAAnD;AACA,SAAKhE,IAAL,CAAUoE,mBAAV,CAA8B,cAA9B,EAA8C,KAAKH,oBAAnD;AACA,SAAKjE,IAAL,CAAUoE,mBAAV,CACE,oBADF,EAEE,KAAKF,0BAFP;AAID;;AAES1D,EAAAA,QAAQ,CAACN,KAAD,EAAsBkB,SAAtB,EAA2D;AAAA;;AAC3E,UAAMiD,IAAI,GAAG,KAAKrE,IAAL,CAAUsE,qBAAV,EAAb;AACA,UAAM;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAqB,+BAAmB,KAAKxE,IAAxB,CAA3B;AAEA,WAAO;AACLG,MAAAA,CAAC,EAAED,KAAK,CAACE,OADJ;AAELC,MAAAA,CAAC,EAAEH,KAAK,CAACI,OAFJ;AAGLmE,MAAAA,OAAO,EAAE,CAACvE,KAAK,CAACE,OAAN,GAAgBiE,IAAI,CAACK,IAAtB,IAA8BH,MAHlC;AAILI,MAAAA,OAAO,EAAE,CAACzE,KAAK,CAACI,OAAN,GAAgB+D,IAAI,CAACO,GAAtB,IAA6BJ,MAJjC;AAKLzD,MAAAA,SAAS,EAAEb,KAAK,CAACa,SALZ;AAMLK,MAAAA,SAAS,EAAEA,SANN;AAOLyD,MAAAA,WAAW,2BACTC,0BAAmBC,GAAnB,CAAuB7E,KAAK,CAAC2E,WAA7B,CADS,yEACoCG,yBAAYC,KARtD;AASLC,MAAAA,MAAM,EAAE,KAAKjC,kBAAL,CAAwB8B,GAAxB,CAA4B7E,KAAK,CAACgF,MAAlC,CATH;AAULC,MAAAA,IAAI,EAAEjF,KAAK,CAACkF,SAVP;AAWLC,MAAAA,UAAU,EAAE,iCAAqBnF,KAArB;AAXP,KAAP;AAaD;;AAEMoF,EAAAA,YAAY,GAAS;AAC1B,UAAMA,YAAN;AACA,SAAKrE,eAAL,CAAqB6B,KAArB;AACD;;AAnNwE","sourcesContent":["import EventManager from './EventManager';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport { AdaptedEvent, EventTypes, Point } from '../interfaces';\nimport {\n PointerTypeMapping,\n calculateViewScale,\n tryExtractStylusData,\n isPointerInBounds,\n} from '../utils';\nimport { PointerType } from '../../PointerType';\n\nconst POINTER_CAPTURE_EXCLUDE_LIST = new Set<string>(['SELECT', 'INPUT']);\n\nexport default class PointerEventManager extends EventManager<HTMLElement> {\n private trackedPointers = new Set<number>();\n private readonly mouseButtonsMapper = new Map<number, MouseButton>();\n private lastPosition: Point;\n\n constructor(view: HTMLElement) {\n super(view);\n\n this.mouseButtonsMapper.set(0, MouseButton.LEFT);\n this.mouseButtonsMapper.set(1, MouseButton.MIDDLE);\n this.mouseButtonsMapper.set(2, MouseButton.RIGHT);\n this.mouseButtonsMapper.set(3, MouseButton.BUTTON_4);\n this.mouseButtonsMapper.set(4, MouseButton.BUTTON_5);\n\n this.lastPosition = {\n x: -Infinity,\n y: -Infinity,\n };\n }\n\n private pointerDownCallback = (event: PointerEvent) => {\n if (!isPointerInBounds(this.view, { x: event.clientX, y: event.clientY })) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.DOWN);\n const target = event.target as HTMLElement;\n\n if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {\n target.setPointerCapture(adaptedEvent.pointerId);\n }\n\n this.markAsInBounds(adaptedEvent.pointerId);\n this.trackedPointers.add(adaptedEvent.pointerId);\n\n if (++this.activePointersCounter > 1) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n this.onPointerAdd(adaptedEvent);\n } else {\n this.onPointerDown(adaptedEvent);\n }\n };\n\n private pointerUpCallback = (event: PointerEvent) => {\n // When we call reset on gesture handlers, it also resets their event managers\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\n if (this.activePointersCounter === 0) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.UP);\n const target = event.target as HTMLElement;\n\n if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {\n target.releasePointerCapture(adaptedEvent.pointerId);\n }\n\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.trackedPointers.delete(adaptedEvent.pointerId);\n\n if (--this.activePointersCounter > 0) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n this.onPointerRemove(adaptedEvent);\n } else {\n this.onPointerUp(adaptedEvent);\n }\n };\n\n private pointerMoveCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.MOVE);\n const target = event.target as HTMLElement;\n\n // You may be wondering why are we setting pointer capture here, when we\n // already set it in `pointerdown` handler. Well, that's a great question,\n // for which I don't have an answer. Specification (https://www.w3.org/TR/pointerevents2/#dom-element-setpointercapture)\n // says that the requirement for `setPointerCapture` to work is that pointer\n // must be in 'active buttons state`, otherwise it will fail silently, which\n // is lovely. Obviously, when `pointerdown` is fired, one of the buttons\n // (when using mouse) is pressed, but that doesn't mean that `setPointerCapture`\n // will succeed, for some reason. Since it fails silently, we don't actually know\n // if it worked or not (there's `gotpointercapture` event, but the complexity of\n // incorporating it here seems stupid), so we just call it again here, every time\n // pointer moves until it succeeds.\n // God, I do love web development.\n if (\n !target.hasPointerCapture(event.pointerId) &&\n !POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)\n ) {\n target.setPointerCapture(event.pointerId);\n }\n\n const inBounds: boolean = isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n });\n\n const pointerIndex: number = this.pointersInBounds.indexOf(\n adaptedEvent.pointerId\n );\n\n if (inBounds) {\n if (pointerIndex < 0) {\n adaptedEvent.eventType = EventTypes.ENTER;\n this.onPointerEnter(adaptedEvent);\n this.markAsInBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerMove(adaptedEvent);\n }\n } else {\n if (pointerIndex >= 0) {\n adaptedEvent.eventType = EventTypes.LEAVE;\n this.onPointerLeave(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerOutOfBounds(adaptedEvent);\n }\n }\n\n this.lastPosition.x = event.x;\n this.lastPosition.y = event.y;\n };\n\n private pointerCancelCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.CANCEL);\n\n this.onPointerCancel(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.activePointersCounter = 0;\n this.trackedPointers.clear();\n };\n\n private pointerEnterCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.ENTER);\n\n this.onPointerMoveOver(adaptedEvent);\n };\n\n private pointerLeaveCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.LEAVE);\n\n this.onPointerMoveOut(adaptedEvent);\n };\n\n private lostPointerCaptureCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.CANCEL);\n\n if (this.trackedPointers.has(adaptedEvent.pointerId)) {\n // In some cases the `pointerup` event is not fired, but `lostpointercapture` is.\n // Here we simulate the `pointercancel` event to make sure the gesture handler stops tracking it.\n this.onPointerCancel(adaptedEvent);\n\n this.activePointersCounter = 0;\n this.trackedPointers.clear();\n }\n };\n\n public registerListeners(): void {\n this.view.addEventListener('pointerdown', this.pointerDownCallback);\n this.view.addEventListener('pointerup', this.pointerUpCallback);\n this.view.addEventListener('pointermove', this.pointerMoveCallback);\n this.view.addEventListener('pointercancel', this.pointerCancelCallback);\n\n // onPointerEnter and onPointerLeave are triggered by a custom logic responsible for\n // handling shouldCancelWhenOutside flag, and are unreliable unless the pointer is down.\n // We therefore use pointerenter and pointerleave events to handle the hover gesture,\n // mapping them to onPointerMoveOver and onPointerMoveOut respectively.\n this.view.addEventListener('pointerenter', this.pointerEnterCallback);\n this.view.addEventListener('pointerleave', this.pointerLeaveCallback);\n this.view.addEventListener(\n 'lostpointercapture',\n this.lostPointerCaptureCallback\n );\n }\n\n public unregisterListeners(): void {\n this.view.removeEventListener('pointerdown', this.pointerDownCallback);\n this.view.removeEventListener('pointerup', this.pointerUpCallback);\n this.view.removeEventListener('pointermove', this.pointerMoveCallback);\n this.view.removeEventListener('pointercancel', this.pointerCancelCallback);\n this.view.removeEventListener('pointerenter', this.pointerEnterCallback);\n this.view.removeEventListener('pointerleave', this.pointerLeaveCallback);\n this.view.removeEventListener(\n 'lostpointercapture',\n this.lostPointerCaptureCallback\n );\n }\n\n protected mapEvent(event: PointerEvent, eventType: EventTypes): AdaptedEvent {\n const rect = this.view.getBoundingClientRect();\n const { scaleX, scaleY } = calculateViewScale(this.view);\n\n return {\n x: event.clientX,\n y: event.clientY,\n offsetX: (event.clientX - rect.left) / scaleX,\n offsetY: (event.clientY - rect.top) / scaleY,\n pointerId: event.pointerId,\n eventType: eventType,\n pointerType:\n PointerTypeMapping.get(event.pointerType) ?? PointerType.OTHER,\n button: this.mouseButtonsMapper.get(event.button),\n time: event.timeStamp,\n stylusData: tryExtractStylusData(event),\n };\n }\n\n public resetManager(): void {\n super.resetManager();\n this.trackedPointers.clear();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"names":["_EventManager","_interopRequireDefault","require","_gestureHandlerCommon","_interfaces","_utils","_PointerType","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","POINTER_CAPTURE_EXCLUDE_LIST","Set","PointerEventManager","EventManager","constructor","view","Map","event","isPointerInBounds","x","clientX","y","clientY","adaptedEvent","mapEvent","EventTypes","DOWN","target","has","tagName","setPointerCapture","pointerId","markAsInBounds","trackedPointers","add","activePointersCounter","eventType","ADDITIONAL_POINTER_DOWN","onPointerAdd","onPointerDown","UP","releasePointerCapture","markAsOutOfBounds","delete","ADDITIONAL_POINTER_UP","onPointerRemove","onPointerUp","MOVE","hasPointerCapture","inBounds","pointerIndex","pointersInBounds","indexOf","ENTER","onPointerEnter","onPointerMove","LEAVE","onPointerLeave","onPointerOutOfBounds","lastPosition","CANCEL","onPointerCancel","clear","onPointerMoveOver","onPointerMoveOut","mouseButtonsMapper","set","MouseButton","LEFT","MIDDLE","RIGHT","BUTTON_4","BUTTON_5","Infinity","registerListeners","addEventListener","pointerDownCallback","pointerUpCallback","pointerMoveCallback","pointerCancelCallback","pointerEnterCallback","pointerLeaveCallback","lostPointerCaptureCallback","unregisterListeners","removeEventListener","_PointerTypeMapping$g","rect","getBoundingClientRect","scaleX","scaleY","calculateViewScale","offsetX","left","offsetY","top","pointerType","PointerTypeMapping","get","PointerType","OTHER","button","time","timeStamp","stylusData","tryExtractStylusData","resetManager","exports"],"sources":["PointerEventManager.ts"],"sourcesContent":["import EventManager from './EventManager';\nimport { MouseButton } from '../../handlers/gestureHandlerCommon';\nimport { AdaptedEvent, EventTypes, Point } from '../interfaces';\nimport {\n PointerTypeMapping,\n calculateViewScale,\n tryExtractStylusData,\n isPointerInBounds,\n} from '../utils';\nimport { PointerType } from '../../PointerType';\n\nconst POINTER_CAPTURE_EXCLUDE_LIST = new Set<string>(['SELECT', 'INPUT']);\n\nexport default class PointerEventManager extends EventManager<HTMLElement> {\n private trackedPointers = new Set<number>();\n private readonly mouseButtonsMapper = new Map<number, MouseButton>();\n private lastPosition: Point;\n\n constructor(view: HTMLElement) {\n super(view);\n\n this.mouseButtonsMapper.set(0, MouseButton.LEFT);\n this.mouseButtonsMapper.set(1, MouseButton.MIDDLE);\n this.mouseButtonsMapper.set(2, MouseButton.RIGHT);\n this.mouseButtonsMapper.set(3, MouseButton.BUTTON_4);\n this.mouseButtonsMapper.set(4, MouseButton.BUTTON_5);\n\n this.lastPosition = {\n x: -Infinity,\n y: -Infinity,\n };\n }\n\n private pointerDownCallback = (event: PointerEvent) => {\n if (!isPointerInBounds(this.view, { x: event.clientX, y: event.clientY })) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.DOWN);\n const target = event.target as HTMLElement;\n\n if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {\n target.setPointerCapture(adaptedEvent.pointerId);\n }\n\n this.markAsInBounds(adaptedEvent.pointerId);\n this.trackedPointers.add(adaptedEvent.pointerId);\n\n if (++this.activePointersCounter > 1) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_DOWN;\n this.onPointerAdd(adaptedEvent);\n } else {\n this.onPointerDown(adaptedEvent);\n }\n };\n\n private pointerUpCallback = (event: PointerEvent) => {\n // When we call reset on gesture handlers, it also resets their event managers\n // In some handlers (like RotationGestureHandler) reset is called before all pointers leave view\n // This means, that activePointersCounter will be set to 0, while there are still remaining pointers on view\n // Removing them will end in activePointersCounter going below 0, therefore handlers won't behave properly\n if (this.activePointersCounter === 0) {\n return;\n }\n\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.UP);\n const target = event.target as HTMLElement;\n\n if (!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)) {\n target.releasePointerCapture(adaptedEvent.pointerId);\n }\n\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.trackedPointers.delete(adaptedEvent.pointerId);\n\n if (--this.activePointersCounter > 0) {\n adaptedEvent.eventType = EventTypes.ADDITIONAL_POINTER_UP;\n this.onPointerRemove(adaptedEvent);\n } else {\n this.onPointerUp(adaptedEvent);\n }\n };\n\n private pointerMoveCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.MOVE);\n const target = event.target as HTMLElement;\n\n // You may be wondering why are we setting pointer capture here, when we\n // already set it in `pointerdown` handler. Well, that's a great question,\n // for which I don't have an answer. Specification (https://www.w3.org/TR/pointerevents2/#dom-element-setpointercapture)\n // says that the requirement for `setPointerCapture` to work is that pointer\n // must be in 'active buttons state`, otherwise it will fail silently, which\n // is lovely. Obviously, when `pointerdown` is fired, one of the buttons\n // (when using mouse) is pressed, but that doesn't mean that `setPointerCapture`\n // will succeed, for some reason. Since it fails silently, we don't actually know\n // if it worked or not (there's `gotpointercapture` event, but the complexity of\n // incorporating it here seems stupid), so we just call it again here, every time\n // pointer moves until it succeeds.\n // God, I do love web development.\n if (\n !target.hasPointerCapture(event.pointerId) &&\n !POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)\n ) {\n target.setPointerCapture(event.pointerId);\n }\n\n const inBounds: boolean = isPointerInBounds(this.view, {\n x: adaptedEvent.x,\n y: adaptedEvent.y,\n });\n\n const pointerIndex: number = this.pointersInBounds.indexOf(\n adaptedEvent.pointerId\n );\n\n if (inBounds) {\n if (pointerIndex < 0) {\n adaptedEvent.eventType = EventTypes.ENTER;\n this.onPointerEnter(adaptedEvent);\n this.markAsInBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerMove(adaptedEvent);\n }\n } else {\n if (pointerIndex >= 0) {\n adaptedEvent.eventType = EventTypes.LEAVE;\n this.onPointerLeave(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n } else {\n this.onPointerOutOfBounds(adaptedEvent);\n }\n }\n\n this.lastPosition.x = event.x;\n this.lastPosition.y = event.y;\n };\n\n private pointerCancelCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.CANCEL);\n\n this.onPointerCancel(adaptedEvent);\n this.markAsOutOfBounds(adaptedEvent.pointerId);\n this.activePointersCounter = 0;\n this.trackedPointers.clear();\n };\n\n private pointerEnterCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.ENTER);\n\n this.onPointerMoveOver(adaptedEvent);\n };\n\n private pointerLeaveCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.LEAVE);\n\n this.onPointerMoveOut(adaptedEvent);\n };\n\n private lostPointerCaptureCallback = (event: PointerEvent) => {\n const adaptedEvent: AdaptedEvent = this.mapEvent(event, EventTypes.CANCEL);\n\n if (this.trackedPointers.has(adaptedEvent.pointerId)) {\n // In some cases the `pointerup` event is not fired, but `lostpointercapture` is.\n // Here we simulate the `pointercancel` event to make sure the gesture handler stops tracking it.\n this.onPointerCancel(adaptedEvent);\n\n this.activePointersCounter = 0;\n this.trackedPointers.clear();\n }\n };\n\n public registerListeners(): void {\n this.view.addEventListener('pointerdown', this.pointerDownCallback);\n this.view.addEventListener('pointerup', this.pointerUpCallback);\n this.view.addEventListener('pointermove', this.pointerMoveCallback);\n this.view.addEventListener('pointercancel', this.pointerCancelCallback);\n\n // onPointerEnter and onPointerLeave are triggered by a custom logic responsible for\n // handling shouldCancelWhenOutside flag, and are unreliable unless the pointer is down.\n // We therefore use pointerenter and pointerleave events to handle the hover gesture,\n // mapping them to onPointerMoveOver and onPointerMoveOut respectively.\n this.view.addEventListener('pointerenter', this.pointerEnterCallback);\n this.view.addEventListener('pointerleave', this.pointerLeaveCallback);\n this.view.addEventListener(\n 'lostpointercapture',\n this.lostPointerCaptureCallback\n );\n }\n\n public unregisterListeners(): void {\n this.view.removeEventListener('pointerdown', this.pointerDownCallback);\n this.view.removeEventListener('pointerup', this.pointerUpCallback);\n this.view.removeEventListener('pointermove', this.pointerMoveCallback);\n this.view.removeEventListener('pointercancel', this.pointerCancelCallback);\n this.view.removeEventListener('pointerenter', this.pointerEnterCallback);\n this.view.removeEventListener('pointerleave', this.pointerLeaveCallback);\n this.view.removeEventListener(\n 'lostpointercapture',\n this.lostPointerCaptureCallback\n );\n }\n\n protected mapEvent(event: PointerEvent, eventType: EventTypes): AdaptedEvent {\n const rect = this.view.getBoundingClientRect();\n const { scaleX, scaleY } = calculateViewScale(this.view);\n\n return {\n x: event.clientX,\n y: event.clientY,\n offsetX: (event.clientX - rect.left) / scaleX,\n offsetY: (event.clientY - rect.top) / scaleY,\n pointerId: event.pointerId,\n eventType: eventType,\n pointerType:\n PointerTypeMapping.get(event.pointerType) ?? PointerType.OTHER,\n button: this.mouseButtonsMapper.get(event.button),\n time: event.timeStamp,\n stylusData: tryExtractStylusData(event),\n };\n }\n\n public resetManager(): void {\n super.resetManager();\n this.trackedPointers.clear();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|