ngx-graph-new
Version:
Modify the ngx-chart version is used
317 lines (316 loc) • 7.17 kB
TypeScript
import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
import { BaseChartComponent, ColorHelper, ViewDimensions } from '@swimlane/ngx-charts';
import 'd3-transition';
import { Observable, Subscription } from 'rxjs';
/**
* Matrix
*/
export interface Matrix {
a: number;
b: number;
c: number;
d: number;
e: number;
f: number;
}
export declare class GraphComponent extends BaseChartComponent implements OnInit, OnDestroy, AfterViewInit {
legend: boolean;
nodes: any[];
links: any[];
activeEntries: any[];
orientation: string;
curve: any;
draggingEnabled: boolean;
nodeHeight: number;
nodeMaxHeight: number;
nodeMinHeight: number;
nodeWidth: number;
nodeMinWidth: number;
nodeMaxWidth: number;
panningEnabled: boolean;
enableZoom: boolean;
zoomSpeed: number;
minZoomLevel: number;
maxZoomLevel: number;
autoZoom: boolean;
panOnZoom: boolean;
autoCenter: boolean;
update$: Observable<any>;
center$: Observable<any>;
zoomToFit$: Observable<any>;
activate: EventEmitter<any>;
deactivate: EventEmitter<any>;
linkTemplate: TemplateRef<any>;
nodeTemplate: TemplateRef<any>;
defsTemplate: TemplateRef<any>;
chart: ElementRef;
nodeElements: QueryList<ElementRef>;
linkElements: QueryList<ElementRef>;
subscriptions: Subscription[];
colors: ColorHelper;
dims: ViewDimensions;
margin: number[];
results: any[];
seriesDomain: any;
transform: string;
legendOptions: any;
isPanning: boolean;
isDragging: boolean;
draggingNode: any;
initialized: boolean;
graph: any;
graphDims: any;
_nodes: any[];
_links: any[];
_oldLinks: any[];
transformationMatrix: Matrix;
groupResultsBy: (node: any) => string;
/**
* Get the current zoom level
*/
/**
* Set the current zoom level
*/
zoomLevel: number;
/**
* Get the current `x` position of the graph
*/
/**
* Set the current `x` position of the graph
*/
panOffsetX: number;
/**
* Get the current `y` position of the graph
*/
/**
* Set the current `y` position of the graph
*/
panOffsetY: number;
/**
* Angular lifecycle event
*
*
* @memberOf GraphComponent
*/
ngOnInit(): void;
/**
* Angular lifecycle event
*
*
* @memberOf GraphComponent
*/
ngOnDestroy(): void;
/**
* Angular lifecycle event
*
*
* @memberOf GraphComponent
*/
ngAfterViewInit(): void;
/**
* Base class update implementation for the dag graph
*
*
* @memberOf GraphComponent
*/
update(): void;
/**
* Draws the graph using dagre layouts
*
*
* @memberOf GraphComponent
*/
draw(): void;
/**
* Redraws the lines when dragged or viewport updated
*
* @param {boolean} [animate=true]
*
* @memberOf GraphComponent
*/
redrawLines(_animate?: boolean): void;
/**
* Creates the dagre graph engine
*
*
* @memberOf GraphComponent
*/
createGraph(): void;
/**
* Calculate the text directions / flipping
*
* @param {any} link
*
* @memberOf GraphComponent
*/
calcDominantBaseline(link: any): void;
/**
* Generate the new line path
*
* @param {any} points
* @returns {*}
*
* @memberOf GraphComponent
*/
generateLine(points: any): any;
/**
* Zoom was invoked from event
*
* @param {MouseEvent} $event
* @param {any} direction
*
* @memberOf GraphComponent
*/
onZoom($event: MouseEvent, direction: any): void;
/**
* Pan by x/y
*
* @param x
* @param y
*/
pan(x: number, y: number): void;
/**
* Pan to a fixed x/y
*
* @param x
* @param y
*/
panTo(x: number, y: number): void;
/**
* Zoom by a factor
*
* @param factor Zoom multiplicative factor (1.1 for zooming in 10%, for instance)
*/
zoom(factor: number): void;
/**
* Zoom to a fixed level
*
* @param level
*/
zoomTo(level: number): void;
/**
* Pan was invoked from event
*
* @param {any} event
*
* @memberOf GraphComponent
*/
onPan(event: any): void;
/**
* Drag was invoked from an event
*
* @param {any} event
*
* @memberOf GraphComponent
*/
onDrag(event: any): void;
/**
* Update the entire view for the new pan position
*
*
* @memberOf GraphComponent
*/
updateTransform(): void;
/**
* Node was clicked
*
* @param {any} event
* @returns {void}
*
* @memberOf GraphComponent
*/
onClick(event: any): void;
/**
* Node was focused
*
* @param {any} event
* @returns {void}
*
* @memberOf GraphComponent
*/
onActivate(event: any): void;
/**
* Node was defocused
*
* @param {any} event
*
* @memberOf GraphComponent
*/
onDeactivate(event: any): void;
/**
* Get the domain series for the nodes
*
* @returns {any[]}
*
* @memberOf GraphComponent
*/
getSeriesDomain(): any[];
/**
* Tracking for the link
*
* @param {any} index
* @param {any} link
* @returns {*}
*
* @memberOf GraphComponent
*/
trackLinkBy(index: any, link: any): any;
/**
* Tracking for the node
*
* @param {any} index
* @param {any} node
* @returns {*}
*
* @memberOf GraphComponent
*/
trackNodeBy(index: any, node: any): any;
/**
* Sets the colors the nodes
*
*
* @memberOf GraphComponent
*/
setColors(): void;
/**
* Gets the legend options
*
* @returns {*}
*
* @memberOf GraphComponent
*/
getLegendOptions(): any;
/**
* On mouse move event, used for panning and dragging.
*
* @param {MouseEvent} $event
*
* @memberOf GraphComponent
*/
onMouseMove($event: MouseEvent): void;
/**
* On mouse up event to disable panning/dragging.
*
* @param {MouseEvent} $event
*
* @memberOf GraphComponent
*/
onMouseUp($event: MouseEvent): void;
/**
* On node mouse down to kick off dragging
*
* @param {MouseEvent} event
* @param {*} node
*
* @memberOf GraphComponent
*/
onNodeMouseDown(event: MouseEvent, node: any): void;
/**
* Center the graph in the viewport
*/
center(): void;
/**
* Zooms to fit the entier graph
*/
zoomToFit(): void;
}