mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-05 07:30:11 +00:00
better scroll in searchbox
This commit is contained in:
@@ -9286,7 +9286,7 @@ LGraphNode.prototype.executeAction = function(action)
|
||||
return;
|
||||
}
|
||||
selected.classList.add("selected");
|
||||
selected.scrollIntoView();
|
||||
selected.scrollIntoView({block: "end", behaviour: "smooth"});
|
||||
}
|
||||
|
||||
function refreshHelper() {
|
||||
|
||||
60
build/litegraph.min.js
vendored
60
build/litegraph.min.js
vendored
@@ -201,36 +201,36 @@ k.prototype.prompt=function(a,b,d,e){var c=this;a=a||"";var g=!1,h=document.crea
|
||||
h;h.querySelector(".name").innerText=a;h.querySelector(".value").value=b;var m=h.querySelector("input");m.addEventListener("keydown",function(a){g=!0;if(27==a.keyCode)h.close();else if(13==a.keyCode)d&&d(this.value),h.close();else return;a.preventDefault();a.stopPropagation()});h.querySelector("button").addEventListener("click",function(a){d&&d(m.value);c.setDirty(!0);h.close()});a=k.active_canvas.canvas;b=a.getBoundingClientRect();var f=-20,q=-20;b&&(f-=b.left,q-=b.top);e?(h.style.left=e.clientX+
|
||||
f+"px",h.style.top=e.clientY+q+"px"):(h.style.left=0.5*a.width+f+"px",h.style.top=0.5*a.height+q+"px");a.parentNode.appendChild(h);setTimeout(function(){m.focus()},10);return h};k.search_limit=-1;k.prototype.showSearchBox=function(a){function b(b){if(b)if(g.onSearchBoxSelection)g.onSearchBoxSelection(b,a,A);else{var d=e.searchbox_extras[b.toLowerCase()];d&&(b=d.type);if(b=e.createNode(b))b.pos=A.convertEventToCanvasOffset(a),A.graph.add(b);if(d&&d.data){if(d.data.properties)for(var c in d.data.properties)b.addProperty(c,
|
||||
d.data.properties[c]);if(d.data.inputs)for(c in b.inputs=[],d.data.inputs)b.addOutput(d.data.inputs[c][0],d.data.inputs[c][1]);if(d.data.outputs)for(c in b.outputs=[],d.data.outputs)b.addOutput(d.data.outputs[c][0],d.data.outputs[c][1]);d.data.title&&(b.title=d.data.title);d.data.json&&b.configure(d.data.json)}}h.close()}function d(a){var b=l;l&&l.classList.remove("selected");l?(l=a?l.nextSibling:l.previousSibling)||(l=b):l=a?f.childNodes[0]:f.childNodes[f.childNodes.length];l&&(l.classList.add("selected"),
|
||||
l.scrollIntoView())}function c(){function a(d,e){var c=document.createElement("div");q||(q=d);c.innerText=d;c.dataset.type=escape(d);c.className="litegraph lite-search-item";e&&(c.className+=" "+e);c.addEventListener("click",function(a){b(unescape(this.dataset.type))});f.appendChild(c)}p=null;var d=u.value;q=null;f.innerHTML="";if(d)if(g.onSearchBox){var h=g.onSearchBox(f,d,A);if(h)for(var m=0;m<h.length;++m)a(h[m])}else{var h=0,d=d.toLowerCase(),l=A.filter||A.graph.filter;for(m in e.searchbox_extras){var t=
|
||||
e.searchbox_extras[m];if(-1!==t.desc.toLowerCase().indexOf(d)){var x=e.registered_node_types[t.type];if(!x||!x.filter||x.filter==l)if(a(t.desc,"searchbox_extra"),-1!==k.search_limit&&h++>k.search_limit)break}}t=null;if(Array.prototype.filter)t=Object.keys(e.registered_node_types).filter(v);else for(m in t=[],e.registered_node_types)v(m)&&t.push(m);for(m=0;m<t.length&&!(a(t[m]),-1!==k.search_limit&&h++>k.search_limit);m++);var v=function(a){var b=e.registered_node_types[a];return l&&b.filter!=l?!1:
|
||||
-1!==a.toLowerCase().indexOf(d)}}}var g=this,h=document.createElement("div");h.className="litegraph litesearchbox graphdialog rounded";h.innerHTML="<span class='name'>Search</span> <input autofocus type='text' class='value rounded'/><div class='helper'></div>";h.close=function(){g.search_box=null;document.body.focus();setTimeout(function(){g.canvas.focus()},20);h.parentNode&&h.parentNode.removeChild(h)};var m=null;1<this.ds.scale&&(h.style.transform="scale("+this.ds.scale+")");h.addEventListener("mouseenter",
|
||||
function(a){m&&(clearTimeout(m),m=null)});h.addEventListener("mouseleave",function(a){m=setTimeout(function(){h.close()},500)});g.search_box&&g.search_box.close();g.search_box=h;var f=h.querySelector(".helper"),q=null,p=null,l=null,u=h.querySelector("input");u&&(u.addEventListener("blur",function(a){this.focus()}),u.addEventListener("keydown",function(a){if(38==a.keyCode)d(!1);else if(40==a.keyCode)d(!0);else if(27==a.keyCode)h.close();else if(13==a.keyCode)l?b(l.innerHTML):q?b(q):h.close();else{p&&
|
||||
clearInterval(p);p=setTimeout(c,10);return}a.preventDefault();a.stopPropagation();a.stopImmediatePropagation();return!0}));var A=k.active_canvas,x=A.canvas,v=x.ownerDocument||document;v.fullscreenElement?v.fullscreenElement.appendChild(h):v.body.appendChild(h);x=x.getBoundingClientRect();v=(a?a.clientY:x.top+0.5*x.height)-20;h.style.left=(a?a.clientX:x.left+0.5*x.width)-80+"px";h.style.top=v+"px";u.focus();return h};k.prototype.showEditPropertyValue=function(a,b,d){function e(){c(p.value)}function c(d){"number"==
|
||||
typeof a.properties[b]&&(d=Number(d));if("array"==g||"object"==g)d=JSON.parse(d);a.properties[b]=d;a._graph&&a._graph._version++;if(a.onPropertyChanged)a.onPropertyChanged(b,d);k.close();a.setDirtyCanvas(!0,!0)}if(a&&void 0!==a.properties[b]){d=d||{};var g="string";null!==a.properties[b]&&(g=typeof a.properties[b]);var h=null;a.getPropertyInfo&&(h=a.getPropertyInfo(b));if(a.properties_info)for(var m=0;m<a.properties_info.length;++m)if(a.properties_info[m].name==b){h=a.properties_info[m];break}void 0!==
|
||||
h&&null!==h&&h.type&&(g=h.type);var f="";if("string"==g||"number"==g||"array"==g||"object"==g)f="<input autofocus type='text' class='value'/>";else if("enum"==g&&h.values){f="<select autofocus type='text' class='value'>";for(m in h.values)var q=h.values.constructor===Array?h.values[m]:m,f=f+("<option value='"+q+"' "+(q==a.properties[b]?"selected":"")+">"+h.values[m]+"</option>");f+="</select>"}else if("boolean"==g)f="<input autofocus type='checkbox' class='value' "+(a.properties[b]?"checked":"")+
|
||||
"/>";else{console.warn("unknown type: "+g);return}var k=this.createDialog("<span class='name'>"+b+"</span>"+f+"<button>OK</button>",d);if("enum"==g&&h.values){var p=k.querySelector("select");p.addEventListener("change",function(a){c(a.target.value)})}else if("boolean"==g)(p=k.querySelector("input"))&&p.addEventListener("click",function(a){c(!!p.checked)});else if(p=k.querySelector("input"))p.addEventListener("blur",function(a){this.focus()}),q=void 0!==a.properties[b]?a.properties[b]:"",q=JSON.stringify(q),
|
||||
p.value=q,p.addEventListener("keydown",function(a){13==a.keyCode&&(e(),a.preventDefault(),a.stopPropagation())});k.querySelector("button").addEventListener("click",e)}};k.prototype.createDialog=function(a,b){b=b||{};var d=document.createElement("div");d.className="graphdialog";d.innerHTML=a;var e=this.canvas.getBoundingClientRect(),c=-20,g=-20;e&&(c-=e.left,g-=e.top);b.position?(c+=b.position[0],g+=b.position[1]):b.event?(c+=b.event.clientX,g+=b.event.clientY):(c+=0.5*this.canvas.width,g+=0.5*this.canvas.height);
|
||||
d.style.left=c+"px";d.style.top=g+"px";this.canvas.parentNode.appendChild(d);d.close=function(){this.parentNode&&this.parentNode.removeChild(this)};return d};k.onMenuNodeCollapse=function(a,b,d,e,c){c.collapse()};k.onMenuNodePin=function(a,b,d,e,c){c.pin()};k.onMenuNodeMode=function(a,b,d,c,g){new e.ContextMenu(["Always","On Event","On Trigger","Never"],{event:d,callback:function(a){if(g)switch(a){case "On Event":g.mode=e.ON_EVENT;break;case "On Trigger":g.mode=e.ON_TRIGGER;break;case "Never":g.mode=
|
||||
e.NEVER;break;default:g.mode=e.ALWAYS}},parentMenu:c,node:g});return!1};k.onMenuNodeColors=function(a,b,d,c,g){if(!g)throw"no node for color";b=[];b.push({value:null,content:"<span style='display: block; padding-left: 4px;'>No color</span>"});for(var h in k.node_colors)a=k.node_colors[h],a={value:h,content:"<span style='display: block; color: #999; padding-left: 4px; border-left: 8px solid "+a.color+"; background-color:"+a.bgcolor+"'>"+h+"</span>"},b.push(a);new e.ContextMenu(b,{event:d,callback:function(a){g&&
|
||||
((a=a.value?k.node_colors[a.value]:null)?g.constructor===e.LGraphGroup?g.color=a.groupcolor:(g.color=a.color,g.bgcolor=a.bgcolor):(delete g.color,delete g.bgcolor),g.setDirtyCanvas(!0,!0))},parentMenu:c,node:g});return!1};k.onMenuNodeShapes=function(a,b,d,c,g){if(!g)throw"no node passed";new e.ContextMenu(e.VALID_SHAPES,{event:d,callback:function(a){g&&(g.shape=a,g.setDirtyCanvas(!0))},parentMenu:c,node:g});return!1};k.onMenuNodeRemove=function(a,b,d,e,c){if(!c)throw"no node passed";!1!==c.removable&&
|
||||
(c.graph.remove(c),c.setDirtyCanvas(!0,!0))};k.onMenuNodeClone=function(a,b,d,e,c){!1!=c.clonable&&(a=c.clone())&&(a.pos=[c.pos[0]+5,c.pos[1]+5],c.graph.add(a),c.setDirtyCanvas(!0,!0))};k.node_colors={red:{color:"#322",bgcolor:"#533",groupcolor:"#A88"},brown:{color:"#332922",bgcolor:"#593930",groupcolor:"#b06634"},green:{color:"#232",bgcolor:"#353",groupcolor:"#8A8"},blue:{color:"#223",bgcolor:"#335",groupcolor:"#88A"},pale_blue:{color:"#2a363b",bgcolor:"#3f5159",groupcolor:"#3f789e"},cyan:{color:"#233",
|
||||
bgcolor:"#355",groupcolor:"#8AA"},purple:{color:"#323",bgcolor:"#535",groupcolor:"#a1309b"},yellow:{color:"#432",bgcolor:"#653",groupcolor:"#b58b2a"},black:{color:"#222",bgcolor:"#000",groupcolor:"#444"}};k.prototype.getCanvasMenuOptions=function(){var a=null;this.getMenuOptions?a=this.getMenuOptions():(a=[{content:"Add Node",has_submenu:!0,callback:k.onMenuAdd},{content:"Add Group",callback:k.onGroupAdd}],this._graph_stack&&0<this._graph_stack.length&&a.push(null,{content:"Close subgraph",callback:this.closeSubgraph.bind(this)}));
|
||||
if(this.getExtraMenuOptions){var b=this.getExtraMenuOptions(this,a);b&&(a=a.concat(b))}return a};k.prototype.getNodeMenuOptions=function(a){var b=null,b=a.getMenuOptions?a.getMenuOptions(this):[{content:"Inputs",has_submenu:!0,disabled:!0,callback:k.showMenuNodeOptionalInputs},{content:"Outputs",has_submenu:!0,disabled:!0,callback:k.showMenuNodeOptionalOutputs},null,{content:"Properties",has_submenu:!0,callback:k.onShowMenuNodeProperties},null,{content:"Title",callback:k.onShowPropertyEditor},{content:"Mode",
|
||||
has_submenu:!0,callback:k.onMenuNodeMode},{content:"Resize",callback:k.onResizeNode},{content:"Collapse",callback:k.onMenuNodeCollapse},{content:"Pin",callback:k.onMenuNodePin},{content:"Colors",has_submenu:!0,callback:k.onMenuNodeColors},{content:"Shapes",has_submenu:!0,callback:k.onMenuNodeShapes},null];if(a.onGetInputs){var d=a.onGetInputs();d&&d.length&&(b[0].disabled=!1)}a.onGetOutputs&&(d=a.onGetOutputs())&&d.length&&(b[1].disabled=!1);a.getExtraMenuOptions&&(d=a.getExtraMenuOptions(this))&&
|
||||
(d.push(null),b=d.concat(b));!1!==a.clonable&&b.push({content:"Clone",callback:k.onMenuNodeClone});!1!==a.removable&&b.push(null,{content:"Remove",callback:k.onMenuNodeRemove});if(a.graph&&a.graph.onGetNodeMenuOptions)a.graph.onGetNodeMenuOptions(b,a);return b};k.prototype.getGroupMenuOptions=function(a){return[{content:"Title",callback:k.onShowPropertyEditor},{content:"Color",has_submenu:!0,callback:k.onMenuNodeColors},{content:"Font size",property:"font_size",type:"Number",callback:k.onShowPropertyEditor},
|
||||
null,{content:"Remove",callback:k.onMenuNodeRemove}]};k.prototype.processContextMenu=function(a,b){var d=this,c=k.active_canvas.getCanvasWindow(),g=null,h={event:b,callback:function(b,c,e){if(b)if("Remove Slot"==b.content)b=b.slot,b.input?a.removeInput(b.slot):b.output&&a.removeOutput(b.slot);else if("Disconnect Links"==b.content)b=b.slot,b.output?a.disconnectOutput(b.slot):b.input&&a.disconnectInput(b.slot);else if("Rename Slot"==b.content){b=b.slot;var g=b.input?a.getInputInfo(b.slot):a.getOutputInfo(b.slot),
|
||||
h=d.createDialog("<span class='name'>Name</span><input autofocus type='text'/><button>OK</button>",c),m=h.querySelector("input");m&&g&&(m.value=g.label||"");h.querySelector("button").addEventListener("click",function(a){m.value&&(g&&(g.label=m.value),d.setDirty(!0));h.close()})}},extra:a};a&&(h.title=a.type);var m=null;a&&(m=a.getSlotInPosition(b.canvasX,b.canvasY),k.active_node=a);if(m){g=[];m&&m.output&&m.output.links&&m.output.links.length&&g.push({content:"Disconnect Links",slot:m});var f=m.input||
|
||||
m.output;g.push(f.locked?"Cannot remove":{content:"Remove Slot",slot:m});g.push(f.nameLocked?"Cannot rename":{content:"Rename Slot",slot:m});h.title=(m.input?m.input.type:m.output.type)||"*";m.input&&m.input.type==e.ACTION&&(h.title="Action");m.output&&m.output.type==e.EVENT&&(h.title="Event")}else a?g=this.getNodeMenuOptions(a):(g=this.getCanvasMenuOptions(),(m=this.graph.getGroupOnPos(b.canvasX,b.canvasY))&&g.push(null,{content:"Edit Group",has_submenu:!0,submenu:{title:"Group",extra:m,options:this.getGroupMenuOptions(m)}}));
|
||||
g&&new e.ContextMenu(g,h,c)};this.CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.roundRect=function(a,b,d,c,e,g){void 0===e&&(e=5);void 0===g&&(g=e);this.moveTo(a+e,b);this.lineTo(a+d-e,b);this.quadraticCurveTo(a+d,b,a+d,b+e);this.lineTo(a+d,b+c-g);this.quadraticCurveTo(a+d,b+c,a+d-g,b+c);this.lineTo(a+g,b+c);this.quadraticCurveTo(a,b+c,a,b+c-g);this.lineTo(a,b+e);this.quadraticCurveTo(a,b,a+e,b)});e.compareObjects=function(a,b){for(var d in a)if(a[d]!=b[d])return!1;return!0};e.distance=
|
||||
y;e.colorToString=function(a){return"rgba("+Math.round(255*a[0]).toFixed()+","+Math.round(255*a[1]).toFixed()+","+Math.round(255*a[2]).toFixed()+","+(4==a.length?a[3].toFixed(2):"1.0")+")"};e.isInsideRectangle=u;e.growBounding=function(a,b,d){b<a[0]?a[0]=b:b>a[2]&&(a[2]=b);d<a[1]?a[1]=d:d>a[3]&&(a[3]=d)};e.isInsideBounding=function(a,b){return a[0]<b[0][0]||a[1]<b[0][1]||a[0]>b[1][0]||a[1]>b[1][1]?!1:!0};e.overlapBounding=v;e.hex2num=function(a){"#"==a.charAt(0)&&(a=a.slice(1));a=a.toUpperCase();
|
||||
for(var b=Array(3),d=0,c,e,g=0;6>g;g+=2)c="0123456789ABCDEF".indexOf(a.charAt(g)),e="0123456789ABCDEF".indexOf(a.charAt(g+1)),b[d]=16*c+e,d++;return b};e.num2hex=function(a){for(var b="#",d,c,e=0;3>e;e++)d=a[e]/16,c=a[e]%16,b+="0123456789ABCDEF".charAt(d)+"0123456789ABCDEF".charAt(c);return b};z.prototype.addItem=function(a,b,d){function c(a){var b=this.value;b&&b.has_submenu&&e.call(this,a)}function e(a){var b=this.value,c=!0;g.current_submenu&&g.current_submenu.close(a);if(d.callback){var h=d.callback.call(this,
|
||||
b,d,a,g,d.node);!0===h&&(c=!1)}if(b&&(b.callback&&!d.ignore_item_callbacks&&!0!==b.disabled&&(h=b.callback.call(this,b,d,a,g,d.extra),!0===h&&(c=!1)),b.submenu)){if(!b.submenu.options)throw"ContextMenu submenu needs options";new g.constructor(b.submenu.options,{callback:b.submenu.callback,event:a,parentMenu:g,ignore_item_callbacks:b.submenu.ignore_item_callbacks,title:b.submenu.title,extra:b.submenu.extra,autoopen:d.autoopen});c=!1}c&&!g.lock&&g.close()}var g=this;d=d||{};var h=document.createElement("div");
|
||||
h.className="litemenu-entry submenu";var m=!1;if(null===b)h.classList.add("separator");else{h.innerHTML=b&&b.title?b.title:a;if(h.value=b)b.disabled&&(m=!0,h.classList.add("disabled")),(b.submenu||b.has_submenu)&&h.classList.add("has_submenu");"function"==typeof b?(h.dataset.value=a,h.onclick_callback=b):h.dataset.value=b;b.className&&(h.className+=" "+b.className)}this.root.appendChild(h);m||h.addEventListener("click",e);d.autoopen&&h.addEventListener("mouseenter",c);return h};z.prototype.close=
|
||||
function(a,b){this.root.parentNode&&this.root.parentNode.removeChild(this.root);this.parentMenu&&!b&&(this.parentMenu.lock=!1,this.parentMenu.current_submenu=null,void 0===a?this.parentMenu.close():a&&!z.isCursorOverElement(a,this.parentMenu.root)&&z.trigger(this.parentMenu.root,"mouseleave",a));this.current_submenu&&this.current_submenu.close(a,!0);this.root.closing_timer&&clearTimeout(this.root.closing_timer)};z.trigger=function(a,b,d,c){var e=document.createEvent("CustomEvent");e.initCustomEvent(b,
|
||||
!0,!0,d);e.srcElement=c;a.dispatchEvent?a.dispatchEvent(e):a.__events&&a.__events.dispatchEvent(e);return e};z.prototype.getTopMenu=function(){return this.options.parentMenu?this.options.parentMenu.getTopMenu():this};z.prototype.getFirstEvent=function(){return this.options.parentMenu?this.options.parentMenu.getFirstEvent():this.options.event};z.isCursorOverElement=function(a,b){var d=a.clientX,c=a.clientY,e=b.getBoundingClientRect();return e?c>e.top&&c<e.top+e.height&&d>e.left&&d<e.left+e.width?!0:
|
||||
!1:!1};e.ContextMenu=z;e.closeAllContextMenus=function(a){a=a||window;a=a.document.querySelectorAll(".litecontextmenu");if(a.length){for(var b=[],d=0;d<a.length;d++)b.push(a[d]);for(d in b)b[d].close?b[d].close():b[d].parentNode&&b[d].parentNode.removeChild(b[d])}};e.extendClass=function(a,b){for(var d in b)a.hasOwnProperty(d)||(a[d]=b[d]);if(b.prototype)for(d in b.prototype)b.prototype.hasOwnProperty(d)&&!a.prototype.hasOwnProperty(d)&&(b.prototype.__lookupGetter__(d)?a.prototype.__defineGetter__(d,
|
||||
b.prototype.__lookupGetter__(d)):a.prototype[d]=b.prototype[d],b.prototype.__lookupSetter__(d)&&a.prototype.__defineSetter__(d,b.prototype.__lookupSetter__(d)))};e.getParameterNames=function(a){return(a+"").replace(/[/][/].*$/gm,"").replace(/\s+/g,"").replace(/[/][*][^/*]*[*][/]/g,"").split("){",1)[0].replace(/^[^(]*[(]/,"").replace(/=[^,]+/g,"").split(",").filter(Boolean)};Math.clamp=function(a,b,d){return b>a?b:d<a?d:a};"undefined"==typeof window||window.requestAnimationFrame||(window.requestAnimationFrame=
|
||||
window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)})})(this);"undefined"!=typeof exports&&(exports.LiteGraph=this.LiteGraph);
|
||||
l.scrollIntoView({block:"end",behaviour:"smooth"}))}function c(){function a(d,e){var c=document.createElement("div");q||(q=d);c.innerText=d;c.dataset.type=escape(d);c.className="litegraph lite-search-item";e&&(c.className+=" "+e);c.addEventListener("click",function(a){b(unescape(this.dataset.type))});f.appendChild(c)}p=null;var d=u.value;q=null;f.innerHTML="";if(d)if(g.onSearchBox){var h=g.onSearchBox(f,d,A);if(h)for(var m=0;m<h.length;++m)a(h[m])}else{var h=0,d=d.toLowerCase(),l=A.filter||A.graph.filter;
|
||||
for(m in e.searchbox_extras){var t=e.searchbox_extras[m];if(-1!==t.desc.toLowerCase().indexOf(d)){var x=e.registered_node_types[t.type];if(!x||!x.filter||x.filter==l)if(a(t.desc,"searchbox_extra"),-1!==k.search_limit&&h++>k.search_limit)break}}t=null;if(Array.prototype.filter)t=Object.keys(e.registered_node_types).filter(v);else for(m in t=[],e.registered_node_types)v(m)&&t.push(m);for(m=0;m<t.length&&!(a(t[m]),-1!==k.search_limit&&h++>k.search_limit);m++);var v=function(a){var b=e.registered_node_types[a];
|
||||
return l&&b.filter!=l?!1:-1!==a.toLowerCase().indexOf(d)}}}var g=this,h=document.createElement("div");h.className="litegraph litesearchbox graphdialog rounded";h.innerHTML="<span class='name'>Search</span> <input autofocus type='text' class='value rounded'/><div class='helper'></div>";h.close=function(){g.search_box=null;document.body.focus();setTimeout(function(){g.canvas.focus()},20);h.parentNode&&h.parentNode.removeChild(h)};var m=null;1<this.ds.scale&&(h.style.transform="scale("+this.ds.scale+
|
||||
")");h.addEventListener("mouseenter",function(a){m&&(clearTimeout(m),m=null)});h.addEventListener("mouseleave",function(a){m=setTimeout(function(){h.close()},500)});g.search_box&&g.search_box.close();g.search_box=h;var f=h.querySelector(".helper"),q=null,p=null,l=null,u=h.querySelector("input");u&&(u.addEventListener("blur",function(a){this.focus()}),u.addEventListener("keydown",function(a){if(38==a.keyCode)d(!1);else if(40==a.keyCode)d(!0);else if(27==a.keyCode)h.close();else if(13==a.keyCode)l?
|
||||
b(l.innerHTML):q?b(q):h.close();else{p&&clearInterval(p);p=setTimeout(c,10);return}a.preventDefault();a.stopPropagation();a.stopImmediatePropagation();return!0}));var A=k.active_canvas,x=A.canvas,v=x.ownerDocument||document;v.fullscreenElement?v.fullscreenElement.appendChild(h):v.body.appendChild(h);x=x.getBoundingClientRect();v=(a?a.clientY:x.top+0.5*x.height)-20;h.style.left=(a?a.clientX:x.left+0.5*x.width)-80+"px";h.style.top=v+"px";u.focus();return h};k.prototype.showEditPropertyValue=function(a,
|
||||
b,d){function e(){c(p.value)}function c(d){"number"==typeof a.properties[b]&&(d=Number(d));if("array"==g||"object"==g)d=JSON.parse(d);a.properties[b]=d;a._graph&&a._graph._version++;if(a.onPropertyChanged)a.onPropertyChanged(b,d);k.close();a.setDirtyCanvas(!0,!0)}if(a&&void 0!==a.properties[b]){d=d||{};var g="string";null!==a.properties[b]&&(g=typeof a.properties[b]);var h=null;a.getPropertyInfo&&(h=a.getPropertyInfo(b));if(a.properties_info)for(var m=0;m<a.properties_info.length;++m)if(a.properties_info[m].name==
|
||||
b){h=a.properties_info[m];break}void 0!==h&&null!==h&&h.type&&(g=h.type);var f="";if("string"==g||"number"==g||"array"==g||"object"==g)f="<input autofocus type='text' class='value'/>";else if("enum"==g&&h.values){f="<select autofocus type='text' class='value'>";for(m in h.values)var q=h.values.constructor===Array?h.values[m]:m,f=f+("<option value='"+q+"' "+(q==a.properties[b]?"selected":"")+">"+h.values[m]+"</option>");f+="</select>"}else if("boolean"==g)f="<input autofocus type='checkbox' class='value' "+
|
||||
(a.properties[b]?"checked":"")+"/>";else{console.warn("unknown type: "+g);return}var k=this.createDialog("<span class='name'>"+b+"</span>"+f+"<button>OK</button>",d);if("enum"==g&&h.values){var p=k.querySelector("select");p.addEventListener("change",function(a){c(a.target.value)})}else if("boolean"==g)(p=k.querySelector("input"))&&p.addEventListener("click",function(a){c(!!p.checked)});else if(p=k.querySelector("input"))p.addEventListener("blur",function(a){this.focus()}),q=void 0!==a.properties[b]?
|
||||
a.properties[b]:"",q=JSON.stringify(q),p.value=q,p.addEventListener("keydown",function(a){13==a.keyCode&&(e(),a.preventDefault(),a.stopPropagation())});k.querySelector("button").addEventListener("click",e)}};k.prototype.createDialog=function(a,b){b=b||{};var d=document.createElement("div");d.className="graphdialog";d.innerHTML=a;var e=this.canvas.getBoundingClientRect(),c=-20,g=-20;e&&(c-=e.left,g-=e.top);b.position?(c+=b.position[0],g+=b.position[1]):b.event?(c+=b.event.clientX,g+=b.event.clientY):
|
||||
(c+=0.5*this.canvas.width,g+=0.5*this.canvas.height);d.style.left=c+"px";d.style.top=g+"px";this.canvas.parentNode.appendChild(d);d.close=function(){this.parentNode&&this.parentNode.removeChild(this)};return d};k.onMenuNodeCollapse=function(a,b,d,e,c){c.collapse()};k.onMenuNodePin=function(a,b,d,e,c){c.pin()};k.onMenuNodeMode=function(a,b,d,c,g){new e.ContextMenu(["Always","On Event","On Trigger","Never"],{event:d,callback:function(a){if(g)switch(a){case "On Event":g.mode=e.ON_EVENT;break;case "On Trigger":g.mode=
|
||||
e.ON_TRIGGER;break;case "Never":g.mode=e.NEVER;break;default:g.mode=e.ALWAYS}},parentMenu:c,node:g});return!1};k.onMenuNodeColors=function(a,b,d,c,g){if(!g)throw"no node for color";b=[];b.push({value:null,content:"<span style='display: block; padding-left: 4px;'>No color</span>"});for(var h in k.node_colors)a=k.node_colors[h],a={value:h,content:"<span style='display: block; color: #999; padding-left: 4px; border-left: 8px solid "+a.color+"; background-color:"+a.bgcolor+"'>"+h+"</span>"},b.push(a);
|
||||
new e.ContextMenu(b,{event:d,callback:function(a){g&&((a=a.value?k.node_colors[a.value]:null)?g.constructor===e.LGraphGroup?g.color=a.groupcolor:(g.color=a.color,g.bgcolor=a.bgcolor):(delete g.color,delete g.bgcolor),g.setDirtyCanvas(!0,!0))},parentMenu:c,node:g});return!1};k.onMenuNodeShapes=function(a,b,d,c,g){if(!g)throw"no node passed";new e.ContextMenu(e.VALID_SHAPES,{event:d,callback:function(a){g&&(g.shape=a,g.setDirtyCanvas(!0))},parentMenu:c,node:g});return!1};k.onMenuNodeRemove=function(a,
|
||||
b,d,e,c){if(!c)throw"no node passed";!1!==c.removable&&(c.graph.remove(c),c.setDirtyCanvas(!0,!0))};k.onMenuNodeClone=function(a,b,d,e,c){!1!=c.clonable&&(a=c.clone())&&(a.pos=[c.pos[0]+5,c.pos[1]+5],c.graph.add(a),c.setDirtyCanvas(!0,!0))};k.node_colors={red:{color:"#322",bgcolor:"#533",groupcolor:"#A88"},brown:{color:"#332922",bgcolor:"#593930",groupcolor:"#b06634"},green:{color:"#232",bgcolor:"#353",groupcolor:"#8A8"},blue:{color:"#223",bgcolor:"#335",groupcolor:"#88A"},pale_blue:{color:"#2a363b",
|
||||
bgcolor:"#3f5159",groupcolor:"#3f789e"},cyan:{color:"#233",bgcolor:"#355",groupcolor:"#8AA"},purple:{color:"#323",bgcolor:"#535",groupcolor:"#a1309b"},yellow:{color:"#432",bgcolor:"#653",groupcolor:"#b58b2a"},black:{color:"#222",bgcolor:"#000",groupcolor:"#444"}};k.prototype.getCanvasMenuOptions=function(){var a=null;this.getMenuOptions?a=this.getMenuOptions():(a=[{content:"Add Node",has_submenu:!0,callback:k.onMenuAdd},{content:"Add Group",callback:k.onGroupAdd}],this._graph_stack&&0<this._graph_stack.length&&
|
||||
a.push(null,{content:"Close subgraph",callback:this.closeSubgraph.bind(this)}));if(this.getExtraMenuOptions){var b=this.getExtraMenuOptions(this,a);b&&(a=a.concat(b))}return a};k.prototype.getNodeMenuOptions=function(a){var b=null,b=a.getMenuOptions?a.getMenuOptions(this):[{content:"Inputs",has_submenu:!0,disabled:!0,callback:k.showMenuNodeOptionalInputs},{content:"Outputs",has_submenu:!0,disabled:!0,callback:k.showMenuNodeOptionalOutputs},null,{content:"Properties",has_submenu:!0,callback:k.onShowMenuNodeProperties},
|
||||
null,{content:"Title",callback:k.onShowPropertyEditor},{content:"Mode",has_submenu:!0,callback:k.onMenuNodeMode},{content:"Resize",callback:k.onResizeNode},{content:"Collapse",callback:k.onMenuNodeCollapse},{content:"Pin",callback:k.onMenuNodePin},{content:"Colors",has_submenu:!0,callback:k.onMenuNodeColors},{content:"Shapes",has_submenu:!0,callback:k.onMenuNodeShapes},null];if(a.onGetInputs){var d=a.onGetInputs();d&&d.length&&(b[0].disabled=!1)}a.onGetOutputs&&(d=a.onGetOutputs())&&d.length&&(b[1].disabled=
|
||||
!1);a.getExtraMenuOptions&&(d=a.getExtraMenuOptions(this))&&(d.push(null),b=d.concat(b));!1!==a.clonable&&b.push({content:"Clone",callback:k.onMenuNodeClone});!1!==a.removable&&b.push(null,{content:"Remove",callback:k.onMenuNodeRemove});if(a.graph&&a.graph.onGetNodeMenuOptions)a.graph.onGetNodeMenuOptions(b,a);return b};k.prototype.getGroupMenuOptions=function(a){return[{content:"Title",callback:k.onShowPropertyEditor},{content:"Color",has_submenu:!0,callback:k.onMenuNodeColors},{content:"Font size",
|
||||
property:"font_size",type:"Number",callback:k.onShowPropertyEditor},null,{content:"Remove",callback:k.onMenuNodeRemove}]};k.prototype.processContextMenu=function(a,b){var d=this,c=k.active_canvas.getCanvasWindow(),g=null,h={event:b,callback:function(b,c,e){if(b)if("Remove Slot"==b.content)b=b.slot,b.input?a.removeInput(b.slot):b.output&&a.removeOutput(b.slot);else if("Disconnect Links"==b.content)b=b.slot,b.output?a.disconnectOutput(b.slot):b.input&&a.disconnectInput(b.slot);else if("Rename Slot"==
|
||||
b.content){b=b.slot;var g=b.input?a.getInputInfo(b.slot):a.getOutputInfo(b.slot),h=d.createDialog("<span class='name'>Name</span><input autofocus type='text'/><button>OK</button>",c),m=h.querySelector("input");m&&g&&(m.value=g.label||"");h.querySelector("button").addEventListener("click",function(a){m.value&&(g&&(g.label=m.value),d.setDirty(!0));h.close()})}},extra:a};a&&(h.title=a.type);var m=null;a&&(m=a.getSlotInPosition(b.canvasX,b.canvasY),k.active_node=a);if(m){g=[];m&&m.output&&m.output.links&&
|
||||
m.output.links.length&&g.push({content:"Disconnect Links",slot:m});var f=m.input||m.output;g.push(f.locked?"Cannot remove":{content:"Remove Slot",slot:m});g.push(f.nameLocked?"Cannot rename":{content:"Rename Slot",slot:m});h.title=(m.input?m.input.type:m.output.type)||"*";m.input&&m.input.type==e.ACTION&&(h.title="Action");m.output&&m.output.type==e.EVENT&&(h.title="Event")}else a?g=this.getNodeMenuOptions(a):(g=this.getCanvasMenuOptions(),(m=this.graph.getGroupOnPos(b.canvasX,b.canvasY))&&g.push(null,
|
||||
{content:"Edit Group",has_submenu:!0,submenu:{title:"Group",extra:m,options:this.getGroupMenuOptions(m)}}));g&&new e.ContextMenu(g,h,c)};this.CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.roundRect=function(a,b,d,c,e,g){void 0===e&&(e=5);void 0===g&&(g=e);this.moveTo(a+e,b);this.lineTo(a+d-e,b);this.quadraticCurveTo(a+d,b,a+d,b+e);this.lineTo(a+d,b+c-g);this.quadraticCurveTo(a+d,b+c,a+d-g,b+c);this.lineTo(a+g,b+c);this.quadraticCurveTo(a,b+c,a,b+c-g);this.lineTo(a,b+e);this.quadraticCurveTo(a,
|
||||
b,a+e,b)});e.compareObjects=function(a,b){for(var d in a)if(a[d]!=b[d])return!1;return!0};e.distance=y;e.colorToString=function(a){return"rgba("+Math.round(255*a[0]).toFixed()+","+Math.round(255*a[1]).toFixed()+","+Math.round(255*a[2]).toFixed()+","+(4==a.length?a[3].toFixed(2):"1.0")+")"};e.isInsideRectangle=u;e.growBounding=function(a,b,d){b<a[0]?a[0]=b:b>a[2]&&(a[2]=b);d<a[1]?a[1]=d:d>a[3]&&(a[3]=d)};e.isInsideBounding=function(a,b){return a[0]<b[0][0]||a[1]<b[0][1]||a[0]>b[1][0]||a[1]>b[1][1]?
|
||||
!1:!0};e.overlapBounding=v;e.hex2num=function(a){"#"==a.charAt(0)&&(a=a.slice(1));a=a.toUpperCase();for(var b=Array(3),d=0,c,e,g=0;6>g;g+=2)c="0123456789ABCDEF".indexOf(a.charAt(g)),e="0123456789ABCDEF".indexOf(a.charAt(g+1)),b[d]=16*c+e,d++;return b};e.num2hex=function(a){for(var b="#",d,c,e=0;3>e;e++)d=a[e]/16,c=a[e]%16,b+="0123456789ABCDEF".charAt(d)+"0123456789ABCDEF".charAt(c);return b};z.prototype.addItem=function(a,b,d){function c(a){var b=this.value;b&&b.has_submenu&&e.call(this,a)}function e(a){var b=
|
||||
this.value,c=!0;g.current_submenu&&g.current_submenu.close(a);if(d.callback){var h=d.callback.call(this,b,d,a,g,d.node);!0===h&&(c=!1)}if(b&&(b.callback&&!d.ignore_item_callbacks&&!0!==b.disabled&&(h=b.callback.call(this,b,d,a,g,d.extra),!0===h&&(c=!1)),b.submenu)){if(!b.submenu.options)throw"ContextMenu submenu needs options";new g.constructor(b.submenu.options,{callback:b.submenu.callback,event:a,parentMenu:g,ignore_item_callbacks:b.submenu.ignore_item_callbacks,title:b.submenu.title,extra:b.submenu.extra,
|
||||
autoopen:d.autoopen});c=!1}c&&!g.lock&&g.close()}var g=this;d=d||{};var h=document.createElement("div");h.className="litemenu-entry submenu";var m=!1;if(null===b)h.classList.add("separator");else{h.innerHTML=b&&b.title?b.title:a;if(h.value=b)b.disabled&&(m=!0,h.classList.add("disabled")),(b.submenu||b.has_submenu)&&h.classList.add("has_submenu");"function"==typeof b?(h.dataset.value=a,h.onclick_callback=b):h.dataset.value=b;b.className&&(h.className+=" "+b.className)}this.root.appendChild(h);m||h.addEventListener("click",
|
||||
e);d.autoopen&&h.addEventListener("mouseenter",c);return h};z.prototype.close=function(a,b){this.root.parentNode&&this.root.parentNode.removeChild(this.root);this.parentMenu&&!b&&(this.parentMenu.lock=!1,this.parentMenu.current_submenu=null,void 0===a?this.parentMenu.close():a&&!z.isCursorOverElement(a,this.parentMenu.root)&&z.trigger(this.parentMenu.root,"mouseleave",a));this.current_submenu&&this.current_submenu.close(a,!0);this.root.closing_timer&&clearTimeout(this.root.closing_timer)};z.trigger=
|
||||
function(a,b,d,c){var e=document.createEvent("CustomEvent");e.initCustomEvent(b,!0,!0,d);e.srcElement=c;a.dispatchEvent?a.dispatchEvent(e):a.__events&&a.__events.dispatchEvent(e);return e};z.prototype.getTopMenu=function(){return this.options.parentMenu?this.options.parentMenu.getTopMenu():this};z.prototype.getFirstEvent=function(){return this.options.parentMenu?this.options.parentMenu.getFirstEvent():this.options.event};z.isCursorOverElement=function(a,b){var d=a.clientX,c=a.clientY,e=b.getBoundingClientRect();
|
||||
return e?c>e.top&&c<e.top+e.height&&d>e.left&&d<e.left+e.width?!0:!1:!1};e.ContextMenu=z;e.closeAllContextMenus=function(a){a=a||window;a=a.document.querySelectorAll(".litecontextmenu");if(a.length){for(var b=[],d=0;d<a.length;d++)b.push(a[d]);for(d in b)b[d].close?b[d].close():b[d].parentNode&&b[d].parentNode.removeChild(b[d])}};e.extendClass=function(a,b){for(var d in b)a.hasOwnProperty(d)||(a[d]=b[d]);if(b.prototype)for(d in b.prototype)b.prototype.hasOwnProperty(d)&&!a.prototype.hasOwnProperty(d)&&
|
||||
(b.prototype.__lookupGetter__(d)?a.prototype.__defineGetter__(d,b.prototype.__lookupGetter__(d)):a.prototype[d]=b.prototype[d],b.prototype.__lookupSetter__(d)&&a.prototype.__defineSetter__(d,b.prototype.__lookupSetter__(d)))};e.getParameterNames=function(a){return(a+"").replace(/[/][/].*$/gm,"").replace(/\s+/g,"").replace(/[/][*][^/*]*[*][/]/g,"").split("){",1)[0].replace(/^[^(]*[(]/,"").replace(/=[^,]+/g,"").split(",").filter(Boolean)};Math.clamp=function(a,b,d){return b>a?b:d<a?d:a};"undefined"==
|
||||
typeof window||window.requestAnimationFrame||(window.requestAnimationFrame=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)})})(this);"undefined"!=typeof exports&&(exports.LiteGraph=this.LiteGraph);
|
||||
(function(w){function c(){this.addOutput("in ms","number");this.addOutput("in sec","number")}function s(){this.size=[140,80];this.properties={enabled:!0};this.enabled=!0;this.subgraph=new p.LGraph;this.subgraph._subgraph_node=this;this.subgraph._is_subgraph=!0;this.subgraph.onTrigger=this.onSubgraphTrigger.bind(this);this.subgraph.onInputAdded=this.onSubgraphNewInput.bind(this);this.subgraph.onInputRenamed=this.onSubgraphRenamedInput.bind(this);this.subgraph.onInputTypeChanged=this.onSubgraphTypeChangeInput.bind(this);
|
||||
this.subgraph.onInputRemoved=this.onSubgraphRemovedInput.bind(this);this.subgraph.onOutputAdded=this.onSubgraphNewOutput.bind(this);this.subgraph.onOutputRenamed=this.onSubgraphRenamedOutput.bind(this);this.subgraph.onOutputTypeChanged=this.onSubgraphTypeChangeOutput.bind(this);this.subgraph.onOutputRemoved=this.onSubgraphRemovedOutput.bind(this)}function l(){this.addOutput("","number");this.name_in_graph="";this.properties={name:"",type:"number",value:0};var a=this;this.name_widget=this.addWidget("text",
|
||||
"Name",this.properties.name,function(b){b&&a.setProperty("name",b)});this.type_widget=this.addWidget("text","Type",this.properties.type,function(b){a.setProperty("type",b)});this.value_widget=this.addWidget("number","Value",this.properties.value,function(b){a.setProperty("value",b)});this.widgets_up=!0;this.size=[180,90]}function f(){this.addInput("","");this.name_in_graph="";this.properties={};var a=this;Object.defineProperty(this.properties,"name",{get:function(){return a.name_in_graph},set:function(b){""!=
|
||||
|
||||
@@ -9284,7 +9284,7 @@ LGraphNode.prototype.executeAction = function(action)
|
||||
return;
|
||||
}
|
||||
selected.classList.add("selected");
|
||||
selected.scrollIntoView();
|
||||
selected.scrollIntoView({block: "end", behaviour: "smooth"});
|
||||
}
|
||||
|
||||
function refreshHelper() {
|
||||
|
||||
Reference in New Issue
Block a user