scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
93 lines (92 loc) • 3.94 kB
TypeScript
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<Omit<import("./ChartModifierBase2D").IChartModifierBaseOptions, never>>;
};
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;
}