@antv/x6
Version:
JavaScript diagramming library that uses SVG and HTML for rendering
57 lines (56 loc) • 1.9 kB
TypeScript
import { Basecoat, type KeyValue } from '../../common';
import type { EventArgs, Graph, GraphPlugin } from '../../graph';
import type { Node } from '../../model';
import type { TransformImplOptions, TransformImplEventArgs } from './transform';
import { TransformImpl } from './transform';
import './api';
type OptionItem<T, S> = S | ((this: Graph, arg: T) => S);
interface ResizingRaw {
enabled?: boolean;
minWidth?: number;
maxWidth?: number;
minHeight?: number;
maxHeight?: number;
orthogonal?: boolean;
restrict?: boolean | number;
autoScroll?: boolean;
preserveAspectRatio?: boolean;
allowReverse?: boolean;
}
interface RotatingRaw {
enabled?: boolean;
grid?: number;
}
type Resizing = {
[K in keyof ResizingRaw]?: OptionItem<Node, ResizingRaw[K]>;
};
type Rotating = {
[K in keyof RotatingRaw]?: OptionItem<Node, RotatingRaw[K]>;
};
type Options = {
rotating?: boolean | Partial<Rotating>;
resizing?: boolean | Partial<Resizing>;
};
export declare class Transform extends Basecoat<TransformImplEventArgs> implements GraphPlugin {
name: string;
options: Options;
private graph;
protected widgets: Map<Node, TransformImpl>;
private disabled;
constructor(options?: Options);
init(graph: Graph): void;
protected startListening(): void;
protected stopListening(): void;
enable(): void;
disable(): void;
isEnabled(): boolean;
createWidget(node: Node): void;
protected onNodeClick({ node }: EventArgs['node:click']): void;
protected onBlankMouseDown(): void;
protected createTransform(node: Node): TransformImpl;
protected parseOptionGroup<K extends KeyValue, S extends KeyValue = KeyValue, T = any>(graph: Graph, arg: T, options: S): K;
protected getTransformOptions(node: Node): TransformImplOptions;
clearWidgets(): void;
dispose(): void;
}
export {};