django-vue3-admin-web/node_modules/@interactjs/modifiers/snap/pointer.d.ts
2025-10-20 21:21:14 +08:00

80 lines
2.2 KiB
TypeScript

import type { Interaction, InteractionProxy } from '@interactjs/core/Interaction';
import type { ActionName, Point, RectResolvable, Element } from '@interactjs/core/types';
import type { ModifierArg, ModifierState } from '../types';
export interface Offset {
x: number;
y: number;
index: number;
relativePoint?: Point | null;
}
export interface SnapPosition {
x?: number;
y?: number;
range?: number;
offset?: Offset;
[index: string]: any;
}
export type SnapFunction = (x: number, y: number, interaction: InteractionProxy<ActionName>, offset: Offset, index: number) => SnapPosition;
export type SnapTarget = SnapPosition | SnapFunction;
export interface SnapOptions {
targets?: SnapTarget[];
range?: number;
relativePoints?: Point[];
offset?: Point | RectResolvable<[Interaction]> | 'startCoords';
offsetWithOrigin?: boolean;
origin?: RectResolvable<[Element]> | Point;
endOnly?: boolean;
enabled?: boolean;
}
export type SnapState = ModifierState<SnapOptions, {
offsets?: Offset[];
closest?: any;
targetFields?: string[][];
}>;
declare function start(arg: ModifierArg<SnapState>): void;
declare function set(arg: ModifierArg<SnapState>): {
target: any;
inRange: boolean;
distance: number;
range: number;
delta: {
x: number;
y: number;
};
};
declare const snap: {
start: typeof start;
set: typeof set;
defaults: SnapOptions;
};
declare const _default: {
(_options?: Partial<SnapOptions>): import("../types").Modifier<SnapOptions, SnapState, "snap", {
target: any;
inRange: boolean;
distance: number;
range: number;
delta: {
x: number;
y: number;
};
}>;
_defaults: SnapOptions;
_methods: {
start: (arg: ModifierArg<SnapState>) => void;
set: (arg: ModifierArg<SnapState>) => {
target: any;
inRange: boolean;
distance: number;
range: number;
delta: {
x: number;
y: number;
};
};
beforeEnd: (arg: ModifierArg<SnapState>) => void | Point;
stop: (arg: ModifierArg<SnapState>) => void;
};
};
export default _default;
export { snap };