Compare commits

...

2 Commits

Author SHA1 Message Date
bymyself
4e5c939226 add to git blame ignore 2025-09-07 15:12:03 -07:00
bymyself
7650c55b4f refactor rendering-related files to DDD organization 2025-09-07 14:48:28 -07:00
60 changed files with 71 additions and 61 deletions

View File

@@ -4,3 +4,6 @@
# npm run format on litegraph merge (10,672 insertions, 7,327 deletions across 129 files) # npm run format on litegraph merge (10,672 insertions, 7,327 deletions across 129 files)
c53f197de2a3e0fa66b16dedc65c131235c1c4b6 c53f197de2a3e0fa66b16dedc65c131235c1c4b6
# Move canvas and transform utilities to renderer domain structure
7650c55b4ff5f61071dbaffc73266259e0793e8e

View File

@@ -38,7 +38,7 @@ import { computed, onUpdated, ref, watch } from 'vue'
import SubgraphBreadcrumbItem from '@/components/breadcrumb/SubgraphBreadcrumbItem.vue' import SubgraphBreadcrumbItem from '@/components/breadcrumb/SubgraphBreadcrumbItem.vue'
import { useOverflowObserver } from '@/composables/element/useOverflowObserver' import { useOverflowObserver } from '@/composables/element/useOverflowObserver'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useSubgraphNavigationStore } from '@/stores/subgraphNavigationStore' import { useSubgraphNavigationStore } from '@/stores/subgraphNavigationStore'
import { useWorkflowStore } from '@/stores/workflowStore' import { useWorkflowStore } from '@/stores/workflowStore'
import { forEachSubgraphNode } from '@/utils/graphTraversalUtil' import { forEachSubgraphNode } from '@/utils/graphTraversalUtil'

View File

@@ -16,8 +16,8 @@ import { computed } from 'vue'
import DomWidget from '@/components/graph/widgets/DomWidget.vue' import DomWidget from '@/components/graph/widgets/DomWidget.vue'
import { useChainCallback } from '@/composables/functional/useChainCallback' import { useChainCallback } from '@/composables/functional/useChainCallback'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useDomWidgetStore } from '@/stores/domWidgetStore' import { useDomWidgetStore } from '@/stores/domWidgetStore'
import { useCanvasStore } from '@/stores/graphStore'
const domWidgetStore = useDomWidgetStore() const domWidgetStore = useDomWidgetStore()

View File

