refactor(core): pass renderers to viewport cmp as slots
This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useVueFlow } from '../../composables'
|
import { useVueFlow } from '../../composables'
|
||||||
import NodeRenderer from '../NodeRenderer/NodeRenderer.vue'
|
|
||||||
import EdgeRenderer from '../EdgeRenderer/EdgeRenderer.vue'
|
|
||||||
|
|
||||||
const { viewport } = useVueFlow()
|
const { viewport } = useVueFlow()
|
||||||
</script>
|
</script>
|
||||||
@@ -16,16 +14,8 @@ export default {
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="vue-flow__transformationpane vue-flow__container"
|
class="vue-flow__transformationpane vue-flow__container"
|
||||||
:style="{
|
:style="{ transform: `translate(${viewport.x}px,${viewport.y}px) scale(${viewport.zoom})` }"
|
||||||
transform: `translate(${viewport.x}px,${viewport.y}px) scale(${viewport.zoom})`,
|
|
||||||
}"
|
|
||||||
>
|
>
|
||||||
<EdgeRenderer />
|
|
||||||
|
|
||||||
<div class="vue-flow__edge-labels" />
|
|
||||||
|
|
||||||
<NodeRenderer />
|
|
||||||
|
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -6,10 +6,11 @@ import { onMounted, ref, watch } from 'vue'
|
|||||||
import { toRef } from '@vueuse/core'
|
import { toRef } from '@vueuse/core'
|
||||||
import type { CoordinateExtent, D3ZoomHandler, ViewportTransform } from '../../types'
|
import type { CoordinateExtent, D3ZoomHandler, ViewportTransform } from '../../types'
|
||||||
import { PanOnScrollMode } 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 { clamp, isMacOs, warn } from '../../utils'
|
||||||
import Pane from '../Pane/Pane.vue'
|
import Pane from '../Pane/Pane.vue'
|
||||||
import { useResizeHandler } from '../../composables/useResizeHandler'
|
|
||||||
import Transform from './Transform.vue'
|
import Transform from './Transform.vue'
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import { useOnInitHandler } from '../../composables/useOnInitHandler'
|
|||||||
import { useWatchProps } from '../../composables/useWatchProps'
|
import { useWatchProps } from '../../composables/useWatchProps'
|
||||||
import { useVueFlow } from '../../composables/useVueFlow'
|
import { useVueFlow } from '../../composables/useVueFlow'
|
||||||
import { useHooks } from '../../store/hooks'
|
import { useHooks } from '../../store/hooks'
|
||||||
|
import EdgeRenderer from '../EdgeRenderer/EdgeRenderer.vue'
|
||||||
|
import NodeRenderer from '../NodeRenderer/NodeRenderer.vue'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<FlowProps>(), {
|
const props = withDefaults(defineProps<FlowProps>(), {
|
||||||
snapToGrid: undefined,
|
snapToGrid: undefined,
|
||||||
@@ -97,6 +99,12 @@ export default {
|
|||||||
<template>
|
<template>
|
||||||
<div ref="vueFlowRef" class="vue-flow">
|
<div ref="vueFlowRef" class="vue-flow">
|
||||||
<Viewport>
|
<Viewport>
|
||||||
|
<EdgeRenderer />
|
||||||
|
|
||||||
|
<div class="vue-flow__edge-labels" />
|
||||||
|
|
||||||
|
<NodeRenderer />
|
||||||
|
|
||||||
<!-- This slot is affected by zooming & panning -->
|
<!-- This slot is affected by zooming & panning -->
|
||||||
<slot name="zoom-pane" />
|
<slot name="zoom-pane" />
|
||||||
</Viewport>
|
</Viewport>
|
||||||
|
|||||||
Reference in New Issue
Block a user