@scena/react-guides
Version:
A React Guides component that can draw ruler and manage guidelines.
98 lines (97 loc) • 2.57 kB
TypeScript
import * as React from "react";
import Ruler, { DrawRulerOptions } from "@scena/react-ruler";
import { GuidesState, GuidesProps, GuidesInterface } from "./types";
export default class Guides extends React.PureComponent<GuidesProps, GuidesState> implements GuidesInterface {
static defaultProps: GuidesProps;
state: GuidesState;
adderElement: HTMLElement;
scrollPos: number;
ruler: Ruler;
private managerRef;
private guidesElement;
private displayElement;
private originElement;
private gesto;
private guideElements;
private _isFirstMove;
private _zoom;
private _guidesZoom;
private _observer;
constructor(props: GuidesProps);
render(): JSX.Element;
/**
* Draw ruler
*/
drawRuler(options: DrawRulerOptions): void;
renderGuides(): JSX.Element[] | undefined;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: any): void;
/**
* Load the current guidelines.
* @memberof Guides
* @instance
*/
loadGuides(guides: number[]): void;
/**
* Get current guidelines.
* @memberof Guides
* @instance
*/
getGuides(): number[];
/**
* Scroll the positions of the guidelines opposite the ruler.
* @memberof Guides
* @instance
*/
scrollGuides(pos: number, nextZoom?: number): void;
/**
* Set to the next zoom.
* @memberof Guides
* @since 0.22.0
* @param nextZoom - next zoom
*/
zoomTo(nextZoom: number, nextGuidesZoom?: number): void;
/**
* Get Guides DOM Element
* @memberof Guides
* @instance
*/
getElement(): HTMLElement;
/**
* Get Ruler DOM Element
* @memberof Guides
* @instance
*/
getRulerElement(): HTMLCanvasElement;
/**
* Scroll position of guides (horizontal: y, vertical: x)
*/
getGuideScrollPos(): number;
/**
* Scroll position of the ruler (horizontal: x, vertical: y)
*/
getRulerScrollPos(): number;
/**
* Scroll the position of the ruler.
* @memberof Guides
* @instance
*/
scroll(pos: number, nextZoom?: number): void;
/**
* Recalculate the size of the ruler.
* @memberof Guides
* @instance
*/
resize(nextZoom?: number): void;
private onDragStart;
private _onDrag;
private onDragEnd;
private movePos;
private getTranslateName;
private _startDragScroll;
private _dragScroll;
private _endDragScroll;
private _onCheck;
private _setZoom;
}