mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 11:11:53 +00:00
fix in alpha
This commit is contained in:
92
build/litegraph.min.js
vendored
92
build/litegraph.min.js
vendored
@@ -147,52 +147,52 @@ d&&(n=g.link_type_colors[d.type]);n||(n=this.default_link_color);null!=d&&this.h
|
||||
-Math.atan2(n[0]-e[0],n[1]-e[1]):c[1]>b[1]?0:Math.PI,a.save(),a.translate(e[0],e[1]),a.rotate(x),a.beginPath(),a.moveTo(-5,-5),a.lineTo(0,5),a.lineTo(5,-5),a.fill(),a.restore());if(l)for(l=0;5>l;++l)e=(0.001*k.getTime()+0.2*l)%1,e=this.computeConnectionPoint(b,c,e,m,h),a.beginPath(),a.arc(e[0],e[1],5,0,2*Math.PI),a.fill()}else a.beginPath(),a.moveTo(b[0],b[1]),a.lineTo(c[0],c[1]),a.stroke()};g.prototype.computeConnectionPoint=function(a,b,c,g,e){g=g||k.RIGHT;e=e||k.LEFT;var l=r(a,b),n=[a[0],a[1]],
|
||||
d=[b[0],b[1]];switch(g){case k.LEFT:n[0]+=-0.25*l;break;case k.RIGHT:n[0]+=0.25*l;break;case k.UP:n[1]+=-0.25*l;break;case k.DOWN:n[1]+=0.25*l}switch(e){case k.LEFT:d[0]+=-0.25*l;break;case k.RIGHT:d[0]+=0.25*l;break;case k.UP:d[1]+=-0.25*l;break;case k.DOWN:d[1]+=0.25*l}g=(1-c)*(1-c)*(1-c);e=3*(1-c)*(1-c)*c;l=3*(1-c)*c*c;c*=c*c;return[g*a[0]+e*n[0]+l*d[0]+c*b[0],g*a[1]+e*n[1]+l*d[1]+c*b[1]]};g.prototype.drawExecutionOrder=function(a){a.shadowColor="transparent";a.globalAlpha=0.25;a.textAlign="center";
|
||||
a.strokeStyle="white";a.globalAlpha=0.75;for(var b=this.visible_nodes,c=0;c<b.length;++c){var g=b[c];a.fillStyle="black";a.fillRect(g.pos[0]-k.NODE_TITLE_HEIGHT,g.pos[1]-k.NODE_TITLE_HEIGHT,k.NODE_TITLE_HEIGHT,k.NODE_TITLE_HEIGHT);0==g.order&&a.strokeRect(g.pos[0]-k.NODE_TITLE_HEIGHT+0.5,g.pos[1]-k.NODE_TITLE_HEIGHT+0.5,k.NODE_TITLE_HEIGHT,k.NODE_TITLE_HEIGHT);a.fillStyle="#FFF";a.fillText(g.order,g.pos[0]+-0.5*k.NODE_TITLE_HEIGHT,g.pos[1]-6)}a.globalAlpha=1};g.prototype.drawNodeWidgets=function(a,
|
||||
b,c,g){if(!a.widgets||!a.widgets.length)return 0;var e=a.size[0];a=a.widgets;b+=2;for(var l=k.NODE_WIDGET_HEIGHT,n=0.5<this.scale,d=0;d<a.length;++d){var m=a[d],h=b;m.y&&(h=m.y);m.last_y=h;c.strokeStyle="#AAA";c.fillStyle="#222";c.textAlign="left";switch(m.type){case "button":m.clicked&&(c.fillStyle="#AAA",m.clicked=!1,this.dirty_canvas=!0);c.fillRect(10,h,e-20,l);c.strokeRect(10,h,e-20,l);n&&(c.textAlign="center",c.fillStyle="#AAA",c.fillText(m.name,0.5*e,h+0.7*l));break;case "slider":c.fillStyle=
|
||||
"#111";c.fillRect(10,h,e-20,l);var q=(m.value-m.options.min)/(m.options.max-m.options.min);c.fillStyle=g==m?"#89A":"#678";c.fillRect(10,h,q*(e-20),l);c.strokeRect(10,h,e-20,l);n&&(c.textAlign="center",c.fillStyle="#DDD",c.fillText(m.name+" "+Number(m.value).toFixed(3),0.5*e,h+0.7*l));break;case "number":case "combo":c.textAlign="left";c.strokeStyle="#AAA";c.fillStyle="#111";c.beginPath();c.roundRect(10,b,e-20,l,0.5*l);c.fill();c.stroke();c.fillStyle="#AAA";c.beginPath();c.moveTo(26,b+5);c.lineTo(16,
|
||||
b+0.5*l);c.lineTo(26,b+l-5);c.moveTo(e-26,b+5);c.lineTo(e-16,b+0.5*l);c.lineTo(e-26,b+l-5);c.fill();n&&(c.fillStyle="#999",c.fillText(m.name,30,h+0.7*l),c.fillStyle="#DDD",c.textAlign="right","number"==m.type?c.fillText(Number(m.value).toFixed(void 0!==m.options.precision?m.options.precision:3),e-40,h+0.7*l):c.fillText(m.value,e-40,h+0.7*l));break;case "text":c.textAlign="left",c.strokeStyle="#AAA",c.fillStyle="#111",c.beginPath(),c.roundRect(10,b,e-20,l,0.5*l),c.fill(),c.stroke(),c.fillStyle="#999",
|
||||
null!=m.name&&c.fillText(m.name,20,h+0.7*l),c.fillStyle="#DDD",c.textAlign="right",c.fillText(m.value,e-20,h+0.7*l)}b+=l+4}c.textAlign="left"};g.prototype.processNodeWidgets=function(a,b,c,g){if(!a.widgets||!a.widgets.length)return null;for(var e=b[0]-a.pos[0],l=b[1]-a.pos[1],n=a.size[0],m=this,d=0;d<a.widgets.length;++d){var h=a.widgets[d];if(h==g||6<e&&e<n-12&&l>h.last_y&&l<h.last_y+k.NODE_WIDGET_HEIGHT){switch(h.type){case "button":h.callback&&setTimeout(function(){h.callback(h,m,a,b)},20);this.dirty_canvas=
|
||||
h.clicked=!0;break;case "slider":c=Math.clamp((e-10)/(n-20),0,1);h.value=h.options.min+(h.options.max-h.options.min)*c;h.callback&&setTimeout(function(){h.callback(h.value,m,a,b)},20);this.dirty_canvas=!0;break;case "number":case "combo":"mousemove"==c.type&&"number"==h.type?(h.value+=0.1*c.deltaX*(h.options.step||1),null!=h.options.min&&h.value<h.options.min&&(h.value=h.options.min),null!=h.options.max&&h.value>h.options.max&&(h.value=h.options.max)):"mousedown"==c.type&&(c=40>e?-1:e>n-40?1:0,"number"==
|
||||
h.type?(h.value+=0.1*c*(h.options.step||1),null!=h.options.min&&h.value<h.options.min&&(h.value=h.options.min),null!=h.options.max&&h.value>h.options.max&&(h.value=h.options.max)):c&&(c=h.options.values.indexOf(h.value)+c,c>=h.options.values.length&&(c=0),0>c&&(c=h.options.values.length-1),h.value=h.options.values[c]));h.callback&&setTimeout(function(){this.callback(this.value,m,a,b)}.bind(h),20);this.dirty_canvas=!0;break;case "text":"mousedown"==c.type&&this.prompt("Value",h.value,function(a){this.value=
|
||||
a}.bind(h),c)}return h}}return null};g.prototype.drawGroups=function(a,b){if(this.graph){var c=this.graph._groups;b.save();b.globalAlpha=0.5;b.font="24px Arial";for(var g=0;g<c.length;++g){var e=c[g];if(s(this.visible_area,e._bounding)){b.fillStyle=e.color||"#335";b.strokeStyle=e.color||"#335";var l=e._pos,n=e._size;b.globalAlpha=0.25;b.beginPath();b.rect(l[0]+0.5,l[1]+0.5,n[0],n[1]);b.fill();b.globalAlpha=1;b.stroke();b.beginPath();b.moveTo(l[0]+n[0],l[1]+n[1]);b.lineTo(l[0]+n[0]-10,l[1]+n[1]);b.lineTo(l[0]+
|
||||
n[0],l[1]+n[1]-10);b.fill();b.fillText(e.title,l[0]+4,l[1]+24)}}b.restore()}};g.prototype.resize=function(a,b){if(!a&&!b){var c=this.canvas.parentNode;a=c.offsetWidth;b=c.offsetHeight}if(this.canvas.width!=a||this.canvas.height!=b)this.canvas.width=a,this.canvas.height=b,this.bgcanvas.width=this.canvas.width,this.bgcanvas.height=this.canvas.height,this.setDirty(!0,!0)};g.prototype.switchLiveMode=function(a){if(a){var b=this,c=this.live_mode?1.1:0.9;this.live_mode&&(this.live_mode=!1,this.editor_alpha=
|
||||
0.1);var g=setInterval(function(){b.editor_alpha*=c;b.dirty_canvas=!0;b.dirty_bgcanvas=!0;1>c&&0.01>b.editor_alpha&&(clearInterval(g),1>c&&(b.live_mode=!0));1<c&&0.99<b.editor_alpha&&(clearInterval(g),b.editor_alpha=1)},1)}else this.live_mode=!this.live_mode,this.dirty_bgcanvas=this.dirty_canvas=!0};g.prototype.onNodeSelectionChange=function(a){};g.prototype.touchHandler=function(a){var b=a.changedTouches[0],c="";switch(a.type){case "touchstart":c="mousedown";break;case "touchmove":c="mousemove";
|
||||
break;case "touchend":c="mouseup";break;default:return}var g=this.getCanvasWindow(),e=g.document.createEvent("MouseEvent");e.initMouseEvent(c,!0,!0,g,1,b.screenX,b.screenY,b.clientX,b.clientY,!1,!1,!1,!1,0,null);b.target.dispatchEvent(e);a.preventDefault()};g.onGroupAdd=function(a,b,c){a=g.active_canvas;a.getCanvasWindow();b=new k.LGraphGroup;b.pos=a.convertEventToCanvas(c);a.graph.add(b)};g.onMenuAdd=function(a,b,c,m){function e(a,b){var c=m.getFirstEvent(),f=k.createNode(a.value);f&&(f.pos=l.convertEventToCanvas(c),
|
||||
l.graph.add(f))}var l=g.active_canvas,n=l.getCanvasWindow();a=k.getNodeTypesCategories();b=[];for(var d in a)a[d]&&b.push({value:a[d],content:a[d],has_submenu:!0});var h=new k.ContextMenu(b,{event:c,callback:function(a,b,c){a=k.getNodeTypesInCategory(a.value,l.filter);b=[];for(var f in a)b.push({content:a[f].title,value:a[f].type});new k.ContextMenu(b,{event:c,callback:e,parentMenu:h},n);return!1},parentMenu:m},n);return!1};g.onMenuCollapseAll=function(){};g.onMenuNodeEdit=function(){};g.showMenuNodeOptionalInputs=
|
||||
function(a,b,c,d,e){function l(a,b,c){e&&(a.callback&&a.callback.call(n,e,a,b,c),a.value&&(e.addInput(a.value[0],a.value[1],a.value[2]),e.setDirtyCanvas(!0,!0)))}if(e){var n=this;a=g.active_canvas.getCanvasWindow();b=e.optional_inputs;e.onGetInputs&&(b=e.onGetInputs());var m=[];if(b)for(var h in b){var q=b[h];if(q){var p=q[0];q[2]&&q[2].label&&(p=q[2].label);p={content:p,value:q};q[1]==k.ACTION&&(p.className="event");m.push(p)}else m.push(null)}this.onMenuNodeInputs&&(m=this.onMenuNodeInputs(m));
|
||||
if(m.length)return new k.ContextMenu(m,{event:c,callback:l,parentMenu:d,node:e},a),!1}};g.showMenuNodeOptionalOutputs=function(a,b,c,m,e){function l(a,b,c){if(e&&(a.callback&&a.callback.call(d,e,a,b,c),a.value))if(c=a.value[1],!c||c.constructor!==Object&&c.constructor!==Array)e.addOutput(a.value[0],a.value[1],a.value[2]),e.setDirtyCanvas(!0,!0);else{a=[];for(var f in c)a.push({content:f,value:c[f]});new k.ContextMenu(a,{event:b,callback:l,parentMenu:m,node:e});return!1}}if(e){var d=this;a=g.active_canvas.getCanvasWindow();
|
||||
b=e.optional_outputs;e.onGetOutputs&&(b=e.onGetOutputs());var h=[];if(b)for(var q in b){var p=b[q];if(!p)h.push(null);else if(!e.flags||!e.flags.skip_repeated_outputs||-1==e.findOutputSlot(p[0])){var r=p[0];p[2]&&p[2].label&&(r=p[2].label);r={content:r,value:p};p[1]==k.EVENT&&(r.className="event");h.push(r)}}this.onMenuNodeOutputs&&(h=this.onMenuNodeOutputs(h));if(h.length)return new k.ContextMenu(h,{event:c,callback:l,parentMenu:m,node:e},a),!1}};g.onShowMenuNodeProperties=function(a,b,c,m,e){function l(a,
|
||||
b,c,f){e&&(b=this.getBoundingClientRect(),d.showEditPropertyValue(e,a.value,{position:[b.left,b.top]}))}if(e&&e.properties){var d=g.active_canvas;b=d.getCanvasWindow();var h=[],q;for(q in e.properties)a=void 0!==e.properties[q]?e.properties[q]:" ",a=g.decodeHTML(a),h.push({content:"<span class='property_name'>"+q+"</span><span class='property_value'>"+a+"</span>",value:q});if(h.length)return new k.ContextMenu(h,{event:c,callback:l,parentMenu:m,allow_html:!0,node:e},b),!1}};g.decodeHTML=function(a){var b=
|
||||
document.createElement("div");b.innerText=a;return b.innerHTML};g.onResizeNode=function(a,b,c,g,e){e&&(e.size=e.computeSize(),e.setDirtyCanvas(!0,!0))};g.onShowTitleEditor=function(a,b,c,m,e){function l(){e.title=h.value;d.parentNode.removeChild(d);e.setDirtyCanvas(!0,!0)}var d=document.createElement("div");d.className="graphdialog";d.innerHTML="<span class='name'>Title</span><input autofocus type='text' class='value'/><button>OK</button>";var h=d.querySelector("input");h&&(h.value=e.title,h.addEventListener("keydown",
|
||||
function(a){13==a.keyCode&&(l(),a.preventDefault(),a.stopPropagation())}));a=g.active_canvas.canvas;b=a.getBoundingClientRect();m=c=-20;b&&(c-=b.left,m-=b.top);event?(d.style.left=event.pageX+c+"px",d.style.top=event.pageY+m+"px"):(d.style.left=0.5*a.width+c+"px",d.style.top=0.5*a.height+m+"px");d.querySelector("button").addEventListener("click",l);a.parentNode.appendChild(d)};g.prototype.prompt=function(a,b,c,d){var e=this;a=a||"";var l=document.createElement("div");l.className="graphdialog rounded";
|
||||
l.innerHTML="<span class='name'></span> <input autofocus type='text' class='value'/><button class='rounded'>OK</button>";l.close=function(){e.prompt_box=null;l.parentNode.removeChild(l)};l.addEventListener("mouseleave",function(a){l.close()});e.prompt_box&&e.prompt_box.close();e.prompt_box=l;l.querySelector(".name").innerText=a;l.querySelector(".value").value=b;var m=l.querySelector("input");m.addEventListener("keydown",function(a){if(27==a.keyCode)l.close();else if(13==a.keyCode)c&&c(this.value),
|
||||
l.close();else return;a.preventDefault();a.stopPropagation()});l.querySelector("button").addEventListener("click",function(a){c&&c(m.value);e.setDirty(!0);l.close()});a=g.active_canvas.canvas;b=a.getBoundingClientRect();var h=-20,k=-20;b&&(h-=b.left,k-=b.top);d?(l.style.left=d.pageX+h+"px",l.style.top=d.pageY+k+"px"):(l.style.left=0.5*a.width+h+"px",l.style.top=0.5*a.height+k+"px");a.parentNode.appendChild(l);setTimeout(function(){m.focus()},10);return l};g.prototype.showSearchBox=function(a){function b(b){if(b)if(e.onSearchBoxSelection)e.onSearchBoxSelection(b,
|
||||
a,s);else if(b=k.createNode(b))b.pos=s.convertEventToCanvas(a),s.graph.add(b);l.close()}function c(a){var b=p;p&&p.classList.remove("selected");p?(p=a?p.nextSibling:p.previousSibling)||(p=b):p=a?m.childNodes[0]:m.childNodes[m.childNodes.length];p&&(p.classList.add("selected"),p.scrollIntoView())}function d(){q=null;var a=r.value;h=null;m.innerHTML="";if(a)if(e.onSearchBox)e.onSearchBox(f,a,s);else for(var c in k.registered_node_types)if(-1!=c.indexOf(a)){var f=document.createElement("div");h||(h=
|
||||
c);f.innerText=c;f.className="help-item";f.addEventListener("click",function(a){b(this.innerText)});m.appendChild(f)}}var e=this,l=document.createElement("div");l.className="graphdialog rounded";l.innerHTML="<span class='name'>Search</span> <input autofocus type='text' class='value rounded'/><div class='helper'></div>";l.close=function(){e.search_box=null;l.parentNode.removeChild(l)};l.addEventListener("mouseleave",function(a){l.close()});e.search_box&&e.search_box.close();e.search_box=l;var m=l.querySelector(".helper"),
|
||||
h=null,q=null,p=null,r=l.querySelector("input");r&&r.addEventListener("keydown",function(a){if(38==a.keyCode)c(!1);else if(40==a.keyCode)c(!0);else if(27==a.keyCode)l.close();else if(13==a.keyCode)p?b(p.innerHTML):h?b(h):l.close();else{q&&clearInterval(q);q=setTimeout(d,10);return}a.preventDefault();a.stopPropagation()});var s=g.active_canvas,u=s.canvas,t=u.getBoundingClientRect(),z=-20,E=-20;t&&(z-=t.left,E-=t.top);a?(l.style.left=a.pageX+z+"px",l.style.top=a.pageY+E+"px"):(l.style.left=0.5*u.width+
|
||||
z+"px",l.style.top=0.5*u.height+E+"px");u.parentNode.appendChild(l);setTimeout(function(){r.focus()},10);return l};g.prototype.showEditPropertyValue=function(a,b,c){function g(){e(p.value)}function e(c){"number"==typeof a.properties[b]&&(c=Number(c));"array"==l&&(c=c.split(",").map(Number));a.properties[b]=c;a._graph&&a._graph._version++;if(a.onPropertyChanged)a.onPropertyChanged(b,c);q.close();a.setDirtyCanvas(!0,!0)}if(a&&void 0!==a.properties[b]){c=c||{};var l="string";null!==a.properties[b]&&
|
||||
(l=typeof a.properties[b]);"object"==l&&a.properties[b].length&&(l="array");var m=null;a.getPropertyInfo&&(m=a.getPropertyInfo(b));if(a.properties_info)for(var d=0;d<a.properties_info.length;++d)if(a.properties_info[d].name==b){m=a.properties_info[d];break}void 0!==m&&null!==m&&m.type&&(l=m.type);var h="";if("string"==l||"number"==l||"array"==l)h="<input autofocus type='text' class='value'/>";else if("enum"==l&&m.values){h="<select autofocus type='text' class='value'>";for(d in m.values)var k=m.values.constructor===
|
||||
Array?m.values[d]:d,h=h+("<option value='"+k+"' "+(k==a.properties[b]?"selected":"")+">"+m.values[d]+"</option>");h+="</select>"}else if("boolean"==l)h="<input autofocus type='checkbox' class='value' "+(a.properties[b]?"checked":"")+"/>";else{console.warn("unknown type: "+l);return}var q=this.createDialog("<span class='name'>"+b+"</span>"+h+"<button>OK</button>",c);if("enum"==l&&m.values){var p=q.querySelector("select");p.addEventListener("change",function(a){e(a.target.value)})}else if("boolean"==
|
||||
l)(p=q.querySelector("input"))&&p.addEventListener("click",function(a){e(!!p.checked)});else if(p=q.querySelector("input"))p.value=void 0!==a.properties[b]?a.properties[b]:"",p.addEventListener("keydown",function(a){13==a.keyCode&&(g(),a.preventDefault(),a.stopPropagation())});q.querySelector("button").addEventListener("click",g)}};g.prototype.createDialog=function(a,b){b=b||{};var c=document.createElement("div");c.className="graphdialog";c.innerHTML=a;var g=this.canvas.getBoundingClientRect(),e=
|
||||
-20,l=-20;g&&(e-=g.left,l-=g.top);b.position?(e+=b.position[0],l+=b.position[1]):b.event?(e+=b.event.pageX,l+=b.event.pageY):(e+=0.5*this.canvas.width,l+=0.5*this.canvas.height);c.style.left=e+"px";c.style.top=l+"px";this.canvas.parentNode.appendChild(c);c.close=function(){this.parentNode&&this.parentNode.removeChild(this)};return c};g.onMenuNodeCollapse=function(a,b,c,g,e){e.collapse()};g.onMenuNodePin=function(a,b,c,g,e){e.pin()};g.onMenuNodeMode=function(a,b,c,g,e){new k.ContextMenu(["Always",
|
||||
"On Event","On Trigger","Never"],{event:c,callback:function(a){if(e)switch(a){case "On Event":e.mode=k.ON_EVENT;break;case "On Trigger":e.mode=k.ON_TRIGGER;break;case "Never":e.mode=k.NEVER;break;default:e.mode=k.ALWAYS}},parentMenu:g,node:e});return!1};g.onMenuNodeColors=function(a,b,c,m,e){if(!e)throw"no node for color";b=[];b.push({value:null,content:"<span style='display: block; padding-left: 4px;'>No color</span>"});for(var l in g.node_colors)a=g.node_colors[l],a={value:l,content:"<span style='display: block; color: #999; padding-left: 4px; border-left: 8px solid "+
|
||||
a.color+"; background-color:"+a.bgcolor+"'>"+l+"</span>"},b.push(a);new k.ContextMenu(b,{event:c,callback:function(a){e&&((a=a.value?g.node_colors[a.value]:null)?e.constructor===k.LGraphGroup?e.color=a.groupcolor:(e.color=a.color,e.bgcolor=a.bgcolor):(delete e.color,delete e.bgcolor),e.setDirtyCanvas(!0,!0))},parentMenu:m,node:e});return!1};g.onMenuNodeShapes=function(a,b,c,g,e){if(!e)throw"no node passed";new k.ContextMenu(k.VALID_SHAPES,{event:c,callback:function(a){e&&(e.shape=a,e.setDirtyCanvas(!0))},
|
||||
parentMenu:g,node:e});return!1};g.onMenuNodeRemove=function(a,b,c,g,e){if(!e)throw"no node passed";!1!==e.removable&&(e.graph.remove(e),e.setDirtyCanvas(!0,!0))};g.onMenuNodeClone=function(a,b,c,g,e){!1!=e.clonable&&(a=e.clone())&&(a.pos=[e.pos[0]+5,e.pos[1]+5],e.graph.add(a),e.setDirtyCanvas(!0,!0))};g.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"}};g.prototype.getCanvasMenuOptions=function(){var a=null;this.getMenuOptions?a=this.getMenuOptions():(a=[{content:"Add Node",has_submenu:!0,callback:g.onMenuAdd},{content:"Add Group",
|
||||
callback:g.onGroupAdd}],this._graph_stack&&0<this._graph_stack.length&&(a=[{content:"Close subgraph",callback:this.closeSubgraph.bind(this)},null].concat(a)));if(this.getExtraMenuOptions){var b=this.getExtraMenuOptions(this,a);b&&(a=a.concat(b))}return a};g.prototype.getNodeMenuOptions=function(a){var b=null,b=a.getMenuOptions?a.getMenuOptions(this):[{content:"Inputs",has_submenu:!0,disabled:!0,callback:g.showMenuNodeOptionalInputs},{content:"Outputs",has_submenu:!0,disabled:!0,callback:g.showMenuNodeOptionalOutputs},
|
||||
null,{content:"Properties",has_submenu:!0,callback:g.onShowMenuNodeProperties},null,{content:"Title",callback:g.onShowTitleEditor},{content:"Mode",has_submenu:!0,callback:g.onMenuNodeMode},{content:"Resize",callback:g.onResizeNode},{content:"Collapse",callback:g.onMenuNodeCollapse},{content:"Pin",callback:g.onMenuNodePin},{content:"Colors",has_submenu:!0,callback:g.onMenuNodeColors},{content:"Shapes",has_submenu:!0,callback:g.onMenuNodeShapes},null];if(a.getExtraMenuOptions){var c=a.getExtraMenuOptions(this);
|
||||
c&&(c.push(null),b=c.concat(b))}!1!==a.clonable&&b.push({content:"Clone",callback:g.onMenuNodeClone});!1!==a.removable&&b.push(null,{content:"Remove",callback:g.onMenuNodeRemove});a.onGetInputs&&(c=a.onGetInputs())&&c.length&&(b[0].disabled=!1);a.onGetOutputs&&(c=a.onGetOutputs())&&c.length&&(b[1].disabled=!1);if(a.graph&&a.graph.onGetNodeMenuOptions)a.graph.onGetNodeMenuOptions(b,a);return b};g.prototype.getGroupMenuOptions=function(a){return[{content:"Title",callback:g.onShowTitleEditor},{content:"Color",
|
||||
has_submenu:!0,callback:g.onMenuNodeColors},null,{content:"Remove",callback:g.onMenuNodeRemove}]};g.prototype.processContextMenu=function(a,b){var c=this,m=g.active_canvas.getCanvasWindow(),e=null,l={event:b,callback:function(b,e,l){if(b)if("Remove Slot"==b.content){var g=b.slot;g.input?a.removeInput(g.slot):g.output&&a.removeOutput(g.slot)}else if("Rename Slot"==b.content){var g=b.slot,d=c.createDialog("<span class='name'>Name</span><input type='text'/><button>OK</button>",e),m=d.querySelector("input");
|
||||
d.querySelector("button").addEventListener("click",function(b){if(m.value){if(b=g.input?a.getInputInfo(g.slot):a.getOutputInfo(g.slot))b.label=m.value;c.setDirty(!0)}d.close()})}},extra:a},d=null;a&&(d=a.getSlotInPosition(b.canvasX,b.canvasY),g.active_node=a);d?(e=[],e.push(d.locked?"Cannot remove":{content:"Remove Slot",slot:d}),e.push({content:"Rename Slot",slot:d}),l.title=(d.input?d.input.type:d.output.type)||"*",d.input&&d.input.type==k.ACTION&&(l.title="Action"),d.output&&d.output.type==k.EVENT&&
|
||||
(l.title="Event")):a?e=this.getNodeMenuOptions(a):(e=this.getCanvasMenuOptions(),(d=this.graph.getGroupOnPos(b.canvasX,b.canvasY))&&e.push(null,{content:"Edit Group",has_submenu:!0,submenu:{title:"Group",extra:d,options:this.getGroupMenuOptions(d)}}));e&&new k.ContextMenu(e,l,m)};this.CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.roundRect=function(a,b,c,g,e,l){void 0===e&&(e=5);void 0===l&&(l=e);this.moveTo(a+e,b);this.lineTo(a+c-e,b);this.quadraticCurveTo(a+c,b,a+c,b+e);this.lineTo(a+
|
||||
c,b+g-l);this.quadraticCurveTo(a+c,b+g,a+c-l,b+g);this.lineTo(a+l,b+g);this.quadraticCurveTo(a,b+g,a,b+g-l);this.lineTo(a,b+e);this.quadraticCurveTo(a,b,a+e,b)});k.compareObjects=function(a,b){for(var c in a)if(a[c]!=b[c])return!1;return!0};k.distance=r;k.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")+")"};k.isInsideRectangle=p;k.growBounding=function(a,b,c){b<a[0]?
|
||||
a[0]=b:b>a[2]&&(a[2]=b);c<a[1]?a[1]=c:c>a[3]&&(a[3]=c)};k.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};k.overlapBounding=s;k.hex2num=function(a){"#"==a.charAt(0)&&(a=a.slice(1));a=a.toUpperCase();for(var b=Array(3),c=0,g,e,l=0;6>l;l+=2)g="0123456789ABCDEF".indexOf(a.charAt(l)),e="0123456789ABCDEF".indexOf(a.charAt(l+1)),b[c]=16*g+e,c++;return b};k.num2hex=function(a){for(var b="#",c,g,e=0;3>e;e++)c=a[e]/16,g=a[e]%16,b+="0123456789ABCDEF".charAt(c)+
|
||||
"0123456789ABCDEF".charAt(g);return b};u.prototype.addItem=function(a,b,c){function g(a){var b=this.value;b&&b.has_submenu&&e.call(this,a)}function e(a){var b=this.value,e=!0;l.current_submenu&&l.current_submenu.close(a);if(c.callback){var g=c.callback.call(this,b,c,a,l,c.node);!0===g&&(e=!1)}if(b&&(b.callback&&!c.ignore_item_callbacks&&!0!==b.disabled&&(g=b.callback.call(this,b,c,a,l,c.extra),!0===g&&(e=!1)),b.submenu)){if(!b.submenu.options)throw"ContextMenu submenu needs options";new l.constructor(b.submenu.options,
|
||||
{callback:b.submenu.callback,event:a,parentMenu:l,ignore_item_callbacks:b.submenu.ignore_item_callbacks,title:b.submenu.title,extra:b.submenu.extra,autoopen:c.autoopen});e=!1}e&&!l.lock&&l.close()}var l=this;c=c||{};var d=document.createElement("div");d.className="litemenu-entry submenu";var m=!1;if(null===b)d.classList.add("separator");else{d.innerHTML=b&&b.title?b.title:a;if(d.value=b)b.disabled&&(m=!0,d.classList.add("disabled")),(b.submenu||b.has_submenu)&&d.classList.add("has_submenu");"function"==
|
||||
typeof b?(d.dataset.value=a,d.onclick_callback=b):d.dataset.value=b;b.className&&(d.className+=" "+b.className)}this.root.appendChild(d);m||d.addEventListener("click",e);c.autoopen&&d.addEventListener("mouseenter",g);return d};u.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&&!u.isCursorOverElement(a,this.parentMenu.root)&&u.trigger(this.parentMenu.root,
|
||||
"mouseleave",a));this.current_submenu&&this.current_submenu.close(a,!0)};u.trigger=function(a,b,c,g){var e=document.createEvent("CustomEvent");e.initCustomEvent(b,!0,!0,c);e.srcElement=g;a.dispatchEvent?a.dispatchEvent(e):a.__events&&a.__events.dispatchEvent(e);return e};u.prototype.getTopMenu=function(){return this.options.parentMenu?this.options.parentMenu.getTopMenu():this};u.prototype.getFirstEvent=function(){return this.options.parentMenu?this.options.parentMenu.getFirstEvent():this.options.event};
|
||||
u.isCursorOverElement=function(a,b){var c=a.pageX,g=a.pageY,e=b.getBoundingClientRect();return e?g>e.top&&g<e.top+e.height&&c>e.left&&c<e.left+e.width?!0:!1:!1};k.ContextMenu=u;k.closeAllContextMenus=function(a){a=a||window;a=a.document.querySelectorAll(".litecontextmenu");if(a.length){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);for(c in b)b[c].close?b[c].close():b[c].parentNode&&b[c].parentNode.removeChild(b[c])}};k.extendClass=function(a,b){for(var c in b)a.hasOwnProperty(c)||(a[c]=b[c]);if(b.prototype)for(c in b.prototype)b.prototype.hasOwnProperty(c)&&
|
||||
!a.prototype.hasOwnProperty(c)&&(b.prototype.__lookupGetter__(c)?a.prototype.__defineGetter__(c,b.prototype.__lookupGetter__(c)):a.prototype[c]=b.prototype[c],b.prototype.__lookupSetter__(c)&&a.prototype.__defineSetter__(c,b.prototype.__lookupSetter__(c)))};k.getParameterNames=function(a){return(a+"").replace(/[/][/].*$/mg,"").replace(/\s+/g,"").replace(/[/][*][^/*]*[*][/]/g,"").split("){",1)[0].replace(/^[^(]*[(]/,"").replace(/=[^,]+/g,"").split(",").filter(Boolean)};Math.clamp=function(a,b,c){return b>
|
||||
a?b:c<a?c: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);
|
||||
b,c,g){if(!a.widgets||!a.widgets.length)return 0;var e=a.size[0];a=a.widgets;b+=2;var l=k.NODE_WIDGET_HEIGHT,n=0.5<this.scale;c.save();c.globalAlpha=this.editor_alpha;for(var d=0;d<a.length;++d){var m=a[d],h=b;m.y&&(h=m.y);m.last_y=h;c.strokeStyle="#AAA";c.fillStyle="#222";c.textAlign="left";switch(m.type){case "button":m.clicked&&(c.fillStyle="#AAA",m.clicked=!1,this.dirty_canvas=!0);c.fillRect(10,h,e-20,l);c.strokeRect(10,h,e-20,l);n&&(c.textAlign="center",c.fillStyle="#AAA",c.fillText(m.name,0.5*
|
||||
e,h+0.7*l));break;case "slider":c.fillStyle="#111";c.fillRect(10,h,e-20,l);var q=(m.value-m.options.min)/(m.options.max-m.options.min);c.fillStyle=g==m?"#89A":"#678";c.fillRect(10,h,q*(e-20),l);c.strokeRect(10,h,e-20,l);n&&(c.textAlign="center",c.fillStyle="#DDD",c.fillText(m.name+" "+Number(m.value).toFixed(3),0.5*e,h+0.7*l));break;case "number":case "combo":c.textAlign="left";c.strokeStyle="#AAA";c.fillStyle="#111";c.beginPath();c.roundRect(10,b,e-20,l,0.5*l);c.fill();c.stroke();c.fillStyle="#AAA";
|
||||
c.beginPath();c.moveTo(26,b+5);c.lineTo(16,b+0.5*l);c.lineTo(26,b+l-5);c.moveTo(e-26,b+5);c.lineTo(e-16,b+0.5*l);c.lineTo(e-26,b+l-5);c.fill();n&&(c.fillStyle="#999",c.fillText(m.name,30,h+0.7*l),c.fillStyle="#DDD",c.textAlign="right","number"==m.type?c.fillText(Number(m.value).toFixed(void 0!==m.options.precision?m.options.precision:3),e-40,h+0.7*l):c.fillText(m.value,e-40,h+0.7*l));break;case "text":c.textAlign="left",c.strokeStyle="#AAA",c.fillStyle="#111",c.beginPath(),c.roundRect(10,b,e-20,l,
|
||||
0.5*l),c.fill(),c.stroke(),n&&(c.fillStyle="#999",null!=m.name&&c.fillText(m.name,20,h+0.7*l),c.fillStyle="#DDD",c.textAlign="right",c.fillText(m.value,e-20,h+0.7*l))}b+=l+4}c.restore()};g.prototype.processNodeWidgets=function(a,b,c,g){if(!a.widgets||!a.widgets.length)return null;for(var e=b[0]-a.pos[0],l=b[1]-a.pos[1],n=a.size[0],m=this,d=0;d<a.widgets.length;++d){var h=a.widgets[d];if(h==g||6<e&&e<n-12&&l>h.last_y&&l<h.last_y+k.NODE_WIDGET_HEIGHT){switch(h.type){case "button":h.callback&&setTimeout(function(){h.callback(h,
|
||||
m,a,b)},20);this.dirty_canvas=h.clicked=!0;break;case "slider":c=Math.clamp((e-10)/(n-20),0,1);h.value=h.options.min+(h.options.max-h.options.min)*c;h.callback&&setTimeout(function(){h.callback(h.value,m,a,b)},20);this.dirty_canvas=!0;break;case "number":case "combo":"mousemove"==c.type&&"number"==h.type?(h.value+=0.1*c.deltaX*(h.options.step||1),null!=h.options.min&&h.value<h.options.min&&(h.value=h.options.min),null!=h.options.max&&h.value>h.options.max&&(h.value=h.options.max)):"mousedown"==c.type&&
|
||||
(c=40>e?-1:e>n-40?1:0,"number"==h.type?(h.value+=0.1*c*(h.options.step||1),null!=h.options.min&&h.value<h.options.min&&(h.value=h.options.min),null!=h.options.max&&h.value>h.options.max&&(h.value=h.options.max)):c&&(c=h.options.values.indexOf(h.value)+c,c>=h.options.values.length&&(c=0),0>c&&(c=h.options.values.length-1),h.value=h.options.values[c]));h.callback&&setTimeout(function(){this.callback(this.value,m,a,b)}.bind(h),20);this.dirty_canvas=!0;break;case "text":"mousedown"==c.type&&this.prompt("Value",
|
||||
h.value,function(a){this.value=a}.bind(h),c)}return h}}return null};g.prototype.drawGroups=function(a,b){if(this.graph){var c=this.graph._groups;b.save();b.globalAlpha=0.5*this.editor_alpha;b.font="24px Arial";for(var g=0;g<c.length;++g){var e=c[g];if(s(this.visible_area,e._bounding)){b.fillStyle=e.color||"#335";b.strokeStyle=e.color||"#335";var l=e._pos,n=e._size;b.globalAlpha=0.25*this.editor_alpha;b.beginPath();b.rect(l[0]+0.5,l[1]+0.5,n[0],n[1]);b.fill();b.globalAlpha=this.editor_alpha;b.stroke();
|
||||
b.beginPath();b.moveTo(l[0]+n[0],l[1]+n[1]);b.lineTo(l[0]+n[0]-10,l[1]+n[1]);b.lineTo(l[0]+n[0],l[1]+n[1]-10);b.fill();b.fillText(e.title,l[0]+4,l[1]+24)}}b.restore()}};g.prototype.resize=function(a,b){if(!a&&!b){var c=this.canvas.parentNode;a=c.offsetWidth;b=c.offsetHeight}if(this.canvas.width!=a||this.canvas.height!=b)this.canvas.width=a,this.canvas.height=b,this.bgcanvas.width=this.canvas.width,this.bgcanvas.height=this.canvas.height,this.setDirty(!0,!0)};g.prototype.switchLiveMode=function(a){if(a){var b=
|
||||
this,c=this.live_mode?1.1:0.9;this.live_mode&&(this.live_mode=!1,this.editor_alpha=0.1);var g=setInterval(function(){b.editor_alpha*=c;b.dirty_canvas=!0;b.dirty_bgcanvas=!0;1>c&&0.01>b.editor_alpha&&(clearInterval(g),1>c&&(b.live_mode=!0));1<c&&0.99<b.editor_alpha&&(clearInterval(g),b.editor_alpha=1)},1)}else this.live_mode=!this.live_mode,this.dirty_bgcanvas=this.dirty_canvas=!0};g.prototype.onNodeSelectionChange=function(a){};g.prototype.touchHandler=function(a){var b=a.changedTouches[0],c="";switch(a.type){case "touchstart":c=
|
||||
"mousedown";break;case "touchmove":c="mousemove";break;case "touchend":c="mouseup";break;default:return}var g=this.getCanvasWindow(),e=g.document.createEvent("MouseEvent");e.initMouseEvent(c,!0,!0,g,1,b.screenX,b.screenY,b.clientX,b.clientY,!1,!1,!1,!1,0,null);b.target.dispatchEvent(e);a.preventDefault()};g.onGroupAdd=function(a,b,c){a=g.active_canvas;a.getCanvasWindow();b=new k.LGraphGroup;b.pos=a.convertEventToCanvas(c);a.graph.add(b)};g.onMenuAdd=function(a,b,c,m){function e(a,b){var c=m.getFirstEvent(),
|
||||
f=k.createNode(a.value);f&&(f.pos=l.convertEventToCanvas(c),l.graph.add(f))}var l=g.active_canvas,n=l.getCanvasWindow();a=k.getNodeTypesCategories();b=[];for(var d in a)a[d]&&b.push({value:a[d],content:a[d],has_submenu:!0});var h=new k.ContextMenu(b,{event:c,callback:function(a,b,c){a=k.getNodeTypesInCategory(a.value,l.filter);b=[];for(var f in a)b.push({content:a[f].title,value:a[f].type});new k.ContextMenu(b,{event:c,callback:e,parentMenu:h},n);return!1},parentMenu:m},n);return!1};g.onMenuCollapseAll=
|
||||
function(){};g.onMenuNodeEdit=function(){};g.showMenuNodeOptionalInputs=function(a,b,c,d,e){function l(a,b,c){e&&(a.callback&&a.callback.call(n,e,a,b,c),a.value&&(e.addInput(a.value[0],a.value[1],a.value[2]),e.setDirtyCanvas(!0,!0)))}if(e){var n=this;a=g.active_canvas.getCanvasWindow();b=e.optional_inputs;e.onGetInputs&&(b=e.onGetInputs());var m=[];if(b)for(var h in b){var q=b[h];if(q){var p=q[0];q[2]&&q[2].label&&(p=q[2].label);p={content:p,value:q};q[1]==k.ACTION&&(p.className="event");m.push(p)}else m.push(null)}this.onMenuNodeInputs&&
|
||||
(m=this.onMenuNodeInputs(m));if(m.length)return new k.ContextMenu(m,{event:c,callback:l,parentMenu:d,node:e},a),!1}};g.showMenuNodeOptionalOutputs=function(a,b,c,m,e){function l(a,b,c){if(e&&(a.callback&&a.callback.call(d,e,a,b,c),a.value))if(c=a.value[1],!c||c.constructor!==Object&&c.constructor!==Array)e.addOutput(a.value[0],a.value[1],a.value[2]),e.setDirtyCanvas(!0,!0);else{a=[];for(var f in c)a.push({content:f,value:c[f]});new k.ContextMenu(a,{event:b,callback:l,parentMenu:m,node:e});return!1}}
|
||||
if(e){var d=this;a=g.active_canvas.getCanvasWindow();b=e.optional_outputs;e.onGetOutputs&&(b=e.onGetOutputs());var h=[];if(b)for(var q in b){var p=b[q];if(!p)h.push(null);else if(!e.flags||!e.flags.skip_repeated_outputs||-1==e.findOutputSlot(p[0])){var r=p[0];p[2]&&p[2].label&&(r=p[2].label);r={content:r,value:p};p[1]==k.EVENT&&(r.className="event");h.push(r)}}this.onMenuNodeOutputs&&(h=this.onMenuNodeOutputs(h));if(h.length)return new k.ContextMenu(h,{event:c,callback:l,parentMenu:m,node:e},a),!1}};
|
||||
g.onShowMenuNodeProperties=function(a,b,c,m,e){function l(a,b,c,f){e&&(b=this.getBoundingClientRect(),d.showEditPropertyValue(e,a.value,{position:[b.left,b.top]}))}if(e&&e.properties){var d=g.active_canvas;b=d.getCanvasWindow();var h=[],q;for(q in e.properties)a=void 0!==e.properties[q]?e.properties[q]:" ",a=g.decodeHTML(a),h.push({content:"<span class='property_name'>"+q+"</span><span class='property_value'>"+a+"</span>",value:q});if(h.length)return new k.ContextMenu(h,{event:c,callback:l,parentMenu:m,
|
||||
allow_html:!0,node:e},b),!1}};g.decodeHTML=function(a){var b=document.createElement("div");b.innerText=a;return b.innerHTML};g.onResizeNode=function(a,b,c,g,e){e&&(e.size=e.computeSize(),e.setDirtyCanvas(!0,!0))};g.onShowTitleEditor=function(a,b,c,m,e){function l(){e.title=h.value;d.parentNode.removeChild(d);e.setDirtyCanvas(!0,!0)}var d=document.createElement("div");d.className="graphdialog";d.innerHTML="<span class='name'>Title</span><input autofocus type='text' class='value'/><button>OK</button>";
|
||||
var h=d.querySelector("input");h&&(h.value=e.title,h.addEventListener("keydown",function(a){13==a.keyCode&&(l(),a.preventDefault(),a.stopPropagation())}));a=g.active_canvas.canvas;b=a.getBoundingClientRect();m=c=-20;b&&(c-=b.left,m-=b.top);event?(d.style.left=event.pageX+c+"px",d.style.top=event.pageY+m+"px"):(d.style.left=0.5*a.width+c+"px",d.style.top=0.5*a.height+m+"px");d.querySelector("button").addEventListener("click",l);a.parentNode.appendChild(d)};g.prototype.prompt=function(a,b,c,d){var e=
|
||||
this;a=a||"";var l=document.createElement("div");l.className="graphdialog rounded";l.innerHTML="<span class='name'></span> <input autofocus type='text' class='value'/><button class='rounded'>OK</button>";l.close=function(){e.prompt_box=null;l.parentNode.removeChild(l)};l.addEventListener("mouseleave",function(a){l.close()});e.prompt_box&&e.prompt_box.close();e.prompt_box=l;l.querySelector(".name").innerText=a;l.querySelector(".value").value=b;var m=l.querySelector("input");m.addEventListener("keydown",
|
||||
function(a){if(27==a.keyCode)l.close();else if(13==a.keyCode)c&&c(this.value),l.close();else return;a.preventDefault();a.stopPropagation()});l.querySelector("button").addEventListener("click",function(a){c&&c(m.value);e.setDirty(!0);l.close()});a=g.active_canvas.canvas;b=a.getBoundingClientRect();var h=-20,k=-20;b&&(h-=b.left,k-=b.top);d?(l.style.left=d.pageX+h+"px",l.style.top=d.pageY+k+"px"):(l.style.left=0.5*a.width+h+"px",l.style.top=0.5*a.height+k+"px");a.parentNode.appendChild(l);setTimeout(function(){m.focus()},
|
||||
10);return l};g.prototype.showSearchBox=function(a){function b(b){if(b)if(e.onSearchBoxSelection)e.onSearchBoxSelection(b,a,s);else if(b=k.createNode(b))b.pos=s.convertEventToCanvas(a),s.graph.add(b);l.close()}function c(a){var b=p;p&&p.classList.remove("selected");p?(p=a?p.nextSibling:p.previousSibling)||(p=b):p=a?m.childNodes[0]:m.childNodes[m.childNodes.length];p&&(p.classList.add("selected"),p.scrollIntoView())}function d(){q=null;var a=r.value;h=null;m.innerHTML="";if(a)if(e.onSearchBox)e.onSearchBox(f,
|
||||
a,s);else for(var c in k.registered_node_types)if(-1!=c.indexOf(a)){var f=document.createElement("div");h||(h=c);f.innerText=c;f.className="help-item";f.addEventListener("click",function(a){b(this.innerText)});m.appendChild(f)}}var e=this,l=document.createElement("div");l.className="graphdialog rounded";l.innerHTML="<span class='name'>Search</span> <input autofocus type='text' class='value rounded'/><div class='helper'></div>";l.close=function(){e.search_box=null;l.parentNode.removeChild(l)};l.addEventListener("mouseleave",
|
||||
function(a){l.close()});e.search_box&&e.search_box.close();e.search_box=l;var m=l.querySelector(".helper"),h=null,q=null,p=null,r=l.querySelector("input");r&&r.addEventListener("keydown",function(a){if(38==a.keyCode)c(!1);else if(40==a.keyCode)c(!0);else if(27==a.keyCode)l.close();else if(13==a.keyCode)p?b(p.innerHTML):h?b(h):l.close();else{q&&clearInterval(q);q=setTimeout(d,10);return}a.preventDefault();a.stopPropagation()});var s=g.active_canvas,u=s.canvas,t=u.getBoundingClientRect(),z=-20,E=-20;
|
||||
t&&(z-=t.left,E-=t.top);a?(l.style.left=a.pageX+z+"px",l.style.top=a.pageY+E+"px"):(l.style.left=0.5*u.width+z+"px",l.style.top=0.5*u.height+E+"px");u.parentNode.appendChild(l);setTimeout(function(){r.focus()},10);return l};g.prototype.showEditPropertyValue=function(a,b,c){function g(){e(p.value)}function e(c){"number"==typeof a.properties[b]&&(c=Number(c));"array"==l&&(c=c.split(",").map(Number));a.properties[b]=c;a._graph&&a._graph._version++;if(a.onPropertyChanged)a.onPropertyChanged(b,c);q.close();
|
||||
a.setDirtyCanvas(!0,!0)}if(a&&void 0!==a.properties[b]){c=c||{};var l="string";null!==a.properties[b]&&(l=typeof a.properties[b]);"object"==l&&a.properties[b].length&&(l="array");var m=null;a.getPropertyInfo&&(m=a.getPropertyInfo(b));if(a.properties_info)for(var d=0;d<a.properties_info.length;++d)if(a.properties_info[d].name==b){m=a.properties_info[d];break}void 0!==m&&null!==m&&m.type&&(l=m.type);var h="";if("string"==l||"number"==l||"array"==l)h="<input autofocus type='text' class='value'/>";else if("enum"==
|
||||
l&&m.values){h="<select autofocus type='text' class='value'>";for(d in m.values)var k=m.values.constructor===Array?m.values[d]:d,h=h+("<option value='"+k+"' "+(k==a.properties[b]?"selected":"")+">"+m.values[d]+"</option>");h+="</select>"}else if("boolean"==l)h="<input autofocus type='checkbox' class='value' "+(a.properties[b]?"checked":"")+"/>";else{console.warn("unknown type: "+l);return}var q=this.createDialog("<span class='name'>"+b+"</span>"+h+"<button>OK</button>",c);if("enum"==l&&m.values){var p=
|
||||
q.querySelector("select");p.addEventListener("change",function(a){e(a.target.value)})}else if("boolean"==l)(p=q.querySelector("input"))&&p.addEventListener("click",function(a){e(!!p.checked)});else if(p=q.querySelector("input"))p.value=void 0!==a.properties[b]?a.properties[b]:"",p.addEventListener("keydown",function(a){13==a.keyCode&&(g(),a.preventDefault(),a.stopPropagation())});q.querySelector("button").addEventListener("click",g)}};g.prototype.createDialog=function(a,b){b=b||{};var c=document.createElement("div");
|
||||
c.className="graphdialog";c.innerHTML=a;var g=this.canvas.getBoundingClientRect(),e=-20,l=-20;g&&(e-=g.left,l-=g.top);b.position?(e+=b.position[0],l+=b.position[1]):b.event?(e+=b.event.pageX,l+=b.event.pageY):(e+=0.5*this.canvas.width,l+=0.5*this.canvas.height);c.style.left=e+"px";c.style.top=l+"px";this.canvas.parentNode.appendChild(c);c.close=function(){this.parentNode&&this.parentNode.removeChild(this)};return c};g.onMenuNodeCollapse=function(a,b,c,g,e){e.collapse()};g.onMenuNodePin=function(a,
|
||||
b,c,g,e){e.pin()};g.onMenuNodeMode=function(a,b,c,g,e){new k.ContextMenu(["Always","On Event","On Trigger","Never"],{event:c,callback:function(a){if(e)switch(a){case "On Event":e.mode=k.ON_EVENT;break;case "On Trigger":e.mode=k.ON_TRIGGER;break;case "Never":e.mode=k.NEVER;break;default:e.mode=k.ALWAYS}},parentMenu:g,node:e});return!1};g.onMenuNodeColors=function(a,b,c,m,e){if(!e)throw"no node for color";b=[];b.push({value:null,content:"<span style='display: block; padding-left: 4px;'>No color</span>"});
|
||||
for(var l in g.node_colors)a=g.node_colors[l],a={value:l,content:"<span style='display: block; color: #999; padding-left: 4px; border-left: 8px solid "+a.color+"; background-color:"+a.bgcolor+"'>"+l+"</span>"},b.push(a);new k.ContextMenu(b,{event:c,callback:function(a){e&&((a=a.value?g.node_colors[a.value]:null)?e.constructor===k.LGraphGroup?e.color=a.groupcolor:(e.color=a.color,e.bgcolor=a.bgcolor):(delete e.color,delete e.bgcolor),e.setDirtyCanvas(!0,!0))},parentMenu:m,node:e});return!1};g.onMenuNodeShapes=
|
||||
function(a,b,c,g,e){if(!e)throw"no node passed";new k.ContextMenu(k.VALID_SHAPES,{event:c,callback:function(a){e&&(e.shape=a,e.setDirtyCanvas(!0))},parentMenu:g,node:e});return!1};g.onMenuNodeRemove=function(a,b,c,g,e){if(!e)throw"no node passed";!1!==e.removable&&(e.graph.remove(e),e.setDirtyCanvas(!0,!0))};g.onMenuNodeClone=function(a,b,c,g,e){!1!=e.clonable&&(a=e.clone())&&(a.pos=[e.pos[0]+5,e.pos[1]+5],e.graph.add(a),e.setDirtyCanvas(!0,!0))};g.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"}};g.prototype.getCanvasMenuOptions=function(){var a=
|
||||
null;this.getMenuOptions?a=this.getMenuOptions():(a=[{content:"Add Node",has_submenu:!0,callback:g.onMenuAdd},{content:"Add Group",callback:g.onGroupAdd}],this._graph_stack&&0<this._graph_stack.length&&(a=[{content:"Close subgraph",callback:this.closeSubgraph.bind(this)},null].concat(a)));if(this.getExtraMenuOptions){var b=this.getExtraMenuOptions(this,a);b&&(a=a.concat(b))}return a};g.prototype.getNodeMenuOptions=function(a){var b=null,b=a.getMenuOptions?a.getMenuOptions(this):[{content:"Inputs",
|
||||
has_submenu:!0,disabled:!0,callback:g.showMenuNodeOptionalInputs},{content:"Outputs",has_submenu:!0,disabled:!0,callback:g.showMenuNodeOptionalOutputs},null,{content:"Properties",has_submenu:!0,callback:g.onShowMenuNodeProperties},null,{content:"Title",callback:g.onShowTitleEditor},{content:"Mode",has_submenu:!0,callback:g.onMenuNodeMode},{content:"Resize",callback:g.onResizeNode},{content:"Collapse",callback:g.onMenuNodeCollapse},{content:"Pin",callback:g.onMenuNodePin},{content:"Colors",has_submenu:!0,
|
||||
callback:g.onMenuNodeColors},{content:"Shapes",has_submenu:!0,callback:g.onMenuNodeShapes},null];if(a.getExtraMenuOptions){var c=a.getExtraMenuOptions(this);c&&(c.push(null),b=c.concat(b))}!1!==a.clonable&&b.push({content:"Clone",callback:g.onMenuNodeClone});!1!==a.removable&&b.push(null,{content:"Remove",callback:g.onMenuNodeRemove});a.onGetInputs&&(c=a.onGetInputs())&&c.length&&(b[0].disabled=!1);a.onGetOutputs&&(c=a.onGetOutputs())&&c.length&&(b[1].disabled=!1);if(a.graph&&a.graph.onGetNodeMenuOptions)a.graph.onGetNodeMenuOptions(b,
|
||||
a);return b};g.prototype.getGroupMenuOptions=function(a){return[{content:"Title",callback:g.onShowTitleEditor},{content:"Color",has_submenu:!0,callback:g.onMenuNodeColors},null,{content:"Remove",callback:g.onMenuNodeRemove}]};g.prototype.processContextMenu=function(a,b){var c=this,m=g.active_canvas.getCanvasWindow(),e=null,l={event:b,callback:function(b,e,l){if(b)if("Remove Slot"==b.content){var g=b.slot;g.input?a.removeInput(g.slot):g.output&&a.removeOutput(g.slot)}else if("Rename Slot"==b.content){var g=
|
||||
b.slot,d=c.createDialog("<span class='name'>Name</span><input type='text'/><button>OK</button>",e),m=d.querySelector("input");d.querySelector("button").addEventListener("click",function(b){if(m.value){if(b=g.input?a.getInputInfo(g.slot):a.getOutputInfo(g.slot))b.label=m.value;c.setDirty(!0)}d.close()})}},extra:a},d=null;a&&(d=a.getSlotInPosition(b.canvasX,b.canvasY),g.active_node=a);d?(e=[],e.push(d.locked?"Cannot remove":{content:"Remove Slot",slot:d}),e.push({content:"Rename Slot",slot:d}),l.title=
|
||||
(d.input?d.input.type:d.output.type)||"*",d.input&&d.input.type==k.ACTION&&(l.title="Action"),d.output&&d.output.type==k.EVENT&&(l.title="Event")):a?e=this.getNodeMenuOptions(a):(e=this.getCanvasMenuOptions(),(d=this.graph.getGroupOnPos(b.canvasX,b.canvasY))&&e.push(null,{content:"Edit Group",has_submenu:!0,submenu:{title:"Group",extra:d,options:this.getGroupMenuOptions(d)}}));e&&new k.ContextMenu(e,l,m)};this.CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.roundRect=function(a,b,c,
|
||||
g,e,l){void 0===e&&(e=5);void 0===l&&(l=e);this.moveTo(a+e,b);this.lineTo(a+c-e,b);this.quadraticCurveTo(a+c,b,a+c,b+e);this.lineTo(a+c,b+g-l);this.quadraticCurveTo(a+c,b+g,a+c-l,b+g);this.lineTo(a+l,b+g);this.quadraticCurveTo(a,b+g,a,b+g-l);this.lineTo(a,b+e);this.quadraticCurveTo(a,b,a+e,b)});k.compareObjects=function(a,b){for(var c in a)if(a[c]!=b[c])return!1;return!0};k.distance=r;k.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")+")"};k.isInsideRectangle=p;k.growBounding=function(a,b,c){b<a[0]?a[0]=b:b>a[2]&&(a[2]=b);c<a[1]?a[1]=c:c>a[3]&&(a[3]=c)};k.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};k.overlapBounding=s;k.hex2num=function(a){"#"==a.charAt(0)&&(a=a.slice(1));a=a.toUpperCase();for(var b=Array(3),c=0,g,e,l=0;6>l;l+=2)g="0123456789ABCDEF".indexOf(a.charAt(l)),e="0123456789ABCDEF".indexOf(a.charAt(l+1)),b[c]=
|
||||
16*g+e,c++;return b};k.num2hex=function(a){for(var b="#",c,g,e=0;3>e;e++)c=a[e]/16,g=a[e]%16,b+="0123456789ABCDEF".charAt(c)+"0123456789ABCDEF".charAt(g);return b};u.prototype.addItem=function(a,b,c){function g(a){var b=this.value;b&&b.has_submenu&&e.call(this,a)}function e(a){var b=this.value,e=!0;l.current_submenu&&l.current_submenu.close(a);if(c.callback){var g=c.callback.call(this,b,c,a,l,c.node);!0===g&&(e=!1)}if(b&&(b.callback&&!c.ignore_item_callbacks&&!0!==b.disabled&&(g=b.callback.call(this,
|
||||
b,c,a,l,c.extra),!0===g&&(e=!1)),b.submenu)){if(!b.submenu.options)throw"ContextMenu submenu needs options";new l.constructor(b.submenu.options,{callback:b.submenu.callback,event:a,parentMenu:l,ignore_item_callbacks:b.submenu.ignore_item_callbacks,title:b.submenu.title,extra:b.submenu.extra,autoopen:c.autoopen});e=!1}e&&!l.lock&&l.close()}var l=this;c=c||{};var d=document.createElement("div");d.className="litemenu-entry submenu";var m=!1;if(null===b)d.classList.add("separator");else{d.innerHTML=b&&
|
||||
b.title?b.title:a;if(d.value=b)b.disabled&&(m=!0,d.classList.add("disabled")),(b.submenu||b.has_submenu)&&d.classList.add("has_submenu");"function"==typeof b?(d.dataset.value=a,d.onclick_callback=b):d.dataset.value=b;b.className&&(d.className+=" "+b.className)}this.root.appendChild(d);m||d.addEventListener("click",e);c.autoopen&&d.addEventListener("mouseenter",g);return d};u.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&&!u.isCursorOverElement(a,this.parentMenu.root)&&u.trigger(this.parentMenu.root,"mouseleave",a));this.current_submenu&&this.current_submenu.close(a,!0)};u.trigger=function(a,b,c,g){var e=document.createEvent("CustomEvent");e.initCustomEvent(b,!0,!0,c);e.srcElement=g;a.dispatchEvent?a.dispatchEvent(e):a.__events&&a.__events.dispatchEvent(e);return e};u.prototype.getTopMenu=function(){return this.options.parentMenu?this.options.parentMenu.getTopMenu():
|
||||
this};u.prototype.getFirstEvent=function(){return this.options.parentMenu?this.options.parentMenu.getFirstEvent():this.options.event};u.isCursorOverElement=function(a,b){var c=a.pageX,g=a.pageY,e=b.getBoundingClientRect();return e?g>e.top&&g<e.top+e.height&&c>e.left&&c<e.left+e.width?!0:!1:!1};k.ContextMenu=u;k.closeAllContextMenus=function(a){a=a||window;a=a.document.querySelectorAll(".litecontextmenu");if(a.length){for(var b=[],c=0;c<a.length;c++)b.push(a[c]);for(c in b)b[c].close?b[c].close():
|
||||
b[c].parentNode&&b[c].parentNode.removeChild(b[c])}};k.extendClass=function(a,b){for(var c in b)a.hasOwnProperty(c)||(a[c]=b[c]);if(b.prototype)for(c in b.prototype)b.prototype.hasOwnProperty(c)&&!a.prototype.hasOwnProperty(c)&&(b.prototype.__lookupGetter__(c)?a.prototype.__defineGetter__(c,b.prototype.__lookupGetter__(c)):a.prototype[c]=b.prototype[c],b.prototype.__lookupSetter__(c)&&a.prototype.__defineSetter__(c,b.prototype.__lookupSetter__(c)))};k.getParameterNames=function(a){return(a+"").replace(/[/][/].*$/mg,
|
||||
"").replace(/\s+/g,"").replace(/[/][*][^/*]*[*][/]/g,"").split("){",1)[0].replace(/^[^(]*[(]/,"").replace(/=[^,]+/g,"").split(",").filter(Boolean)};Math.clamp=function(a,b,c){return b>a?b:c<a?c: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(t){function h(){this.addOutput("in ms","number");this.addOutput("in sec","number")}function d(){var c=this;this.size=[120,80];this.subgraph=new LGraph;this.subgraph._subgraph_node=this;this.subgraph._is_subgraph=!0;this.subgraph.onGlobalInputAdded=this.onSubgraphNewGlobalInput.bind(this);this.subgraph.onGlobalInputRenamed=this.onSubgraphRenamedGlobalInput.bind(this);this.subgraph.onGlobalInputTypeChanged=this.onSubgraphTypeChangeGlobalInput.bind(this);this.subgraph.onGlobalOutputAdded=this.onSubgraphNewGlobalOutput.bind(this);
|
||||
this.subgraph.onGlobalOutputRenamed=this.onSubgraphRenamedGlobalOutput.bind(this);this.subgraph.onGlobalOutputTypeChanged=this.onSubgraphTypeChangeGlobalOutput.bind(this);this.addWidget("button","Open Graph",null,function(a,b){b.openSubgraph(c.subgraph)});this.bgcolor="#353"}function q(){var c="input_"+(1E3*Math.random()).toFixed();this.addOutput(c,null);this.properties={name:c,type:null};var a=this;Object.defineProperty(this.properties,"name",{get:function(){return c},set:function(b){if(""!=b){var f=
|
||||
a.getOutputInfo(0);f.name!=b&&(f.name=b,a.graph&&a.graph.renameGlobalInput(c,b),c=b)}},enumerable:!0});Object.defineProperty(this.properties,"type",{get:function(){return a.outputs[0].type},set:function(b){a.outputs[0].type=b;a.graph&&a.graph.changeGlobalInputType(c,a.outputs[0].type)},enumerable:!0})}function g(){var c="output_"+(1E3*Math.random()).toFixed();this.addInput(c,null);this._value=null;this.properties={name:c,type:null};var a=this;Object.defineProperty(this.properties,"name",{get:function(){return c},
|
||||
|
||||
Reference in New Issue
Block a user