UNPKG

@swimlane/ngx-graph

Version:
51 lines (50 loc) 1.5 kB
import { Layout } from '../../models/layout.model'; import { Graph } from '../../models/graph.model'; import { Node } from '../../models/node.model'; import { Edge } from '../../models/edge.model'; import { Observable, Subject } from 'rxjs'; import { NodePosition } from '../../models'; export interface D3ForceDirectedSettings { force?: any; forceLink?: any; } export interface D3Node { id?: string; x: number; y: number; width?: number; height?: number; fx?: number; fy?: number; } export interface D3Edge { source: string | D3Node; target: string | D3Node; midPoint: NodePosition; } export interface D3Graph { nodes: D3Node[]; edges: D3Edge[]; } export interface MergedNode extends D3Node, Node { id: string; } export declare function toD3Node(maybeNode: string | D3Node): D3Node; export declare class D3ForceDirectedLayout implements Layout { defaultSettings: D3ForceDirectedSettings; settings: D3ForceDirectedSettings; inputGraph: Graph; outputGraph: Graph; d3Graph: D3Graph; outputGraph$: Subject<Graph>; draggingStart: { x: number; y: number; }; run(graph: Graph): Observable<Graph>; updateEdge(graph: Graph, edge: Edge): Observable<Graph>; d3GraphToOutputGraph(d3Graph: D3Graph): Graph; onDragStart(draggingNode: Node, $event: MouseEvent): void; onDrag(draggingNode: Node, $event: MouseEvent): void; onDragEnd(draggingNode: Node, $event: MouseEvent): void; }