(function(t){function e(e){for(var i,a,l=e[0],r=e[1],c=e[2],u=0,h=[];u1&&void 0!==arguments[1]?arguments[1]:null;Object(f["a"])(this,t),this.events={},this.container=e,this.precanvas=null,this.nodeId=1,this.ele_selected=null,this.node_selected=null,this.drag=!1,this.reroute=!1,this.reroute_fix_curvature=!1,this.curvature=.5,this.reroute_curvature_start_end=.5,this.reroute_curvature=.5,this.reroute_width=6,this.drag_point=!1,this.editor_selected=!1,this.connection=!1,this.connection_ele=null,this.connection_selected=null,this.canvas_x=0,this.canvas_y=0,this.pos_x=0,this.pos_y=0,this.mouse_x=0,this.mouse_y=0,this.line_path=5,this.first_click=null,this.force_first_input=!1,this.select_elements=null,this.noderegister={},this.render=n,this.drawflow={drawflow:{Home:{data:{}}}},this.module="Home",this.editor_mode="edit",this.zoom=1,this.zoom_max=1.6,this.zoom_min=.5,this.evCache=new Array,this.prevDiff=-1}return Object(m["a"])(t,[{key:"start",value:function(){this.container.classList.add("parent-drawflow"),this.container.tabIndex=0,this.precanvas=document.createElement("div"),this.precanvas.classList.add("drawflow"),this.container.appendChild(this.precanvas),this.container.addEventListener("mouseup",this.dragEnd.bind(this)),this.container.addEventListener("mousemove",this.position.bind(this)),this.container.addEventListener("mousedown",this.click.bind(this)),this.container.addEventListener("touchend",this.dragEnd.bind(this)),this.container.addEventListener("touchmove",this.position.bind(this)),this.container.addEventListener("touchstart",this.click.bind(this)),this.container.addEventListener("contextmenu",this.contextmenu.bind(this)),this.container.addEventListener("keydown",this.key.bind(this)),this.container.addEventListener("wheel",this.zoom_enter.bind(this)),this.container.addEventListener("input",this.updateNodeValue.bind(this)),this.container.addEventListener("dblclick",this.dblclick.bind(this)),this.container.onpointerdown=this.pointerdown_handler.bind(this),this.container.onpointermove=this.pointermove_handler.bind(this),this.container.onpointerup=this.pointerup_handler.bind(this),this.container.onpointercancel=this.pointerup_handler.bind(this),this.container.onpointerout=this.pointerup_handler.bind(this),this.container.onpointerleave=this.pointerup_handler.bind(this),this.load()}},{key:"pointerdown_handler",value:function(t){this.evCache.push(t)}},{key:"pointermove_handler",value:function(t){for(var e=0;e100&&(n>this.prevDiff&&this.zoom_in(),n=n&&(n=parseInt(t)+1)}))})),this.nodeId=n}},{key:"removeReouteConnectionSelected",value:function(){this.reroute_fix_curvature&&this.connection_selected.parentElement.querySelectorAll(".main-path").forEach((function(t,e){t.classList.remove("selected")}))}},{key:"click",value:function(t){if("fixed"===this.editor_mode){if("parent-drawflow"!==t.target.classList[0]&&"drawflow"!==t.target.classList[0])return!1;this.ele_selected=t.target.closest(".parent-drawflow")}else this.first_click=t.target,this.ele_selected=t.target,0===t.button&&this.contextmenuDel(),null!=t.target.closest(".drawflow_content_node")&&(this.ele_selected=t.target.closest(".drawflow_content_node").parentElement);switch(this.ele_selected.classList[0]){case"drawflow-node":null!=this.node_selected&&this.node_selected.classList.remove("selected"),null!=this.connection_selected&&(this.connection_selected.classList.remove("selected"),this.removeReouteConnectionSelected(),this.connection_selected=null),this.dispatch("nodeSelected",this.ele_selected.id.slice(5)),this.node_selected=this.ele_selected,this.node_selected.classList.add("selected"),this.drag=!0;break;case"output":this.connection=!0,null!=this.node_selected&&(this.node_selected.classList.remove("selected"),this.node_selected=null),null!=this.connection_selected&&(this.connection_selected.classList.remove("selected"),this.removeReouteConnectionSelected(),this.connection_selected=null),this.drawConnection(t.target);break;case"parent-drawflow":null!=this.node_selected&&(this.node_selected.classList.remove("selected"),this.node_selected=null),null!=this.connection_selected&&(this.connection_selected.classList.remove("selected"),this.removeReouteConnectionSelected(),this.connection_selected=null),this.editor_selected=!0;break;case"drawflow":null!=this.node_selected&&(this.node_selected.classList.remove("selected"),this.node_selected=null),null!=this.connection_selected&&(this.connection_selected.classList.remove("selected"),this.removeReouteConnectionSelected(),this.connection_selected=null),this.editor_selected=!0;break;case"main-path":null!=this.node_selected&&(this.node_selected.classList.remove("selected"),this.node_selected=null),null!=this.connection_selected&&(this.connection_selected.classList.remove("selected"),this.removeReouteConnectionSelected(),this.connection_selected=null),this.connection_selected=this.ele_selected,this.connection_selected.classList.add("selected"),this.reroute_fix_curvature&&this.connection_selected.parentElement.querySelectorAll(".main-path").forEach((function(t,e){t.classList.add("selected")}));break;case"point":this.drag_point=!0,this.ele_selected.classList.add("selected");break;case"drawflow-delete":this.node_selected&&this.removeNodeId(this.node_selected.id),this.connection_selected&&this.removeConnection(),null!=this.node_selected&&(this.node_selected.classList.remove("selected"),this.node_selected=null),null!=this.connection_selected&&(this.connection_selected.classList.remove("selected"),this.removeReouteConnectionSelected(),this.connection_selected=null);break;default:}"touchstart"===t.type?(this.pos_x=t.touches[0].clientX,this.pos_y=t.touches[0].clientY):(this.pos_x=t.clientX,this.pos_y=t.clientY)}},{key:"position",value:function(t){if("touchmove"===t.type)var e=t.touches[0].clientX,n=t.touches[0].clientY;else e=t.clientX,n=t.clientY;if(this.connection&&this.updateConnection(e,n),this.editor_selected&&(i=this.canvas_x+-(this.pos_x-e),o=this.canvas_y+-(this.pos_y-n),this.dispatch("translate",{x:i,y:o}),this.precanvas.style.transform="translate("+i+"px, "+o+"px) scale("+this.zoom+")"),this.drag){var i=(this.pos_x-e)*this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom),o=(this.pos_y-n)*this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom);this.pos_x=e,this.pos_y=n,this.ele_selected.style.top=this.ele_selected.offsetTop-o+"px",this.ele_selected.style.left=this.ele_selected.offsetLeft-i+"px",this.drawflow.drawflow[this.module].data[this.ele_selected.id.slice(5)].pos_x=this.ele_selected.offsetLeft-i,this.drawflow.drawflow[this.module].data[this.ele_selected.id.slice(5)].pos_y=this.ele_selected.offsetTop-o,this.updateConnectionNodes(this.ele_selected.id,e,n)}if(this.drag_point){i=(this.pos_x-e)*this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom),o=(this.pos_y-n)*this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom);this.pos_x=e,this.pos_y=n;var s=this.pos_x*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom))-this.precanvas.getBoundingClientRect().x*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom)),a=this.pos_y*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom))-this.precanvas.getBoundingClientRect().y*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom));this.ele_selected.setAttributeNS(null,"cx",s),this.ele_selected.setAttributeNS(null,"cy",a);var l=this.ele_selected.parentElement.classList[2].slice(9),r=this.ele_selected.parentElement.classList[1].slice(13),c=this.ele_selected.parentElement.classList[3],d=this.ele_selected.parentElement.classList[4],u=Array.from(this.ele_selected.parentElement.children).indexOf(this.ele_selected)-1;if(this.reroute_fix_curvature){var h=this.ele_selected.parentElement.querySelectorAll(".main-path").length-1;u-=h,u<0&&(u=0)}var p=l.slice(5),f=this.drawflow.drawflow[this.module].data[p].outputs[c].connections.findIndex((function(t,e){return t.node===r&&t.output===d}));this.drawflow.drawflow[this.module].data[p].outputs[c].connections[f].points[u]={pos_x:s,pos_y:a};var m=this.ele_selected.parentElement.classList[2].slice(9);this.updateConnectionNodes(m,e,n)}"touchmove"===t.type&&(this.mouse_x=e,this.mouse_y=n),this.dispatch("mouseMove",{x:e,y:n})}},{key:"dragEnd",value:function(t){if(null!=this.select_elements&&(this.select_elements.remove(),this.select_elements=null),"touchend"===t.type)var e=this.mouse_x,n=this.mouse_y,i=document.elementFromPoint(e,n);else e=t.clientX,n=t.clientY,i=t.target;if(this.drag&&this.dispatch("nodeMoved",this.ele_selected.id.slice(5)),this.drag_point&&this.ele_selected.classList.remove("selected"),this.editor_selected&&(this.canvas_x=this.canvas_x+-(this.pos_x-e),this.canvas_y=this.canvas_y+-(this.pos_y-n),this.editor_selected=!1),!0===this.connection)if("input"===i.classList[0]||this.force_first_input&&(null!=i.closest(".drawflow_content_node")||"drawflow-node"===i.classList[0])){if(!this.force_first_input||null==i.closest(".drawflow_content_node")&&"drawflow-node"!==i.classList[0])o=i.parentElement.parentElement.id,s=i.classList[1];else{if(null!=i.closest(".drawflow_content_node"))var o=i.closest(".drawflow_content_node").parentElement.id;else var o=i.id;var s="input_1"}var a=this.ele_selected.parentElement.parentElement.id,l=this.ele_selected.classList[1];if(a!==o){if(0===this.container.querySelectorAll(".connection.node_in_"+o+".node_out_"+a+"."+l+"."+s).length){this.connection_ele.classList.add("node_in_"+o),this.connection_ele.classList.add("node_out_"+a),this.connection_ele.classList.add(l),this.connection_ele.classList.add(s);var r=o.slice(5),c=a.slice(5);this.drawflow.drawflow[this.module].data[c].outputs[l].connections.push({node:r,output:s}),this.drawflow.drawflow[this.module].data[r].inputs[s].connections.push({node:c,input:l}),this.updateConnectionNodes("node-"+c),this.updateConnectionNodes("node-"+r),this.dispatch("connectionCreated",{output_id:c,input_id:r,output_class:l,input_class:s})}else this.connection_ele.remove();this.connection_ele=null}else this.connection_ele.remove(),this.connection_ele=null}else this.connection_ele.remove(),this.connection_ele=null;this.drag=!1,this.drag_point=!1,this.connection=!1,this.ele_selected=null,this.editor_selected=!1}},{key:"contextmenu",value:function(t){if(t.preventDefault(),"fixed"===this.editor_mode)return!1;if(this.precanvas.getElementsByClassName("drawflow-delete").length&&this.precanvas.getElementsByClassName("drawflow-delete")[0].remove(),this.node_selected||this.connection_selected){var e=document.createElement("div");e.classList.add("drawflow-delete"),e.innerHTML="x",this.node_selected&&this.node_selected.appendChild(e),this.connection_selected&&(e.style.top=t.clientY*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom))-this.precanvas.getBoundingClientRect().y*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom))+"px",e.style.left=t.clientX*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom))-this.precanvas.getBoundingClientRect().x*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom))+"px",this.precanvas.appendChild(e))}}},{key:"contextmenuDel",value:function(){this.precanvas.getElementsByClassName("drawflow-delete").length&&this.precanvas.getElementsByClassName("drawflow-delete")[0].remove()}},{key:"key",value:function(t){if("fixed"===this.editor_mode)return!1;("Delete"===t.key||"Backspace"===t.key&&t.metaKey)&&(null!=this.node_selected&&"INPUT"!==this.first_click.tagName&&"TEXTAREA"!==this.first_click.tagName&&!0!==this.first_click.hasAttribute("contenteditable")&&this.removeNodeId(this.node_selected.id),null!=this.connection_selected&&this.removeConnection())}},{key:"zoom_enter",value:function(t,e){t.ctrlKey&&(t.preventDefault(),t.deltaY>0?this.zoom_out():this.zoom_in())}},{key:"zoom_refresh",value:function(){this.dispatch("zoom",this.zoom),this.precanvas.style.transform="translate("+this.canvas_x+"px, "+this.canvas_y+"px) scale("+this.zoom+")"}},{key:"zoom_in",value:function(){this.zoomthis.zoom_min&&(this.zoom-=.1,this.zoom_refresh())}},{key:"zoom_reset",value:function(){1!=this.zoom&&(this.zoom=1,this.zoom_refresh())}},{key:"createCurvature",value:function(t,e,n,i,o,s){var a=t,l=e,r=n,c=i,d=o;switch(s){case"open":if(t>=n)var u=a+Math.abs(r-a)*d,h=r-Math.abs(r-a)*(-1*d);else u=a+Math.abs(r-a)*d,h=r-Math.abs(r-a)*d;return" M "+a+" "+l+" C "+u+" "+l+" "+h+" "+c+" "+r+" "+c;case"close":if(t>=n)u=a+Math.abs(r-a)*(-1*d),h=r-Math.abs(r-a)*d;else u=a+Math.abs(r-a)*d,h=r-Math.abs(r-a)*d;return" M "+a+" "+l+" C "+u+" "+l+" "+h+" "+c+" "+r+" "+c;case"other":if(t>=n)u=a+Math.abs(r-a)*(-1*d),h=r-Math.abs(r-a)*(-1*d);else u=a+Math.abs(r-a)*d,h=r-Math.abs(r-a)*d;return" M "+a+" "+l+" C "+u+" "+l+" "+h+" "+c+" "+r+" "+c;default:u=a+Math.abs(r-a)*d,h=r-Math.abs(r-a)*d;return" M "+a+" "+l+" C "+u+" "+l+" "+h+" "+c+" "+r+" "+c}}},{key:"drawConnection",value:function(t){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");this.connection_ele=e;var n=document.createElementNS("http://www.w3.org/2000/svg","path");n.classList.add("main-path"),n.setAttributeNS(null,"d",""),e.classList.add("connection"),e.appendChild(n),this.precanvas.appendChild(e)}},{key:"updateConnection",value:function(t,e){var n=this.connection_ele.children[0],i=this.ele_selected.offsetWidth/2+this.line_path/2+this.ele_selected.parentElement.parentElement.offsetLeft+this.ele_selected.offsetLeft,o=this.ele_selected.offsetHeight/2+this.line_path/2+this.ele_selected.parentElement.parentElement.offsetTop+this.ele_selected.offsetTop,s=t*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom))-this.precanvas.getBoundingClientRect().x*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom)),a=e*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom))-this.precanvas.getBoundingClientRect().y*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom)),l=this.curvature,r=this.createCurvature(i,o,s,a,l,"openclose");n.setAttributeNS(null,"d",r)}},{key:"addConnection",value:function(t,e,n,i){var o=this.getModuleFromNodeId(t),s=this.getModuleFromNodeId(e);if(o===s){var a=this.getNodeFromId(t),l=!1;for(var r in a.outputs[n].connections){var c=a.outputs[n].connections[r];c.node==e&&c.output==i&&(l=!0)}if(!1===l){if(this.drawflow.drawflow[o].data[t].outputs[n].connections.push({node:e,output:i}),this.drawflow.drawflow[o].data[e].inputs[i].connections.push({node:t,input:n}),this.module===o){var d=document.createElementNS("http://www.w3.org/2000/svg","svg"),u=document.createElementNS("http://www.w3.org/2000/svg","path");u.classList.add("main-path"),u.setAttributeNS(null,"d",""),d.classList.add("connection"),d.classList.add("node_in_node-"+e),d.classList.add("node_out_node-"+t),d.classList.add(n),d.classList.add(i),d.appendChild(u),this.precanvas.appendChild(d),this.updateConnectionNodes("node-"+t),this.updateConnectionNodes("node-"+e)}this.dispatch("connectionCreated",{output_id:t,input_id:e,output_class:n,input_class:i})}}}},{key:"updateConnectionNodes",value:function(t){var e="node_in_"+t,n="node_out_"+t,i=this.line_path/2,o=this.precanvas,s=this.curvature,a=this.createCurvature,l=this.reroute_curvature,r=this.reroute_curvature_start_end,c=this.reroute_fix_curvature,d=this.reroute_width,u=this.zoom,h=document.getElementsByClassName(n);Object.keys(h).map((function(e,n){if(null===h[e].querySelector(".point")){var p=document.getElementById(t),f=h[e].classList[1].replace("node_in_",""),m=document.getElementById(f),v=m.querySelectorAll("."+h[e].classList[4])[0],_=v.offsetWidth/2+i+v.parentElement.parentElement.offsetLeft+v.offsetLeft,g=v.offsetHeight/2+i+v.parentElement.parentElement.offsetTop+v.offsetTop,w=p.offsetLeft+p.querySelectorAll("."+h[e].classList[3])[0].offsetLeft+p.querySelectorAll("."+h[e].classList[3])[0].offsetWidth/2+i,y=p.offsetTop+p.querySelectorAll("."+h[e].classList[3])[0].offsetTop+p.querySelectorAll("."+h[e].classList[3])[0].offsetHeight/2+i,C=_,b=g,E=a(w,y,C,b,s,"openclose");h[e].children[0].setAttributeNS(null,"d",E)}else{var x=h[e].querySelectorAll(".point"),L="",S=[];x.forEach((function(e,n){if(0===n&&x.length-1===0){var s=document.getElementById(t),c=e,h=(c.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(c.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,f=s.offsetLeft+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetLeft+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetWidth/2+i,m=s.offsetTop+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetTop+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetHeight/2+i,v=h,_=p,g=a(f,m,v,_,r,"open");L+=g,S.push(g);s=e;var w=e.parentElement.classList[1].replace("node_in_",""),y=document.getElementById(w);c=y.querySelectorAll("."+e.parentElement.classList[4])[0],h=c.offsetWidth/2+i+c.parentElement.parentElement.offsetLeft+c.offsetLeft,p=c.offsetHeight/2+i+c.parentElement.parentElement.offsetTop+c.offsetTop,f=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=h,_=p,g=a(f,m,v,_,r,"close");L+=g,S.push(g)}else if(0===n){s=document.getElementById(t),c=e,h=(c.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(c.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,f=s.offsetLeft+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetLeft+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetWidth/2+i,m=s.offsetTop+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetTop+s.querySelectorAll("."+e.parentElement.classList[3])[0].offsetHeight/2+i,v=h,_=p,g=a(f,m,v,_,r,"open");L+=g,S.push(g);s=e,c=x[n+1],h=(c.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(c.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,f=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=h,_=p,g=a(f,m,v,_,l,"other");L+=g,S.push(g)}else if(n===x.length-1){s=e,w=e.parentElement.classList[1].replace("node_in_",""),y=document.getElementById(w),c=y.querySelectorAll("."+e.parentElement.classList[4])[0],h=c.offsetWidth/2+i+c.parentElement.parentElement.offsetLeft+c.offsetLeft,p=c.offsetHeight/2+i+c.parentElement.parentElement.offsetTop+c.offsetTop,f=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=h,_=p,g=a(f,m,v,_,r,"close");L+=g,S.push(g)}else{s=e,c=x[n+1],h=(c.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(c.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,f=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=h,_=p,g=a(f,m,v,_,l,"other");L+=g,S.push(g)}})),c?S.forEach((function(t,n){h[e].children[n].setAttributeNS(null,"d",t)})):h[e].children[0].setAttributeNS(null,"d",L)}}));var p=document.getElementsByClassName(e);Object.keys(p).map((function(e,n){if(null===p[e].querySelector(".point")){var h=document.getElementById(t),f=p[e].classList[2].replace("node_out_",""),m=document.getElementById(f),v=m.querySelectorAll("."+p[e].classList[3])[0],_=v.offsetWidth/2+i+v.parentElement.parentElement.offsetLeft+v.offsetLeft,g=v.offsetHeight/2+i+v.parentElement.parentElement.offsetTop+v.offsetTop,w=h.offsetLeft+h.querySelectorAll("."+p[e].classList[4])[0].offsetLeft+h.querySelectorAll("."+p[e].classList[4])[0].offsetWidth/2+i,y=h.offsetTop+h.querySelectorAll("."+p[e].classList[4])[0].offsetTop+h.querySelectorAll("."+p[e].classList[4])[0].offsetHeight/2+i,C=a(_,g,w,y,s,"openclose");p[e].children[0].setAttributeNS(null,"d",C)}else{var b=p[e].querySelectorAll(".point"),E="",x=[];b.forEach((function(e,n){if(0===n&&b.length-1===0){var s=document.getElementById(t),c=e,h=(c.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(c.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,f=s.offsetLeft+s.querySelectorAll("."+e.parentElement.classList[4])[0].offsetLeft+s.querySelectorAll("."+e.parentElement.classList[4])[0].offsetWidth/2+i,m=s.offsetTop+s.querySelectorAll("."+e.parentElement.classList[4])[0].offsetTop+s.querySelectorAll("."+e.parentElement.classList[4])[0].offsetHeight/2+i,v=f,_=m,g=a(h,p,v,_,r,"close");E+=g,x.push(g);s=e;var w=e.parentElement.classList[2].replace("node_out_",""),y=document.getElementById(w);c=y.querySelectorAll("."+e.parentElement.classList[3])[0],h=c.offsetWidth/2+i+c.parentElement.parentElement.offsetLeft+c.offsetLeft,p=c.offsetHeight/2+i+c.parentElement.parentElement.offsetTop+c.offsetTop,f=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=f,_=m,g=a(h,p,v,_,r,"open");E+=g,x.push(g)}else if(0===n){s=e,w=e.parentElement.classList[2].replace("node_out_",""),y=document.getElementById(w),c=y.querySelectorAll("."+e.parentElement.classList[3])[0],h=c.offsetWidth/2+i+c.parentElement.parentElement.offsetLeft+c.offsetLeft,p=c.offsetHeight/2+i+c.parentElement.parentElement.offsetTop+c.offsetTop,f=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=f,_=m,g=a(h,p,v,_,r,"open");E+=g,x.push(g);s=e,c=b[n+1],f=(c.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(c.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,h=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=f,_=m,g=a(h,p,v,_,l,"other");E+=g,x.push(g)}else if(n===b.length-1){s=e,w=e.parentElement.classList[1].replace("node_in_",""),y=document.getElementById(w),c=y.querySelectorAll("."+e.parentElement.classList[4])[0],f=c.offsetWidth/2+i+c.parentElement.parentElement.offsetLeft+c.offsetLeft,m=c.offsetHeight/2+i+c.parentElement.parentElement.offsetTop+c.offsetTop,h=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=f,_=m,g=a(h,p,v,_,r,"close");E+=g,x.push(g)}else{s=e,c=b[n+1],f=(c.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,m=(c.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,h=(s.getBoundingClientRect().x-o.getBoundingClientRect().x)*(o.clientWidth/(o.clientWidth*u))+d,p=(s.getBoundingClientRect().y-o.getBoundingClientRect().y)*(o.clientHeight/(o.clientHeight*u))+d,v=f,_=m,g=a(h,p,v,_,l,"other");E+=g,x.push(g)}})),c?x.forEach((function(t,n){p[e].children[n].setAttributeNS(null,"d",t)})):p[e].children[0].setAttributeNS(null,"d",E)}}))}},{key:"dblclick",value:function(t){null!=this.connection_selected&&this.reroute&&this.createReroutePoint(this.connection_selected),"point"===t.target.classList[0]&&this.removeReroutePoint(t.target)}},{key:"createReroutePoint",value:function(t){this.connection_selected.classList.remove("selected");var e=this.connection_selected.parentElement.classList[2].slice(9),n=this.connection_selected.parentElement.classList[1].slice(13),i=this.connection_selected.parentElement.classList[3],o=this.connection_selected.parentElement.classList[4];this.connection_selected=null;var s=document.createElementNS("http://www.w3.org/2000/svg","circle");s.classList.add("point");var a=this.pos_x*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom))-this.precanvas.getBoundingClientRect().x*(this.precanvas.clientWidth/(this.precanvas.clientWidth*this.zoom)),l=this.pos_y*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom))-this.precanvas.getBoundingClientRect().y*(this.precanvas.clientHeight/(this.precanvas.clientHeight*this.zoom));s.setAttributeNS(null,"cx",a),s.setAttributeNS(null,"cy",l),s.setAttributeNS(null,"r",this.reroute_width);var r=0;if(this.reroute_fix_curvature){var c=t.parentElement.querySelectorAll(".main-path").length,d=document.createElementNS("http://www.w3.org/2000/svg","path");if(d.classList.add("main-path"),d.setAttributeNS(null,"d",""),t.parentElement.insertBefore(d,t.parentElement.children[c]),1===c)t.parentElement.appendChild(s);else{var u=Array.from(t.parentElement.children).indexOf(t);r=u,t.parentElement.insertBefore(s,t.parentElement.children[u+c+1])}}else t.parentElement.appendChild(s);var h=e.slice(5),p=this.drawflow.drawflow[this.module].data[h].outputs[i].connections.findIndex((function(t,e){return t.node===n&&t.output===o}));void 0===this.drawflow.drawflow[this.module].data[h].outputs[i].connections[p].points&&(this.drawflow.drawflow[this.module].data[h].outputs[i].connections[p].points=[]),this.reroute_fix_curvature?(r>0?this.drawflow.drawflow[this.module].data[h].outputs[i].connections[p].points.splice(r,0,{pos_x:a,pos_y:l}):this.drawflow.drawflow[this.module].data[h].outputs[i].connections[p].points.push({pos_x:a,pos_y:l}),t.parentElement.querySelectorAll(".main-path").forEach((function(t,e){t.classList.remove("selected")}))):this.drawflow.drawflow[this.module].data[h].outputs[i].connections[p].points.push({pos_x:a,pos_y:l}),this.dispatch("addReroute",h),this.updateConnectionNodes(e)}},{key:"removeReroutePoint",value:function(t){var e=t.parentElement.classList[2].slice(9),n=t.parentElement.classList[1].slice(13),i=t.parentElement.classList[3],o=t.parentElement.classList[4],s=Array.from(t.parentElement.children).indexOf(t)-1,a=e.slice(5),l=this.drawflow.drawflow[this.module].data[a].outputs[i].connections.findIndex((function(t,e){return t.node===n&&t.output===o}));if(this.reroute_fix_curvature){var r=t.parentElement.querySelectorAll(".main-path").length;t.parentElement.children[r-1].remove(),s-=r,s<0&&(s=0)}this.drawflow.drawflow[this.module].data[a].outputs[i].connections[l].points.splice(s,1),t.remove(),this.dispatch("removeReroute",a),this.updateConnectionNodes(e)}},{key:"registerNode",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this.noderegister[t]={html:e,props:n,options:i}}},{key:"getNodeFromId",value:function(t){var e=this.getModuleFromNodeId(t);return this.drawflow.drawflow[e].data[t]}},{key:"getNodesForModule",value:function(t){return this.drawflow.drawflow[t].data}},{key:"getNodesFromName",value:function(t){var e=[],n=this.drawflow.drawflow;return Object.keys(n).map((function(i,o){for(var s in n[i].data)n[i].data[s].name==t&&e.push(n[i].data[s].id)})),e}},{key:"addNode",value:function(t,e,n,i,o,s,l,r){var c=arguments.length>8&&void 0!==arguments[8]&&arguments[8],d=document.createElement("div");d.classList.add("parent-node");var u=document.createElement("div");u.innerHTML="",u.setAttribute("id","node-"+this.nodeId),u.classList.add("drawflow-node"),""!=s&&u.classList.add(s);var h=document.createElement("div");h.classList.add("inputs");var f=document.createElement("div");f.classList.add("outputs");for(var m={},v=0;v-1){this.module===o&&document.querySelector(".connection.node_in_node-"+e+".node_out_node-"+t+"."+n+"."+i).remove();var l=this.drawflow.drawflow[o].data[t].outputs[n].connections.findIndex((function(t,n){return t.node==e&&t.output===i}));this.drawflow.drawflow[o].data[t].outputs[n].connections.splice(l,1);var r=this.drawflow.drawflow[o].data[e].inputs[i].connections.findIndex((function(e,i){return e.node==t&&e.input===n}));return this.drawflow.drawflow[o].data[e].inputs[i].connections.splice(r,1),this.dispatch("connectionRemoved",{output_id:t,input_id:e,output_class:n,input_class:i}),!0}return!1}return!1}},{key:"removeConnectionNodeId",value:function(t){for(var e="node_in_"+t,n="node_out_"+t,i=document.getElementsByClassName(n),o=i.length-1;o>=0;o--){var s=i[o].classList,a=this.drawflow.drawflow[this.module].data[s[1].slice(13)].inputs[s[4]].connections.findIndex((function(t,e){return t.node===s[2].slice(14)&&t.input===s[3]}));this.drawflow.drawflow[this.module].data[s[1].slice(13)].inputs[s[4]].connections.splice(a,1);var l=this.drawflow.drawflow[this.module].data[s[2].slice(14)].outputs[s[3]].connections.findIndex((function(t,e){return t.node===s[1].slice(13)&&t.output===s[4]}));this.drawflow.drawflow[this.module].data[s[2].slice(14)].outputs[s[3]].connections.splice(l,1),i[o].remove(),this.dispatch("connectionRemoved",{output_id:s[2].slice(14),input_id:s[1].slice(13),output_class:s[3],input_class:s[4]})}var r=document.getElementsByClassName(e);for(o=r.length-1;o>=0;o--){s=r[o].classList,l=this.drawflow.drawflow[this.module].data[s[2].slice(14)].outputs[s[3]].connections.findIndex((function(t,e){return t.node===s[1].slice(13)&&t.output===s[4]}));this.drawflow.drawflow[this.module].data[s[2].slice(14)].outputs[s[3]].connections.splice(l,1);a=this.drawflow.drawflow[this.module].data[s[1].slice(13)].inputs[s[4]].connections.findIndex((function(t,e){return t.node===s[2].slice(14)&&t.input===s[3]}));this.drawflow.drawflow[this.module].data[s[1].slice(13)].inputs[s[4]].connections.splice(a,1),r[o].remove(),this.dispatch("connectionRemoved",{output_id:s[2].slice(14),input_id:s[1].slice(13),output_class:s[3],input_class:s[4]})}}},{key:"getModuleFromNodeId",value:function(t){var e,n=this.drawflow.drawflow;return Object.keys(n).map((function(i,o){Object.keys(n[i].data).map((function(n,o){n==t&&(e=i)}))})),e}},{key:"addModule",value:function(t){this.drawflow.drawflow[t]={data:{}},this.dispatch("moduleCreated",t)}},{key:"changeModule",value:function(t){this.dispatch("moduleChanged",t),this.module=t,this.precanvas.innerHTML="",this.canvas_x=0,this.canvas_y=0,this.pos_x=0,this.pos_y=0,this.mouse_x=0,this.mouse_y=0,this.zoom=1,this.precanvas.style.transform="",this.import(this.drawflow)}},{key:"removeModule",value:function(t){this.module===t&&this.changeModule("Home"),delete this.drawflow.drawflow[t],this.dispatch("moduleRemoved",t)}},{key:"clearModuleSelected",value:function(){this.precanvas.innerHTML="",this.drawflow.drawflow[this.module]={data:{}}}},{key:"clear",value:function(){this.precanvas.innerHTML="",this.drawflow={drawflow:{Home:{data:{}}}}}},{key:"export",value:function(){return JSON.parse(JSON.stringify(this.drawflow))}},{key:"import",value:function(t){this.clear(),this.drawflow=JSON.parse(JSON.stringify(t)),this.load(),this.dispatch("import","import")}},{key:"on",value:function(t,e){return"function"!==typeof e?(console.error("The listener callback must be a function, the given type is ".concat(Object(a["a"])(e))),!1):"string"!==typeof t?(console.error("The event name must be a string, the given type is ".concat(Object(a["a"])(t))),!1):(void 0===this.events[t]&&(this.events[t]={listeners:[]}),void this.events[t].listeners.push(e))}},{key:"removeListener",value:function(t,e){if(void 0===this.events[t])return!1;this.events[t].listeners=this.events[t].listeners.filter((function(t){return t.toString()!==e.toString()}))}},{key:"dispatch",value:function(t,e){if(void 0===this.events[t])return!1;this.events[t].listeners.forEach((function(t){t(e)}))}}]),t}(),_=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"state"},[n("v-dialog",{attrs:{persistent:"",scrollable:"","max-width":"600px",fullscreen:"","hide-overlay":"",transition:"dialog-bottom-transition"},scopedSlots:t._u([{key:"activator",fn:function(e){var i=e.on,o=e.attrs;return[n("v-btn",t._g(t._b({attrs:{icon:"",color:"white"}},"v-btn",o,!1),i),[n("v-icon",[t._v("mdi-pencil")])],1)]}}]),model:{value:t.dialog,callback:function(e){t.dialog=e},expression:"dialog"}},[n("v-card",[n("v-card-title",[n("span",{staticClass:"headline"},[t._v("State")]),n("v-spacer"),n("v-btn",{attrs:{icon:""},on:{click:function(e){t.dialog=!1}}},[n("v-icon",[t._v("mdi-close")])],1)],1),n("v-card-text",[n("v-text-field",{attrs:{label:"Name"},model:{value:t.name,callback:function(e){t.name=e},expression:"name"}}),n("ArrayControl",{attrs:{label:"Animations",description:"Animations or animation controllers to trigger enter, when in this state. Use names used in entity description.",data:t.animations},on:{change:function(e){t.animations=e}}}),n("ArrayControl",{attrs:{label:"Particle effects",description:"Particle effects to activate, when in this state. Use names used in entity description.",data:t.particle_effects},on:{change:function(e){t.particle_effects=t.arrayToEffectObjects(e)}}}),n("ArrayControl",{attrs:{label:"On entry",description:"Molang expressions, entity events and commands to execute, when entering the state",data:t.on_entry},on:{change:function(e){t.on_entry=e}}}),n("ArrayControl",{attrs:{label:"On exit",description:"Molang expressions, entity events and commands to execute, when exiting the state",data:t.on_exit},on:{change:function(e){t.on_exit=e}}})],1)],1)],1),t._v(" "+t._s(t.name)+" ")],1)},g=[],w=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-card",{staticClass:"array-control"},[n("v-card-title",[n("span",{staticClass:"headline"},[t._v(t._s(t.label))]),n("v-spacer"),n("v-btn",{attrs:{icon:""},on:{click:function(e){return t.add()}}},[n("v-icon",[t._v("mdi-plus")])],1)],1),t.description?n("v-card-subtitle",[t._v(" "+t._s(t.description)+" ")]):t._e(),n("v-card-text",t._l(t.arr,(function(e,i){return n("div",{key:i,staticStyle:{display:"flex"}},[n("v-btn",{attrs:{icon:""},on:{click:function(e){return t.remove(i)}}},[n("v-icon",[t._v("mdi-close")])],1),n("v-text-field",{attrs:{value:e,dense:""},on:{change:function(e){t.arr[i]=e,t.$emit("change",t.arr)}}})],1)})),0)],1)},y=[],C={name:"ArrayControl",mounted:function(){this.data&&(this.arr=this.data)},methods:{remove:function(t){this.arr.splice(t,1),this.$emit("change",this.arr)},add:function(){this.arr.push(""),this.$emit("change",this.arr)},getData:function(){return this.arr}},data:function(){return{arr:[]}},computed:{},props:{data:Array,label:String,description:String}},b=C,E=(n("45b5"),n("2877")),x=n("6544"),L=n.n(x),S=n("8336"),k=n("b0af"),N=n("99d9"),B=n("132d"),A=n("2fa4"),R=n("8654"),O=Object(E["a"])(b,w,y,!1,null,null,null),I=O.exports;L()(O,{VBtn:S["a"],VCard:k["a"],VCardSubtitle:N["b"],VCardText:N["c"],VCardTitle:N["d"],VIcon:B["a"],VSpacer:A["a"],VTextField:R["a"]});var H={name:"State",components:{ArrayControl:I},mounted:function(){this.inputName&&(this.name=this.inputName),this.inputAnimations&&(this.animations=this.inputAnimations),this.inputEffects&&(this.particle_effects=this.effectObjectsToArray(this.inputEffects)),this.inputEntry&&(this.on_entry=this.inputEntry),this.inputExit&&(this.on_exit=this.inputExit)},methods:{arrayToEffectObjects:function(t){for(var e=[],n=0;n