update(nodes): Add draggable,selectable and connectable as props to nodes

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
Braks
2021-12-20 19:29:52 +01:00
parent e91188de5c
commit 947baefa02
3 changed files with 18 additions and 20 deletions
@@ -32,7 +32,6 @@ export default {
:selectable="typeof node.selectable === 'undefined' ? store.elementsSelectable : node.selectable" :selectable="typeof node.selectable === 'undefined' ? store.elementsSelectable : node.selectable"
:connectable="typeof node.connectable === 'undefined' ? store.nodesConnectable : node.connectable" :connectable="typeof node.connectable === 'undefined' ? store.nodesConnectable : node.connectable"
:snap-grid="snapGrid(node)" :snap-grid="snapGrid(node)"
:select-nodes-on-drag="store.selectNodesOnDrag"
> >
<template #default="nodeProps"> <template #default="nodeProps">
<slot :name="`node-${node.type}`" v-bind="nodeProps"></slot> <slot :name="`node-${node.type}`" v-bind="nodeProps"></slot>
+13 -19
View File
@@ -26,19 +26,24 @@ export interface Node<T = any> extends Element<T> {
} }
export interface GraphNode<T = any> extends Node<T> { export interface GraphNode<T = any> extends Node<T> {
handleBounds: { computedPosition: XYZPosition
source?: HandleElement[] handleBounds: HandleBounds
target?: HandleElement[] dimensions: Dimensions
}
parentNode?: GraphNode<T> parentNode?: GraphNode<T>
isParent?: boolean isParent?: boolean
computedPosition: XYZPosition
selected?: boolean selected?: boolean
dragging?: boolean dragging?: boolean
dimensions: Dimensions
} }
export interface NodeProps<T = any> { export interface NodeProps<T = any> {
id: string
dimensions: Dimensions
handleBounds: HandleBounds
computedPosition: XYZPosition
position: XYPosition
draggable?: boolean
selectable?: boolean
connectable?: boolean
label?: label?:
| string | string
| { | {
@@ -48,26 +53,15 @@ export interface NodeProps<T = any> {
class?: string class?: string
style?: CSSProperties style?: CSSProperties
hidden?: boolean hidden?: boolean
id: string
type?: string type?: string
data?: T data?: T
selected?: boolean selected?: boolean
connectable?: boolean
targetPosition?: Position targetPosition?: Position
sourcePosition?: Position sourcePosition?: Position
dragging?: boolean dragging?: boolean
isValidTargetPos?: ValidConnectionFunc isValidTargetPos?: ValidConnectionFunc
isValidSourcePos?: ValidConnectionFunc isValidSourcePos?: ValidConnectionFunc
handleBounds: { parentNode?: GraphNode<T>[]
source?: HandleElement[]
target?: HandleElement[]
}
parentNode?: GraphNode[]
isParent?: boolean isParent?: boolean
computedPosition: XYZPosition children?: Node<T>[]
position: XYPosition
draggable?: boolean
selectable?: boolean
children?: Node[]
dimensions?: Dimensions
} }
+5
View File
@@ -77,6 +77,9 @@ export const parseNode = (node: Node, nodeExtent: CoordinateExtent, defaults?: P
}, },
isParent: !!(node.children && node.children.length), isParent: !!(node.children && node.children.length),
dragging: false, dragging: false,
draggable: undefined,
selectable: undefined,
connectable: undefined,
...defaults, ...defaults,
} }
: defaults : defaults
@@ -101,6 +104,8 @@ export const parseEdge = (edge: Edge, defaults?: Partial<GraphEdge>): GraphEdge
sourceY: 0, sourceY: 0,
targetX: 0, targetX: 0,
targetY: 0, targetY: 0,
updatable: undefined,
selectable: undefined,
...defaults, ...defaults,
} }
: defaults : defaults