Spaces:
Running
on
Zero
Running
on
Zero
import { api } from "../../scripts/api.js"; | |
import { app } from "../../scripts/app.js"; | |
let original_show = app.ui.dialog.show; | |
function dialog_show_wrapper(html) { | |
if (typeof html === "string") { | |
if(html.includes("IMPACT-PACK-SIGNAL: STOP CONTROL BRIDGE")) { | |
return; | |
} | |
this.textElement.innerHTML = html; | |
} else { | |
this.textElement.replaceChildren(html); | |
} | |
this.element.style.display = "flex"; | |
} | |
app.ui.dialog.show = dialog_show_wrapper; | |
function nodeFeedbackHandler(event) { | |
let nodes = app.graph._nodes_by_id; | |
let node = nodes[event.detail.node_id]; | |
if(node) { | |
const w = node.widgets.find((w) => event.detail.widget_name === w.name); | |
if(w) { | |
w.value = event.detail.value; | |
} | |
} | |
} | |
api.addEventListener("impact-node-feedback", nodeFeedbackHandler); | |
function setMuteState(event) { | |
let nodes = app.graph._nodes_by_id; | |
let node = nodes[event.detail.node_id]; | |
if(node) { | |
if(event.detail.is_active) | |
node.mode = 0; | |
else | |
node.mode = 2; | |
} | |
} | |
api.addEventListener("impact-node-mute-state", setMuteState); | |
async function bridgeContinue(event) { | |
let nodes = app.graph._nodes_by_id; | |
let node = nodes[event.detail.node_id]; | |
if(node) { | |
const mutes = new Set(event.detail.mutes); | |
const actives = new Set(event.detail.actives); | |
const bypasses = new Set(event.detail.bypasses); | |
for(let i in app.graph._nodes_by_id) { | |
let this_node = app.graph._nodes_by_id[i]; | |
if(mutes.has(i)) { | |
this_node.mode = 2; | |
} | |
else if(actives.has(i)) { | |
this_node.mode = 0; | |
} | |
else if(bypasses.has(i)) { | |
this_node.mode = 4; | |
} | |
} | |
await app.queuePrompt(0, 1); | |
} | |
} | |
api.addEventListener("impact-bridge-continue", bridgeContinue); | |
function addQueue(event) { | |
app.queuePrompt(0, 1); | |
} | |
api.addEventListener("impact-add-queue", addQueue); | |
function refreshPreview(event) { | |
let node_id = event.detail.node_id; | |
let item = event.detail.item; | |
let img = new Image(); | |
img.src = `/view?filename=${item.filename}&subfolder=${item.subfolder}&type=${item.type}&no-cache=${Date.now()}`; | |
let node = app.graph._nodes_by_id[node_id]; | |
if(node) | |
node.imgs = [img]; | |
} | |
api.addEventListener("impact-preview", refreshPreview); | |