update: move mounted hooks up
* remove mounted hook from selection pane
This commit is contained in:
@@ -17,35 +17,33 @@ const onContextMenu = (event: MouseEvent) => store.hooks.paneContextMenu.trigger
|
||||
|
||||
const onWheel = (event: WheelEvent) => store.hooks.paneScroll.trigger(event)
|
||||
|
||||
onMounted(() => {
|
||||
useKeyPress(store.deleteKeyCode, (keyPressed) => {
|
||||
const selectedNodes = store.getSelectedNodes
|
||||
const selectedEdges = store.getSelectedEdges
|
||||
if (keyPressed && (selectedNodes || selectedEdges)) {
|
||||
const connectedEdges = (selectedNodes && getConnectedEdges(selectedNodes, store.edges)) ?? []
|
||||
useKeyPress(store.deleteKeyCode, (keyPressed) => {
|
||||
const selectedNodes = store.getSelectedNodes
|
||||
const selectedEdges = store.getSelectedEdges
|
||||
if (keyPressed && (selectedNodes || selectedEdges)) {
|
||||
const connectedEdges = (selectedNodes && getConnectedEdges(selectedNodes, store.edges)) ?? []
|
||||
|
||||
const nodeChanges: NodeChange[] = selectedNodes.map((n) => ({ id: n.id, type: 'remove' }))
|
||||
const edgeChanges: EdgeChange[] = [...selectedEdges, ...connectedEdges].map((e) => ({
|
||||
id: e.id,
|
||||
type: 'remove',
|
||||
}))
|
||||
const nodeChanges: NodeChange[] = selectedNodes.map((n) => ({ id: n.id, type: 'remove' }))
|
||||
const edgeChanges: EdgeChange[] = [...selectedEdges, ...connectedEdges].map((e) => ({
|
||||
id: e.id,
|
||||
type: 'remove',
|
||||
}))
|
||||
|
||||
store.hooks.nodesChange.trigger(nodeChanges)
|
||||
store.hooks.edgesChange.trigger(edgeChanges)
|
||||
store.nodesSelectionActive = false
|
||||
store.hooks.nodesChange.trigger(nodeChanges)
|
||||
store.hooks.edgesChange.trigger(edgeChanges)
|
||||
store.nodesSelectionActive = false
|
||||
|
||||
store.resetSelectedElements()
|
||||
}
|
||||
})
|
||||
store.resetSelectedElements()
|
||||
}
|
||||
})
|
||||
|
||||
useKeyPress(store.multiSelectionKeyCode, (keyPressed) => {
|
||||
store.multiSelectionActive = keyPressed
|
||||
})
|
||||
useKeyPress(store.multiSelectionKeyCode, (keyPressed) => {
|
||||
store.multiSelectionActive = keyPressed
|
||||
})
|
||||
|
||||
useKeyPress(store.selectionKeyCode, (keyPressed) => {
|
||||
store.selectionActive =
|
||||
store.selectionActive === true && keyPressed ? true : keyPressed && (store.selectionActive || store.elementsSelectable)
|
||||
})
|
||||
useKeyPress(store.selectionKeyCode, (keyPressed) => {
|
||||
store.selectionActive =
|
||||
store.selectionActive === true && keyPressed ? true : keyPressed && (store.selectionActive || store.elementsSelectable)
|
||||
})
|
||||
</script>
|
||||
<script lang="ts">
|
||||
|
||||
@@ -7,9 +7,7 @@ import { onLoadGetEdges, onLoadGetElements, onLoadGetNodes, onLoadProject, onLoa
|
||||
|
||||
const { id, store } = useVueFlow()
|
||||
|
||||
const transform = computed(() => `translate(${store.transform[0]}px,${store.transform[1]}px) scale(${store.transform[2]})`)
|
||||
|
||||
onMounted(async () => {
|
||||
onMounted(() => {
|
||||
const { zoomIn, zoomOut, zoomTo, setTransform, getTransform, fitView, fitBounds, setCenter } = useZoomPanHelper(store)
|
||||
const instance: FlowInstance = {
|
||||
fitView: (params = { padding: 0.1 }) => fitView(params),
|
||||
@@ -31,6 +29,8 @@ onMounted(async () => {
|
||||
store.paneReady = true
|
||||
store.hooks.paneReady.trigger(instance)
|
||||
})
|
||||
|
||||
const transform = computed(() => `translate(${store.transform[0]}px,${store.transform[1]}px) scale(${store.transform[2]})`)
|
||||
</script>
|
||||
<template>
|
||||
<div :key="`transformation-pane-${id}`" class="vue-flow__transformation-pane vue-flow__container" :style="{ transform }">
|
||||
|
||||
@@ -45,6 +45,7 @@ const {
|
||||
} = useVueFlow(props)
|
||||
useHooks(hooks.value, emit)
|
||||
const { modelValue, nodes, edges } = useVModels(props, emit)
|
||||
onMounted(() => useWatch({ modelValue, nodes, edges }, props, store))
|
||||
|
||||
if (applyDefault.value) {
|
||||
onNodesChange(applyNodeChanges)
|
||||
@@ -57,8 +58,6 @@ if (props.edges && !storedEdges.value.length) setEdges(props.edges)
|
||||
if (modelValue && modelValue.value) modelValue.value = [...store.nodes, ...store.edges]
|
||||
if (nodes && nodes.value) nodes.value = store.nodes
|
||||
if (edges && edges.value) edges.value = store.edges
|
||||
|
||||
onMounted(() => useWatch({ modelValue, nodes, edges }, props, store))
|
||||
</script>
|
||||
<script lang="ts">
|
||||
export default {
|
||||
|
||||
@@ -30,7 +30,7 @@ const transform = ref({
|
||||
})
|
||||
const { width, height } = useElementBounding(zoomPaneEl)
|
||||
|
||||
onMounted(async () => {
|
||||
onMounted(() => {
|
||||
const d3Zoom = zoom<HTMLDivElement, any>().scaleExtent([store.minZoom, store.maxZoom]).translateExtent(store.translateExtent)
|
||||
const d3Selection = select(zoomPaneEl.value).call(d3Zoom)
|
||||
const d3ZoomHandler = d3Selection.on('wheel.zoom')
|
||||
|
||||
Reference in New Issue
Block a user