react-moveable
Version:
A React Component that create Moveable, Draggable, Resizable, Scalable, Rotatable, Warpable, Pinchable, Groupable.
55 lines (54 loc) • 2.35 kB
TypeScript
import * as React from "react";
import Gesto from "gesto";
import { MoveableManagerProps, MoveableManagerState, Able, RectInfo, Requester, HitRect, MoveableManagerInterface } from "./types";
import { IObject } from "@daybrush/utils";
import EventManager from "./EventManager";
export default class MoveableManager<T = {}> extends React.PureComponent<MoveableManagerProps<T>, MoveableManagerState> {
static defaultProps: Required<MoveableManagerProps>;
state: MoveableManagerState;
enabledAbles: Able[];
targetAbles: Able[];
controlAbles: Able[];
controlBox: {
getElement(): HTMLElement;
};
areaElement: HTMLElement;
targetGesto: Gesto;
controlGesto: Gesto;
rotation: number;
scale: number[];
isUnmounted: boolean;
events: Record<string, EventManager | null>;
render(): JSX.Element;
componentDidMount(): void;
componentDidUpdate(prevProps: MoveableManagerProps): void;
componentWillUnmount(): void;
getContainer(): HTMLElement | SVGElement;
isMoveableElement(target: Element): boolean;
dragStart(e: MouseEvent | TouchEvent): this;
hitTest(el: Element | HitRect): number;
isInside(clientX: number, clientY: number): boolean;
updateRect(type?: "Start" | "" | "End", isTarget?: boolean, isSetState?: boolean): void;
isTargetChanged(prevProps: MoveableManagerProps, useDragArea?: boolean): boolean | undefined;
updateNativeEvents(prevProps: MoveableManagerProps): void;
updateEvent(prevProps: MoveableManagerProps): void;
isDragging(): boolean;
updateTarget(type?: "Start" | "" | "End"): void;
getRect(): RectInfo;
getManager(): MoveableManagerInterface<any, any>;
getRotation(): number;
request(ableName: string, param?: IObject<any>, isInstant?: boolean): Requester;
destroy(): void;
updateRenderPoses(): void;
checkUpdate(): void;
triggerEvent(name: string, e: any): any;
useCSS(tag: string, css: string): any;
onPreventClick: (e: any) => void;
protected unsetAbles(): void;
protected updateAbles(ables?: Able[], eventAffix?: string): void;
protected updateState(nextState: any, isSetState?: boolean): void;
protected getEnabledAbles(): Able<IObject<any>, IObject<any>>[];
protected renderAbles(): any[];
protected updateCheckInput(): void;
private _renderLines;
}