react-native-gesture-handler 2.23.0 → 2.24.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/RNGestureHandler.podspec +8 -0
- package/android/build.gradle +9 -3
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +2 -1
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +2 -1
- package/android/paper77/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +60 -0
- package/android/paper77/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +26 -0
- package/android/paper77/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +26 -0
- package/android/paper77/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +16 -0
- package/android/paper77/src/main/java/com/swmansion/gesturehandler/NativeRNGestureHandlerModuleSpec.java +67 -0
- package/android/paper77/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +13 -0
- package/apple/RNGestureHandlerButton.mm +12 -2
- package/lib/commonjs/ActionType.js +3 -3
- package/lib/commonjs/ActionType.js.map +1 -1
- package/lib/commonjs/Directions.js +8 -11
- package/lib/commonjs/Directions.js.map +1 -1
- package/lib/commonjs/EnableNewWebImplementation.js +10 -2
- package/lib/commonjs/EnableNewWebImplementation.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootViewContext.js +7 -2
- package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -1
- package/lib/commonjs/PlatformConstants.js +6 -1
- package/lib/commonjs/PlatformConstants.js.map +1 -1
- package/lib/commonjs/PlatformConstants.web.js +3 -1
- package/lib/commonjs/PlatformConstants.web.js.map +1 -1
- package/lib/commonjs/PointerType.js +5 -3
- package/lib/commonjs/PointerType.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.js +6 -2
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +37 -11
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +32 -22
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/commonjs/RNRenderer.js +3 -1
- package/lib/commonjs/RNRenderer.js.map +1 -1
- package/lib/commonjs/RNRenderer.web.js +2 -1
- package/lib/commonjs/RNRenderer.web.js.map +1 -1
- package/lib/commonjs/State.js +3 -4
- 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 +115 -90
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +81 -28
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureButtonsProps.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +37 -26
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +27 -13
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js +6 -2
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.web.js +12 -4
- package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.android.js +15 -4
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.js +14 -4
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.web.js +13 -4
- package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/commonjs/components/Pressable/Pressable.js +77 -29
- 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 +3 -1
- package/lib/commonjs/components/Pressable/index.js.map +1 -1
- package/lib/commonjs/components/Pressable/utils.js +20 -5
- package/lib/commonjs/components/Pressable/utils.js.map +1 -1
- package/lib/commonjs/components/ReanimatedDrawerLayout.js +86 -44
- package/lib/commonjs/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/commonjs/components/ReanimatedSwipeable.js +45 -18
- package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +75 -34
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/Text.js +28 -10
- package/lib/commonjs/components/Text.js.map +1 -1
- package/lib/commonjs/components/gestureHandlerRootHOC.js +14 -5
- package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/components/touchables/ExtraButtonProps.js +2 -0
- package/lib/commonjs/components/touchables/ExtraButtonProps.js.map +1 -0
- package/lib/commonjs/components/touchables/GenericTouchable.js +76 -40
- 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 +34 -19
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +32 -16
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -2
- 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 +25 -16
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +25 -13
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/index.js +12 -7
- package/lib/commonjs/components/touchables/index.js.map +1 -1
- package/lib/commonjs/findNodeHandle.js +4 -1
- package/lib/commonjs/findNodeHandle.js.map +1 -1
- package/lib/commonjs/findNodeHandle.web.js +14 -5
- package/lib/commonjs/findNodeHandle.web.js.map +1 -1
- package/lib/commonjs/getReactNativeVersion.js +6 -1
- package/lib/commonjs/getReactNativeVersion.js.map +1 -1
- package/lib/commonjs/getReactNativeVersion.web.js +1 -0
- package/lib/commonjs/getReactNativeVersion.web.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +14 -13
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.web.js +1 -0
- package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -1
- package/lib/commonjs/ghQueueMicrotask.js +2 -1
- package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
- package/lib/commonjs/handlers/FlingGestureHandler.js +11 -9
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +22 -15
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js +11 -9
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +13 -10
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +32 -13
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PinchGestureHandler.js +9 -7
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.js +1 -0
- package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.web.js +1 -0
- package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -1
- package/lib/commonjs/handlers/RotationGestureHandler.js +9 -7
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +11 -9
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +146 -59
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/createNativeWrapper.js +30 -18
- package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
- package/lib/commonjs/handlers/customDirectEventTypes.js +1 -0
- package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -1
- package/lib/commonjs/handlers/customDirectEventTypes.web.js +2 -1
- package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +10 -9
- 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 +14 -5
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +21 -13
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +29 -9
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +10 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +36 -11
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +3 -0
- 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 +24 -12
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +48 -12
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +13 -3
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +9 -2
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +14 -6
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +55 -27
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js +46 -14
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/flingGesture.js +12 -5
- package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js +19 -8
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +84 -44
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +31 -17
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js +27 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +9 -3
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +7 -2
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/hoverGesture.js +25 -11
- package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js +14 -6
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/manualGesture.js +6 -0
- package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/nativeGesture.js +12 -5
- package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js +43 -18
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/pinchGesture.js +9 -2
- package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +8 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/handlers/gestures/rotationGesture.js +9 -2
- package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/tapGesture.js +22 -10
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/commonjs/handlers/getNextHandlerTag.js +1 -0
- package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -1
- package/lib/commonjs/handlers/handlersRegistry.js +21 -6
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
- package/lib/commonjs/handlers/utils.js +26 -6
- package/lib/commonjs/handlers/utils.js.map +1 -1
- package/lib/commonjs/index.js +104 -75
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +11 -4
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/jestUtils/index.js +5 -4
- package/lib/commonjs/jestUtils/index.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js +83 -19
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/mocks.js +15 -5
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/mountRegistry.js +12 -3
- package/lib/commonjs/mountRegistry.js.map +1 -1
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +5 -1
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +7 -2
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +7 -2
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
- package/lib/commonjs/typeUtils.js.map +1 -1
- package/lib/commonjs/utils.js +37 -13
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/Gestures.js +23 -5
- package/lib/commonjs/web/Gestures.js.map +1 -1
- package/lib/commonjs/web/constants.js +4 -2
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +41 -5
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +42 -13
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +49 -6
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +195 -62
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +19 -6
- 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 +47 -6
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +11 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +49 -8
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +123 -8
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +41 -4
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +42 -4
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +67 -6
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js +17 -9
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/CircularBuffer.js +15 -3
- package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
- package/lib/commonjs/web/tools/EventManager.js +41 -7
- 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 +78 -11
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +48 -8
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js +22 -5
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web/tools/KeyboardEventManager.js +26 -4
- package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/LeastSquareSolver.js +67 -30
- package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/commonjs/web/tools/NodeManager.js +14 -7
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerEventManager.js +45 -10
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +45 -9
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/Vector.js +18 -3
- package/lib/commonjs/web/tools/Vector.js.map +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js +31 -9
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
- package/lib/commonjs/web/tools/WheelEventManager.js +17 -4
- package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
- package/lib/commonjs/web/utils.js +76 -27
- package/lib/commonjs/web/utils.js.map +1 -1
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +19 -7
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js +13 -3
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/Errors.js +3 -0
- package/lib/commonjs/web_hammer/Errors.js.map +1 -1
- package/lib/commonjs/web_hammer/FlingGestureHandler.js +44 -13
- package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js +142 -55
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +11 -2
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js +19 -5
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +24 -16
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +16 -9
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +49 -8
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/PinchGestureHandler.js +11 -2
- package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/PressGestureHandler.js +43 -15
- package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/RotationGestureHandler.js +13 -2
- package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/TapGestureHandler.js +52 -33
- package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/constants.js +26 -13
- package/lib/commonjs/web_hammer/constants.js.map +1 -1
- package/lib/commonjs/web_hammer/utils.js +14 -4
- package/lib/commonjs/web_hammer/utils.js.map +1 -1
- package/lib/module/ActionType.js +1 -3
- package/lib/module/ActionType.js.map +1 -1
- package/lib/module/Directions.js +3 -9
- package/lib/module/Directions.js.map +1 -1
- package/lib/module/EnableNewWebImplementation.js +5 -2
- package/lib/module/EnableNewWebImplementation.js.map +1 -1
- package/lib/module/GestureHandlerRootViewContext.js.map +1 -1
- package/lib/module/PlatformConstants.js +1 -0
- package/lib/module/PlatformConstants.js.map +1 -1
- package/lib/module/PlatformConstants.web.js +1 -0
- package/lib/module/PlatformConstants.web.js.map +1 -1
- package/lib/module/PointerType.js +4 -3
- package/lib/module/PointerType.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.js +0 -1
- package/lib/module/RNGestureHandlerModule.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +20 -10
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +17 -18
- 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 +1 -4
- package/lib/module/State.js.map +1 -1
- package/lib/module/TouchEventType.js +1 -3
- package/lib/module/TouchEventType.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +99 -80
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +55 -19
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureButtonsProps.js.map +1 -1
- package/lib/module/components/GestureComponents.js +12 -17
- 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 +2 -1
- package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js +2 -1
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.js +2 -1
- package/lib/module/components/GestureHandlerRootView.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.web.js +2 -1
- package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +59 -26
- 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 +14 -4
- package/lib/module/components/Pressable/utils.js.map +1 -1
- package/lib/module/components/ReanimatedDrawerLayout.js +66 -40
- package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable.js +30 -14
- package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/components/Swipeable.js +59 -28
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/Text.js +15 -7
- 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/ExtraButtonProps.js +2 -0
- package/lib/module/components/touchables/ExtraButtonProps.js.map +1 -0
- package/lib/module/components/touchables/GenericTouchable.js +63 -34
- 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 +24 -15
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js +20 -10
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.js +2 -2
- 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 +16 -10
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/components/touchables/TouchableWithoutFeedback.js +15 -10
- 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 +11 -5
- 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 +0 -6
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +8 -12
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -1
- package/lib/module/handlers/LongPressGestureHandler.js +0 -6
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/NativeViewGestureHandler.js +0 -6
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +19 -8
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PinchGestureHandler.js +0 -2
- 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 +0 -2
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +0 -6
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +119 -57
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/createNativeWrapper.js +22 -15
- 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 +4 -9
- 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 +4 -3
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +7 -8
- package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +16 -8
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +1 -0
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +13 -7
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +2 -0
- 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 +14 -11
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +39 -12
- 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 +6 -2
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +7 -5
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +28 -23
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js +38 -14
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/flingGesture.js +9 -5
- package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/module/handlers/gestures/forceTouchGesture.js +17 -8
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +73 -44
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +24 -16
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/handlers/gestures/gestureObjects.js +14 -1
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +4 -3
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.web.js +1 -0
- package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/module/handlers/gestures/hoverGesture.js +18 -9
- package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +11 -6
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/manualGesture.js +4 -0
- package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
- package/lib/module/handlers/gestures/nativeGesture.js +9 -5
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js +41 -18
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/pinchGesture.js +7 -2
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +5 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/handlers/gestures/rotationGesture.js +7 -2
- package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js +19 -10
- 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 +5 -0
- package/lib/module/handlers/handlersRegistry.js.map +1 -1
- package/lib/module/handlers/utils.js +13 -4
- package/lib/module/handlers/utils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +2 -3
- package/lib/module/init.js.map +1 -1
- package/lib/module/jestUtils/index.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js +66 -20
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/mocks.js +7 -3
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/mountRegistry.js +10 -3
- 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 +15 -6
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/Gestures.js +1 -2
- 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 +38 -5
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/detectors/ScaleGestureDetector.js +38 -13
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +39 -5
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +181 -61
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/HoverGestureHandler.js +11 -5
- 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 +40 -5
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +6 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +41 -7
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +114 -7
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +33 -3
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +34 -3
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +59 -5
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js +14 -9
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/CircularBuffer.js +13 -3
- package/lib/module/web/tools/CircularBuffer.js.map +1 -1
- package/lib/module/web/tools/EventManager.js +39 -7
- 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 +71 -10
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +37 -7
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js +19 -5
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web/tools/KeyboardEventManager.js +19 -3
- package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/module/web/tools/LeastSquareSolver.js +65 -30
- package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/module/web/tools/NodeManager.js +12 -7
- package/lib/module/web/tools/NodeManager.js.map +1 -1
- package/lib/module/web/tools/PointerEventManager.js +35 -9
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +39 -8
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/Vector.js +14 -3
- package/lib/module/web/tools/Vector.js.map +1 -1
- package/lib/module/web/tools/VelocityTracker.js +25 -8
- package/lib/module/web/tools/VelocityTracker.js.map +1 -1
- package/lib/module/web/tools/WheelEventManager.js +10 -3
- package/lib/module/web/tools/WheelEventManager.js.map +1 -1
- package/lib/module/web/utils.js +57 -22
- package/lib/module/web/utils.js.map +1 -1
- package/lib/module/web_hammer/DiscreteGestureHandler.js +13 -4
- package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/DraggingGestureHandler.js +5 -0
- package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/Errors.js +1 -0
- package/lib/module/web_hammer/Errors.js.map +1 -1
- package/lib/module/web_hammer/FlingGestureHandler.js +35 -10
- package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js +130 -53
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/IndiscreteGestureHandler.js +6 -1
- package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/LongPressGestureHandler.js +11 -2
- 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 +8 -6
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +40 -6
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/PinchGestureHandler.js +5 -0
- package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/PressGestureHandler.js +34 -13
- package/lib/module/web_hammer/PressGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/RotationGestureHandler.js +6 -0
- package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/TapGestureHandler.js +45 -31
- package/lib/module/web_hammer/TapGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/constants.js +1 -2
- 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/GestureComponents.d.ts +1 -1
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +5 -0
- package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +7 -0
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -2
- package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +2 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +2 -2
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +3 -3
- package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +1 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +3 -7
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +2 -2
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +2 -2
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +1 -1
- package/lib/typescript/utils.d.ts +1 -0
- package/lib/typescript/web/utils.d.ts +2 -0
- package/package.json +9 -8
- package/src/components/GestureComponents.tsx +1 -1
- package/src/components/ReanimatedDrawerLayout.tsx +17 -4
- package/src/components/Text.tsx +5 -0
- package/src/components/touchables/ExtraButtonProps.ts +7 -0
- package/src/components/touchables/GenericTouchable.tsx +0 -2
- package/src/components/touchables/GenericTouchableProps.ts +2 -0
- package/src/components/touchables/TouchableHighlight.tsx +2 -2
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +1 -1
- package/src/components/touchables/TouchableNativeFeedback.tsx +1 -1
- package/src/components/touchables/TouchableNativeFeedbackProps.tsx +3 -8
- package/src/components/touchables/TouchableOpacity.tsx +2 -2
- package/src/components/touchables/TouchableWithoutFeedback.tsx +22 -4
- package/src/handlers/createHandler.tsx +20 -9
- package/src/handlers/createNativeWrapper.tsx +7 -3
- package/src/handlers/gestures/GestureDetector/Wrap.web.tsx +2 -4
- package/src/utils.ts +6 -0
- package/src/web/utils.ts +21 -3
@@ -4,35 +4,47 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _VelocityTracker = _interopRequireDefault(require("./VelocityTracker"));
|
8
|
-
|
9
|
-
function
|
10
|
-
|
11
|
-
function
|
9
|
+
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
|
+
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
13
|
+
|
12
14
|
const MAX_POINTERS = 20;
|
15
|
+
|
13
16
|
class PointerTracker {
|
14
17
|
constructor() {
|
15
18
|
_defineProperty(this, "velocityTracker", new _VelocityTracker.default());
|
19
|
+
|
16
20
|
_defineProperty(this, "_trackedPointers", new Map());
|
21
|
+
|
17
22
|
_defineProperty(this, "touchEventsIds", new Map());
|
23
|
+
|
18
24
|
_defineProperty(this, "lastMovedPointerId", void 0);
|
25
|
+
|
19
26
|
_defineProperty(this, "cachedAbsoluteAverages", {
|
20
27
|
x: 0,
|
21
28
|
y: 0
|
22
29
|
});
|
30
|
+
|
23
31
|
_defineProperty(this, "cachedRelativeAverages", {
|
24
32
|
x: 0,
|
25
33
|
y: 0
|
26
34
|
});
|
35
|
+
|
27
36
|
this.lastMovedPointerId = NaN;
|
37
|
+
|
28
38
|
for (let i = 0; i < MAX_POINTERS; ++i) {
|
29
39
|
this.touchEventsIds.set(i, NaN);
|
30
40
|
}
|
31
41
|
}
|
42
|
+
|
32
43
|
addToTracker(event) {
|
33
44
|
if (this.trackedPointers.has(event.pointerId)) {
|
34
45
|
return;
|
35
46
|
}
|
47
|
+
|
36
48
|
this.lastMovedPointerId = event.pointerId;
|
37
49
|
const newElement = {
|
38
50
|
abosoluteCoords: {
|
@@ -52,15 +64,19 @@ class PointerTracker {
|
|
52
64
|
this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();
|
53
65
|
this.cachedRelativeAverages = this.getRelativeCoordsAverage();
|
54
66
|
}
|
67
|
+
|
55
68
|
removeFromTracker(pointerId) {
|
56
69
|
this.trackedPointers.delete(pointerId);
|
57
70
|
this.removeMappedTouchId(pointerId);
|
58
71
|
}
|
72
|
+
|
59
73
|
track(event) {
|
60
74
|
const element = this.trackedPointers.get(event.pointerId);
|
75
|
+
|
61
76
|
if (!element) {
|
62
77
|
return;
|
63
78
|
}
|
79
|
+
|
64
80
|
this.lastMovedPointerId = event.pointerId;
|
65
81
|
this.velocityTracker.add(event);
|
66
82
|
const [velocityX, velocityY] = this.velocityTracker.velocity;
|
@@ -77,9 +93,9 @@ class PointerTracker {
|
|
77
93
|
this.trackedPointers.set(event.pointerId, element);
|
78
94
|
this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();
|
79
95
|
this.cachedRelativeAverages = this.getRelativeCoordsAverage();
|
80
|
-
}
|
96
|
+
} // Mapping TouchEvents ID
|
97
|
+
|
81
98
|
|
82
|
-
// Mapping TouchEvents ID
|
83
99
|
mapTouchEventId(id) {
|
84
100
|
for (const [mappedId, touchId] of this.touchEventsIds) {
|
85
101
|
if (isNaN(touchId)) {
|
@@ -88,41 +104,50 @@ class PointerTracker {
|
|
88
104
|
}
|
89
105
|
}
|
90
106
|
}
|
107
|
+
|
91
108
|
removeMappedTouchId(id) {
|
92
109
|
const mappedId = this.getMappedTouchEventId(id);
|
110
|
+
|
93
111
|
if (!isNaN(mappedId)) {
|
94
112
|
this.touchEventsIds.set(mappedId, NaN);
|
95
113
|
}
|
96
114
|
}
|
115
|
+
|
97
116
|
getMappedTouchEventId(touchEventId) {
|
98
117
|
for (const [key, value] of this.touchEventsIds.entries()) {
|
99
118
|
if (value === touchEventId) {
|
100
119
|
return key;
|
101
120
|
}
|
102
121
|
}
|
122
|
+
|
103
123
|
return NaN;
|
104
124
|
}
|
125
|
+
|
105
126
|
getVelocity(pointerId) {
|
106
127
|
var _this$trackedPointers, _this$trackedPointers2;
|
128
|
+
|
107
129
|
return {
|
108
130
|
x: (_this$trackedPointers = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers === void 0 ? void 0 : _this$trackedPointers.velocityX,
|
109
131
|
y: (_this$trackedPointers2 = this.trackedPointers.get(pointerId)) === null || _this$trackedPointers2 === void 0 ? void 0 : _this$trackedPointers2.velocityY
|
110
132
|
};
|
111
133
|
}
|
134
|
+
|
112
135
|
getLastAbsoluteCoords(pointerId) {
|
113
136
|
var _this$trackedPointers3;
|
137
|
+
|
114
138
|
return (_this$trackedPointers3 = this.trackedPointers.get(pointerId !== null && pointerId !== void 0 ? pointerId : this.lastMovedPointerId)) === null || _this$trackedPointers3 === void 0 ? void 0 : _this$trackedPointers3.abosoluteCoords;
|
115
139
|
}
|
140
|
+
|
116
141
|
getLastRelativeCoords(pointerId) {
|
117
142
|
var _this$trackedPointers4;
|
118
|
-
return (_this$trackedPointers4 = this.trackedPointers.get(pointerId !== null && pointerId !== void 0 ? pointerId : this.lastMovedPointerId)) === null || _this$trackedPointers4 === void 0 ? void 0 : _this$trackedPointers4.relativeCoords;
|
119
|
-
}
|
120
143
|
|
121
|
-
|
144
|
+
return (_this$trackedPointers4 = this.trackedPointers.get(pointerId !== null && pointerId !== void 0 ? pointerId : this.lastMovedPointerId)) === null || _this$trackedPointers4 === void 0 ? void 0 : _this$trackedPointers4.relativeCoords;
|
145
|
+
} // Some handlers use these methods to send average values in native event.
|
122
146
|
// This may happen when pointers have already been removed from tracker (i.e. pointerup event).
|
123
147
|
// In situation when NaN would be sent as a response, we return cached value.
|
124
148
|
// That prevents handlers from crashing
|
125
149
|
|
150
|
+
|
126
151
|
getAbsoluteCoordsAverage() {
|
127
152
|
const coordsSum = this.getAbsoluteCoordsSum();
|
128
153
|
const avgX = coordsSum.x / this.trackedPointers.size;
|
@@ -133,6 +158,7 @@ class PointerTracker {
|
|
133
158
|
};
|
134
159
|
return averages;
|
135
160
|
}
|
161
|
+
|
136
162
|
getRelativeCoordsAverage() {
|
137
163
|
const coordsSum = this.getRelativeCoordsSum();
|
138
164
|
const avgX = coordsSum.x / this.trackedPointers.size;
|
@@ -143,6 +169,7 @@ class PointerTracker {
|
|
143
169
|
};
|
144
170
|
return averages;
|
145
171
|
}
|
172
|
+
|
146
173
|
getAbsoluteCoordsSum(ignoredPointer) {
|
147
174
|
const sum = {
|
148
175
|
x: 0,
|
@@ -156,6 +183,7 @@ class PointerTracker {
|
|
156
183
|
});
|
157
184
|
return sum;
|
158
185
|
}
|
186
|
+
|
159
187
|
getRelativeCoordsSum(ignoredPointer) {
|
160
188
|
const sum = {
|
161
189
|
x: 0,
|
@@ -169,20 +197,25 @@ class PointerTracker {
|
|
169
197
|
});
|
170
198
|
return sum;
|
171
199
|
}
|
200
|
+
|
172
201
|
resetTracker() {
|
173
202
|
this.velocityTracker.reset();
|
174
203
|
this.trackedPointers.clear();
|
175
204
|
this.lastMovedPointerId = NaN;
|
205
|
+
|
176
206
|
for (let i = 0; i < MAX_POINTERS; ++i) {
|
177
207
|
this.touchEventsIds.set(i, NaN);
|
178
208
|
}
|
179
209
|
}
|
210
|
+
|
180
211
|
static shareCommonPointers(stPointers, ndPointers) {
|
181
212
|
return stPointers.some(pointerId => ndPointers.includes(pointerId));
|
182
213
|
}
|
214
|
+
|
183
215
|
get trackedPointersCount() {
|
184
216
|
return this.trackedPointers.size;
|
185
217
|
}
|
218
|
+
|
186
219
|
get trackedPointersIDs() {
|
187
220
|
const keys = [];
|
188
221
|
this.trackedPointers.forEach((_value, key) => {
|
@@ -190,9 +223,12 @@ class PointerTracker {
|
|
190
223
|
});
|
191
224
|
return keys;
|
192
225
|
}
|
226
|
+
|
193
227
|
get trackedPointers() {
|
194
228
|
return this._trackedPointers;
|
195
229
|
}
|
230
|
+
|
196
231
|
}
|
232
|
+
|
197
233
|
exports.default = PointerTracker;
|
198
234
|
//# sourceMappingURL=PointerTracker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_VelocityTracker","_interopRequireDefault","require","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","MAX_POINTERS","PointerTracker","constructor","VelocityTracker","Map","x","y","lastMovedPointerId","NaN","touchEventsIds","set","addToTracker","event","trackedPointers","has","pointerId","newElement","abosoluteCoords","relativeCoords","offsetX","offsetY","timestamp","time","velocityX","velocityY","mapTouchEventId","cachedAbsoluteAverages","getAbsoluteCoordsAverage","cachedRelativeAverages","getRelativeCoordsAverage","removeFromTracker","delete","removeMappedTouchId","track","element","get","velocityTracker","add","velocity","id","mappedId","touchId","isNaN","getMappedTouchEventId","touchEventId","key","entries","getVelocity","_this$trackedPointers","_this$trackedPointers2","getLastAbsoluteCoords","_this$trackedPointers3","getLastRelativeCoords","_this$trackedPointers4","coordsSum","getAbsoluteCoordsSum","avgX","size","avgY","averages","getRelativeCoordsSum","ignoredPointer","sum","forEach","resetTracker","reset","clear","shareCommonPointers","stPointers","ndPointers","some","includes","trackedPointersCount","trackedPointersIDs","keys","_value","push","_trackedPointers","exports"],"sources":["PointerTracker.ts"],"sourcesContent":["import { AdaptedEvent, Point } from '../interfaces';\nimport VelocityTracker from './VelocityTracker';\n\nexport interface TrackerElement {\n abosoluteCoords: Point;\n relativeCoords: Point;\n timestamp: number;\n velocityX: number;\n velocityY: number;\n}\n\nconst MAX_POINTERS = 20;\n\nexport default class PointerTracker {\n private velocityTracker = new VelocityTracker();\n private readonly _trackedPointers: Map<number, TrackerElement> = new Map<\n number,\n TrackerElement\n >();\n\n private touchEventsIds: Map<number, number> = new Map<number, number>();\n\n private lastMovedPointerId: number;\n\n private cachedAbsoluteAverages: Point = { x: 0, y: 0 };\n private cachedRelativeAverages: Point = { x: 0, y: 0 };\n\n public constructor() {\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public addToTracker(event: AdaptedEvent): void {\n if (this.trackedPointers.has(event.pointerId)) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const newElement: TrackerElement = {\n abosoluteCoords: { x: event.x, y: event.y },\n relativeCoords: { x: event.offsetX, y: event.offsetY },\n timestamp: event.time,\n velocityX: 0,\n velocityY: 0,\n };\n\n this.trackedPointers.set(event.pointerId, newElement);\n this.mapTouchEventId(event.pointerId);\n\n this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();\n this.cachedRelativeAverages = this.getRelativeCoordsAverage();\n }\n\n public removeFromTracker(pointerId: number): void {\n this.trackedPointers.delete(pointerId);\n this.removeMappedTouchId(pointerId);\n }\n\n public track(event: AdaptedEvent): void {\n const element: TrackerElement = this.trackedPointers.get(\n event.pointerId\n ) as TrackerElement;\n\n if (!element) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n this.velocityTracker.add(event);\n const [velocityX, velocityY] = this.velocityTracker.velocity;\n\n element.velocityX = velocityX;\n element.velocityY = velocityY;\n\n element.abosoluteCoords = { x: event.x, y: event.y };\n element.relativeCoords = { x: event.offsetX, y: event.offsetY };\n\n this.trackedPointers.set(event.pointerId, element);\n\n this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();\n this.cachedRelativeAverages = this.getRelativeCoordsAverage();\n }\n\n // Mapping TouchEvents ID\n private mapTouchEventId(id: number): void {\n for (const [mappedId, touchId] of this.touchEventsIds) {\n if (isNaN(touchId)) {\n this.touchEventsIds.set(mappedId, id);\n break;\n }\n }\n }\n\n private removeMappedTouchId(id: number): void {\n const mappedId: number = this.getMappedTouchEventId(id);\n if (!isNaN(mappedId)) {\n this.touchEventsIds.set(mappedId, NaN);\n }\n }\n\n public getMappedTouchEventId(touchEventId: number): number {\n for (const [key, value] of this.touchEventsIds.entries()) {\n if (value === touchEventId) {\n return key;\n }\n }\n\n return NaN;\n }\n\n public getVelocity(pointerId: number) {\n return {\n x: this.trackedPointers.get(pointerId)?.velocityX as number,\n y: this.trackedPointers.get(pointerId)?.velocityY as number,\n };\n }\n\n public getLastAbsoluteCoords(pointerId?: number) {\n return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)\n ?.abosoluteCoords as Point;\n }\n\n public getLastRelativeCoords(pointerId?: number) {\n return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)\n ?.relativeCoords as Point;\n }\n\n // Some handlers use these methods to send average values in native event.\n // This may happen when pointers have already been removed from tracker (i.e. pointerup event).\n // In situation when NaN would be sent as a response, we return cached value.\n // That prevents handlers from crashing\n\n public getAbsoluteCoordsAverage() {\n const coordsSum = this.getAbsoluteCoordsSum();\n\n const avgX = coordsSum.x / this.trackedPointers.size;\n const avgY = coordsSum.y / this.trackedPointers.size;\n\n const averages = {\n x: isNaN(avgX) ? this.cachedAbsoluteAverages.x : avgX,\n y: isNaN(avgY) ? this.cachedAbsoluteAverages.y : avgY,\n };\n\n return averages;\n }\n\n public getRelativeCoordsAverage() {\n const coordsSum = this.getRelativeCoordsSum();\n\n const avgX = coordsSum.x / this.trackedPointers.size;\n const avgY = coordsSum.y / this.trackedPointers.size;\n\n const averages = {\n x: isNaN(avgX) ? this.cachedRelativeAverages.x : avgX,\n y: isNaN(avgY) ? this.cachedRelativeAverages.y : avgY,\n };\n\n return averages;\n }\n\n public getAbsoluteCoordsSum(ignoredPointer?: number) {\n const sum = { x: 0, y: 0 };\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sum.x += value.abosoluteCoords.x;\n sum.y += value.abosoluteCoords.y;\n }\n });\n\n return sum;\n }\n\n public getRelativeCoordsSum(ignoredPointer?: number) {\n const sum = { x: 0, y: 0 };\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sum.x += value.relativeCoords.x;\n sum.y += value.relativeCoords.y;\n }\n });\n\n return sum;\n }\n\n public resetTracker(): void {\n this.velocityTracker.reset();\n this.trackedPointers.clear();\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public static shareCommonPointers(\n stPointers: number[],\n ndPointers: number[]\n ): boolean {\n return stPointers.some((pointerId) => ndPointers.includes(pointerId));\n }\n\n public get trackedPointersCount(): number {\n return this.trackedPointers.size;\n }\n\n public get trackedPointersIDs() {\n const keys: number[] = [];\n\n this.trackedPointers.forEach((_value, key) => {\n keys.push(key);\n });\n\n return keys;\n }\n\n public get trackedPointers() {\n return this._trackedPointers;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"sources":["PointerTracker.ts"],"names":["MAX_POINTERS","PointerTracker","constructor","VelocityTracker","Map","x","y","lastMovedPointerId","NaN","i","touchEventsIds","set","addToTracker","event","trackedPointers","has","pointerId","newElement","abosoluteCoords","relativeCoords","offsetX","offsetY","timestamp","time","velocityX","velocityY","mapTouchEventId","cachedAbsoluteAverages","getAbsoluteCoordsAverage","cachedRelativeAverages","getRelativeCoordsAverage","removeFromTracker","delete","removeMappedTouchId","track","element","get","velocityTracker","add","velocity","id","mappedId","touchId","isNaN","getMappedTouchEventId","touchEventId","key","value","entries","getVelocity","getLastAbsoluteCoords","getLastRelativeCoords","coordsSum","getAbsoluteCoordsSum","avgX","size","avgY","averages","getRelativeCoordsSum","ignoredPointer","sum","forEach","resetTracker","reset","clear","shareCommonPointers","stPointers","ndPointers","some","includes","trackedPointersCount","trackedPointersIDs","keys","_value","push","_trackedPointers"],"mappings":"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","sourcesContent":["import { AdaptedEvent, Point } from '../interfaces';\nimport VelocityTracker from './VelocityTracker';\n\nexport interface TrackerElement {\n abosoluteCoords: Point;\n relativeCoords: Point;\n timestamp: number;\n velocityX: number;\n velocityY: number;\n}\n\nconst MAX_POINTERS = 20;\n\nexport default class PointerTracker {\n private velocityTracker = new VelocityTracker();\n private readonly _trackedPointers: Map<number, TrackerElement> = new Map<\n number,\n TrackerElement\n >();\n\n private touchEventsIds: Map<number, number> = new Map<number, number>();\n\n private lastMovedPointerId: number;\n\n private cachedAbsoluteAverages: Point = { x: 0, y: 0 };\n private cachedRelativeAverages: Point = { x: 0, y: 0 };\n\n public constructor() {\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public addToTracker(event: AdaptedEvent): void {\n if (this.trackedPointers.has(event.pointerId)) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n const newElement: TrackerElement = {\n abosoluteCoords: { x: event.x, y: event.y },\n relativeCoords: { x: event.offsetX, y: event.offsetY },\n timestamp: event.time,\n velocityX: 0,\n velocityY: 0,\n };\n\n this.trackedPointers.set(event.pointerId, newElement);\n this.mapTouchEventId(event.pointerId);\n\n this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();\n this.cachedRelativeAverages = this.getRelativeCoordsAverage();\n }\n\n public removeFromTracker(pointerId: number): void {\n this.trackedPointers.delete(pointerId);\n this.removeMappedTouchId(pointerId);\n }\n\n public track(event: AdaptedEvent): void {\n const element: TrackerElement = this.trackedPointers.get(\n event.pointerId\n ) as TrackerElement;\n\n if (!element) {\n return;\n }\n\n this.lastMovedPointerId = event.pointerId;\n\n this.velocityTracker.add(event);\n const [velocityX, velocityY] = this.velocityTracker.velocity;\n\n element.velocityX = velocityX;\n element.velocityY = velocityY;\n\n element.abosoluteCoords = { x: event.x, y: event.y };\n element.relativeCoords = { x: event.offsetX, y: event.offsetY };\n\n this.trackedPointers.set(event.pointerId, element);\n\n this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();\n this.cachedRelativeAverages = this.getRelativeCoordsAverage();\n }\n\n // Mapping TouchEvents ID\n private mapTouchEventId(id: number): void {\n for (const [mappedId, touchId] of this.touchEventsIds) {\n if (isNaN(touchId)) {\n this.touchEventsIds.set(mappedId, id);\n break;\n }\n }\n }\n\n private removeMappedTouchId(id: number): void {\n const mappedId: number = this.getMappedTouchEventId(id);\n if (!isNaN(mappedId)) {\n this.touchEventsIds.set(mappedId, NaN);\n }\n }\n\n public getMappedTouchEventId(touchEventId: number): number {\n for (const [key, value] of this.touchEventsIds.entries()) {\n if (value === touchEventId) {\n return key;\n }\n }\n\n return NaN;\n }\n\n public getVelocity(pointerId: number) {\n return {\n x: this.trackedPointers.get(pointerId)?.velocityX as number,\n y: this.trackedPointers.get(pointerId)?.velocityY as number,\n };\n }\n\n public getLastAbsoluteCoords(pointerId?: number) {\n return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)\n ?.abosoluteCoords as Point;\n }\n\n public getLastRelativeCoords(pointerId?: number) {\n return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)\n ?.relativeCoords as Point;\n }\n\n // Some handlers use these methods to send average values in native event.\n // This may happen when pointers have already been removed from tracker (i.e. pointerup event).\n // In situation when NaN would be sent as a response, we return cached value.\n // That prevents handlers from crashing\n\n public getAbsoluteCoordsAverage() {\n const coordsSum = this.getAbsoluteCoordsSum();\n\n const avgX = coordsSum.x / this.trackedPointers.size;\n const avgY = coordsSum.y / this.trackedPointers.size;\n\n const averages = {\n x: isNaN(avgX) ? this.cachedAbsoluteAverages.x : avgX,\n y: isNaN(avgY) ? this.cachedAbsoluteAverages.y : avgY,\n };\n\n return averages;\n }\n\n public getRelativeCoordsAverage() {\n const coordsSum = this.getRelativeCoordsSum();\n\n const avgX = coordsSum.x / this.trackedPointers.size;\n const avgY = coordsSum.y / this.trackedPointers.size;\n\n const averages = {\n x: isNaN(avgX) ? this.cachedRelativeAverages.x : avgX,\n y: isNaN(avgY) ? this.cachedRelativeAverages.y : avgY,\n };\n\n return averages;\n }\n\n public getAbsoluteCoordsSum(ignoredPointer?: number) {\n const sum = { x: 0, y: 0 };\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sum.x += value.abosoluteCoords.x;\n sum.y += value.abosoluteCoords.y;\n }\n });\n\n return sum;\n }\n\n public getRelativeCoordsSum(ignoredPointer?: number) {\n const sum = { x: 0, y: 0 };\n\n this.trackedPointers.forEach((value, key) => {\n if (key !== ignoredPointer) {\n sum.x += value.relativeCoords.x;\n sum.y += value.relativeCoords.y;\n }\n });\n\n return sum;\n }\n\n public resetTracker(): void {\n this.velocityTracker.reset();\n this.trackedPointers.clear();\n this.lastMovedPointerId = NaN;\n\n for (let i = 0; i < MAX_POINTERS; ++i) {\n this.touchEventsIds.set(i, NaN);\n }\n }\n\n public static shareCommonPointers(\n stPointers: number[],\n ndPointers: number[]\n ): boolean {\n return stPointers.some((pointerId) => ndPointers.includes(pointerId));\n }\n\n public get trackedPointersCount(): number {\n return this.trackedPointers.size;\n }\n\n public get trackedPointersIDs() {\n const keys: number[] = [];\n\n this.trackedPointers.forEach((_value, key) => {\n keys.push(key);\n });\n\n return keys;\n }\n\n public get trackedPointers() {\n return this._trackedPointers;\n }\n}\n"]}
|
@@ -4,18 +4,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _Directions = require("../../Directions");
|
9
|
+
|
8
10
|
var _constants = require("../constants");
|
9
|
-
|
10
|
-
function
|
11
|
-
|
11
|
+
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
13
|
+
|
12
14
|
class Vector {
|
13
15
|
constructor(x, y) {
|
14
16
|
_defineProperty(this, "x", void 0);
|
17
|
+
|
15
18
|
_defineProperty(this, "y", void 0);
|
19
|
+
|
16
20
|
_defineProperty(this, "unitX", void 0);
|
21
|
+
|
17
22
|
_defineProperty(this, "unitY", void 0);
|
23
|
+
|
18
24
|
_defineProperty(this, "_magnitude", void 0);
|
25
|
+
|
19
26
|
this.x = x;
|
20
27
|
this.y = y;
|
21
28
|
this._magnitude = Math.hypot(this.x, this.y);
|
@@ -23,24 +30,32 @@ class Vector {
|
|
23
30
|
this.unitX = isMagnitudeSufficient ? this.x / this._magnitude : 0;
|
24
31
|
this.unitY = isMagnitudeSufficient ? this.y / this._magnitude : 0;
|
25
32
|
}
|
33
|
+
|
26
34
|
static fromDirection(direction) {
|
27
35
|
var _DirectionToVectorMap;
|
36
|
+
|
28
37
|
return (_DirectionToVectorMap = DirectionToVectorMappings.get(direction)) !== null && _DirectionToVectorMap !== void 0 ? _DirectionToVectorMap : new Vector(0, 0);
|
29
38
|
}
|
39
|
+
|
30
40
|
static fromVelocity(tracker, pointerId) {
|
31
41
|
const velocity = tracker.getVelocity(pointerId);
|
32
42
|
return new Vector(velocity.x, velocity.y);
|
33
43
|
}
|
44
|
+
|
34
45
|
get magnitude() {
|
35
46
|
return this._magnitude;
|
36
47
|
}
|
48
|
+
|
37
49
|
computeSimilarity(vector) {
|
38
50
|
return this.unitX * vector.unitX + this.unitY * vector.unitY;
|
39
51
|
}
|
52
|
+
|
40
53
|
isSimilar(vector, threshold) {
|
41
54
|
return this.computeSimilarity(vector) > threshold;
|
42
55
|
}
|
56
|
+
|
43
57
|
}
|
58
|
+
|
44
59
|
exports.default = Vector;
|
45
60
|
const DirectionToVectorMappings = new Map([[_Directions.Directions.LEFT, new Vector(-1, 0)], [_Directions.Directions.RIGHT, new Vector(1, 0)], [_Directions.Directions.UP, new Vector(0, -1)], [_Directions.Directions.DOWN, new Vector(0, 1)], [_Directions.DiagonalDirections.UP_RIGHT, new Vector(1, -1)], [_Directions.DiagonalDirections.DOWN_RIGHT, new Vector(1, 1)], [_Directions.DiagonalDirections.UP_LEFT, new Vector(-1, -1)], [_Directions.DiagonalDirections.DOWN_LEFT, new Vector(-1, 1)]]);
|
46
61
|
//# sourceMappingURL=Vector.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["Vector.ts"],"names":["Vector","constructor","x","y","_magnitude","Math","hypot","isMagnitudeSufficient","MINIMAL_RECOGNIZABLE_MAGNITUDE","unitX","unitY","fromDirection","direction","DirectionToVectorMappings","get","fromVelocity","tracker","pointerId","velocity","getVelocity","magnitude","computeSimilarity","vector","isSimilar","threshold","Map","Directions","LEFT","RIGHT","UP","DOWN","DiagonalDirections","UP_RIGHT","DOWN_RIGHT","UP_LEFT","DOWN_LEFT"],"mappings":";;;;;;;AAAA;;AACA;;;;AAGe,MAAMA,MAAN,CAAa;AAO1BC,EAAAA,WAAW,CAACC,CAAD,EAAYC,CAAZ,EAAuB;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAChC,SAAKD,CAAL,GAASA,CAAT;AACA,SAAKC,CAAL,GAASA,CAAT;AAEA,SAAKC,UAAL,GAAkBC,IAAI,CAACC,KAAL,CAAW,KAAKJ,CAAhB,EAAmB,KAAKC,CAAxB,CAAlB;AACA,UAAMI,qBAAqB,GACzB,KAAKH,UAAL,GAAkBI,yCADpB;AAGA,SAAKC,KAAL,GAAaF,qBAAqB,GAAG,KAAKL,CAAL,GAAS,KAAKE,UAAjB,GAA8B,CAAhE;AACA,SAAKM,KAAL,GAAaH,qBAAqB,GAAG,KAAKJ,CAAL,GAAS,KAAKC,UAAjB,GAA8B,CAAhE;AACD;;AAEmB,SAAbO,aAAa,CAACC,SAAD,EAAqD;AAAA;;AACvE,oCAAOC,yBAAyB,CAACC,GAA1B,CAA8BF,SAA9B,CAAP,yEAAmD,IAAIZ,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAnD;AACD;;AAEkB,SAAZe,YAAY,CAACC,OAAD,EAA0BC,SAA1B,EAA6C;AAC9D,UAAMC,QAAQ,GAAGF,OAAO,CAACG,WAAR,CAAoBF,SAApB,CAAjB;AACA,WAAO,IAAIjB,MAAJ,CAAWkB,QAAQ,CAAChB,CAApB,EAAuBgB,QAAQ,CAACf,CAAhC,CAAP;AACD;;AAEmB,MAATiB,SAAS,GAAG;AACrB,WAAO,KAAKhB,UAAZ;AACD;;AAEDiB,EAAAA,iBAAiB,CAACC,MAAD,EAAiB;AAChC,WAAO,KAAKb,KAAL,GAAaa,MAAM,CAACb,KAApB,GAA4B,KAAKC,KAAL,GAAaY,MAAM,CAACZ,KAAvD;AACD;;AAEDa,EAAAA,SAAS,CAACD,MAAD,EAAiBE,SAAjB,EAAoC;AAC3C,WAAO,KAAKH,iBAAL,CAAuBC,MAAvB,IAAiCE,SAAxC;AACD;;AAtCyB;;;AAyC5B,MAAMX,yBAAyB,GAAG,IAAIY,GAAJ,CAGhC,CACA,CAACC,uBAAWC,IAAZ,EAAkB,IAAI3B,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAf,CAAlB,CADA,EAEA,CAAC0B,uBAAWE,KAAZ,EAAmB,IAAI5B,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAnB,CAFA,EAGA,CAAC0B,uBAAWG,EAAZ,EAAgB,IAAI7B,MAAJ,CAAW,CAAX,EAAc,CAAC,CAAf,CAAhB,CAHA,EAIA,CAAC0B,uBAAWI,IAAZ,EAAkB,IAAI9B,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAlB,CAJA,EAMA,CAAC+B,+BAAmBC,QAApB,EAA8B,IAAIhC,MAAJ,CAAW,CAAX,EAAc,CAAC,CAAf,CAA9B,CANA,EAOA,CAAC+B,+BAAmBE,UAApB,EAAgC,IAAIjC,MAAJ,CAAW,CAAX,EAAc,CAAd,CAAhC,CAPA,EAQA,CAAC+B,+BAAmBG,OAApB,EAA6B,IAAIlC,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAC,CAAhB,CAA7B,CARA,EASA,CAAC+B,+BAAmBI,SAApB,EAA+B,IAAInC,MAAJ,CAAW,CAAC,CAAZ,EAAe,CAAf,CAA/B,CATA,CAHgC,CAAlC","sourcesContent":["import { DiagonalDirections, Directions } from '../../Directions';\nimport { MINIMAL_RECOGNIZABLE_MAGNITUDE } from '../constants';\nimport PointerTracker from './PointerTracker';\n\nexport default class Vector {\n private readonly x;\n private readonly y;\n private readonly unitX;\n private readonly unitY;\n private readonly _magnitude;\n\n constructor(x: number, y: number) {\n this.x = x;\n this.y = y;\n\n this._magnitude = Math.hypot(this.x, this.y);\n const isMagnitudeSufficient =\n this._magnitude > MINIMAL_RECOGNIZABLE_MAGNITUDE;\n\n this.unitX = isMagnitudeSufficient ? this.x / this._magnitude : 0;\n this.unitY = isMagnitudeSufficient ? this.y / this._magnitude : 0;\n }\n\n static fromDirection(direction: Directions | DiagonalDirections): Vector {\n return DirectionToVectorMappings.get(direction) ?? new Vector(0, 0);\n }\n\n static fromVelocity(tracker: PointerTracker, pointerId: number) {\n const velocity = tracker.getVelocity(pointerId);\n return new Vector(velocity.x, velocity.y);\n }\n\n public get magnitude() {\n return this._magnitude;\n }\n\n computeSimilarity(vector: Vector) {\n return this.unitX * vector.unitX + this.unitY * vector.unitY;\n }\n\n isSimilar(vector: Vector, threshold: number) {\n return this.computeSimilarity(vector) > threshold;\n }\n}\n\nconst DirectionToVectorMappings = new Map<\n Directions | DiagonalDirections,\n Vector\n>([\n [Directions.LEFT, new Vector(-1, 0)],\n [Directions.RIGHT, new Vector(1, 0)],\n [Directions.UP, new Vector(0, -1)],\n [Directions.DOWN, new Vector(0, 1)],\n\n [DiagonalDirections.UP_RIGHT, new Vector(1, -1)],\n [DiagonalDirections.DOWN_RIGHT, new Vector(1, 1)],\n [DiagonalDirections.UP_LEFT, new Vector(-1, -1)],\n [DiagonalDirections.DOWN_LEFT, new Vector(-1, 1)],\n]);\n"]}
|
@@ -4,31 +4,40 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _CircularBuffer = _interopRequireDefault(require("./CircularBuffer"));
|
9
|
+
|
8
10
|
var _LeastSquareSolver = _interopRequireDefault(require("./LeastSquareSolver"));
|
9
|
-
|
10
|
-
function
|
11
|
-
|
12
|
-
function
|
11
|
+
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
+
|
14
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
15
|
+
|
13
16
|
class VelocityTracker {
|
14
17
|
constructor() {
|
15
18
|
_defineProperty(this, "assumePointerMoveStoppedMilliseconds", 40);
|
19
|
+
|
16
20
|
_defineProperty(this, "historySize", 20);
|
21
|
+
|
17
22
|
_defineProperty(this, "horizonMilliseconds", 300);
|
23
|
+
|
18
24
|
_defineProperty(this, "minSampleSize", 3);
|
25
|
+
|
19
26
|
_defineProperty(this, "samples", void 0);
|
27
|
+
|
20
28
|
this.samples = new _CircularBuffer.default(this.historySize);
|
21
29
|
}
|
30
|
+
|
22
31
|
add(event) {
|
23
32
|
this.samples.push(event);
|
24
|
-
}
|
25
|
-
|
26
|
-
// Returns an estimate of the velocity of the object being tracked by the
|
33
|
+
} // Returns an estimate of the velocity of the object being tracked by the
|
27
34
|
// tracker given the current information available to the tracker.
|
28
35
|
//
|
29
36
|
// Information is added using [addPosition].
|
30
37
|
//
|
31
38
|
// Returns null if there is no data on which to base an estimate.
|
39
|
+
|
40
|
+
|
32
41
|
getVelocityEstimate() {
|
33
42
|
const x = [];
|
34
43
|
const y = [];
|
@@ -37,21 +46,24 @@ class VelocityTracker {
|
|
37
46
|
let sampleCount = 0;
|
38
47
|
let index = this.samples.size - 1;
|
39
48
|
const newestSample = this.samples.get(index);
|
49
|
+
|
40
50
|
if (!newestSample) {
|
41
51
|
return null;
|
42
52
|
}
|
43
|
-
let previousSample = newestSample;
|
44
53
|
|
45
|
-
// Starting with the most recent PointAtTime sample, iterate backwards while
|
54
|
+
let previousSample = newestSample; // Starting with the most recent PointAtTime sample, iterate backwards while
|
46
55
|
// the samples represent continuous motion.
|
56
|
+
|
47
57
|
while (sampleCount < this.samples.size) {
|
48
58
|
const sample = this.samples.get(index);
|
49
59
|
const age = newestSample.time - sample.time;
|
50
60
|
const delta = Math.abs(sample.time - previousSample.time);
|
51
61
|
previousSample = sample;
|
62
|
+
|
52
63
|
if (age > this.horizonMilliseconds || delta > this.assumePointerMoveStoppedMilliseconds) {
|
53
64
|
break;
|
54
65
|
}
|
66
|
+
|
55
67
|
x.push(sample.x);
|
56
68
|
y.push(sample.y);
|
57
69
|
w.push(1);
|
@@ -59,12 +71,15 @@ class VelocityTracker {
|
|
59
71
|
sampleCount++;
|
60
72
|
index--;
|
61
73
|
}
|
74
|
+
|
62
75
|
if (sampleCount >= this.minSampleSize) {
|
63
76
|
const xSolver = new _LeastSquareSolver.default(time, x, w);
|
64
77
|
const xFit = xSolver.solve(2);
|
78
|
+
|
65
79
|
if (xFit !== null) {
|
66
80
|
const ySolver = new _LeastSquareSolver.default(time, y, w);
|
67
81
|
const yFit = ySolver.solve(2);
|
82
|
+
|
68
83
|
if (yFit !== null) {
|
69
84
|
const xVelocity = xFit.coefficients[1] * 1000;
|
70
85
|
const yVelocity = yFit.coefficients[1] * 1000;
|
@@ -72,18 +87,25 @@ class VelocityTracker {
|
|
72
87
|
}
|
73
88
|
}
|
74
89
|
}
|
90
|
+
|
75
91
|
return null;
|
76
92
|
}
|
93
|
+
|
77
94
|
get velocity() {
|
78
95
|
const estimate = this.getVelocityEstimate();
|
96
|
+
|
79
97
|
if (estimate !== null) {
|
80
98
|
return estimate;
|
81
99
|
}
|
100
|
+
|
82
101
|
return [0, 0];
|
83
102
|
}
|
103
|
+
|
84
104
|
reset() {
|
85
105
|
this.samples.clear();
|
86
106
|
}
|
107
|
+
|
87
108
|
}
|
109
|
+
|
88
110
|
exports.default = VelocityTracker;
|
89
111
|
//# sourceMappingURL=VelocityTracker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["VelocityTracker.ts"],"names":["VelocityTracker","constructor","samples","CircularBuffer","historySize","add","event","push","getVelocityEstimate","x","y","w","time","sampleCount","index","size","newestSample","get","previousSample","sample","age","delta","Math","abs","horizonMilliseconds","assumePointerMoveStoppedMilliseconds","minSampleSize","xSolver","LeastSquareSolver","xFit","solve","ySolver","yFit","xVelocity","coefficients","yVelocity","velocity","estimate","reset","clear"],"mappings":"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","sourcesContent":["import { AdaptedEvent } from '../interfaces';\nimport CircularBuffer from './CircularBuffer';\nimport LeastSquareSolver from './LeastSquareSolver';\n\nexport default class VelocityTracker {\n private assumePointerMoveStoppedMilliseconds = 40;\n private historySize = 20;\n private horizonMilliseconds = 300;\n private minSampleSize = 3;\n\n private samples: CircularBuffer<AdaptedEvent>;\n\n constructor() {\n this.samples = new CircularBuffer<AdaptedEvent>(this.historySize);\n }\n\n public add(event: AdaptedEvent): void {\n this.samples.push(event);\n }\n\n // Returns an estimate of the velocity of the object being tracked by the\n // tracker given the current information available to the tracker.\n //\n // Information is added using [addPosition].\n //\n // Returns null if there is no data on which to base an estimate.\n private getVelocityEstimate(): [number, number] | null {\n const x = [];\n const y = [];\n const w = [];\n const time = [];\n\n let sampleCount = 0;\n let index = this.samples.size - 1;\n const newestSample = this.samples.get(index);\n if (!newestSample) {\n return null;\n }\n\n let previousSample = newestSample;\n\n // Starting with the most recent PointAtTime sample, iterate backwards while\n // the samples represent continuous motion.\n while (sampleCount < this.samples.size) {\n const sample = this.samples.get(index);\n\n const age = newestSample.time - sample.time;\n const delta = Math.abs(sample.time - previousSample.time);\n previousSample = sample;\n\n if (\n age > this.horizonMilliseconds ||\n delta > this.assumePointerMoveStoppedMilliseconds\n ) {\n break;\n }\n\n x.push(sample.x);\n y.push(sample.y);\n w.push(1);\n time.push(-age);\n\n sampleCount++;\n index--;\n }\n\n if (sampleCount >= this.minSampleSize) {\n const xSolver = new LeastSquareSolver(time, x, w);\n const xFit = xSolver.solve(2);\n\n if (xFit !== null) {\n const ySolver = new LeastSquareSolver(time, y, w);\n const yFit = ySolver.solve(2);\n\n if (yFit !== null) {\n const xVelocity = xFit.coefficients[1] * 1000;\n const yVelocity = yFit.coefficients[1] * 1000;\n\n return [xVelocity, yVelocity];\n }\n }\n }\n\n return null;\n }\n\n public get velocity(): [number, number] {\n const estimate = this.getVelocityEstimate();\n if (estimate !== null) {\n return estimate;\n }\n return [0, 0];\n }\n\n public reset(): void {\n this.samples.clear();\n }\n}\n"]}
|
@@ -4,26 +4,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.default = void 0;
|
7
|
+
|
7
8
|
var _EventManager = _interopRequireDefault(require("./EventManager"));
|
9
|
+
|
8
10
|
var _interfaces = require("../interfaces");
|
11
|
+
|
9
12
|
var _PointerType = require("../../PointerType");
|
10
|
-
|
11
|
-
function
|
12
|
-
|
13
|
-
function
|
13
|
+
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
+
|
16
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
17
|
+
|
14
18
|
class WheelEventManager extends _EventManager.default {
|
15
19
|
constructor(...args) {
|
16
20
|
super(...args);
|
21
|
+
|
17
22
|
_defineProperty(this, "wheelDelta", {
|
18
23
|
x: 0,
|
19
24
|
y: 0
|
20
25
|
});
|
26
|
+
|
21
27
|
_defineProperty(this, "resetDelta", _event => {
|
22
28
|
this.wheelDelta = {
|
23
29
|
x: 0,
|
24
30
|
y: 0
|
25
31
|
};
|
26
32
|
});
|
33
|
+
|
27
34
|
_defineProperty(this, "wheelCallback", event => {
|
28
35
|
this.wheelDelta.x += event.deltaX;
|
29
36
|
this.wheelDelta.y += event.deltaY;
|
@@ -31,14 +38,17 @@ class WheelEventManager extends _EventManager.default {
|
|
31
38
|
this.onWheel(adaptedEvent);
|
32
39
|
});
|
33
40
|
}
|
41
|
+
|
34
42
|
registerListeners() {
|
35
43
|
this.view.addEventListener('pointermove', this.resetDelta);
|
36
44
|
this.view.addEventListener('wheel', this.wheelCallback);
|
37
45
|
}
|
46
|
+
|
38
47
|
unregisterListeners() {
|
39
48
|
this.view.removeEventListener('pointermove', this.resetDelta);
|
40
49
|
this.view.removeEventListener('wheel', this.wheelCallback);
|
41
50
|
}
|
51
|
+
|
42
52
|
mapEvent(event) {
|
43
53
|
return {
|
44
54
|
x: event.clientX + this.wheelDelta.x,
|
@@ -53,9 +63,12 @@ class WheelEventManager extends _EventManager.default {
|
|
53
63
|
wheelDeltaY: event.wheelDeltaY
|
54
64
|
};
|
55
65
|
}
|
66
|
+
|
56
67
|
resetManager() {
|
57
68
|
super.resetManager();
|
58
69
|
}
|
70
|
+
|
59
71
|
}
|
72
|
+
|
60
73
|
exports.default = WheelEventManager;
|
61
74
|
//# sourceMappingURL=WheelEventManager.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["WheelEventManager.ts"],"names":["WheelEventManager","EventManager","x","y","_event","wheelDelta","event","deltaX","deltaY","adaptedEvent","mapEvent","onWheel","registerListeners","view","addEventListener","resetDelta","wheelCallback","unregisterListeners","removeEventListener","clientX","clientY","offsetX","offsetY","pointerId","eventType","EventTypes","MOVE","pointerType","PointerType","OTHER","time","timeStamp","wheelDeltaY","resetManager"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEe,MAAMA,iBAAN,SAAgCC,qBAAhC,CAA0D;AAAA;AAAA;;AAAA,wCAClD;AAAEC,MAAAA,CAAC,EAAE,CAAL;AAAQC,MAAAA,CAAC,EAAE;AAAX,KADkD;;AAAA,wCAGjDC,MAAD,IAA0B;AAC7C,WAAKC,UAAL,GAAkB;AAAEH,QAAAA,CAAC,EAAE,CAAL;AAAQC,QAAAA,CAAC,EAAE;AAAX,OAAlB;AACD,KALsE;;AAAA,2CAO9CG,KAAD,IAAuB;AAC7C,WAAKD,UAAL,CAAgBH,CAAhB,IAAqBI,KAAK,CAACC,MAA3B;AACA,WAAKF,UAAL,CAAgBF,CAAhB,IAAqBG,KAAK,CAACE,MAA3B;AAEA,YAAMC,YAAY,GAAG,KAAKC,QAAL,CAAcJ,KAAd,CAArB;AACA,WAAKK,OAAL,CAAaF,YAAb;AACD,KAbsE;AAAA;;AAehEG,EAAAA,iBAAiB,GAAS;AAC/B,SAAKC,IAAL,CAAUC,gBAAV,CAA2B,aAA3B,EAA0C,KAAKC,UAA/C;AACA,SAAKF,IAAL,CAAUC,gBAAV,CAA2B,OAA3B,EAAoC,KAAKE,aAAzC;AACD;;AAEMC,EAAAA,mBAAmB,GAAS;AACjC,SAAKJ,IAAL,CAAUK,mBAAV,CAA8B,aAA9B,EAA6C,KAAKH,UAAlD;AACA,SAAKF,IAAL,CAAUK,mBAAV,CAA8B,OAA9B,EAAuC,KAAKF,aAA5C;AACD;;AAESN,EAAAA,QAAQ,CAACJ,KAAD,EAAkC;AAClD,WAAO;AACLJ,MAAAA,CAAC,EAAEI,KAAK,CAACa,OAAN,GAAgB,KAAKd,UAAL,CAAgBH,CAD9B;AAELC,MAAAA,CAAC,EAAEG,KAAK,CAACc,OAAN,GAAgB,KAAKf,UAAL,CAAgBF,CAF9B;AAGLkB,MAAAA,OAAO,EAAEf,KAAK,CAACe,OAAN,GAAgBf,KAAK,CAACC,MAH1B;AAILe,MAAAA,OAAO,EAAEhB,KAAK,CAACgB,OAAN,GAAgBhB,KAAK,CAACE,MAJ1B;AAKLe,MAAAA,SAAS,EAAE,CAAC,CALP;AAMLC,MAAAA,SAAS,EAAEC,uBAAWC,IANjB;AAOLC,MAAAA,WAAW,EAAEC,yBAAYC,KAPpB;AAQLC,MAAAA,IAAI,EAAExB,KAAK,CAACyB,SARP;AASL;AACAC,MAAAA,WAAW,EAAE1B,KAAK,CAAC0B;AAVd,KAAP;AAYD;;AAEMC,EAAAA,YAAY,GAAS;AAC1B,UAAMA,YAAN;AACD;;AA1CsE","sourcesContent":["import EventManager from './EventManager';\nimport { AdaptedEvent, EventTypes } from '../interfaces';\nimport { PointerType } from '../../PointerType';\n\nexport default class WheelEventManager extends EventManager<HTMLElement> {\n private wheelDelta = { x: 0, y: 0 };\n\n private resetDelta = (_event: PointerEvent) => {\n this.wheelDelta = { x: 0, y: 0 };\n };\n\n private wheelCallback = (event: WheelEvent) => {\n this.wheelDelta.x += event.deltaX;\n this.wheelDelta.y += event.deltaY;\n\n const adaptedEvent = this.mapEvent(event);\n this.onWheel(adaptedEvent);\n };\n\n public registerListeners(): void {\n this.view.addEventListener('pointermove', this.resetDelta);\n this.view.addEventListener('wheel', this.wheelCallback);\n }\n\n public unregisterListeners(): void {\n this.view.removeEventListener('pointermove', this.resetDelta);\n this.view.removeEventListener('wheel', this.wheelCallback);\n }\n\n protected mapEvent(event: WheelEvent): AdaptedEvent {\n return {\n x: event.clientX + this.wheelDelta.x,\n y: event.clientY + this.wheelDelta.y,\n offsetX: event.offsetX - event.deltaX,\n offsetY: event.offsetY - event.deltaY,\n pointerId: -1,\n eventType: EventTypes.MOVE,\n pointerType: PointerType.OTHER,\n time: event.timeStamp,\n // @ts-ignore It does exist, but it's deprecated\n wheelDeltaY: event.wheelDeltaY,\n };\n }\n\n public resetManager(): void {\n super.resetManager();\n }\n}\n"]}
|