@skillpet/circuit
Version:
Circuit diagram library — render electrical schematics from JSON, with interactive SVG, themes, and Vue/React components
42 lines (41 loc) • 1.14 kB
TypeScript
import type { Theme } from "./theme.js";
import type { ElementObject } from "./render.js";
export interface ElementInfo {
id: string;
type: string;
tooltip?: string;
bbox: {
x: number;
y: number;
width: number;
height: number;
};
anchors: Record<string, {
x: number;
y: number;
}>;
element: SVGGElement;
spec: ElementObject;
}
export interface DrawingInfo {
width: number;
height: number;
viewBox: string;
theme: Theme;
elementCount: number;
namedElementCount: number;
}
export interface CanvasPoint {
x: number;
y: number;
clientX: number;
clientY: number;
}
export interface EventMap {
'element:click': (info: ElementInfo, event: MouseEvent) => void;
'element:hover': (info: ElementInfo, event: MouseEvent) => void;
'element:leave': (info: ElementInfo, event: MouseEvent) => void;
'element:select': (info: ElementInfo | null, event: MouseEvent) => void;
'canvas:click': (point: CanvasPoint, event: MouseEvent) => void;
'canvas:contextmenu': (point: CanvasPoint, event: MouseEvent) => void;
}