diff --git a/src/types/edge.ts b/src/types/edge.ts index f67435dc..bd990251 100644 --- a/src/types/edge.ts +++ b/src/types/edge.ts @@ -1,6 +1,7 @@ import { Component, CSSProperties, DefineComponent } from 'vue' import { ArrowHeadType, ElementId, Position } from './flow' import { EdgeTextProps } from './components' +import { SourceTargetNode } from './node' export interface Edge { id: ElementId @@ -32,6 +33,10 @@ export interface Edge { isHidden?: boolean } +export interface GraphEdge extends Edge { + sourceTargetNodes: SourceTargetNode +} + export interface EdgeProps extends Edge { sourceX: number sourceY: number diff --git a/src/types/flow.ts b/src/types/flow.ts index 6b322c56..d7e8c77e 100644 --- a/src/types/flow.ts +++ b/src/types/flow.ts @@ -1,17 +1,17 @@ import { CSSProperties } from 'vue' -import { Edge, EdgeTypes } from './edge' +import { Edge, EdgeTypes, GraphEdge } from './edge' import { NodeExtent, GraphNode, NodeTypes, TranslateExtent, Node } from './node' import { ConnectionLineType, ConnectionMode } from './connection' import { KeyCode, PanOnScrollMode } from './zoom' import { FlowStore } from './store' export type ElementId = string -export type FlowElement = GraphNode | Edge +export type FlowElement = GraphNode | GraphEdge export type FlowElements = FlowElement[] export type Elements = (Node | Edge)[] export type NextElements = { nextNodes: GraphNode[] - nextEdges: Edge[] + nextEdges: GraphEdge[] } export type Transform = [number, number, number] diff --git a/src/types/hooks.ts b/src/types/hooks.ts index 8bdd5785..d26b43f0 100644 --- a/src/types/hooks.ts +++ b/src/types/hooks.ts @@ -1,13 +1,13 @@ import { EventHook } from '@vueuse/core' import { FlowTransform, FlowInstance, FlowElements } from './flow' -import { Edge } from './edge' +import { GraphEdge } from './edge' import { Node } from './node' import { Connection, OnConnectStartParams } from './connection' export type FlowHook = EventHook export interface FlowEvents { - elementClick: { event: MouseEvent; element: Node | Edge } + elementClick: { event: MouseEvent; element: Node | GraphEdge } elementsRemove: FlowElements nodeDoubleClick: { event: MouseEvent; node: Node } nodeClick: { event: MouseEvent; node: Node } @@ -37,14 +37,14 @@ export interface FlowEvents { paneScroll: WheelEvent | undefined paneClick: MouseEvent paneContextMenu: MouseEvent - edgeUpdate: { edge: Edge; connection: Connection } - edgeContextMenu: { event: MouseEvent; edge: Edge } - edgeMouseEnter: { event: MouseEvent; edge: Edge } - edgeMouseMove: { event: MouseEvent; edge: Edge } - edgeMouseLeave: { event: MouseEvent; edge: Edge } - edgeDoubleClick: { event: MouseEvent; edge: Edge } - edgeClick: { event: MouseEvent; edge: Edge } - edgeUpdateStart: { event: MouseEvent; edge: Edge } + edgeUpdate: { edge: GraphEdge; connection: Connection } + edgeContextMenu: { event: MouseEvent; edge: GraphEdge } + edgeMouseEnter: { event: MouseEvent; edge: GraphEdge } + edgeMouseMove: { event: MouseEvent; edge: GraphEdge } + edgeMouseLeave: { event: MouseEvent; edge: GraphEdge } + edgeDoubleClick: { event: MouseEvent; edge: GraphEdge } + edgeClick: { event: MouseEvent; edge: GraphEdge } + edgeUpdateStart: { event: MouseEvent; edge: GraphEdge } edgeUpdateEnd: MouseEvent } diff --git a/src/types/store.ts b/src/types/store.ts index 28695b29..f714f590 100644 --- a/src/types/store.ts +++ b/src/types/store.ts @@ -21,7 +21,7 @@ import { OnConnectStopFunc, SetConnectionId, } from './connection' -import { Edge, EdgeComponent } from './edge' +import { EdgeComponent, GraphEdge } from './edge' import { NodeComponent, NodeDiffUpdate, NodeDimensionUpdate, NodeExtent, GraphNode, NodePosUpdate, TranslateExtent } from './node' import { D3Selection, D3Zoom, D3ZoomHandler, InitD3ZoomPayload } from './zoom' import { FlowHooks } from './hooks' @@ -29,7 +29,7 @@ import { FlowHooks } from './hooks' export interface FlowState extends FlowOptions { elements: FlowElements nodes: GraphNode[] - edges: Edge[] + edges: GraphEdge[] selectedElements?: FlowElements selectedNodesBbox: Rect @@ -99,7 +99,7 @@ export interface FlowGetters { getEdgeTypes: () => Record getNodeTypes: () => Record getNodes: () => GraphNode[] - getEdges: () => Edge[] + getEdges: () => GraphEdge[] } export type FlowStore = Store