This commit is contained in:
Austin Mroz
2025-08-29 10:08:54 -07:00
parent 7bd6fa45cf
commit d367f901a0

View File

@@ -591,14 +591,23 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph {
return n.widgets.find((w) => w.name === widgetName)
}
const overlay: object = {nodeId, widgetName, graph: this.subgraph}
const handler = Object.fromEntries(['get', 'set', 'getPrototypeOf'].map((s) => {
const func = function(t,p,r) {
const handler = Object.fromEntries(['get', 'set', 'getPrototypeOf', 'getOwnPropertyDescriptor', 'getOwnProperty', 'ownKeys'].map((s) => {
const func = function(t,p,...rest) {
if (s == 'get' && p == '_overlay')
return overlay
const lw = linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName)
if (s.startsWith('getOwnP'))
console.log("getOwnP", arguments)
if (s == 'ownKeys') {
console.log("ownkeys", arguments)
return [...Reflect.ownKeys(lw), ...Reflect.ownKeys(overlay)]
}
if (s == 'get' && p == 'value')
return linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName).value
return lw.value
if (s == 'set' && p == 'value')
return linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName).value = r
return lw.value = rest[0]
if (s == 'get' && p == 'node')
return {pos: this.pos, __proto__:
linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName).node}
@@ -608,7 +617,7 @@ export class SubgraphNode extends LGraphNode implements BaseLGraph {
t = linkedWidget(overlay.graph, overlay.nodeId, overlay.widgetName)
if (!t)
return//TODO: pass to overlay subitem to display a disconnected state
return Reflect[s](t,p,r)
return Reflect[s](t,p,...rest)
}
return [s, func]
}))