feat(types): Add GraphEdge type

* GraphEdges are edges that have been parsed and have a sourceTargetNode property

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
Braks
2021-11-23 17:46:55 +01:00
parent 091f3f82c2
commit cddf875b6d
4 changed files with 21 additions and 16 deletions
+5
View File
@@ -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<T = any> {
id: ElementId
@@ -32,6 +33,10 @@ export interface Edge<T = any> {
isHidden?: boolean
}
export interface GraphEdge<T = any> extends Edge<T> {
sourceTargetNodes: SourceTargetNode
}
export interface EdgeProps<T = any> extends Edge<T> {
sourceX: number
sourceY: number
+3 -3
View File
@@ -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<T = any> = GraphNode<T> | Edge<T>
export type FlowElement<T = any> = GraphNode<T> | GraphEdge<T>
export type FlowElements<T = any> = FlowElement<T>[]
export type Elements<T = any> = (Node<T> | Edge<T>)[]
export type NextElements = {
nextNodes: GraphNode[]
nextEdges: Edge[]
nextEdges: GraphEdge[]
}
export type Transform = [number, number, number]
+10 -10
View File
@@ -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<T = any> = EventHook<T>
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
}
+3 -3
View File
@@ -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<string, EdgeComponent>
getNodeTypes: () => Record<string, NodeComponent>
getNodes: () => GraphNode[]
getEdges: () => Edge[]
getEdges: () => GraphEdge[]
}
export type FlowStore = Store<string, FlowState, FlowGetters, FlowActions>