How to make the component work Controls #603
-
I use vue 3. Template
In JS part I have code like this
But I can't use Controls and MiniMap ... NodeJs 16 I don't use setup |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments 9 replies
-
Did you import the styles necessary for the components? @import '@vue-flow/controls/dist/style.css';
@import '@vue-flow/minimap/dist/style.css'; Are you getting any errors for the Controls? This example works completely fine for me. <script lang="ts">
import type { Elements, FlowEvents, VueFlowStore } from '@vue-flow/core'
import { VueFlow, isNode } from '@vue-flow/core'
import { Background } from '@vue-flow/background'
import { Controls } from '@vue-flow/controls'
import { MiniMap } from '@vue-flow/minimap'
export default defineComponent({
name: 'BasicOptionsAPI',
components: { VueFlow, Background, MiniMap, Controls },
data() {
return {
instance: null as VueFlowStore | null,
elements: [
{ id: '1', type: 'input', label: 'Node 1', position: { x: 250, y: 5 }, class: 'light' },
{ id: '2', label: 'Node 2', position: { x: 100, y: 100 }, class: 'light' },
{ id: '3', label: 'Node 3', position: { x: 400, y: 100 }, class: 'light' },
{ id: '4', label: 'Node 4', position: { x: 400, y: 200 }, class: 'light' },
{ id: 'e1-2', source: '1', target: '2', animated: true },
{ id: 'e1-3', source: '1', target: '3' },
] as Elements,
}
},
methods: {
logToObject() {
console.log(this.instance?.toObject())
},
resetTransform() {
this.instance?.setTransform({ x: 0, y: 0, zoom: 1 })
},
toggleclass() {
this.elements.forEach((el) => (el.class = el.class === 'light' ? 'dark' : 'light'))
},
updatePos() {
this.elements.forEach((el) => {
if (isNode(el)) {
el.position = {
x: Math.random() * 400,
y: Math.random() * 400,
}
}
})
},
onNodeDragStop(e: FlowEvents['nodeDragStop']) {
console.log('drag stop', e)
},
onPaneReady(instance: FlowEvents['paneReady']) {
instance.fitView()
this.instance = instance as any
},
onConnect(params: FlowEvents['connect']) {
this.instance?.addEdges([params])
},
},
})
</script>
<template>
<VueFlow
v-model="elements"
class="vue-flow-basic-example"
:default-zoom="1.5"
:min-zoom="0.2"
:max-zoom="4"
:zoom-on-scroll="false"
@connect="onConnect"
@pane-ready="onPaneReady"
@node-drag-stop="onNodeDragStop"
>
<Background />
<MiniMap />
<Controls />
<div style="position: absolute; right: 10px; top: 10px; z-index: 4">
<button style="margin-right: 5px" @click="resetTransform">reset transform</button>
<button style="margin-right: 5px" @click="updatePos">change pos</button>
<button style="margin-right: 5px" @click="toggleclass">toggle class</button>
<button @click="logToObject">toObject</button>
</div>
</VueFlow>
</template> |
Beta Was this translation helpful? Give feedback.
-
demo 2023-01-11.11.11.49.mov |
Beta Was this translation helpful? Give feedback.
-
I tried your example I got the same error 2023-01-11.11.22.07.mov |
Beta Was this translation helpful? Give feedback.
-
Also can I roll up node section ? Do you have this functional ? |
Beta Was this translation helpful? Give feedback.
-
I guess this is problem with vue-cli. I close this discussion |
Beta Was this translation helpful? Give feedback.
-
I have the following error in console But I think it has nothing to do with it |
Beta Was this translation helpful? Give feedback.
Did you import the styles necessary for the components?
Are you getting any errors for the Controls?
This example works completely fine for me.