react-moveable
Version:
A React Component that create Moveable, Draggable, Resizable, Scalable, Rotatable, Warpable, Pinchable, Groupable.
193 lines (192 loc) • 11.5 kB
TypeScript
import { IObject } from "@daybrush/utils";
import { MoveableManagerState, Able, MoveableClientRect, MoveableProps, ArrayFormat, MoveableRefType, MatrixInfo, ExcludeEndParams, ExcludeParams, ElementSizes, TransformObject, MoveableRefTargetsResultType, MoveableRefTargetType, MoveableManagerInterface, CSSObject, PaddingBox } from "./types";
import { GetStyle } from "./store/Store";
export declare function round(num: number): number;
export declare function multiply2(pos1: number[], pos2: number[]): number[];
export declare function prefix(...classNames: string[]): string;
export declare function defaultSync(fn: () => void): void;
export declare function createIdentityMatrix3(): 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 getTransformOriginArray(transformOrigin: string): string[];
export declare function getTransformOrigin(style: CSSStyleDeclaration): string[];
export declare function getElementTransform(target: HTMLElement | SVGElement): string;
export declare function getOffsetInfo(el: SVGElement | HTMLElement | null | undefined, lastParent: SVGElement | HTMLElement | null | undefined, isParent?: boolean, checkZoom?: boolean, getTargetStyle?: GetStyle): {
offsetZoom: number;
hasSlot: boolean;
parentSlotElement: HTMLElement | null | undefined;
isCustomElement: boolean;
isStatic: boolean;
isEnd: boolean;
offsetParent: HTMLElement;
};
export declare function getOffsetPosInfo(el: HTMLElement | SVGElement, target: HTMLElement | SVGElement): {
tagName: string;
isSVG: boolean;
hasOffset: boolean;
offset: number[];
origin: number[];
targetOrigin: number[];
};
export declare function getBodyOffset(el: HTMLElement | SVGElement, isSVG: boolean): number[];
export declare function convert3DMatrixes(matrixes: MatrixInfo[]): void;
export declare function getPositionFixedInfo(el: HTMLElement | SVGElement): {
fixedContainer: HTMLElement;
hasTransform: boolean;
};
export declare function makeMatrixCSS(matrix: number[], is3d?: boolean): string;
export declare function getSVGViewBox(el: SVGSVGElement): {
x: number;
y: number;
width: number;
height: number;
clientWidth: number;
clientHeight: number;
};
export declare function getSVGMatrix(el: SVGSVGElement, n: number): number[];
export declare function getSVGGraphicsOffset(el: SVGGraphicsElement, origin: number[], isGTarget?: boolean): number[];
export declare function calculatePosition(matrix: number[], pos: number[], n: number): number[];
export declare function calculatePoses(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 calculateRect(matrix: number[], width: number, height: number, n: number): {
left: number;
top: number;
right: number;
bottom: number;
width: number;
height: number;
};
export declare function getSVGOffset(offsetInfo: MatrixInfo, targetInfo: MatrixInfo, container: HTMLElement | SVGElement, n: number, beforeMatrix: number[]): number[];
export declare function calculateMoveableClientPositions(rootMatrix: number[], poses: number[][], rootClientRect: MoveableClientRect): number[][];
export declare function getDistSize(vec: number[]): number;
export declare function getDiagonalSize(pos1: number[], pos2: number[]): number;
export declare function getLineStyle(pos1: number[], pos2: number[], zoom?: number, rad?: number): {
transform: string;
width: string;
};
export declare function getControlTransform(rotation: number, zoom: number, ...poses: number[][]): {
transform: string;
};
export declare function getProps<Props>(props: Props, ableName: keyof Props): Props;
export declare function getSize(target?: SVGElement | HTMLElement | null): ElementSizes;
export declare function getRotationRad(poses: number[][], direction: number): number;
export declare function resetClientRect(): MoveableClientRect;
export declare function getExtendsRect(el: HTMLElement | SVGElement, rect: MoveableClientRect): MoveableClientRect;
export declare function getClientRectByPosition(position: {
left: number;
right: number;
top: number;
bottom: number;
}, base: MoveableClientRect, el?: HTMLElement | SVGElement, isExtends?: boolean): MoveableClientRect;
export declare function getClientRect(el: HTMLElement | SVGElement, isExtends?: boolean): MoveableClientRect;
export declare function getTotalOrigin(moveable: MoveableManagerInterface<any>): number[];
export declare function getTotalDirection(parentDirection: number[], isPinch: boolean, inputEvent: any, datas: any): number[] | undefined;
export declare function getDirection(target: SVGElement | HTMLElement, datas: any): 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 roundSign(num: number): number;
export declare function unsetAbles(self: MoveableManagerInterface, isControl: boolean): void;
export declare function unsetGesto(self: MoveableManagerInterface, isControl: boolean): void;
export declare function fillCSSObject(style: Record<string, any>, resolvedEvent?: any): CSSObject;
export declare function fillAfterTransform(prevEvent: {
style: Record<string, string>;
transform: string;
}, nextEvent: {
style: Record<string, string>;
transform: string;
afterTransform?: string;
}, resolvedEvent?: any): TransformObject;
export declare function fillParams<T extends IObject<any>>(moveable: any, e: any, params: ExcludeParams<T>, isBeforeEvent?: boolean): T;
export declare function fillEndParams<T extends IObject<any>>(moveable: any, e: any, params: ExcludeEndParams<T> & {
isDrag?: boolean;
}): T;
export declare function catchEvent<EventName extends keyof Props, Props extends IObject<any> = MoveableProps>(moveable: any, name: EventName, callback: (e: Props[EventName] extends ((e: infer P) => any) | undefined ? P : IObject<any>) => void): any;
export declare function triggerEvent<EventName extends keyof Props, Props extends IObject<any> = MoveableProps>(moveable: any, name: EventName, params: Props[EventName] extends ((e: infer P) => any) | undefined ? P : IObject<any>, isManager?: boolean, isRequest?: boolean): any;
export declare function getComputedStyle(el: Element, pseudoElt?: string | null): CSSStyleDeclaration;
export declare function filterAbles(ables: Able[], methods: Array<keyof Able>, triggerAblesSimultaneously?: boolean): Able<IObject<any>, IObject<any>>[];
export declare function equals(a1: any, a2: any): boolean;
export declare function selectValue<T = any>(...values: any[]): T;
export declare function groupBy<T>(arr: T[], func: (el: T, index: number, arr: T[]) => any): T[][];
export declare function groupByMap<T>(arr: T[], func: (el: T, index: number, arr: T[]) => string | number): T[][];
export declare function flat<T>(arr: T[][]): T[];
export declare function equalSign(a: number, b: number): boolean;
export declare function maxOffset(...args: number[]): number;
export declare function minOffset(...args: number[]): number;
export declare function calculateInversePosition(matrix: number[], pos: number[], n: number): number[];
export declare function convertDragDist(state: MoveableManagerState, e: any): any;
export declare function calculatePadding(matrix: number[], pos: number[], added: number[], n: number): number[];
export declare function convertCSSSize(value: number, size: number, isRelative?: boolean): string;
export declare function getTinyDist(v: number): number;
export declare function viewDraggingPrefix(ableName: string): string;
export declare function getDirectionViewClassName(ableName: string): (moveable: MoveableManagerInterface) => string;
export declare function getDirectionCondition(ableName: string, checkAbles?: string[]): (moveable: any, e: any) => any;
export declare function convertTransformInfo(transforms: string[], state: MoveableManagerState, index: number): {
transforms: string[];
beforeFunctionMatrix: number[];
beforeFunctionMatrix2: number[];
targetFunctionMatrix: number[];
afterFunctionMatrix: number[];
afterFunctionMatrix2: number[];
allFunctionMatrix: number[];
beforeFunctions: import("css-to-mat").MatrixInfo[];
beforeFunctions2: import("css-to-mat").MatrixInfo[];
targetFunction: import("css-to-mat").MatrixInfo;
afterFunctions: import("css-to-mat").MatrixInfo[];
afterFunctions2: import("css-to-mat").MatrixInfo[];
beforeFunctionTexts: string[];
beforeFunctionTexts2: string[];
targetFunctionText: string;
afterFunctionTexts: string[];
afterFunctionTexts2: string[];
};
export declare function isArrayFormat<T = any>(arr: any): arr is ArrayFormat<T>;
export declare function getRefTarget<T extends Element = HTMLElement | SVGElement>(target: MoveableRefType<T> | Window, isSelector: true): T | null;
export declare function getRefTarget<T extends Element = HTMLElement | SVGElement>(target: MoveableRefType<T> | Window, isSelector?: boolean): T | string | null;
export declare function getRefTargets(targets: MoveableRefTargetType, isSelector: true): Array<HTMLElement | SVGElement | null>;
export declare function getRefTargets(targets: MoveableRefTargetType, isSelector?: boolean): MoveableRefTargetsResultType;
export declare function minmax(...values: number[]): number[];
export declare function getAbsoluteRotation(pos1: number[], pos2: number[], direction: number): number;
export declare function getDragDistByState(state: MoveableManagerState, dist: number[]): number[];
export declare function getSizeDistByDist(startSize: number[], dist: number[], ratio: number, direction: number[], keepRatio?: boolean): number[];
export declare function getOffsetSizeDist(sizeDirection: number[], keepRatio: boolean, datas: any, e: any): {
distWidth: number;
distHeight: number;
};
export declare function convertTransformUnit(origin: string, xy?: boolean): {
x?: string;
y?: string;
value?: string;
};
export declare function convertTransformOriginArray(transformOrigin: string, width: number, height: number): number[];
export declare function rotatePosesInfo(poses: number[][], origin: number[], rad: number): {
prev: number[][];
next: number[][];
result: number[][];
};
export declare function isDeepArrayEquals(arr1: any[], arr2: any[]): boolean;
export declare function watchValue<T>(moveable: any, property: string, nextValue: T, valueKey: (value: T) => string | number, defaultValue?: T): T;
export declare function sign(value: number): 1 | -1;
export declare function abs(value: number): number;
export declare function countEach<T>(count: number, callback: (index: number) => T): T[];
export declare function getPaddingBox(padding: PaddingBox | number): {
top: number;
left: number;
right: number;
bottom: number;
};