fix: label type in edges
This commit is contained in:
@@ -15,16 +15,8 @@ const onElementsRemove = (elementsToRemove: Elements) => (elements.value = remov
|
|||||||
const onConnect = (params: Connection | Edge) => (elements.value = addEdge(params, elements.value))
|
const onConnect = (params: Connection | Edge) => (elements.value = addEdge(params, elements.value))
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<Flow
|
<Flow :elements="elements" :min-zoom="0.2" @load="onLoad" @elements-remove="onElementsRemove" @connect="onConnect">
|
||||||
:elements="elements"
|
|
||||||
:min-zoom="0.2"
|
|
||||||
:default-zoom="1.5"
|
|
||||||
@load="onLoad"
|
|
||||||
@elements-remove="onElementsRemove"
|
|
||||||
@connect="onConnect"
|
|
||||||
>
|
|
||||||
<MiniMap />
|
<MiniMap />
|
||||||
<Controls />
|
<Controls />
|
||||||
<Background color="#aaa" :gap="8" />
|
|
||||||
</Flow>
|
</Flow>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -16,7 +16,12 @@ interface BezierEdgeProps<T = any> {
|
|||||||
animated?: boolean
|
animated?: boolean
|
||||||
sourcePosition?: Position
|
sourcePosition?: Position
|
||||||
targetPosition?: Position
|
targetPosition?: Position
|
||||||
label?: string | VNode
|
label?:
|
||||||
|
| string
|
||||||
|
| {
|
||||||
|
component: VNode
|
||||||
|
props?: any
|
||||||
|
}
|
||||||
labelStyle?: any
|
labelStyle?: any
|
||||||
labelShowBg?: boolean
|
labelShowBg?: boolean
|
||||||
labelBgStyle?: any
|
labelBgStyle?: any
|
||||||
|
|||||||
@@ -16,7 +16,12 @@ export interface EdgeSmoothStepProps<T = any> {
|
|||||||
animated?: boolean
|
animated?: boolean
|
||||||
sourcePosition?: Position
|
sourcePosition?: Position
|
||||||
targetPosition?: Position
|
targetPosition?: Position
|
||||||
label?: string | VNode
|
label?:
|
||||||
|
| string
|
||||||
|
| {
|
||||||
|
component: VNode
|
||||||
|
props?: any
|
||||||
|
}
|
||||||
labelStyle?: any
|
labelStyle?: any
|
||||||
labelShowBg?: boolean
|
labelShowBg?: boolean
|
||||||
labelBgStyle?: any
|
labelBgStyle?: any
|
||||||
|
|||||||
@@ -15,7 +15,12 @@ export interface EdgeStepProps<T = any> {
|
|||||||
animated?: boolean
|
animated?: boolean
|
||||||
sourcePosition?: Position
|
sourcePosition?: Position
|
||||||
targetPosition?: Position
|
targetPosition?: Position
|
||||||
label?: string | VNode
|
label?:
|
||||||
|
| string
|
||||||
|
| {
|
||||||
|
component: VNode
|
||||||
|
props?: any
|
||||||
|
}
|
||||||
labelStyle?: any
|
labelStyle?: any
|
||||||
labelShowBg?: boolean
|
labelShowBg?: boolean
|
||||||
labelBgStyle?: any
|
labelBgStyle?: any
|
||||||
|
|||||||
@@ -16,7 +16,12 @@ interface StraightEdgeProps<T = any> {
|
|||||||
animated?: boolean
|
animated?: boolean
|
||||||
sourcePosition?: Position
|
sourcePosition?: Position
|
||||||
targetPosition?: Position
|
targetPosition?: Position
|
||||||
label?: string | VNode
|
label?:
|
||||||
|
| string
|
||||||
|
| {
|
||||||
|
component: VNode
|
||||||
|
props?: any
|
||||||
|
}
|
||||||
labelStyle?: any
|
labelStyle?: any
|
||||||
labelShowBg?: boolean
|
labelShowBg?: boolean
|
||||||
labelBgStyle?: any
|
labelBgStyle?: any
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { CSSProperties } from 'vue'
|
import { computed, CSSProperties } from 'vue'
|
||||||
import MarkerDefinitions from './MarkerDefinitions.vue'
|
import MarkerDefinitions from './MarkerDefinitions.vue'
|
||||||
import Edge from '~/components/Edges/Edge.vue'
|
import Edge from '~/components/Edges/Edge.vue'
|
||||||
import ConnectionLine from '~/components/ConnectionLine/ConnectionLine.vue'
|
import ConnectionLine from '~/components/ConnectionLine/ConnectionLine.vue'
|
||||||
@@ -27,6 +27,7 @@ const sourceNode = computed(() => store.nodes.find((n) => n.id === store.connect
|
|||||||
const connectionLineVisible = computed(
|
const connectionLineVisible = computed(
|
||||||
() => store.nodesConnectable && sourceNode.value && store.connectionNodeId && store.connectionHandleType,
|
() => store.nodesConnectable && sourceNode.value && store.connectionNodeId && store.connectionHandleType,
|
||||||
)
|
)
|
||||||
|
const edges = computed(() => store.edges.filter((edge) => !edge.isHidden))
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<svg :width="store.dimensions.width" :height="store.dimensions.height" class="vue-flow__edges">
|
<svg :width="store.dimensions.width" :height="store.dimensions.height" class="vue-flow__edges">
|
||||||
@@ -34,9 +35,8 @@ const connectionLineVisible = computed(
|
|||||||
<g
|
<g
|
||||||
:transform="store.transform.length && `translate(${store.transform[0]},${store.transform[1]}) scale(${store.transform[2]})`"
|
:transform="store.transform.length && `translate(${store.transform[0]},${store.transform[1]}) scale(${store.transform[2]})`"
|
||||||
>
|
>
|
||||||
<template v-for="edge of store.edges" :key="edge.id">
|
<template v-for="edge of edges" :key="edge.id">
|
||||||
<Edge
|
<Edge
|
||||||
v-if="!edge.isHidden"
|
|
||||||
:edge="edge"
|
:edge="edge"
|
||||||
:type="props.edgeTypes[edge.type || 'default']"
|
:type="props.edgeTypes[edge.type || 'default']"
|
||||||
:marker-end-id="props.markerEndId"
|
:marker-end-id="props.markerEndId"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import Node from '~/components/Nodes/Node.vue'
|
import Node from '~/components/Nodes/Node.vue'
|
||||||
import { NodeType, Node as TNode } from '~/types'
|
import { NodeType, Node as TNode } from '~/types'
|
||||||
import { getNodesInside } from '~/utils/graph'
|
import { getNodesInside } from '~/utils'
|
||||||
import { useStore } from '~/composables'
|
import { useStore } from '~/composables'
|
||||||
|
|
||||||
interface NodeRendererProps {
|
interface NodeRendererProps {
|
||||||
@@ -12,8 +12,8 @@ const props = defineProps<NodeRendererProps>()
|
|||||||
|
|
||||||
const store = useStore()
|
const store = useStore()
|
||||||
|
|
||||||
const getNodes = computed(() =>
|
const nodes = computed(() => {
|
||||||
store.onlyRenderVisibleElements
|
const n = store.onlyRenderVisibleElements
|
||||||
? store.nodes &&
|
? store.nodes &&
|
||||||
getNodesInside(
|
getNodesInside(
|
||||||
store.nodes,
|
store.nodes,
|
||||||
@@ -26,8 +26,10 @@ const getNodes = computed(() =>
|
|||||||
store.transform,
|
store.transform,
|
||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
: store.nodes,
|
: store.nodes
|
||||||
)
|
|
||||||
|
return n.filter((node) => !node.isHidden)
|
||||||
|
})
|
||||||
|
|
||||||
const type = (node: TNode) => {
|
const type = (node: TNode) => {
|
||||||
const nodeType = node.type || 'default'
|
const nodeType = node.type || 'default'
|
||||||
@@ -43,9 +45,8 @@ const type = (node: TNode) => {
|
|||||||
class="vue-flow__nodes"
|
class="vue-flow__nodes"
|
||||||
:style="{ transform: `translate(${store.transform[0]}px,${store.transform[1]}px) scale(${store.transform[2]})` }"
|
:style="{ transform: `translate(${store.transform[0]}px,${store.transform[1]}px) scale(${store.transform[2]})` }"
|
||||||
>
|
>
|
||||||
<template v-for="node of getNodes" :key="node.id">
|
<template v-for="node of nodes" :key="node.id">
|
||||||
<Node
|
<Node
|
||||||
v-if="!node.isHidden"
|
|
||||||
:node="node"
|
:node="node"
|
||||||
:type="type(node)"
|
:type="type(node)"
|
||||||
:scale="store.transform[2]"
|
:scale="store.transform[2]"
|
||||||
|
|||||||
Reference in New Issue
Block a user