From 0e7bdcf209d8765d4b92d2b5b33732249c5aebc4 Mon Sep 17 00:00:00 2001 From: Terry Jia Date: Fri, 18 Jul 2025 23:00:48 -0400 Subject: [PATCH] minimap --- src/components/graph/GraphCanvas.vue | 18 + src/components/graph/GraphCanvasMenu.vue | 22 + src/components/graph/MiniMap.vue | 88 ++++ src/composables/useCoreCommands.ts | 10 + src/composables/useMinimap.ts | 631 +++++++++++++++++++++++ src/constants/coreKeybindings.ts | 7 + src/constants/coreSettings.ts | 17 + src/locales/en/commands.json | 4 + src/locales/en/main.json | 3 +- src/schemas/apiSchema.ts | 2 + 10 files changed, 801 insertions(+), 1 deletion(-) create mode 100644 src/components/graph/MiniMap.vue create mode 100644 src/composables/useMinimap.ts diff --git a/src/components/graph/GraphCanvas.vue b/src/components/graph/GraphCanvas.vue index 3c0d20f99..52183bcc6 100644 --- a/src/components/graph/GraphCanvas.vue +++ b/src/components/graph/GraphCanvas.vue @@ -19,6 +19,12 @@ + + @@ -53,6 +59,7 @@ import BottomPanel from '@/components/bottomPanel/BottomPanel.vue' import SubgraphBreadcrumb from '@/components/breadcrumb/SubgraphBreadcrumb.vue' import DomWidgets from '@/components/graph/DomWidgets.vue' import GraphCanvasMenu from '@/components/graph/GraphCanvasMenu.vue' +import MiniMap from '@/components/graph/MiniMap.vue' import NodeTooltip from '@/components/graph/NodeTooltip.vue' import SelectionOverlay from '@/components/graph/SelectionOverlay.vue' import SelectionToolbox from '@/components/graph/SelectionToolbox.vue' @@ -67,6 +74,7 @@ import { useContextMenuTranslation } from '@/composables/useContextMenuTranslati import { useCopy } from '@/composables/useCopy' import { useGlobalLitegraph } from '@/composables/useGlobalLitegraph' import { useLitegraphSettings } from '@/composables/useLitegraphSettings' +import { useMinimap } from '@/composables/useMinimap' import { usePaste } from '@/composables/usePaste' import { useWorkflowAutoSave } from '@/composables/useWorkflowAutoSave' import { useWorkflowPersistence } from '@/composables/useWorkflowPersistence' @@ -114,6 +122,9 @@ const selectionToolboxEnabled = computed(() => settingStore.get('Comfy.Canvas.SelectionToolbox') ) +const minimapRef = ref>() +const minimap = useMinimap() + watchEffect(() => { nodeDefStore.showDeprecated = settingStore.get('Comfy.Node.ShowDeprecated') }) @@ -345,6 +356,13 @@ onMounted(async () => { } ) + whenever( + () => minimapRef.value, + (ref) => { + minimap.setMinimapRef(ref) + } + ) + whenever( () => useCanvasStore().canvas, (canvas) => { diff --git a/src/components/graph/GraphCanvasMenu.vue b/src/components/graph/GraphCanvasMenu.vue index 8f5d036cb..a89f72998 100644 --- a/src/components/graph/GraphCanvasMenu.vue +++ b/src/components/graph/GraphCanvasMenu.vue @@ -56,6 +56,15 @@ data-testid="toggle-link-visibility-button" @click="() => commandStore.execute('Comfy.Canvas.ToggleLinkVisibility')" /> +