From 608f797527a3378836b2a3235eab8486668a33e1 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Thu, 29 Dec 2022 08:56:48 +0100 Subject: [PATCH] fix(core,edges): correct edge component prop types Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com> --- .../core/src/components/Edges/BezierEdge.ts | 9 ++++++-- .../src/components/Edges/SimpleBezierEdge.ts | 8 +++++-- .../src/components/Edges/SmoothStepEdge.ts | 8 ++++++- .../core/src/components/Edges/StepEdge.ts | 8 +++++-- .../core/src/components/Edges/StraightEdge.ts | 6 +++-- packages/core/src/components/Edges/index.ts | 10 ++++---- packages/core/src/index.ts | 5 ++++ packages/core/src/types/edge.ts | 23 ++----------------- packages/core/src/types/node.ts | 2 ++ 9 files changed, 44 insertions(+), 35 deletions(-) diff --git a/packages/core/src/components/Edges/BezierEdge.ts b/packages/core/src/components/Edges/BezierEdge.ts index 09467919..5994de15 100644 --- a/packages/core/src/components/Edges/BezierEdge.ts +++ b/packages/core/src/components/Edges/BezierEdge.ts @@ -1,9 +1,14 @@ import type { FunctionalComponent } from 'vue' import BaseEdge from './BaseEdge' import { Position } from '~/types' -import type { EdgeProps } from '~/types' +import type { BaseEdgeProps, BezierPathOptions, EdgePositions, EdgeProps } from '~/types' -const BezierEdge: FunctionalComponent = function ( +export type BezierEdgeProps = EdgePositions & + BezierPathOptions & + Omit & + Pick + +const BezierEdge: FunctionalComponent = function ( { sourcePosition = Position.Bottom, targetPosition = Position.Top, ...props }, { attrs }, ) { diff --git a/packages/core/src/components/Edges/SimpleBezierEdge.ts b/packages/core/src/components/Edges/SimpleBezierEdge.ts index f639c525..2f616162 100644 --- a/packages/core/src/components/Edges/SimpleBezierEdge.ts +++ b/packages/core/src/components/Edges/SimpleBezierEdge.ts @@ -1,9 +1,13 @@ import type { FunctionalComponent } from 'vue' import BaseEdge from './BaseEdge' import { Position } from '~/types' -import type { EdgeProps } from '~/types' +import type { BaseEdgeProps, EdgePositions, EdgeProps } from '~/types' -const SimpleBezierEdge: FunctionalComponent = function ( +export type SimpleBezierEdgeProps = EdgePositions & + Omit & + Pick + +const SimpleBezierEdge: FunctionalComponent = function ( { sourcePosition = Position.Bottom, targetPosition = Position.Top, ...props }, { attrs }, ) { diff --git a/packages/core/src/components/Edges/SmoothStepEdge.ts b/packages/core/src/components/Edges/SmoothStepEdge.ts index ce1fc546..d9916eef 100644 --- a/packages/core/src/components/Edges/SmoothStepEdge.ts +++ b/packages/core/src/components/Edges/SmoothStepEdge.ts @@ -1,8 +1,13 @@ import type { FunctionalComponent } from 'vue' import BaseEdge from './BaseEdge' -import type { SmoothStepEdgeProps } from '~/types' +import type { BaseEdgeProps, EdgePositions, EdgeProps, SmoothStepPathOptions } from '~/types' import { Position } from '~/types' +export type SmoothStepEdgeProps = EdgePositions & + Omit & + Pick & + SmoothStepPathOptions + const SmoothStepEdge: FunctionalComponent = function ( { sourcePosition = Position.Bottom, targetPosition = Position.Top, ...props }, { attrs }, @@ -39,6 +44,7 @@ SmoothStepEdge.props = [ 'markerEnd', 'markerStart', 'interactionWidth', + 'offset', ] SmoothStepEdge.inheritAttrs = false diff --git a/packages/core/src/components/Edges/StepEdge.ts b/packages/core/src/components/Edges/StepEdge.ts index 376bf14b..9a8d3d88 100644 --- a/packages/core/src/components/Edges/StepEdge.ts +++ b/packages/core/src/components/Edges/StepEdge.ts @@ -1,8 +1,12 @@ import type { FunctionalComponent } from 'vue' import SmoothStepEdge from './SmoothStepEdge' -import type { EdgeProps } from '~/types' +import type { BaseEdgeProps, EdgePositions, EdgeProps } from '~/types' -const StepEdge: FunctionalComponent = function (props, { attrs }) { +export type StepEdgeProps = EdgePositions & + Omit & + Pick + +const StepEdge: FunctionalComponent = function (props, { attrs }) { return h(SmoothStepEdge, { ...props, ...attrs, borderRadius: 0 }) } diff --git a/packages/core/src/components/Edges/StraightEdge.ts b/packages/core/src/components/Edges/StraightEdge.ts index 06b477aa..e36028dd 100644 --- a/packages/core/src/components/Edges/StraightEdge.ts +++ b/packages/core/src/components/Edges/StraightEdge.ts @@ -1,8 +1,10 @@ import type { FunctionalComponent } from 'vue' import BaseEdge from './BaseEdge' -import type { EdgeProps } from '~/types' +import type { BaseEdgeProps, EdgePositions } from '~/types' -const StraightEdge: FunctionalComponent = function (props, { attrs }) { +export type StraightEdgeProps = EdgePositions & Omit + +const StraightEdge: FunctionalComponent = function (props, { attrs }) { const [path, labelX, labelY] = getStraightPath(props) return h(BaseEdge, { diff --git a/packages/core/src/components/Edges/index.ts b/packages/core/src/components/Edges/index.ts index 9e04e9b8..67e61b69 100644 --- a/packages/core/src/components/Edges/index.ts +++ b/packages/core/src/components/Edges/index.ts @@ -1,9 +1,9 @@ export { default as BaseEdge } from './BaseEdge' -export { default as BezierEdge } from './BezierEdge' -export { default as SimpleBezierEdge } from './SimpleBezierEdge' -export { default as StepEdge } from './StepEdge' -export { default as SmoothStepEdge } from './SmoothStepEdge' -export { default as StraightEdge } from './StraightEdge' +export { default as BezierEdge, BezierEdgeProps } from './BezierEdge' +export { default as SimpleBezierEdge, SimpleBezierEdgeProps } from './SimpleBezierEdge' +export { default as StepEdge, StepEdgeProps } from './StepEdge' +export { default as SmoothStepEdge, SmoothStepEdgeProps } from './SmoothStepEdge' +export { default as StraightEdge, StraightEdgeProps } from './StraightEdge' export { default as EdgeAnchor } from './EdgeAnchor' export { default as EdgeText } from './EdgeText.vue' export { default as EdgeWrapper } from './EdgeWrapper' diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 7f5bc80e..eff9e555 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -11,10 +11,15 @@ export { default as Panel } from './components/Panel/Panel.vue' export { StraightEdge, + StraightEdgeProps, StepEdge, + StepEdgeProps, BezierEdge, + BezierEdgeProps, SimpleBezierEdge, + SimpleBezierEdgeProps, SmoothStepEdge, + SmoothStepEdgeProps, BaseEdge, EdgeText, EdgeLabelRenderer, diff --git a/packages/core/src/types/edge.ts b/packages/core/src/types/edge.ts index f7a50188..b81f4ef5 100644 --- a/packages/core/src/types/edge.ts +++ b/packages/core/src/types/edge.ts @@ -154,17 +154,13 @@ export type GraphEdge { +export interface EdgeProps extends EdgeLabelOptions, EdgePositions { id: string sourceNode: GraphNode targetNode: GraphNode type?: keyof DefaultEdgeTypes | string label?: string | VNode | Component | Object style?: CSSProperties - sourceX: number - sourceY: number - targetX: number - targetY: number selected?: boolean sourcePosition: Position targetPosition: Position @@ -172,11 +168,6 @@ export interface EdgeProps { targetHandleId?: string source: string target: string - labelStyle?: CSSProperties - labelShowBg?: boolean - labelBgStyle?: any - labelBgPadding?: [number, number] - labelBgBorderRadius?: number animated?: boolean updatable?: boolean markerStart: string @@ -188,21 +179,11 @@ export interface EdgeProps { events: EdgeEventsOn } -/** these props are passed to smooth step edges */ -export interface SmoothStepEdgeProps extends Omit, 'type'> { - borderRadius?: number -} - -export interface BaseEdgeProps { +export interface BaseEdgeProps extends EdgeLabelOptions { labelX?: number labelY?: number path: string label?: any - labelStyle?: any - labelShowBg?: boolean - labelBgStyle?: any - labelBgPadding?: [number, number] - labelBgBorderRadius?: number markerStart?: string markerEnd?: string interactionWidth?: number diff --git a/packages/core/src/types/node.ts b/packages/core/src/types/node.ts index 93ddc202..149cf484 100644 --- a/packages/core/src/types/node.ts +++ b/packages/core/src/types/node.ts @@ -34,8 +34,10 @@ export interface Node