diff --git a/src/types/edge.ts b/src/types/edge.ts index ab373967..18a1a7a8 100644 --- a/src/types/edge.ts +++ b/src/types/edge.ts @@ -1,7 +1,35 @@ import { CSSProperties } from 'vue' -import { ArrowHeadType, Position, Element } from './flow' +import { Position, Element } from './flow' import { GraphNode } from './node' +export enum MarkerType { + Arrow = 'arrow', + ArrowClosed = 'arrowclosed', +} + +export interface EdgeMarker { + type: MarkerType + color?: string + width?: number + height?: number + markerUnits?: string + orient?: string + strokeWidth?: number +} + +export interface MarkerProps { + id: string + type: MarkerType + color?: string + width?: number + height?: number + markerUnits?: string + orient?: string + strokeWidth?: number +} + +export type EdgeMarkerType = string | EdgeMarker + export interface Edge extends Element { source: string target: string @@ -15,14 +43,16 @@ export interface Edge extends Element { labelBgPadding?: [number, number] labelBgBorderRadius?: number animated?: boolean - arrowHeadType?: ArrowHeadType - markerEndId?: string + markerStart?: EdgeMarkerType + markerEnd?: EdgeMarkerType updatable?: boolean } export interface GraphEdge extends Edge { sourceNode: GraphNode targetNode: GraphNode + selected?: boolean + z?: number } export interface EdgeProps { @@ -53,8 +83,9 @@ export interface EdgeProps { labelBgPadding?: [number, number] labelBgBorderRadius?: number animated?: boolean - arrowHeadType?: ArrowHeadType updatable?: boolean + markerStart?: EdgeMarkerType + markerEnd?: any } export interface SmoothStepEdgeProps extends EdgeProps { @@ -67,3 +98,35 @@ export interface EdgePositions { targetX: number targetY: number } + +export interface GetCenterParams { + sourceX: number + sourceY: number + targetX: number + targetY: number + sourcePosition?: Position + targetPosition?: Position +} + +export interface GetBezierPathParams { + sourceX: number + sourceY: number + sourcePosition?: Position + targetX: number + targetY: number + targetPosition?: Position + centerX?: number + centerY?: number +} + +export interface GetSmoothStepPathParams { + sourceX: number + sourceY: number + sourcePosition?: Position + targetX: number + targetY: number + targetPosition?: Position + borderRadius?: number + centerX?: number + centerY?: number +} diff --git a/src/types/flow.ts b/src/types/flow.ts index c78ce945..dfb6c399 100644 --- a/src/types/flow.ts +++ b/src/types/flow.ts @@ -53,11 +53,6 @@ export interface Rect extends Dimensions, XYPosition {} export type SnapGrid = [number, number] -export enum ArrowHeadType { - Arrow = 'arrow', - ArrowClosed = 'arrowclosed', -} - export enum BackgroundVariant { Lines = 'lines', Dots = 'dots', @@ -142,8 +137,7 @@ export interface FlowProps { defaultPosition?: [number, number] translateExtent?: CoordinateExtent nodeExtent?: CoordinateExtent - arrowHeadColor?: string - markerEndId?: string + defaultMarkerColor?: string zoomOnScroll?: boolean zoomOnPinch?: boolean panOnScroll?: boolean @@ -156,4 +150,4 @@ export interface FlowProps { loading?: string } -export type FlowOptions = FlowProps +export type FlowOptions = FlowProps