import { app } from "../../scripts/app.js"; import { addConnectionLayoutSupport } from "./utils.js"; import { PowerPrompt } from "./base_power_prompt.js"; import { NodeTypesString } from "./constants.js"; let nodeData = null; app.registerExtension({ name: "rgthree.PowerPrompt", async beforeRegisterNodeDef(nodeType, passedNodeData, _app) { if (passedNodeData.name.includes("Power Prompt") && passedNodeData.name.includes("rgthree")) { nodeData = passedNodeData; const onNodeCreated = nodeType.prototype.onNodeCreated; nodeType.prototype.onNodeCreated = function () { onNodeCreated ? onNodeCreated.apply(this, []) : undefined; this.powerPrompt = new PowerPrompt(this, passedNodeData); }; addConnectionLayoutSupport(nodeType, app, [ ["Left", "Right"], ["Right", "Left"], ]); } }, async loadedGraphNode(node) { if (node.type === NodeTypesString.POWER_PROMPT) { setTimeout(() => { if (node.outputs[0].type === "STRING") { if (node.outputs[0].links) { node.outputs[3].links = node.outputs[3].links || []; for (const link of node.outputs[0].links) { node.outputs[3].links.push(link); app.graph.links[link].origin_slot = 3; } node.outputs[0].links = null; } node.outputs[0].type = nodeData.output[0]; node.outputs[0].name = nodeData.output_name[0] || node.outputs[0].type; node.outputs[0].color_on = undefined; node.outputs[0].color_off = undefined; } }, 50); } }, });