@@ -89,15 +89,12 @@ import LiteGraphCanvasSplitterOverlay from '@/components/LiteGraphCanvasSplitter
import BottomPanel from '@/components/bottomPanel/BottomPanel.vue' import BottomPanel from '@/components/bottomPanel/BottomPanel.vue'
import DomWidgets from '@/components/graph/DomWidgets.vue' import DomWidgets from '@/components/graph/DomWidgets.vue'
import GraphCanvasMenu from '@/components/graph/GraphCanvasMenu.vue' import GraphCanvasMenu from '@/components/graph/GraphCanvasMenu.vue'
import MiniMap from '@/components/graph/MiniMap.vue'
import NodeTooltip from '@/components/graph/NodeTooltip.vue' import NodeTooltip from '@/components/graph/NodeTooltip.vue'
import SelectionToolbox from '@/components/graph/SelectionToolbox.vue' import SelectionToolbox from '@/components/graph/SelectionToolbox.vue'
import TitleEditor from '@/components/graph/TitleEditor.vue' import TitleEditor from '@/components/graph/TitleEditor.vue'
import TransformPane from '@/components/graph/TransformPane.vue'
import NodeSearchboxPopover from '@/components/searchbox/NodeSearchBoxPopover.vue' import NodeSearchboxPopover from '@/components/searchbox/NodeSearchBoxPopover.vue'
import SideToolbar from '@/components/sidebar/SideToolbar.vue' import SideToolbar from '@/components/sidebar/SideToolbar.vue'
import SecondRowWorkflowTabs from '@/components/topbar/SecondRowWorkflowTabs.vue' import SecondRowWorkflowTabs from '@/components/topbar/SecondRowWorkflowTabs.vue'
import { useTransformState } from '@/composables/element/useTransformState'
import { useChainCallback } from '@/composables/functional/useChainCallback' import { useChainCallback } from '@/composables/functional/useChainCallback'
import { useGraphNodeManager } from '@/composables/graph/useGraphNodeManager' import { useGraphNodeManager } from '@/composables/graph/useGraphNodeManager'
import type { import type {
@@ -117,12 +114,16 @@ import { useWorkflowPersistence } from '@/composables/useWorkflowPersistence'
import { CORE_SETTINGS } from '@/constants/coreSettings' import { CORE_SETTINGS } from '@/constants/coreSettings'
import { i18n, t } from '@/i18n' import { i18n, t } from '@/i18n'
import type { LGraphCanvas, LGraphNode } from '@/lib/litegraph/src/litegraph' import type { LGraphCanvas, LGraphNode } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import TransformPane from '@/renderer/core/layout/TransformPane.vue'
import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations'
import { layoutStore } from '@/renderer/core/layout/store/layoutStore' import { layoutStore } from '@/renderer/core/layout/store/layoutStore'
import { useLayoutSync } from '@/renderer/core/layout/sync/useLayoutSync' import { useLayoutSync } from '@/renderer/core/layout/sync/useLayoutSync'
import { useLinkLayoutSync } from '@/renderer/core/layout/sync/useLinkLayoutSync' import { useLinkLayoutSync } from '@/renderer/core/layout/sync/useLinkLayoutSync'
import { useSlotLayoutSync } from '@/renderer/core/layout/sync/useSlotLayoutSync' import { useSlotLayoutSync } from '@/renderer/core/layout/sync/useSlotLayoutSync'
import { useTransformState } from '@/renderer/core/layout/transform/useTransformState'
import { LayoutSource } from '@/renderer/core/layout/types' import { LayoutSource } from '@/renderer/core/layout/types'
import MiniMap from '@/renderer/extensions/minimap/MiniMap.vue'
import VueGraphNode from '@/renderer/extensions/vueNodes/components/LGraphNode.vue' import VueGraphNode from '@/renderer/extensions/vueNodes/components/LGraphNode.vue'
import { UnauthorizedError, api } from '@/scripts/api' import { UnauthorizedError, api } from '@/scripts/api'
import { app as comfyApp } from '@/scripts/app' import { app as comfyApp } from '@/scripts/app'
@@ -133,7 +134,6 @@ import { newUserService } from '@/services/newUserService'
import { useWorkflowService } from '@/services/workflowService' import { useWorkflowService } from '@/services/workflowService'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useExecutionStore } from '@/stores/executionStore' import { useExecutionStore } from '@/stores/executionStore'
import { useCanvasStore } from '@/stores/graphStore'
import { useNodeDefStore } from '@/stores/nodeDefStore' import { useNodeDefStore } from '@/stores/nodeDefStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
import { useToastStore } from '@/stores/toastStore' import { useToastStore } from '@/stores/toastStore'

View File

@@ -127,9 +127,9 @@ import { useI18n } from 'vue-i18n'
import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions' import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions'
import { useZoomControls } from '@/composables/useZoomControls' import { useZoomControls } from '@/composables/useZoomControls'
import { LiteGraph } from '@/lib/litegraph/src/litegraph' import { LiteGraph } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useMinimap } from '@/renderer/extensions/minimap/composables/useMinimap' import { useMinimap } from '@/renderer/extensions/minimap/composables/useMinimap'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
import { useWorkspaceStore } from '@/stores/workspaceStore' import { useWorkspaceStore } from '@/stores/workspaceStore'

View File

@@ -51,9 +51,9 @@ import PinButton from '@/components/graph/selectionToolbox/PinButton.vue'
import RefreshSelectionButton from '@/components/graph/selectionToolbox/RefreshSelectionButton.vue' import RefreshSelectionButton from '@/components/graph/selectionToolbox/RefreshSelectionButton.vue'
import { useSelectionToolboxPosition } from '@/composables/canvas/useSelectionToolboxPosition' import { useSelectionToolboxPosition } from '@/composables/canvas/useSelectionToolboxPosition'
import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions' import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useExtensionService } from '@/services/extensionService' import { useExtensionService } from '@/services/extensionService'
import { type ComfyCommandImpl, useCommandStore } from '@/stores/commandStore' import { type ComfyCommandImpl, useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
const commandStore = useCommandStore() const commandStore = useCommandStore()
const canvasStore = useCanvasStore() const canvasStore = useCanvasStore()

View File

@@ -24,8 +24,11 @@ import {
LiteGraph LiteGraph
} from '@/lib/litegraph/src/litegraph' } from '@/lib/litegraph/src/litegraph'
import type { LiteGraphCanvasEvent } from '@/lib/litegraph/src/litegraph' import type { LiteGraphCanvasEvent } from '@/lib/litegraph/src/litegraph'
import {
useCanvasStore,
useTitleEditorStore
} from '@/renderer/core/canvas/canvasStore'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { useCanvasStore, useTitleEditorStore } from '@/stores/graphStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
const settingStore = useSettingStore() const settingStore = useSettingStore()

