import { NumberRange } from "../../Core/NumberRange"; import { Point } from "../../Core/Point"; import { ECursorStyle } from "../../types/CursorStyle"; import { EDragMode } from "../../types/DragMode"; import { AxisBase2D } from "../Visuals/Axis/AxisBase2D"; import { ModifierMouseArgs } from "./ModifierMouseArgs"; import { EChart2DModifierType } from "../../types/ChartModifierType"; import { IPinchZoomModifierOptions, PinchZoomModifier } from "./PinchZoomModifier"; export interface IXAxisDragModifierOptions 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 XAxisDragModifier}, use includedXAxisIds instead */ includedYAxisIds?: string[]; /** * Not supported for {@link XAxisDragModifier}, use includedXAxisIds instead */ excludedYAxisIds?: string[]; } /** * The XAxisDragModifier provides scaling/panning behavior for X 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 XAxisDragModifier to a {@link SciChartSurface} and add scaling behavior, * use the following code: * * ```ts * sciChartSurface.chartModifiers.add(new XAxisDragModifier()); * ``` * * --- * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/zooming-and-panning/x-axis-drag-modifier/} */ export declare class XAxisDragModifier extends PinchZoomModifier { readonly type = EChart2DModifierType.XAxisDrag; dragMode: EDragMode; /** * Sets whether to enable pinch zoom behavior of {@link SciChartSurface} on touchscreen devices */ enableZoom: boolean; protected isClickedOverXAxis: 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/x-axis-drag-modifier/} */ constructor(options?: IXAxisDragModifierOptions); /** * Not supported for {@link XAxisDragModifier}, use includeXAxis instead */ includeYAxis(axis: AxisBase2D, isIncluded: boolean): void; /** * Not supported for {@link XAxisDragModifier}, use getIncludedXAxis instead */ getIncludedYAxis(): 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 getHorizontalXAxes(): AxisBase2D[]; protected getVerticalXAxes(): AxisBase2D[]; protected startDragging(axes: AxisBase2D[], args: ModifierMouseArgs): void; }