@scena/react-ruler
Version:
A React Ruler component that can draw grids and scroll infinitely.
41 lines (40 loc) • 1.13 kB
TypeScript
import * as React from "react";
import { DrawRulerOptions, RulerInterface, RulerProps } from "./types";
export default class Ruler extends React.PureComponent<RulerProps> implements RulerInterface {
static defaultProps: Partial<RulerProps>;
divisionsElement: HTMLElement;
state: {
scrollPos: number;
};
canvasElement: HTMLCanvasElement;
private canvasContext;
private width;
private height;
private _zoom;
private _rulerScale;
private _observer;
render(): JSX.Element;
componentDidMount(): void;
componentDidUpdate(): void;
componentWillUnmount(): void;
/**
* Gets the scroll position of the ruler.
*/
getScrollPos(): number;
/**
* @method Ruler#scroll
* @param scrollPos
*/
scroll(scrollPos: number, zoom?: number): void;
/**
* @method Ruler#resize
*/
resize(nextZoom?: number): void;
/**
* draw a ruler
* @param options - It is drawn with an external value, not the existing state.
*/
draw(options?: DrawRulerOptions): void;
private _getRulerScale;
private _checkResize;
}