feat(nodes): Add teleport option to nodes
# What's changed? * Add option to set a teleport target to nodes
This commit is contained in:
@@ -246,38 +246,40 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div
|
<Teleport :disabled="!node.teleport" :to="node.teleport">
|
||||||
ref="nodeElement"
|
<div
|
||||||
:class="getClass"
|
ref="nodeElement"
|
||||||
:style="getStyle"
|
:class="getClass"
|
||||||
:data-id="id"
|
:style="getStyle"
|
||||||
@mouseenter="onMouseEnter"
|
:data-id="id"
|
||||||
@mousemove="onMouseMove"
|
@mouseenter="onMouseEnter"
|
||||||
@mouseleave="onMouseLeave"
|
@mousemove="onMouseMove"
|
||||||
@contextmenu="onContextMenu"
|
@mouseleave="onMouseLeave"
|
||||||
@click="onSelectNode"
|
@contextmenu="onContextMenu"
|
||||||
@dblclick="onDoubleClick"
|
@click="onSelectNode"
|
||||||
>
|
@dblclick="onDoubleClick"
|
||||||
<component
|
>
|
||||||
:is="type"
|
<component
|
||||||
:id="node.id"
|
:is="type"
|
||||||
:type="node.type"
|
:id="node.id"
|
||||||
:data="node.data"
|
:type="node.type"
|
||||||
:selected="!!node.selected"
|
:data="node.data"
|
||||||
:connectable="connectable"
|
:selected="!!node.selected"
|
||||||
:position="node.position"
|
:connectable="connectable"
|
||||||
:computed-position="node.computedPosition"
|
:position="node.position"
|
||||||
:dimensions="node.dimensions"
|
:computed-position="node.computedPosition"
|
||||||
:is-valid-target-pos="node.isValidTargetPos"
|
:dimensions="node.dimensions"
|
||||||
:is-valid-source-pos="node.isValidSourcePos"
|
:is-valid-target-pos="node.isValidTargetPos"
|
||||||
:parent-node="node.parentNode"
|
:is-valid-source-pos="node.isValidSourcePos"
|
||||||
:dragging="!!node.dragging"
|
:parent-node="node.parentNode"
|
||||||
:z-index="node.computedPosition.z"
|
:dragging="!!node.dragging"
|
||||||
:target-position="node.targetPosition"
|
:z-index="node.computedPosition.z"
|
||||||
:source-position="node.sourcePosition"
|
:target-position="node.targetPosition"
|
||||||
:label="node.label"
|
:source-position="node.sourcePosition"
|
||||||
:drag-handle="node.dragHandle"
|
:label="node.label"
|
||||||
:node-element="nodeElement"
|
:drag-handle="node.dragHandle"
|
||||||
/>
|
:node-element="nodeElement"
|
||||||
</div>
|
/>
|
||||||
|
</div>
|
||||||
|
</Teleport>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Component, VNode } from 'vue'
|
import type { Component, TeleportProps, VNode } from 'vue'
|
||||||
import type { BaseElement, Dimensions, ElementData, Position, SnapGrid, XYPosition, XYZPosition } from './flow'
|
import type { BaseElement, Dimensions, ElementData, Position, SnapGrid, XYPosition, XYZPosition } from './flow'
|
||||||
import type { DefaultNodeTypes, NodeComponent } from './components'
|
import type { DefaultNodeTypes, NodeComponent } from './components'
|
||||||
import type { HandleElement, ValidConnectionFunc } from './handle'
|
import type { HandleElement, ValidConnectionFunc } from './handle'
|
||||||
@@ -58,6 +58,9 @@ export interface Node<Data = ElementData> extends BaseElement<Data> {
|
|||||||
|
|
||||||
/** overwrites current node type */
|
/** overwrites current node type */
|
||||||
template?: NodeComponent
|
template?: NodeComponent
|
||||||
|
|
||||||
|
/** teleports node element to specified dom location */
|
||||||
|
teleport?: TeleportProps['to']
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GraphNode<Data = ElementData> extends Node<Data> {
|
export interface GraphNode<Data = ElementData> extends Node<Data> {
|
||||||
|
|||||||
Reference in New Issue
Block a user