UNPKG

@scena/react-guides

Version:

A React Guides component that can draw ruler and manage guidelines.

98 lines (97 loc) 2.57 kB
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; }