From bf519e1f75e90aa5292aade1257bac8296730b6f Mon Sep 17 00:00:00 2001 From: thomasmountford Date: Mon, 22 Aug 2022 20:17:31 +0200 Subject: [PATCH] Changed updatable prop from boolean to type Updatable Wrapper.ts now checks for either true, 'target' or 'source' true enables both markers on edge to be draggable 'target' enables target 'source' enables source --- .../vue-flow/src/components/Edges/Wrapper.ts | 66 +++++++++---------- packages/vue-flow/src/types/edge.ts | 2 + 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/vue-flow/src/components/Edges/Wrapper.ts b/packages/vue-flow/src/components/Edges/Wrapper.ts index 896e3285..4b52eba8 100644 --- a/packages/vue-flow/src/components/Edges/Wrapper.ts +++ b/packages/vue-flow/src/components/Edges/Wrapper.ts @@ -1,6 +1,6 @@ import type { CSSProperties, Component, FunctionalComponent, VNode } from 'vue' import EdgeAnchor from './EdgeAnchor' -import type { EdgeComponent, EdgeEventsOn, EdgeMarkerType, EdgeTextProps, GraphNode } from '~/types' +import type { EdgeComponent, EdgeEventsOn, EdgeMarkerType, EdgeTextProps, GraphNode, Updatable } from '~/types' import { ConnectionMode, Position } from '~/types' import { getEdgePositions, getHandle, getMarkerId } from '~/utils' @@ -15,7 +15,7 @@ interface Props { targetHandleId?: string | null sourceHandleId?: string | null selectable?: boolean - updatable?: boolean + updatable?: Updatable label?: string | VNode | Component | Object data?: any events: EdgeEventsOn @@ -155,38 +155,36 @@ const Wrapper: FunctionalComponent = function ( sourceHandleId, targetHandleId, }), - updatable - ? [ - h( - 'g', - { - onMousedown: onEdgeUpdaterSourceMouseDown, - onMouseenter: onEdgeUpdaterMouseEnter, - onMouseout: onEdgeUpdaterMouseOut, - }, - h(EdgeAnchor, { - position: sourcePosition, - centerX: sourceX, - centerY: sourceY, - radius: edgeUpdaterRadius, - }), - ), - h( - 'g', - { - onMousedown: onEdgeUpdaterTargetMouseDown, - onMouseenter: onEdgeUpdaterMouseEnter, - onMouseout: onEdgeUpdaterMouseOut, - }, - h(EdgeAnchor, { - position: targetPosition, - centerX: targetX, - centerY: targetY, - radius: edgeUpdaterRadius, - }), - ), - ] - : null, + [ + updatable == 'source' || updatable == true ? [ h( + 'g', + { + onMousedown: onEdgeUpdaterSourceMouseDown, + onMouseenter: onEdgeUpdaterMouseEnter, + onMouseout: onEdgeUpdaterMouseOut, + }, + h(EdgeAnchor, { + position: sourcePosition, + centerX: sourceX, + centerY: sourceY, + radius: edgeUpdaterRadius, + }), + )] : null, + updatable == 'target' || updatable == true ? [ h( + 'g', + { + onMousedown: onEdgeUpdaterTargetMouseDown, + onMouseenter: onEdgeUpdaterMouseEnter, + onMouseout: onEdgeUpdaterMouseOut, + }, + h(EdgeAnchor, { + position: targetPosition, + centerX: targetX, + centerY: targetY, + radius: edgeUpdaterRadius, + }), + )] : null, + ], ], ) } diff --git a/packages/vue-flow/src/types/edge.ts b/packages/vue-flow/src/types/edge.ts index db0ba3de..de962fba 100644 --- a/packages/vue-flow/src/types/edge.ts +++ b/packages/vue-flow/src/types/edge.ts @@ -43,6 +43,8 @@ export interface MarkerProps { export type EdgeMarkerType = string | MarkerType | EdgeMarker +export type Updatable = boolean | 'target' | 'source' + export interface Edge = any> { /** Unique edge id */ id: string