import { NumberRange } from "../../Core/NumberRange"; import { Point } from "../../Core/Point"; import { EChart2DModifierType } from "../../types/ChartModifierType"; import { ECursorStyle } from "../../types/CursorStyle"; import { EDragMode } from "../../types/DragMode"; import { AxisBase2D } from "../Visuals/Axis/AxisBase2D"; import { ModifierMouseArgs } from "./ModifierMouseArgs"; import { IPinchZoomModifierOptions, PinchZoomModifier } from "./PinchZoomModifier"; export interface IYAxisDragModifierOptions extends IPinchZoomModifierOptions { /** * Flags defining whether the {@link XAxisDragModifier} Drags or Pans the chart * @remarks see {@link EDragMode} for more details */ dragMode?: EDragMode; /** * Sets whether to enable pinch zoom behavior of {@link SciChartSurface} on touchscreen devices */ enableZoom?: boolean; /** * Not supported for {@link YAxisDragModifier}, use includedYAxisIds instead */ includedXAxisIds?: string[]; /** * Not supported for {@link YAxisDragModifier}, use includedYAxisIds instead */ excludedXAxisIds?: string[]; } /** * The YAxisDragModifier provides scaling/panning behavior for Y axis {@link AxisBase2D} * and pinch zoom support on mobile devices * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} * @remarks * * To apply the YAxisDragModifier to a {@link SciChartSurface} and add scaling behavior, * use the following code: * * ```ts * sciChartSurface.chartModifiers.add(new YAxisDragModifier()); * ``` * * --- * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/zooming-and-panning/y-axis-drag-modifier/} */ export declare class YAxisDragModifier extends PinchZoomModifier { readonly type = EChart2DModifierType.YAxisDrag; dragMode: EDragMode; /** * Sets whether to enable pinch zoom behavior of {@link SciChartSurface} on touchscreen devices */ enableZoom: boolean; protected isClickedOverYAxis: boolean; protected pointFrom: Point | undefined; protected activeAxes: AxisBase2D[]; protected initialVisibleRanges: NumberRange[]; protected isVerticalChart: boolean; protected cursorStyle: ECursorStyle; /** * Creates an instance of a XAxisDragModifier * @param options optional parameters to pass to the XAxisDragModifier to configure it upon construction * * --- * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/zooming-and-panning/y-axis-drag-modifier/} */ constructor(options?: IYAxisDragModifierOptions); /** * Not supported for {@link YAxisDragModifier}, use includeYAxis instead */ includeXAxis(axis: AxisBase2D, isIncluded: boolean): void; /** * Not supported for {@link YAxisDragModifier}, use getIncludedYAxis instead */ getIncludedXAxis(): AxisBase2D[]; /** @inheritDoc */ modifierMouseDown(args: ModifierMouseArgs): void; /** @inheritDoc */ modifierMouseMove(args: ModifierMouseArgs): void; /** @inheritDoc */ modifierMouseUp(args: ModifierMouseArgs): void; /** @inheritDoc */ toJSON(): { type: string; options: Required>; }; protected getIsActionAllowed(args: ModifierMouseArgs): boolean; protected performModifierAction(args: ModifierMouseArgs): boolean | void; protected updateCursor(mousePoint: Point): void; protected doPanning(mousePoint: Point): void; protected doScaling(pointTo: Point): void; protected getVerticalYAxes(): AxisBase2D[]; protected getHorizontalYAxes(): AxisBase2D[]; protected startDragging(axes: AxisBase2D[], args: ModifierMouseArgs): void; }