refactor(edges): move classes to Wrapper.ts

This commit is contained in:
Braks
2022-05-27 23:36:01 +02:00
parent 975d5519a4
commit d5a19cd1d8
2 changed files with 82 additions and 75 deletions
@@ -47,6 +47,7 @@ const Wrapper: FunctionalComponent<Props> = function (
animated, animated,
label, label,
updatable, updatable,
selectable,
target, target,
source, source,
sourceNode, sourceNode,
@@ -104,7 +105,21 @@ const Wrapper: FunctionalComponent<Props> = function (
targetPosition, targetPosition,
) )
return h('g', { class: [`vue-flow__node-${name}`, { updating }] }, [ return h(
'g',
{
class: [
'vue-flow__edge',
`vue-flow__edge-${name}`,
{
updating,
selected,
animated,
inactive: !selectable,
},
],
},
[
h(type as any, { h(type as any, {
id, id,
sourceNode, sourceNode,
@@ -165,7 +180,8 @@ const Wrapper: FunctionalComponent<Props> = function (
), ),
] ]
: null, : null,
]) ],
)
} }
Wrapper.props = [ Wrapper.props = [
@@ -1,10 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import { CSSProperties } from 'vue' import type { CSSProperties } from 'vue'
import EdgeWrapper from '../../components/Edges/Wrapper' import EdgeWrapper from '../../components/Edges/Wrapper'
import ConnectionLine from '../../components/ConnectionLine/ConnectionLine.vue' import ConnectionLine from '../../components/ConnectionLine/ConnectionLine.vue'
import { useHandle, useVueFlow } from '../../composables' import { useHandle, useVueFlow } from '../../composables'
import { connectionExists, groupEdgesByZLevel } from '../../utils' import { connectionExists, groupEdgesByZLevel } from '../../utils'
import { EdgeComponent, GraphEdge } from '../../types' import type { EdgeComponent, GraphEdge } from '../../types'
import { Slots } from '../../context' import { Slots } from '../../context'
import MarkerDefinitions from './MarkerDefinitions.vue' import MarkerDefinitions from './MarkerDefinitions.vue'
@@ -143,16 +143,7 @@ const handleEdgeUpdater = (event: MouseEvent, edge: GraphEdge, isSourceHandle: b
const getClass = (edge: GraphEdge) => { const getClass = (edge: GraphEdge) => {
const extraClass = edge.class instanceof Function ? edge.class(edge) : edge.class const extraClass = edge.class instanceof Function ? edge.class(edge) : edge.class
return [ return [noPanClassName, extraClass]
'vue-flow__edge',
noPanClassName,
{
selected: edge.selected,
animated: edge.animated,
inactive: !selectable,
},
extraClass,
]
} }
const getStyle = (edge: GraphEdge) => (edge.style instanceof Function ? edge.style(edge) : edge.style) as CSSProperties const getStyle = (edge: GraphEdge) => (edge.style instanceof Function ? edge.style(edge) : edge.style) as CSSProperties
@@ -195,7 +186,7 @@ export default {
:style="getStyle(edge)" :style="getStyle(edge)"
:class="getClass(edge)" :class="getClass(edge)"
@click="(e: MouseEvent) => onEdgeClick(e, edge)" @click="(e: MouseEvent) => onEdgeClick(e, edge)"
@dblClick="(e: MouseEvent) => onDoubleClick(e, edge)" @dbl-click="(e: MouseEvent) => onDoubleClick(e, edge)"
@contextmenu="(e: MouseEvent) => onEdgeContextMenu(e, edge)" @contextmenu="(e: MouseEvent) => onEdgeContextMenu(e, edge)"
@mouseenter="(e: MouseEvent) => onEdgeMouseEnter(e, edge)" @mouseenter="(e: MouseEvent) => onEdgeMouseEnter(e, edge)"
@mousemove="(e: MouseEvent) => onEdgeMouseMove(e, edge)" @mousemove="(e: MouseEvent) => onEdgeMouseMove(e, edge)"