import { Node, BasePlugin, Container } from '@knotx/core'; import { CanvasTransformState } from '@knotx/plugins-canvas'; interface MinimapConfig { /** * 小地图宽度 * @default 200 */ width?: number; /** * 小地图高度 * @default 150 */ height?: number; /** * 节点颜色 * @default '#AB7BFE' */ nodeColor?: string | ((node: Node) => string); /** * 视图区域背景颜色 * @default 'rgba(240, 240, 240, 0.6)' */ maskColor?: string; /** * 视图区域边框颜色 * @default '#4752E6' */ viewBoxColor?: string; /** * 显示小地图控制按钮 * @default true */ showControls?: boolean; /** * 是否可缩放 * @default true */ zoomable?: boolean; /** * 是否可平移 * @default true */ pannable?: boolean; /** * 与容器的内边距 * @default 12 */ padding?: number; /** * 节点圆角 * @default 2 */ nodeBorderRadius?: number; /** * 节点描边宽度 * @default 1 */ nodeStrokeWidth?: number; /** * 节点描边颜色 * @default 'transparent' */ nodeStrokeColor?: string | ((node: Node) => string); /** * 缩放步长 * @default 0.2 */ zoomStep?: number; } /** * Minimap 插件 - 提供画布内容的缩略图预览和交互 */ declare class Minimap extends BasePlugin<'minimap', MinimapConfig> { name: "minimap"; private config; private subscription?; private currentInteractable?; private dragStart$; private dragMove$; private dragEnd$; container: Container; transform: CanvasTransformState; nodes: Node[]; get classNames(): { wrapper: string; svg: string; viewBox: string; mask: string; node: string; control: string; zoomIn: string; zoomOut: string; reset: string; }; /** * 计算视图变换和缩放 */ private getViewTransform; /** * 计算节点颜色 */ private getNodeColor; /** * 计算节点边框颜色 */ private getNodeStrokeColor; /** * 从SVG坐标转换为流程图坐标 */ private getSvgToGraphCoordinates; /** * 处理小地图上的点击事件,移动视图 */ private handleMinimapClick; /** * 处理缩放按钮点击事件 */ private handleZoom; /** * 重置视图 */ private handleReset; /** * 初始化拖拽功能 */ init(config: MinimapConfig): void; /** * 设置拖拽流 */ private setupDragStream; /** * 初始化 interact.js 的拖拽功能 */ private setupInteractable; /** * 清理资源 */ destroy(): void; render(): JSX.Element | null; } export { Minimap, type MinimapConfig };