ngx-diagrams
Version:
> Light Weight, Modular, Typed Diagram Engine for Angular
82 lines (81 loc) • 3.27 kB
TypeScript
import { Observable } from 'rxjs';
import { BaseEntity, BaseEntityType } from '../base.entity';
import { Coords } from '../interfaces/coords.interface';
import { SelectOptions } from '../interfaces/select-options.interface';
import { SerializedDiagramModel } from '../interfaces/serialization.interface';
import { DiagramEngine } from '../services/engine.service';
import { ID } from '../utils';
import { EntityMap } from '../utils/types';
import { BaseModel } from './base.model';
import { LinkModel } from './link.model';
import { NodeModel } from './node.model';
import { PortModel } from './port.model';
export declare class DiagramModel extends BaseEntity {
protected diagramEngine: DiagramEngine;
protected nodes$: import("../state/state").EntityState<NodeModel<PortModel>>;
protected links$: import("../state/state").EntityState<LinkModel>;
protected offsetX$: import("../state/state").ValueState<number>;
protected offsetY$: import("../state/state").ValueState<number>;
protected zoom$: import("../state/state").ValueState<number>;
protected maxZoomOut$: import("../state/state").ValueState<any>;
protected maxZoomIn$: import("../state/state").ValueState<any>;
protected gridSize$: import("../state/state").ValueState<number>;
constructor(diagramEngine: DiagramEngine, id?: string, logPrefix?: string);
getNodes(): EntityMap<NodeModel>;
getNodesArray(): NodeModel[];
getNode(id: ID): NodeModel | undefined;
getLink(id: ID): LinkModel | undefined;
getLinks(): EntityMap<LinkModel>;
getLinksArray(): LinkModel[];
getAllPorts(options?: SelectOptions<PortModel>): Map<string, PortModel>;
/**
* Add a node to the diagram
* @returns Inserted Node
*/
addNode(node: NodeModel): NodeModel;
/**
* Delete a node from the diagram
*/
deleteNode(nodeOrId: NodeModel | string): void;
/**
* Get nodes as observable, use `.getValue()` for snapshot
*/
selectNodes(): Observable<EntityMap<NodeModel>>;
/**
* Add link
* @returns Newly created link
*/
addLink(link: LinkModel): LinkModel;
/**
* Delete link
*/
deleteLink(linkOrId: LinkModel | string): void;
reset(): void;
/**
* Get links behaviour subject, use `.getValue()` for snapshot
*/
selectLinks(): Observable<EntityMap<LinkModel>>;
serialize(): SerializedDiagramModel;
setMaxZoomOut(maxZoomOut: number): void;
setMaxZoomIn(maxZoomIn: number): void;
getMaxZoomOut(): any;
getMaxZoomIn(): any;
setOffset(x: number, y: number): void;
setOffsetX(x: number): void;
getOffsetX(): number;
selectOffsetX(): Observable<number>;
setOffsetY(y: number): void;
getOffsetY(): number;
selectOffsetY(): Observable<number>;
setZoomLevel(z: number): void;
getZoomLevel(): number;
selectZoomLevel(): Observable<number>;
getDiagramEngine(): DiagramEngine;
clearSelection(ignore?: BaseModel | null): void;
getGridPosition({ x, y }: Coords): Coords;
getSelectedItems(...filters: BaseEntityType[]): BaseModel[];
addAll(...models: BaseModel[]): BaseModel<BaseEntity>[];
addLinks(links: LinkModel[]): void;
addNodes(nodes: NodeModel[]): void;
destroy(): void;
}