react-moveable
Version:
A React Component that create Moveable, Draggable, Resizable, Scalable, Rotatable, Warpable, Pinchable, Groupable.
79 lines (78 loc) • 5.05 kB
TypeScript
import { IObject } from "@daybrush/utils";
import MoveableManager from "./MoveableManager";
import { MoveableManagerState, Able } from "./types";
export declare function multiply2(pos1: number[], pos2: number[]): number[];
export declare function prefix(...classNames: string[]): string;
export declare function createIdentityMatrix3(): number[];
export declare function getTransform(target: SVGElement | HTMLElement, isInit: true): number[];
export declare function getTransform(target: SVGElement | HTMLElement, isInit?: false): "none" | number[];
export declare function getTransformMatrix(transform: string | number[]): number[];
export declare function getAbsoluteMatrix(matrix: number[], n: number, origin: number[]): number[];
export declare function measureSVGSize(el: SVGElement, unit: string, isHorizontal: boolean): number;
export declare function getBeforeTransformOrigin(el: SVGElement): number[];
export declare function getTransformOrigin(style: CSSStyleDeclaration): string[];
export declare function getOffsetInfo(el: SVGElement | HTMLElement | null | undefined, lastParent: SVGElement | HTMLElement | null | undefined, isParent?: boolean): {
isEnd: boolean;
offsetParent: HTMLElement;
};
export declare function caculateMatrixStack(target: SVGElement | HTMLElement, container: SVGElement | HTMLElement | null, prevMatrix?: number[], prevN?: number): [number[], number[], number[], number[], string, number[], boolean];
export declare function getSVGMatrix(el: SVGSVGElement, n: number): number[];
export declare function getSVGGraphicsOffset(el: SVGGraphicsElement, origin: number[]): number[];
export declare function caculatePosition(matrix: number[], pos: number[], n: number): number[];
export declare function caculatePoses(matrix: number[], width: number, height: number, n: number): number[][];
export declare function getRect(poses: number[][]): {
left: number;
top: number;
right: number;
bottom: number;
width: number;
height: number;
};
export declare function caculateRect(matrix: number[], width: number, height: number, n: number): {
left: number;
top: number;
right: number;
bottom: number;
width: number;
height: number;
};
export declare function getSVGOffset(el: SVGElement, container: HTMLElement | SVGElement, n: number, origin: number[], beforeMatrix: number[], absoluteMatrix: number[]): number[];
export declare function caculateMoveablePosition(matrix: number[], origin: number[], width: number, height: number): [number[], number[], number[], number[], number[], number[], 1 | -1];
export declare function getLineStyle(pos1: number[], pos2: number[]): {
transform: string;
width: string;
};
export declare function getControlTransform(...poses: number[][]): {
transform: string;
};
export declare function getSize(target: SVGElement | HTMLElement, style?: CSSStyleDeclaration, isOffset?: boolean, isBoxSizing?: boolean): number[];
export declare function getTargetInfo(target?: HTMLElement | SVGElement, container?: HTMLElement | SVGElement | null, parentContainer?: HTMLElement | SVGElement | null, state?: Partial<MoveableManagerState> | false | undefined): Partial<MoveableManagerState>;
export declare function getClientRect(el: HTMLElement | SVGElement): {
left: number;
right: number;
top: number;
bottom: number;
width: number;
height: number;
};
export declare function getDirection(target: SVGElement | HTMLElement): number[] | undefined;
export declare function getAbsolutePoses(poses: number[][], dist: number[]): number[][];
export declare function getAbsolutePosesByState({ left, top, pos1, pos2, pos3, pos4, }: {
left: number;
top: number;
pos1: number[];
pos2: number[];
pos3: number[];
pos4: number[];
}): number[][];
export declare function throttle(num: number, unit: number): number;
export declare function throttleArray(nums: number[], unit: number): number[];
export declare function unset(self: any, name: string): void;
export declare function getOrientationDirection(pos: number[], pos1: number[], pos2: number[]): number;
export declare function isInside(pos: number[], pos1: number[], pos2: number[], pos3: number[], pos4: number[]): boolean;
export declare function fillParams<T extends IObject<any>>(moveable: MoveableManager, e: any, params: Pick<T, Exclude<keyof T, "target" | "clientX" | "clientY" | "inputEvent" | "datas" | "currentTarget">>): T;
export declare function triggerEvent<T extends IObject<any>, U extends keyof T>(moveable: MoveableManager<T>, name: U & string, params: T[U] extends ((e: infer P) => any) | undefined ? P : {}): any;
export declare function getComputedStyle(el: HTMLElement | SVGElement, pseudoElt?: string | null): CSSStyleDeclaration;
export declare function filterAbles(ables: Able[], methods: Array<keyof Able>): Able<any>[];
export declare function getKeepRatioHeight(width: number, isWidth: boolean, ratio: number): number;
export declare function getKeepRatioWidth(height: number, isWidth: boolean, ratio: number): number;