/** Angular2 */ import * as ng from "@angular/core"; /** Core */ import { CoreComponent } from "cmf.core/src/core"; /** Joint */ import "graphlib"; import "dagre"; /** Model */ import { MarkerType, MarkerDef, Vector2D, DiagramModel, DiagramNodeBase, DiagramNode, DiagramNodeWithPorts, LinkJoint, LinkLabel, DiagramLink, LayoutOptions } from "./diagramModel"; export { MarkerType, MarkerDef, Vector2D, DiagramModel, DiagramNodeBase, DiagramNode, DiagramNodeWithPorts, LinkJoint, LinkLabel, DiagramLink, LayoutOptions }; /** * Marker type names */ export declare const MARKER_TYPE_NAMES: string[]; /** * LinkPropertyType */ export declare enum LinkPropertyType { LABEL = 0, IS_DASHED = 1, IS_SMOOTH = 2, LINE_WIDTH = 3, SOURCE_COLOR = 4, SOURCE_MARKER = 5, TARGET_COLOR = 6, TARGET_MARKER = 7 } /** * @whatItDoes * Diagram component * * @howToUse * This component is used with the inputs and outputs mentioned below. * Note that Diagram component grows to fill all available space defined by the parent. It does not have a default size. * * ### Inputs * `DiagramModel` : **data** - The diagram data model (see DiagramModel in the top) ; * `boolean` : **editable** - If the diagram is editable (by default is _true_) ; * `boolean` : **link-appearance-editable** - If the individual link appearance can be changed (by default is _true_) . * * ### Outputs * `DiagramModel` : **dataChanged** - Triggered when the _Diagram_ _Model_ change . * * ### Example * To use the component, assume this HTML Template as an example: * * ```HTML * * * ``` * */ export declare class Diagram extends CoreComponent implements ng.OnInit, ng.OnChanges, ng.AfterViewInit { private _elementRef; private _loader; private _ngZone; private _changeDetector; /** * Diagram holder div */ private _diagramHolder; /** * Diagram holder element query */ private _diagramContainerElementQuery; /** * Diagram div element ref, used */ private _diagram; /** * Marker types */ _markerTypesForCombobox: any[]; /** * Link properties object for link editor */ _linkProperties: { id: string; label: string; isDashed: boolean; smooth: boolean; width: number; sourceMarker: any; targetMarker: any; }; /** * Link editor properties */ _linkEditor: { enabled: boolean; x: number; y: number; mouseDownX: number; mouseDownY: number; }; /** * Diagram Graph Paper */ private _paper; /** * Internal data model */ private _data; /** * Link current being grabbed */ private _grabbedLink; /** * MouseOperationMode */ private _mouseOperationMode; /** * Data model */ data: DiagramModel; /** * If diagram is editable */ editable: boolean; /** * If links appearance is editable */ linkAppearanceEditable: boolean; /** * Data changed event */ dataChanged: ng.EventEmitter; /** * Constructor */ constructor(_elementRef: ng.ElementRef, _loader: ng.NgModuleFactoryLoader, _ngZone: ng.NgZone, _changeDetector: ng.ChangeDetectorRef); /** * On mouse move */ private onMouseMove; /** * On mouse up */ onMouseUp(event: any): void; /** * On mouse down on "new link" tool of any node */ private onNewLinkNodeToolMousedown; /** * On node "delete"" tool clicked */ private onDeleteNodeToolClick; /** * On mouse down on link editor */ onLinkEditorMouseDown(event: any): void; /** * Open link properties editor */ private openLinkProperties; /** * Close link properties editor */ closeLinkProperties(event: any): void; /** * On link property change while editing */ onLinkPropertyChange(type: LinkPropertyType, value: any): void; /** * On graph model changed */ private onModelChanged; /** * On element remove */ private onModelRemoveElement; /** * On element add */ private onModelAddElement; /** * Emit data changes */ private emitChanges; /** * Get element of the data model by id */ private getDiagramElementById; /** * New Node */ private newNode; /** * New link */ private newLink; /** * Remove element from graph */ private removeElement; /** * Build diagram content using a data model */ private buildDiagramFromDataModel; /** * Get Marker SVG */ private getMarkerSVG; /** * Returns the svg properties object from a MarkerDef input object with the parameters */ private getMarkerProperties; /** * Add a new node to the diagram * @param node the new node definition * @returns the modified data model after the operation */ addNode(node: DiagramNode): string; /** * Add a new link to the diagram * @param node the new link definition * @returns the modified data model after the operation */ addLink(link: DiagramLink): string; /** * Removes a node from the diagram * @param id the id of the node to remove * @returns the modified data model after the operation */ removeNode(id: string): boolean; /** * Removes a link from the diagram * @param id the id of the link to remove * @returns the modified data model after the operation */ removeLink(id: string): boolean; /** * Applies an auto-layout to the diagram to rearrange the items * @param * @returns the modified data model after the operation */ applyLayout(options: LayoutOptions): DiagramModel; /** * After view init */ ngOnInit(): void; /** * After view init */ ngAfterViewInit(): void; /** * On changes */ ngOnChanges(changes: any): void; } /** * Module declaration */ export declare class DiagramModule { }