diff --git a/src/composables/graph/useGraphNodeManager.ts b/src/composables/graph/useGraphNodeManager.ts index 76b5c04133..9bb1598ba4 100644 --- a/src/composables/graph/useGraphNodeManager.ts +++ b/src/composables/graph/useGraphNodeManager.ts @@ -6,6 +6,7 @@ import { reactiveComputed } from '@vueuse/core' import { reactive, shallowReactive } from 'vue' import { useChainCallback } from '@/composables/functional/useChainCallback' +import { isProxyWidget } from '@/core/graph/subgraph/proxyWidget' import type { INodeInputSlot, INodeOutputSlot @@ -42,14 +43,15 @@ export interface SafeWidgetData { name: string type: string value: WidgetValue + borderStyle?: string + callback?: ((value: unknown) => void) | undefined + controlWidget?: SafeControlWidget + isDOMWidget?: boolean label?: string + nodeType?: string options?: IWidgetOptions - callback?: ((value: unknown) => void) | undefined spec?: InputSpec slotMetadata?: WidgetSlotMetadata - isDOMWidget?: boolean - controlWidget?: SafeControlWidget - borderStyle?: string } export interface VueNodeData { @@ -96,6 +98,11 @@ function getControlWidget(widget: IBaseWidget): SafeControlWidget | undefined { update: (value) => (cagWidget.value = normalizeControlOption(value)) } } +function getNodeType(node: LGraphNode, widget: IBaseWidget) { + if (!node.isSubgraphNode() || !isProxyWidget(widget)) return undefined + const subNode = node.subgraph.getNodeById(widget._overlay.nodeId) + return subNode?.type +} export function safeWidgetMapper( node: LGraphNode, @@ -131,12 +138,13 @@ export function safeWidgetMapper( value: value, borderStyle, callback: widget.callback, + controlWidget: getControlWidget(widget), isDOMWidget: isDOMWidget(widget), label: widget.label, + nodeType: getNodeType(node, widget), options: widget.options, spec, - slotMetadata: slotInfo, - controlWidget: getControlWidget(widget) + slotMetadata: slotInfo } } catch (error) { return { diff --git a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue index d9f2acc025..102f679453 100644 --- a/src/renderer/extensions/vueNodes/components/NodeWidgets.vue +++ b/src/renderer/extensions/vueNodes/components/NodeWidgets.vue @@ -168,12 +168,13 @@ const processedWidgets = computed((): ProcessedWidget[] => { name: widget.name, type: widget.type, value: widget.value, + borderStyle: widget.borderStyle, + callback: widget.callback, + controlWidget: widget.controlWidget, label: widget.label, + nodeType: widget.nodeType, options: widgetOptions, - callback: widget.callback, - spec: widget.spec, - borderStyle: widget.borderStyle, - controlWidget: widget.controlWidget + spec: widget.spec } function updateHandler(value: WidgetValue) { diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.vue index 7cf365076f..f057c2a1b7 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelect.vue @@ -1,8 +1,9 @@