Spaces:
Running
on
Zero
Running
on
Zero
import { app } from "../../../scripts/app.js"; | |
const id = "pysssss.MiddleClickAddDefaultNode"; | |
const ext = { | |
name: id, | |
async setup(app) { | |
app.ui.settings.addSetting({ | |
id, | |
name: "🐍 Middle click slot to add", | |
defaultValue: "Reroute", | |
type: "combo", | |
options: (value) => | |
[ | |
...Object.keys(LiteGraph.registered_node_types) | |
.filter((k) => k.includes("Reroute")) | |
.sort((a, b) => { | |
if (a === "Reroute") return -1; | |
if (b === "Reroute") return 1; | |
return a.localeCompare(b); | |
}), | |
"[None]", | |
].map((m) => ({ | |
value: m, | |
text: m, | |
selected: !value ? m === "[None]" : m === value, | |
})), | |
onChange(value) { | |
const enable = value && value !== "[None]"; | |
if (value === true) { | |
value = "Reroute"; | |
} | |
LiteGraph.middle_click_slot_add_default_node = enable; | |
if (enable) { | |
for (const arr of Object.values(LiteGraph.slot_types_default_in).concat( | |
Object.values(LiteGraph.slot_types_default_out) | |
)) { | |
const idx = arr.indexOf(value); | |
if (idx !== 0) { | |
arr.splice(idx, 1); | |
} | |
arr.unshift(value); | |
} | |
} | |
}, | |
}); | |
}, | |
}; | |
app.registerExtension(ext); | |