vue3-sketch-ruler
Version:
> 是一个基于 Vue 3 + TypeScript 的标尺组件库,适用于低代码平台、大屏可视化、做图工具等场景,提供类似 Photoshop 的缩放与标尺辅助线体验。
49 lines • 1.32 kB
TypeScript
import { Ref } from 'vue';
import { GuideLine } from '@sketch-ruler/core';
export interface SnapTarget {
type: 'tick' | 'guide-line' | 'custom' | 'grid' | 'equidistant';
position: number;
priority: number;
}
export interface SnapResult {
position: number;
target: SnapTarget;
original: number;
}
export interface SnapRule {
id: string;
priority: number;
getTargets: (context: SnapContext) => SnapTarget[];
}
export interface SnapContext {
direction: 'h' | 'v';
position: number;
scale: number;
lines: GuideLine[];
viewportSize: {
width: number;
height: number;
};
}
export interface SnapOptions {
threshold: Ref<number>;
scale: Ref<number>;
tickTargets?: Ref<number[]>;
guideLineTargets?: Ref<number[]>;
customTargets?: Ref<number[]>;
strength?: Ref<number>;
gridSize?: Ref<number>;
enableEquidistant?: Ref<boolean>;
customRules?: Ref<SnapRule[]>;
lines?: Ref<GuideLine[]>;
viewportSize?: Ref<{
width: number;
height: number;
}>;
}
export declare function useRulerSnap(options: SnapOptions): {
snap: (position: number, direction: "h" | "v") => SnapResult | null;
};
/** 向后兼容导出 */
export { useRulerSnap as useSnapDetection };
//# sourceMappingURL=useRulerSnap.d.ts.map