View File

@@ -139,9 +139,9 @@ import { Button, InputNumber, InputNumberInputEvent } from 'primevue'
import { computed, nextTick, ref, watch } from 'vue' import { computed, nextTick, ref, watch } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useMinimap } from '@/renderer/extensions/minimap/composables/useMinimap' import { useMinimap } from '@/renderer/extensions/minimap/composables/useMinimap'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
const { t } = useI18n() const { t } = useI18n()

View File

@@ -22,8 +22,8 @@
import Button from 'primevue/button' import Button from 'primevue/button'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
const { t } = useI18n() const { t } = useI18n()
const commandStore = useCommandStore() const commandStore = useCommandStore()

View File

@@ -7,7 +7,7 @@ import { createI18n } from 'vue-i18n'
// Import after mocks // Import after mocks
import ColorPickerButton from '@/components/graph/selectionToolbox/ColorPickerButton.vue' import ColorPickerButton from '@/components/graph/selectionToolbox/ColorPickerButton.vue'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useWorkflowStore } from '@/stores/workflowStore' import { useWorkflowStore } from '@/stores/workflowStore'
// Mock the litegraph module // Mock the litegraph module

View File

@@ -55,7 +55,7 @@ import {
LiteGraph, LiteGraph,
isColorable isColorable
} from '@/lib/litegraph/src/litegraph' } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useWorkflowStore } from '@/stores/workflowStore' import { useWorkflowStore } from '@/stores/workflowStore'
import { useColorPaletteStore } from '@/stores/workspace/colorPaletteStore' import { useColorPaletteStore } from '@/stores/workspace/colorPaletteStore'
import { adjustColor } from '@/utils/colorUtil' import { adjustColor } from '@/utils/colorUtil'

View File

@@ -35,8 +35,8 @@ import { computed } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { SubgraphNode } from '@/lib/litegraph/src/litegraph' import { SubgraphNode } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
const { t } = useI18n() const { t } = useI18n()
const commandStore = useCommandStore() const commandStore = useCommandStore()

View File

@@ -17,8 +17,8 @@ import Button from 'primevue/button'
import { computed } from 'vue' import { computed } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
const { t } = useI18n() const { t } = useI18n()
const commandStore = useCommandStore() const commandStore = useCommandStore()

View File

@@ -24,8 +24,8 @@ import { computed, ref } from 'vue'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import type { LGraphNode } from '@/lib/litegraph/src/litegraph' import type { LGraphNode } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
import { isLGraphNode } from '@/utils/litegraphUtil' import { isLGraphNode } from '@/utils/litegraphUtil'
const { t } = useI18n() const { t } = useI18n()

View File

@@ -18,7 +18,7 @@ import Button from 'primevue/button'
import { computed } from 'vue' import { computed } from 'vue'
import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab' import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import type { ComfyNodeDefImpl } from '@/stores/nodeDefStore' import type { ComfyNodeDefImpl } from '@/stores/nodeDefStore'
import { useNodeDefStore } from '@/stores/nodeDefStore' import { useNodeDefStore } from '@/stores/nodeDefStore'
import { useNodeHelpStore } from '@/stores/workspace/nodeHelpStore' import { useNodeHelpStore } from '@/stores/workspace/nodeHelpStore'

View File

@@ -17,8 +17,8 @@ import Button from 'primevue/button'
import { computed } from 'vue' import { computed } from 'vue'
import { t } from '@/i18n' import { t } from '@/i18n'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
import { isLGraphNode, isLoad3dNode } from '@/utils/litegraphUtil' import { isLGraphNode, isLoad3dNode } from '@/utils/litegraphUtil'

View File

@@ -17,8 +17,8 @@ import Button from 'primevue/button'
import { computed } from 'vue' import { computed } from 'vue'
import { t } from '@/i18n' import { t } from '@/i18n'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
import { isImageNode, isLGraphNode } from '@/utils/litegraphUtil' import { isImageNode, isLGraphNode } from '@/utils/litegraphUtil'
const commandStore = useCommandStore() const commandStore = useCommandStore()

View File

@@ -16,8 +16,8 @@
import Button from 'primevue/button' import Button from 'primevue/button'
import { useI18n } from 'vue-i18n' import { useI18n } from 'vue-i18n'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useCanvasStore } from '@/stores/graphStore'
const { t } = useI18n() const { t } = useI18n()
const commandStore = useCommandStore() const commandStore = useCommandStore()

