UNPKG

scichart

Version:

Fast WebGL JavaScript Charting Library and Framework

103 lines (102 loc) 4.05 kB
import { Point } from "../../Core/Point"; import { EChart2DModifierType } from "../../types/ChartModifierType"; import { ChartModifierBase2D, IChartModifierBaseOptions } from "./ChartModifierBase2D"; import { ModifierMouseArgs } from "./ModifierMouseArgs"; /** * Optional parameters used to configure a {@link PinchZoomModifier} at construct time */ export interface IPinchZoomModifierOptions extends IChartModifierBaseOptions { /** * Defines the sensitivity of zooming in horizontal direction */ horizontalGrowFactor?: number; /** * Defines the sensitivity of zooming in vertical direction */ verticalGrowFactor?: number; } /** * The PinchZoomModifier provides ability to zoom by pinch gesture on a 2D {@link SciChartSurface} * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts} * @remarks * * To apply the PinchZoomModifier to a {@link SciChartSurface} and add pinch zoom behavior, * use the following code: * * ```ts * const sciChartSurface: SciChartSurface; * sciChartSurface.chartModifiers.add(new PinchZoomModifier()); * ``` * * It is also necessary to set “touch-action: none” on the chart div element. * * --- * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/zooming-and-panning/pinch-zoom-modifier/#includeexclude-certain-axis-from-pinch-zoom} */ export declare class PinchZoomModifier extends ChartModifierBase2D { readonly type: EChart2DModifierType; /** * Defines the sensitivity of zooming in horizontal direction */ horizontalGrowFactor: number; /** * Defines the sensitivity of zooming in vertical direction */ verticalGrowFactor: number; /** * touch points X coordinates difference */ protected previousHorizontalTouchPointsDistance: number | undefined; /** * touch points Y coordinates difference */ protected previousVerticalTouchPointsDistance: number | undefined; /** * Creates an instance of a PinchZoomModifier * @param options Optional parameters used to configure the modifier * * --- * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/zooming-and-panning/pinch-zoom-modifier/#includeexclude-certain-axis-from-pinch-zoom} */ constructor(options?: IPinchZoomModifierOptions); /** * @inheritDoc */ modifierMouseDown(args: ModifierMouseArgs): void; /** * @inheritDoc */ modifierMouseMove(args: ModifierMouseArgs): void; /** * @inheritDoc */ modifierMouseUp(args: ModifierMouseArgs): void; /** * @inheritDoc */ modifierPointerCancel(args: ModifierMouseArgs): void; toJSON(): { type: string; options: Required<Omit<IChartModifierBaseOptions, never>>; }; /** * Performs the zoom operation around the mouse point * @param mousePoint The X,Y location of the mouse at the time of the zoom * @param horizontalPinchDelta horizontal pinch delta * @param verticalPinchDelta vertical pinch delta */ protected performZoom(mousePoint: Point, horizontalPinchDelta: number, verticalPinchDelta: number, horizontalGrowFactor: number, verticalGrowFactor: number): boolean; /** * Handles pointer event becoming inactive * @param args pointer event properties */ protected removeFromActiveTouchEvents(args: ModifierMouseArgs): void; protected performModifierAction(args: ModifierMouseArgs): boolean | void; protected getIsActionAllowed(args: ModifierMouseArgs): boolean; /** * returns a point equidistant to the provided ones * @param firstPoint the X,Y location of the first active pointer * @param secondPoint the X,Y location of the second active pointer */ protected getMiddlePoint: (firstPoint: Point, secondPoint: Point) => Point; }