refactor(core): pass renderers to viewport cmp as slots

This commit is contained in:
braks
2024-02-04 21:28:30 +01:00
committed by Braks
parent daff22f3cf
commit cc9f4fb244
3 changed files with 12 additions and 13 deletions

View File

@@ -1,7 +1,5 @@
<script lang="ts" setup>
import { useVueFlow } from '../../composables'
import NodeRenderer from '../NodeRenderer/NodeRenderer.vue'
import EdgeRenderer from '../EdgeRenderer/EdgeRenderer.vue'
const { viewport } = useVueFlow()
</script>
@@ -16,16 +14,8 @@ export default {
<template>
<div
class="vue-flow__transformationpane vue-flow__container"
:style="{
transform: `translate(${viewport.x}px,${viewport.y}px) scale(${viewport.zoom})`,
}"
:style="{ transform: `translate(${viewport.x}px,${viewport.y}px) scale(${viewport.zoom})` }"
>
<EdgeRenderer />
<div class="vue-flow__edge-labels" />
<NodeRenderer />
<slot />
</div>
</template>

View File

@@ -6,10 +6,11 @@ import { onMounted, ref, watch } from 'vue'
import { toRef } from '@vueuse/core'
import type { CoordinateExtent, D3ZoomHandler, ViewportTransform } from '../../types'
import { PanOnScrollMode } from '../../types'
import { useKeyPress, useVueFlow } from '../../composables'
import { useKeyPress } from '../../composables/useKeyPress'
import { useVueFlow } from '../../composables/useVueFlow'
import { useResizeHandler } from '../../composables/useResizeHandler'
import { clamp, isMacOs, warn } from '../../utils'
import Pane from '../Pane/Pane.vue'
import { useResizeHandler } from '../../composables/useResizeHandler'
import Transform from './Transform.vue'
const {

View File

@@ -9,6 +9,8 @@ import { useOnInitHandler } from '../../composables/useOnInitHandler'
import { useWatchProps } from '../../composables/useWatchProps'
import { useVueFlow } from '../../composables/useVueFlow'
import { useHooks } from '../../store/hooks'
import EdgeRenderer from '../EdgeRenderer/EdgeRenderer.vue'
import NodeRenderer from '../NodeRenderer/NodeRenderer.vue'
const props = withDefaults(defineProps<FlowProps>(), {
snapToGrid: undefined,
@@ -97,6 +99,12 @@ export default {
<template>
<div ref="vueFlowRef" class="vue-flow">
<Viewport>
<EdgeRenderer />
<div class="vue-flow__edge-labels" />
<NodeRenderer />
<!-- This slot is affected by zooming & panning -->
<slot name="zoom-pane" />
</Viewport>