|
import { app } from "../../scripts/app.js";
|
|
|
|
function autoCreateMenu(opts) {
|
|
|
|
var options = ["Search",];
|
|
var search_opts;
|
|
if (opts.nodeFrom && opts.slotFrom) {
|
|
options.push(null);
|
|
options.push("Anything Everywhere");
|
|
options.push("Anything Everywhere?");
|
|
if (opts.nodeFrom?.outputs?.length==3 &&
|
|
opts.nodeFrom.outputs[0].name=='MODEL' &&
|
|
opts.nodeFrom.outputs[1].name=='CLIP' &&
|
|
opts.nodeFrom.outputs[2].name=='VAE') options.push("Anything Everywhere3");
|
|
search_opts = {node_from: opts.nodeFrom, slot_from: opts.slotFrom, type_filter_in: opts.slotFrom.type};
|
|
} else {
|
|
search_opts = {node_to: opts.nodeTo, slot_from: opts.slotTo, type_filter_out: slotTo.type};
|
|
}
|
|
|
|
var menu = new LiteGraph.ContextMenu(options, {
|
|
event: opts.e,
|
|
title: "UE Node",
|
|
callback: inner_clicked
|
|
});
|
|
|
|
const p = [ opts.e.canvasX, opts.e.canvasY ];
|
|
|
|
function inner_clicked(v,options,e) {
|
|
if (!v) return;
|
|
if (v=="Search") {
|
|
app.canvas.showSearchBox(opts.e,search_opts);
|
|
return;
|
|
}
|
|
var newNode = LiteGraph.createNode(v);
|
|
app.graph.add(newNode);
|
|
newNode.pos = p;
|
|
if (v=="Anything Everywhere3") {
|
|
for (var i=0; i<3; i++) {opts.nodeFrom.connect( i, newNode, i );}
|
|
} else {
|
|
opts.nodeFrom.connect( opts.nodeFrom.findOutputSlot(opts.slotFrom.name), newNode, 0 );
|
|
}
|
|
app.graph.change();
|
|
}
|
|
}
|
|
|
|
export {autoCreateMenu} |