react-moveable
Version:
A React Component that create Moveable, Draggable, Resizable, Scalable, Rotatable, Warpable, Pinchable, Groupable.
61 lines (60 loc) • 2.55 kB
TypeScript
import * as React from "react";
import Dragger from "@daybrush/drag";
import { MoveableManagerProps, MoveableManagerState, Able } from "./types";
import CustomDragger from "./CustomDragger";
declare const ControlBoxElement: {
new (props: any): {
element: HTMLDivElement;
render(): React.DOMElement<{
children?: React.ReactNode;
className: string;
}, Element>;
componentDidMount(): void;
componentWillUnmount(): void;
getElement(): HTMLDivElement;
context: any;
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<{
[key: string]: any;
}>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callBack?: (() => void) | undefined): void;
readonly props: Readonly<{
[key: string]: any;
}> & Readonly<{
children?: React.ReactNode;
}>;
state: Readonly<{}>;
refs: {
[key: string]: React.ReactInstance;
};
};
contextType?: React.Context<any> | undefined;
};
export default class MoveableManager<T = {}, U = {}> extends React.PureComponent<MoveableManagerProps<T>, MoveableManagerState<U>> {
static defaultProps: Required<MoveableManagerProps>;
state: MoveableManagerState<U>;
targetAbles: Array<Able<T>>;
controlAbles: Array<Able<T>>;
controlBox: typeof ControlBoxElement extends new (...args: any[]) => infer K ? K : never;
areaElement: HTMLElement;
targetDragger: Dragger;
controlDragger: Dragger;
customDragger: CustomDragger;
render(): JSX.Element;
componentDidMount(): void;
componentDidUpdate(prevProps: MoveableManagerProps<T>, prevState: MoveableManagerState<U>): void;
componentWillUnmount(): void;
getContainer(): HTMLElement | SVGElement;
isMoveableElement(target: HTMLElement): boolean;
dragStart(e: MouseEvent | TouchEvent): void;
isInside(clientX: number, clientY: number): boolean;
updateRect(type?: "Start" | "" | "End", isTarget?: boolean, isSetState?: boolean): void;
updateEvent(prevProps: MoveableManagerProps<T>): void;
updateTarget(type?: "Start" | "" | "End"): void;
checkUpdate(): void;
triggerEvent(name: string, e: any): any;
protected unsetAbles(): void;
protected updateAbles(ables?: Able[], eventAffix?: string): void;
protected updateState(nextState: any, isSetState?: boolean): void;
protected renderAbles(): any[];
}
export {};