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
This commit is contained in:
@@ -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<EdgeTextProps> | Object
|
||||
data?: any
|
||||
events: EdgeEventsOn
|
||||
@@ -155,38 +155,36 @@ const Wrapper: FunctionalComponent<Props> = 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,
|
||||
],
|
||||
],
|
||||
)
|
||||
}
|
||||
|
||||
@@ -43,6 +43,8 @@ export interface MarkerProps {
|
||||
|
||||
export type EdgeMarkerType = string | MarkerType | EdgeMarker
|
||||
|
||||
export type Updatable = boolean | 'target' | 'source'
|
||||
|
||||
export interface Edge<Data = ElementData, CustomEvents extends Record<string, CustomEvent> = any> {
|
||||
/** Unique edge id */
|
||||
id: string
|
||||
|
||||
Reference in New Issue
Block a user