ngx-diagrams
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
97 lines (96 loc) • 3.87 kB
TypeScript
import { ComponentFactoryResolver, ViewContainerRef, ComponentRef, RendererFactory2 } from '@angular/core';
import { AbstractNodeFactory } from '../factories/node.factory';
import { DiagramModel } from '../models/diagram.model';
import { NodeModel } from '../models/node.model';
import { AbstractLinkFactory } from '../factories/link.factory';
import { AbstractPortFactory } from '../factories/port.factory';
import { LinkModel } from '../models/link.model';
import { PortModel } from '../models/port.model';
import { BaseEntity } from '../base.entity';
import { AbstractLabelFactory } from '../factories/label.factory';
import { LabelModel } from '../models/label.model';
export declare class DiagramEngine {
private resolver;
private rendererFactory;
private _renderer;
private nodeFactories;
private labelFactories;
private linkFactories;
private portFactories;
private canvas$;
diagramModel: DiagramModel;
constructor(resolver: ComponentFactoryResolver, rendererFactory: RendererFactory2);
createDiagram(): DiagramModel;
registerDefaultFactories(): void;
registerLabelFactory(labelFactory: AbstractLabelFactory): void;
getLabelFactories(): {
[s: string]: AbstractLabelFactory;
};
getLabelFactory(type: string): AbstractLabelFactory;
getFactoryForLabel(label: LabelModel): AbstractLabelFactory | null;
generateWidgetForLabel(label: LabelModel, labelHost: ViewContainerRef): ComponentRef<LabelModel> | null;
registerNodeFactory(nodeFactory: AbstractNodeFactory): void;
getNodeFactories(): {
[s: string]: AbstractNodeFactory;
};
getNodeFactory(type: string): AbstractNodeFactory;
getFactoryForNode(node: NodeModel): AbstractNodeFactory | null;
generateWidgetForNode(node: NodeModel, nodesHost: ViewContainerRef): ComponentRef<NodeModel> | null;
registerPortFactory(factory: AbstractPortFactory): void;
getPortFactories(): {
[s: string]: AbstractPortFactory<PortModel>;
};
getPortFactory(type: string): AbstractPortFactory;
getFactoryForPort(port: PortModel): AbstractPortFactory | null;
generateWidgetForPort(port: PortModel, portsHost: ViewContainerRef): ComponentRef<PortModel> | null;
getLinkFactories(): {
[s: string]: AbstractLinkFactory;
};
registerLinkFactory(factory: AbstractLinkFactory): void;
getLinkFactory(type: string): AbstractLinkFactory;
getFactoryForLink(link: LinkModel): AbstractLinkFactory | null;
generateWidgetForLink(link: LinkModel, linksHost: ViewContainerRef): ComponentRef<LinkModel> | null;
getNodeElement(node: NodeModel): HTMLElement;
getNodePortElement(port: PortModel): HTMLElement;
getPortCenter(port: PortModel): {
x: number;
y: number;
};
/**
* Calculate rectangular coordinates of the port passed in.
*/
getPortCoords(port: PortModel): {
x: number;
y: number;
width: number;
height: number;
};
/**
* Determine the width and height of the node passed in.
* It currently assumes nodes have a rectangular shape, can be overriden for customised shapes.
*/
getNodeDimensions(node: NodeModel): {
width: number;
height: number;
};
setCanvas(canvas: Element): void;
getRelativeMousePoint(event: MouseEvent): {
x: number;
y: number;
};
getRelativePoint(x: number, y: number): {
x: number;
y: number;
};
getDiagramModel(): DiagramModel;
isModelLocked(model: BaseEntity): boolean;
/**
* auto arrange the graph
*/
autoArrange(): void;
/**
* fit the canvas zoom levels to the elements contained.
* @param additionalZoomFactor allow for further zooming out to make sure edges doesn't cut
*/
zoomToFit(additionalZoomFactor?: number): void;
}