UNPKG

vue3-sketch-ruler

Version:

> 是一个基于 Vue 3 + TypeScript 的标尺组件库,适用于低代码平台、大屏可视化、做图工具等场景,提供类似 Photoshop 的缩放与标尺辅助线体验。

160 lines 5.02 kB
import { GuideLine, RulerPalette, ZoomMode } from '../state/ruler-context'; import { SketchRulerPlugin } from '@sketch-ruler/core'; export interface SketchRulerProps { showRuler?: boolean; scale?: number; thick?: number; width?: number; height?: number; canvasWidth?: number; canvasHeight?: number; palette?: Partial<RulerPalette>; lines?: { h: number[]; v: number[]; }; isShowReferLine?: boolean; snapThreshold?: number; lockLine?: boolean; selfHandle?: boolean; zoomStep?: number; minZoom?: number; maxZoom?: number; /** 动画模式:direct | ease-out | damped | exponential */ animationMode?: 'direct' | 'ease-out' | 'damped' | 'exponential'; /** 缩放原点模式:pointer | viewport-center | content-center */ zoomMode?: ZoomMode; /** 是否启用平滑动画 */ enableAnimation?: boolean; /** 插件列表 */ plugins?: SketchRulerPlugin[]; /** 是否自动居中画布 */ autoCenter?: boolean; /** 阴影区域(画布高亮) */ shadow?: { x: number; y: number; width: number; height: number; }; /** 初始偏移(autoCenter=false 时生效) */ initialOffset?: { x: number; y: number; }; /** 是否显示次刻度线,默认 false */ showMinorTicks?: boolean; paddingRatio?: number; eyeIcon?: string; closeEyeIcon?: string; /** 参考线拖出画布时显示的删除提示文案 */ deleteLabel?: string; } declare var __VLS_1: { tools: { zoomIn: () => Promise<void>; zoomOut: () => Promise<void>; reset: () => void; setZoomMode: (mode: ZoomMode) => void; zoomToPreset: (preset: number) => Promise<void>; toggleReferLine: () => void; }; state: { scale: number; offset: { x: number; y: number; }; zoomMode: ZoomMode; showReferLine: boolean; }; }, __VLS_3: {}; type __VLS_Slots = {} & { toolbar?: (props: typeof __VLS_1) => any; } & { default?: (props: typeof __VLS_3) => any; }; declare const __VLS_base: import('vue').DefineComponent<SketchRulerProps, { engine: import('@sketch-ruler/core').TransformEngine; reset: () => void; zoomIn: () => Promise<void>; zoomOut: () => Promise<void>; cursorClass: import('vue').Ref<string, string>; setTransform: (t: Partial<import('@sketch-ruler/core').TransformState>) => void; guideLines: import('vue').Ref<{ id: string; orientation: "h" | "v"; position: number; visible?: boolean | undefined; locked?: boolean | undefined; }[], GuideLine[] | { id: string; orientation: "h" | "v"; position: number; visible?: boolean | undefined; locked?: boolean | undefined; }[]>; setZoomMode: (mode: ZoomMode) => void; zoomToPreset: (preset: number) => Promise<void>; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { "update:scale": (...args: any[]) => void; "update:offset": (...args: any[]) => void; zoomchange: (...args: any[]) => void; "update:lines": (...args: any[]) => void; "update:lockLine": (...args: any[]) => void; onCornerClick: (...args: any[]) => void; }, string, import('vue').PublicProps, Readonly<SketchRulerProps> & Readonly<{ "onUpdate:scale"?: ((...args: any[]) => any) | undefined; "onUpdate:offset"?: ((...args: any[]) => any) | undefined; onZoomchange?: ((...args: any[]) => any) | undefined; "onUpdate:lines"?: ((...args: any[]) => any) | undefined; "onUpdate:lockLine"?: ((...args: any[]) => any) | undefined; onOnCornerClick?: ((...args: any[]) => any) | undefined; }>, { animationMode: "direct" | "ease-out" | "damped" | "exponential"; initialOffset: { x: number; y: number; }; minZoom: number; maxZoom: number; enableAnimation: boolean; autoCenter: boolean; paddingRatio: number; scale: number; thick: number; showMinorTicks: boolean; width: number; height: number; lines: { h: number[]; v: number[]; }; palette: Partial<RulerPalette>; canvasWidth: number; canvasHeight: number; deleteLabel: string; lockLine: boolean; showRuler: boolean; isShowReferLine: boolean; snapThreshold: number; selfHandle: boolean; zoomStep: number; zoomMode: ZoomMode; plugins: SketchRulerPlugin[]; shadow: { x: number; y: number; width: number; height: number; }; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>; declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots<T, S> = T & { new (): { $slots: S; }; }; //# sourceMappingURL=SketchRuler.vue.d.ts.map