View File

@@ -23,9 +23,9 @@ import { CSSProperties, computed, nextTick, onMounted, ref, watch } from 'vue'
import { useAbsolutePosition } from '@/composables/element/useAbsolutePosition' import { useAbsolutePosition } from '@/composables/element/useAbsolutePosition'
import { useDomClipping } from '@/composables/element/useDomClipping' import { useDomClipping } from '@/composables/element/useDomClipping'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { isComponentWidget, isDOMWidget } from '@/scripts/domWidget' import { isComponentWidget, isDOMWidget } from '@/scripts/domWidget'
import { DomWidgetState } from '@/stores/domWidgetStore' import { DomWidgetState } from '@/stores/domWidgetStore'
import { useCanvasStore } from '@/stores/graphStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
const { widgetState } = defineProps<{ const { widgetState } = defineProps<{

View File

@@ -45,8 +45,8 @@ import {
LiteGraphCanvasEvent LiteGraphCanvasEvent
} from '@/lib/litegraph/src/litegraph' } from '@/lib/litegraph/src/litegraph'
import type { CanvasPointerEvent } from '@/lib/litegraph/src/types/events' import type { CanvasPointerEvent } from '@/lib/litegraph/src/types/events'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useLitegraphService } from '@/services/litegraphService' import { useLitegraphService } from '@/services/litegraphService'
import { useCanvasStore } from '@/stores/graphStore'
import { ComfyNodeDefImpl, useNodeDefStore } from '@/stores/nodeDefStore' import { ComfyNodeDefImpl, useNodeDefStore } from '@/stores/nodeDefStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
import { useWorkflowStore } from '@/stores/workflowStore' import { useWorkflowStore } from '@/stores/workflowStore'

View File

