Spaces:
Running
Running
import { app } from "../../scripts/app.js"; | |
function autoCreateMenu(opts) { | |
//opts.e.stopPropagation(); | |
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} |