@@ -1,7 +1,7 @@
import { onUnmounted, ref } from 'vue' import { onUnmounted, ref } from 'vue'
import { LGraphCanvas } from '@/lib/litegraph/src/litegraph' import { LGraphCanvas } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
interface CanvasTransformSyncOptions { interface CanvasTransformSyncOptions {
/** /**

View File

@@ -4,8 +4,8 @@ import {
Positionable, Positionable,
Reroute Reroute
} from '@/lib/litegraph/src/litegraph' } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { useCanvasStore } from '@/stores/graphStore'
import { import {
collectFromNodes, collectFromNodes,
traverseNodesDepthFirst traverseNodesDepthFirst

View File

@@ -4,7 +4,7 @@ import type { Ref } from 'vue'
import { useCanvasTransformSync } from '@/composables/canvas/useCanvasTransformSync' import { useCanvasTransformSync } from '@/composables/canvas/useCanvasTransformSync'
import { useSelectedLiteGraphItems } from '@/composables/canvas/useSelectedLiteGraphItems' import { useSelectedLiteGraphItems } from '@/composables/canvas/useSelectedLiteGraphItems'
import { createBounds } from '@/lib/litegraph/src/litegraph' import { createBounds } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
/** /**
* Manages the position of the selection toolbox independently. * Manages the position of the selection toolbox independently.

View File

@@ -2,7 +2,7 @@ import { CSSProperties, ref, watch } from 'vue'
import { useCanvasPositionConversion } from '@/composables/element/useCanvasPositionConversion' import { useCanvasPositionConversion } from '@/composables/element/useCanvasPositionConversion'
import type { Size, Vector2 } from '@/lib/litegraph/src/litegraph' import type { Size, Vector2 } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
export interface PositionConfig { export interface PositionConfig {

View File

@@ -1,7 +1,7 @@
import { computed } from 'vue' import { computed } from 'vue'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { useCanvasStore } from '@/stores/graphStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
/** /**

View File

@@ -6,11 +6,11 @@ import { nextTick, reactive, readonly } from 'vue'
import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations' import { useLayoutMutations } from '@/renderer/core/layout/operations/layoutMutations'
import { LayoutSource } from '@/renderer/core/layout/types' import { LayoutSource } from '@/renderer/core/layout/types'
import { type Bounds, QuadTree } from '@/renderer/core/spatial/QuadTree'
import type { WidgetValue } from '@/types/simplifiedWidget' import type { WidgetValue } from '@/types/simplifiedWidget'
import type { SpatialIndexDebugInfo } from '@/types/spatialIndex' import type { SpatialIndexDebugInfo } from '@/types/spatialIndex'
import type { LGraph, LGraphNode } from '../../lib/litegraph/src/litegraph' import type { LGraph, LGraphNode } from '../../lib/litegraph/src/litegraph'
import { type Bounds, QuadTree } from '../../utils/spatial/QuadTree'
export interface NodeState { export interface NodeState {
visible: boolean visible: boolean

View File

@@ -1,6 +1,6 @@
import { useEventListener } from '@vueuse/core' import { useEventListener } from '@vueuse/core'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
/** /**
* Adds a handler on copy that serializes selected nodes to JSON * Adds a handler on copy that serializes selected nodes to JSON

View File

@@ -14,6 +14,10 @@ import {
SubgraphNode SubgraphNode
} from '@/lib/litegraph/src/litegraph' } from '@/lib/litegraph/src/litegraph'
import { Point } from '@/lib/litegraph/src/litegraph' import { Point } from '@/lib/litegraph/src/litegraph'
import {
useCanvasStore,
useTitleEditorStore
} from '@/renderer/core/canvas/canvasStore'
import { api } from '@/scripts/api' import { api } from '@/scripts/api'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { useDialogService } from '@/services/dialogService' import { useDialogService } from '@/services/dialogService'
@@ -22,7 +26,6 @@ import { useWorkflowService } from '@/services/workflowService'
import type { ComfyCommand } from '@/stores/commandStore' import type { ComfyCommand } from '@/stores/commandStore'
import { useCommandStore } from '@/stores/commandStore' import { useCommandStore } from '@/stores/commandStore'
import { useExecutionStore } from '@/stores/executionStore' import { useExecutionStore } from '@/stores/executionStore'
import { useCanvasStore, useTitleEditorStore } from '@/stores/graphStore'
import { useHelpCenterStore } from '@/stores/helpCenterStore' import { useHelpCenterStore } from '@/stores/helpCenterStore'
import { useNodeOutputStore } from '@/stores/imagePreviewStore' import { useNodeOutputStore } from '@/stores/imagePreviewStore'
import { import {

View File

@@ -5,7 +5,7 @@ import {
LGraphNode, LGraphNode,
LiteGraph LiteGraph
} from '@/lib/litegraph/src/litegraph' } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
/** /**

View File

@@ -2,9 +2,9 @@ import { useEventListener } from '@vueuse/core'
import { LiteGraph } from '@/lib/litegraph/src/litegraph' import { LiteGraph } from '@/lib/litegraph/src/litegraph'
import type { LGraphNode } from '@/lib/litegraph/src/litegraph' import type { LGraphNode } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { ComfyWorkflowJSON } from '@/schemas/comfyWorkflowSchema' import { ComfyWorkflowJSON } from '@/schemas/comfyWorkflowSchema'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { useCanvasStore } from '@/stores/graphStore'
import { useWorkspaceStore } from '@/stores/workspaceStore' import { useWorkspaceStore } from '@/stores/workspaceStore'
import { isAudioNode, isImageNode, isVideoNode } from '@/utils/litegraphUtil' import { isAudioNode, isImageNode, isVideoNode } from '@/utils/litegraphUtil'

View File

@@ -1,7 +1,7 @@
import { computed, ref, watchEffect } from 'vue' import { computed, ref, watchEffect } from 'vue'
import type { LGraphNode } from '@/lib/litegraph/src/litegraph' import type { LGraphNode } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { isLGraphNode } from '@/utils/litegraphUtil' import { isLGraphNode } from '@/utils/litegraphUtil'
interface RefreshableItem { interface RefreshableItem {

View File

@@ -2,7 +2,7 @@ import { mount } from '@vue/test-utils'
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import { nextTick, ref } from 'vue' import { nextTick, ref } from 'vue'
import TransformPane from './TransformPane.vue' import TransformPane from '../TransformPane.vue'
// Mock the transform state composable // Mock the transform state composable
const mockTransformState = { const mockTransformState = {
@@ -17,7 +17,7 @@ const mockTransformState = {
isNodeInViewport: vi.fn() isNodeInViewport: vi.fn()
} }
vi.mock('@/composables/element/useTransformState', () => ({ vi.mock('@/renderer/core/spatial/useTransformState', () => ({
useTransformState: () => mockTransformState useTransformState: () => mockTransformState
})) }))

View File

@@ -13,10 +13,10 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, provide } from 'vue' import { computed, provide } from 'vue'
import { useTransformState } from '@/composables/element/useTransformState'
import { useCanvasTransformSync } from '@/composables/graph/useCanvasTransformSync'
import { useTransformSettling } from '@/composables/graph/useTransformSettling'
import { LGraphCanvas } from '@/lib/litegraph/src/litegraph' import { LGraphCanvas } from '@/lib/litegraph/src/litegraph'
import { useCanvasTransformSync } from '@/renderer/core/layout/transform/useCanvasTransformSync'
import { useTransformSettling } from '@/renderer/core/layout/transform/useTransformSettling'
import { useTransformState } from '@/renderer/core/layout/transform/useTransformState'
interface TransformPaneProps { interface TransformPaneProps {
canvas?: LGraphCanvas canvas?: LGraphCanvas

View File

@@ -1,6 +1,6 @@
import { onUnmounted, ref } from 'vue' import { onUnmounted, ref } from 'vue'
import type { LGraphCanvas } from '../../lib/litegraph/src/litegraph' import type { LGraphCanvas } from '@/lib/litegraph/src/litegraph'
export interface CanvasTransformSyncOptions { export interface CanvasTransformSyncOptions {
/** /**

View File

@@ -51,7 +51,7 @@
*/ */
import { computed, reactive, readonly } from 'vue' import { computed, reactive, readonly } from 'vue'
import type { LGraphCanvas } from '../../lib/litegraph/src/litegraph' import type { LGraphCanvas } from '@/lib/litegraph/src/litegraph'
export interface Point { export interface Point {
x: number x: number

View File

@@ -9,7 +9,8 @@ import {
QUADTREE_CONFIG QUADTREE_CONFIG
} from '@/renderer/core/layout/constants' } from '@/renderer/core/layout/constants'
import type { Bounds, NodeId } from '@/renderer/core/layout/types' import type { Bounds, NodeId } from '@/renderer/core/layout/types'
import { QuadTree } from '@/utils/spatial/QuadTree'
import { QuadTree } from './QuadTree'
/** /**
* Cache entry for spatial queries * Cache entry for spatial queries

View File

@@ -2,7 +2,7 @@ import { useRafFn } from '@vueuse/core'
import { computed, nextTick, ref, watch } from 'vue' import { computed, nextTick, ref, watch } from 'vue'
import type { LGraph } from '@/lib/litegraph/src/litegraph' import type { LGraph } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
import { useWorkflowStore } from '@/stores/workflowStore' import { useWorkflowStore } from '@/stores/workflowStore'

View File

@@ -8,11 +8,11 @@ import type {
IBaseWidget, IBaseWidget,
IWidgetOptions IWidgetOptions
} from '@/lib/litegraph/src/types/widgets' } from '@/lib/litegraph/src/types/widgets'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import type { InputSpec } from '@/schemas/nodeDef/nodeDefSchemaV2' import type { InputSpec } from '@/schemas/nodeDef/nodeDefSchemaV2'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { calculateImageGrid } from '@/scripts/ui/imagePreview' import { calculateImageGrid } from '@/scripts/ui/imagePreview'
import { ComfyWidgetConstructorV2 } from '@/scripts/widgets' import { ComfyWidgetConstructorV2 } from '@/scripts/widgets'
import { useCanvasStore } from '@/stores/graphStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
import { is_all_same_aspect_ratio } from '@/utils/imageUtil' import { is_all_same_aspect_ratio } from '@/utils/imageUtil'

View File

@@ -1,9 +1,9 @@
import type { LGraph } from '@/lib/litegraph/src/litegraph' import type { LGraph } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { import {
calculateMinimapScale, calculateMinimapScale,
calculateNodeBounds calculateNodeBounds
} from '@/renderer/core/spatial/boundsCalculator' } from '@/renderer/core/spatial/boundsCalculator'
import { useCanvasStore } from '@/stores/graphStore'
import { useWorkflowStore } from '@/stores/workflowStore' import { useWorkflowStore } from '@/stores/workflowStore'
import { renderMinimapToCanvas } from '../extensions/minimap/minimapCanvasRenderer' import { renderMinimapToCanvas } from '../extensions/minimap/minimapCanvasRenderer'

View File

@@ -24,6 +24,7 @@ import type {
ISerialisableNodeOutput, ISerialisableNodeOutput,
ISerialisedNode ISerialisedNode
} from '@/lib/litegraph/src/types/serialisation' } from '@/lib/litegraph/src/types/serialisation'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import type { NodeId } from '@/schemas/comfyWorkflowSchema' import type { NodeId } from '@/schemas/comfyWorkflowSchema'
import { transformInputSpecV2ToV1 } from '@/schemas/nodeDef/migration' import { transformInputSpecV2ToV1 } from '@/schemas/nodeDef/migration'
import type { import type {
@@ -37,7 +38,6 @@ import { isComponentWidget, isDOMWidget } from '@/scripts/domWidget'
import { $el } from '@/scripts/ui' import { $el } from '@/scripts/ui'
import { useDomWidgetStore } from '@/stores/domWidgetStore' import { useDomWidgetStore } from '@/stores/domWidgetStore'
import { useExecutionStore } from '@/stores/executionStore' import { useExecutionStore } from '@/stores/executionStore'
import { useCanvasStore } from '@/stores/graphStore'
import { useNodeOutputStore } from '@/stores/imagePreviewStore' import { useNodeOutputStore } from '@/stores/imagePreviewStore'
import { ComfyNodeDefImpl } from '@/stores/nodeDefStore' import { ComfyNodeDefImpl } from '@/stores/nodeDefStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'

View File

@@ -5,6 +5,7 @@ import type ChatHistoryWidget from '@/components/graph/widgets/ChatHistoryWidget
import { useNodeChatHistory } from '@/composables/node/useNodeChatHistory' import { useNodeChatHistory } from '@/composables/node/useNodeChatHistory'
import { useNodeProgressText } from '@/composables/node/useNodeProgressText' import { useNodeProgressText } from '@/composables/node/useNodeProgressText'
import type { LGraph, Subgraph } from '@/lib/litegraph/src/litegraph' import type { LGraph, Subgraph } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import type { import type {
DisplayComponentWsMessage, DisplayComponentWsMessage,
ExecutedWsMessage, ExecutedWsMessage,
@@ -28,7 +29,6 @@ import { useNodeOutputStore } from '@/stores/imagePreviewStore'
import type { NodeLocatorId } from '@/types/nodeIdentification' import type { NodeLocatorId } from '@/types/nodeIdentification'
import { createNodeLocatorId } from '@/types/nodeIdentification' import { createNodeLocatorId } from '@/types/nodeIdentification'
import { useCanvasStore } from './graphStore'
import { ComfyWorkflow, useWorkflowStore } from './workflowStore' import { ComfyWorkflow, useWorkflowStore } from './workflowStore'
export interface QueuedPrompt { export interface QueuedPrompt {

View File

@@ -4,11 +4,11 @@ import { computed, ref, shallowRef, watch } from 'vue'
import type { DragAndScaleState } from '@/lib/litegraph/src/DragAndScale' import type { DragAndScaleState } from '@/lib/litegraph/src/DragAndScale'
import type { Subgraph } from '@/lib/litegraph/src/litegraph' import type { Subgraph } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { findSubgraphPathById } from '@/utils/graphTraversalUtil' import { findSubgraphPathById } from '@/utils/graphTraversalUtil'
import { isNonNullish } from '@/utils/typeGuardUtil' import { isNonNullish } from '@/utils/typeGuardUtil'
import { useCanvasStore } from './graphStore'
import { useWorkflowStore } from './workflowStore' import { useWorkflowStore } from './workflowStore'
/** /**

View File

@@ -1,7 +1,7 @@
/** /**
* Type definitions for spatial indexing system * Type definitions for spatial indexing system
*/ */
import type { Bounds } from '@/utils/spatial/QuadTree' import type { Bounds } from '@/renderer/core/spatial/QuadTree'
/** /**
* Debug information for a single QuadTree node * Debug information for a single QuadTree node

View File

@@ -28,7 +28,7 @@ vi.mock('@/stores/commandStore', () => ({
}) })
})) }))
vi.mock('@/stores/graphStore', () => ({ vi.mock('@/renderer/core/canvas/canvasStore', () => ({
useCanvasStore: () => ({ useCanvasStore: () => ({
appScalePercentage: 100, appScalePercentage: 100,
setAppZoomFromPercentage: mockSetAppZoom setAppZoomFromPercentage: mockSetAppZoom

View File

@@ -5,7 +5,7 @@ import { useCanvasTransformSync } from '@/composables/canvas/useCanvasTransformS
// Mock canvas store // Mock canvas store
let mockGetCanvas = vi.fn() let mockGetCanvas = vi.fn()
vi.mock('@/stores/graphStore', () => ({ vi.mock('@/renderer/core/canvas/canvasStore', () => ({
useCanvasStore: vi.fn(() => ({ useCanvasStore: vi.fn(() => ({
getCanvas: mockGetCanvas getCanvas: mockGetCanvas
})) }))

View File

@@ -8,8 +8,8 @@ import {
Positionable, Positionable,
Reroute Reroute
} from '@/lib/litegraph/src/litegraph' } from '@/lib/litegraph/src/litegraph'
import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { app } from '@/scripts/app' import { app } from '@/scripts/app'
import { useCanvasStore } from '@/stores/graphStore'
// Mock the app module // Mock the app module
vi.mock('@/scripts/app', () => ({ vi.mock('@/scripts/app', () => ({

View File

@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it } from 'vitest' import { beforeEach, describe, expect, it } from 'vitest'
import { useTransformState } from '@/composables/element/useTransformState' import { useTransformState } from '@/renderer/core/layout/transform/useTransformState'
// Create a mock canvas context for transform testing // Create a mock canvas context for transform testing
function createMockCanvasContext() { function createMockCanvasContext() {

View File

@@ -1,11 +1,11 @@
import { beforeEach, describe, expect, it, vi } from 'vitest' import { beforeEach, describe, expect, it, vi } from 'vitest'
import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions' import { useCanvasInteractions } from '@/composables/graph/useCanvasInteractions'
import { useCanvasStore } from '@/stores/graphStore' import { useCanvasStore } from '@/renderer/core/canvas/canvasStore'
import { useSettingStore } from '@/stores/settingStore' import { useSettingStore } from '@/stores/settingStore'
// Mock stores // Mock stores
vi.mock('@/stores/graphStore') vi.mock('@/renderer/core/canvas/canvasStore')
vi.mock('@/stores/settingStore') vi.mock('@/stores/settingStore')
vi.mock('@/scripts/app', () => ({ vi.mock('@/scripts/app', () => ({
app: { app: {

View File

@@ -2,7 +2,7 @@ import { mount } from '@vue/test-utils'
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import { nextTick } from 'vue' import { nextTick } from 'vue'
import { useCanvasTransformSync } from '@/composables/graph/useCanvasTransformSync' import { useCanvasTransformSync } from '@/renderer/core/layout/transform/useCanvasTransformSync'
import type { LGraphCanvas } from '../../../../src/lib/litegraph/src/litegraph' import type { LGraphCanvas } from '../../../../src/lib/litegraph/src/litegraph'

View File

@@ -2,7 +2,7 @@ import { mount } from '@vue/test-utils'
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
import { nextTick, ref } from 'vue' import { nextTick, ref } from 'vue'
import { useTransformSettling } from '@/composables/graph/useTransformSettling' import { useTransformSettling } from '@/renderer/core/layout/transform/useTransformSettling'
describe('useTransformSettling', () => { describe('useTransformSettling', () => {
let element: HTMLDivElement let element: HTMLDivElement

View File

@@ -115,7 +115,7 @@ const defaultSettingStore = {
set: vi.fn().mockResolvedValue(undefined) set: vi.fn().mockResolvedValue(undefined)
} }
vi.mock('@/stores/graphStore', () => ({ vi.mock('@/renderer/core/canvas/canvasStore', () => ({
useCanvasStore: vi.fn(() => defaultCanvasStore) useCanvasStore: vi.fn(() => defaultCanvasStore)
})) }))

View File

@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it } from 'vitest' import { beforeEach, describe, expect, it } from 'vitest'
import { useTransformState } from '@/composables/element/useTransformState' import { useTransformState } from '@/renderer/core/layout/transform/useTransformState'
// Mock canvas context for testing // Mock canvas context for testing
const createMockCanvasContext = () => ({ const createMockCanvasContext = () => ({

View File

@@ -34,7 +34,7 @@ vi.mock('@/scripts/app', () => {
} }
}) })
vi.mock('@/stores/graphStore', () => ({ vi.mock('@/renderer/core/canvas/canvasStore', () => ({
useCanvasStore: () => ({ useCanvasStore: () => ({
getCanvas: () => (app as any).canvas getCanvas: () => (app as any).canvas
}) })

View File

@@ -35,7 +35,7 @@ vi.mock('@/scripts/app', () => {
}) })
// Mock canvasStore // Mock canvasStore
vi.mock('@/stores/graphStore', () => ({ vi.mock('@/renderer/core/canvas/canvasStore', () => ({
useCanvasStore: () => ({ useCanvasStore: () => ({
getCanvas: () => (app as any).canvas getCanvas: () => (app as any).canvas
}) })

View File

@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it } from 'vitest' import { beforeEach, describe, expect, it } from 'vitest'
import { type Bounds, QuadTree } from '@/utils/spatial/QuadTree' import { type Bounds, QuadTree } from '@/renderer/core/spatial/QuadTree'
describe('QuadTree', () => { describe('QuadTree', () => {
let quadTree: QuadTree<string> let quadTree: QuadTree<string>