index.d0ce99f2.js 225 KB

123
  1. import{g as jt,b as Le,u as Ie,E as ae,f as Fe,c as me,_ as Re}from"./index.72328493.js";import{M as Oe,j as ne,s as Ne,a3 as Ge,m as Ue,a2 as He,am as je,o as Zt,a as Jt,X as Be,b as Rt,_ as zt,u as le,U as Ye,F as _e,ad as Pe,n as be,Q as ke,Z as Ce,P as Te,a8 as Xe,f as ye}from"./vue.aade88c7.js";import{S as Ve}from"./sortable.esm.9c3c89c5.js";import{c as We}from"./commonFunction.203a0abd.js";import"./formatTime.29ac8c52.js";var De={};(function(Qt){(function(){typeof Math.sgn>"u"&&(Math.sgn=function(g){return g==0?0:g>0?1:-1});var Z={subtract:function(g,E){return{x:g.x-E.x,y:g.y-E.y}},dotProduct:function(g,E){return g.x*E.x+g.y*E.y},square:function(g){return Math.sqrt(g.x*g.x+g.y*g.y)},scale:function(g,E){return{x:g.x*E,y:g.y*E}}},f=64,V=Math.pow(2,-f-1),it=function(g,E){for(var U=[],R=nt(g,E),B=E.length-1,n=2*B-1,o=c(R,n,U,0),t=Z.subtract(g,E[0]),d=Z.square(t),v=0,F=0;F<o;F++){t=Z.subtract(g,b(E,B,U[F],null,null));var I=Z.square(t);I<d&&(d=I,v=U[F])}return t=Z.subtract(g,E[B]),I=Z.square(t),I<d&&(d=I,v=1),{location:v,distance:d}},K=function(g,E){var U=it(g,E);return{point:b(E,E.length-1,U.location,null,null),location:U.location}},nt=function(g,E){for(var U=E.length-1,R=2*U-1,B=[],n=[],o=[],t=[],d=[[1,.6,.3,.1],[.4,.6,.6,.4],[.1,.3,.6,1]],v=0;v<=U;v++)B[v]=Z.subtract(E[v],g);for(var v=0;v<=U-1;v++)n[v]=Z.subtract(E[v+1],E[v]),n[v]=Z.scale(n[v],3);for(var F=0;F<=U-1;F++)for(var I=0;I<=U;I++)o[F]||(o[F]=[]),o[F][I]=Z.dotProduct(n[F],B[I]);for(v=0;v<=R;v++)t[v]||(t[v]=[]),t[v].y=0,t[v].x=parseFloat(v)/R;for(var X=U,N=U-1,W=0;W<=X+N;W++){var ot=Math.max(0,W-N),st=Math.min(W,X);for(v=ot;v<=st;v++){var Q=W-v;t[v+Q].y+=o[Q][v]*d[Q][v]}}return t},c=function(g,E,U,R){var B=[],n=[],o,t,d=[],v=[];switch(O(g,E)){case 0:return 0;case 1:{if(R>=f)return U[0]=(g[0].x+g[E].x)/2,1;if(l(g,E))return U[0]=i(g,E),1;break}}b(g,E,.5,B,n),o=c(B,E,d,R+1),t=c(n,E,v,R+1);for(var F=0;F<o;F++)U[F]=d[F];for(var F=0;F<t;F++)U[F+o]=v[F];return o+t},O=function(g,E){var U=0,R,B;R=B=Math.sgn(g[0].y);for(var n=1;n<=E;n++)R=Math.sgn(g[n].y),R!=B&&U++,B=R;return U},l=function(g,E){var U,R,B,n,o,t,d,v,F,I,X,N,W,ot,st,Q;t=g[0].y-g[E].y,d=g[E].x-g[0].x,v=g[0].x*g[E].y-g[E].x*g[0].y;var rt,pt;rt=pt=0;for(var ft=1;ft<E;ft++){var lt=t*g[ft].x+d*g[ft].y+v;lt>rt?rt=lt:lt<pt&&(pt=lt)}return X=0,N=1,W=0,ot=t,st=d,Q=v-rt,F=X*st-ot*N,I=1/F,R=(N*Q-st*W)*I,ot=t,st=d,Q=v-pt,F=X*st-ot*N,I=1/F,B=(N*Q-st*W)*I,n=Math.min(R,B),o=Math.max(R,B),U=o-n,U<V?1:0},i=function(g,E){var U=1,R=0,B=g[E].x-g[0].x,n=g[E].y-g[0].y,o=g[0].x-0,t=g[0].y-0,d=B*R-n*U,v=1/d,F=(B*t-n*o)*v;return 0+U*F},b=function(g,E,U,R,B){for(var n=[[]],o=0;o<=E;o++)n[0][o]=g[o];for(var t=1;t<=E;t++)for(var o=0;o<=E-t;o++)n[t]||(n[t]=[]),n[t][o]||(n[t][o]={}),n[t][o].x=(1-U)*n[t-1][o].x+U*n[t-1][o+1].x,n[t][o].y=(1-U)*n[t-1][o].y+U*n[t-1][o+1].y;if(R!=null)for(o=0;o<=E;o++)R[o]=n[o][0];if(B!=null)for(o=0;o<=E;o++)B[o]=n[E-o][o];return n[E][0]},D={},M=function(g){var E=D[g];if(!E){E=[];var U=function(){return function(I){return Math.pow(I,g)}},R=function(){return function(I){return Math.pow(1-I,g)}},B=function(I){return function(X){return I}},n=function(){return function(I){return I}},o=function(){return function(I){return 1-I}},t=function(I){return function(X){for(var N=1,W=0;W<I.length;W++)N=N*I[W](X);return N}};E.push(new U);for(var d=1;d<g;d++){for(var v=[new B(g)],F=0;F<g-d;F++)v.push(new n);for(var F=0;F<d;F++)v.push(new o);E.push(new t(v))}E.push(new R),D[g]=E}return E},C=function(g,E){for(var U=M(g.length-1),R=0,B=0,n=0;n<g.length;n++)R=R+g[n].x*U[n](E),B=B+g[n].y*U[n](E);return{x:R,y:B}},a=function(g,E){return Math.sqrt(Math.pow(g.x-E.x,2)+Math.pow(g.y-E.y,2))},e=function(g){return g[0].x===g[1].x&&g[0].y===g[1].y},T=function(g,E,U){if(e(g))return{point:g[0],location:E};for(var R=C(g,E),B=0,n=E,o=U>0?1:-1,t=null;B<Math.abs(U);)n+=.005*o,t=C(g,n),B+=a(t,R),R=t;return{point:t,location:n}},L=function(g){var E=new Date().getTime();if(e(g))return 0;for(var U=C(g,0),R=0,B=0,n=1,o=null;B<1;)B+=.005*n,o=C(g,B),R+=a(o,U),U=o;return console.log("length",new Date().getTime()-E),R},H=function(g,E,U){return T(g,E,U).point},G=function(g,E,U){return T(g,E,U).location},P=function(g,E){var U=C(g,E),R=C(g.slice(0,g.length-1),E),B=R.y-U.y,n=R.x-U.x;return B===0?1/0:Math.atan(B/n)},A=function(g,E,U){var R=T(g,E,U);return R.location>1&&(R.location=1),R.location<0&&(R.location=0),P(g,R.location)},r=function(g,E,U,R){R=R??0;var B=T(g,E,R),n=P(g,B.location),o=Math.atan(-1/n),t=U/2*Math.sin(o),d=U/2*Math.cos(o);return[{x:B.point.x+d,y:B.point.y+t},{x:B.point.x-d,y:B.point.y-t}]},p=function(g,E,U,R,B){var n=R-E,o=g-U,t=g*(E-R)+E*(U-g),d=h(B),v=[n*d[0][0]+o*d[1][0],n*d[0][1]+o*d[1][1],n*d[0][2]+o*d[1][2],n*d[0][3]+o*d[1][3]+t],F=y.apply(null,v),I=[];if(F!=null)for(var X=0;X<3;X++){var N=F[X],W=Math.pow(N,2),ot=Math.pow(N,3),st=[d[0][0]*ot+d[0][1]*W+d[0][2]*N+d[0][3],d[1][0]*ot+d[1][1]*W+d[1][2]*N+d[1][3]],Q;U-g!==0?Q=(st[0]-g)/(U-g):Q=(st[1]-E)/(R-E),N>=0&&N<=1&&Q>=0&&Q<=1&&I.push(st)}return I},u=function(g,E,U,R,B){var n=[];return n.push.apply(n,p(g,E,g+U,E,B)),n.push.apply(n,p(g+U,E,g+U,E+R,B)),n.push.apply(n,p(g+U,E+R,g,E+R,B)),n.push.apply(n,p(g,E+R,g,E,B)),n},_=function(g,E){var U=[];return U.push.apply(U,p(g.x,g.y,g.x+g.w,g.y,E)),U.push.apply(U,p(g.x+g.w,g.y,g.x+g.w,g.y+g.h,E)),U.push.apply(U,p(g.x+g.w,g.y+g.h,g.x,g.y+g.h,E)),U.push.apply(U,p(g.x,g.y+g.h,g.x,g.y,E)),U};function x(g,E){return[-g[0][E]+3*g[1][E]+-3*g[2][E]+g[3][E],3*g[0][E]-6*g[1][E]+3*g[2][E],-3*g[0][E]+3*g[1][E],g[0][E]]}function h(g){return[x(g,"x"),x(g,"y")]}function j(g){return g<0?-1:g>0?1:0}function y(g,E,U,R){var B=E/g,n=U/g,o=R/g,t=(3*n-Math.pow(B,2))/9,d=(9*B*n-27*o-2*Math.pow(B,3))/54,v=Math.pow(t,3)+Math.pow(d,2),F,I,X=[];if(v>=0)F=j(d+Math.sqrt(v))*Math.pow(Math.abs(d+Math.sqrt(v)),1/3),I=j(d-Math.sqrt(v))*Math.pow(Math.abs(d-Math.sqrt(v)),1/3),X[0]=-B/3+(F+I),X[1]=-B/3-(F+I)/2,X[2]=-B/3-(F+I)/2,Math.abs(Math.sqrt(3)*(F-I)/2)!==0&&(X[1]=-1,X[2]=-1);else{var N=Math.acos(d/Math.sqrt(-Math.pow(t,3)));X[0]=2*Math.sqrt(-t)*Math.cos(N/3)-B/3,X[1]=2*Math.sqrt(-t)*Math.cos((N+2*Math.PI)/3)-B/3,X[2]=2*Math.sqrt(-t)*Math.cos((N+4*Math.PI)/3)-B/3}for(var W=0;W<3;W++)(X[W]<0||X[W]>1)&&(X[W]=-1);return X}var w=this.jsBezier={distanceFromCurve:it,gradientAtPoint:P,gradientAtPointAlongCurveFrom:A,nearestPointOnCurve:K,pointOnCurve:C,pointAlongCurveFrom:H,perpendicularToCurveAt:r,locationAlongCurveFrom:G,getLength:L,lineIntersection:p,boxIntersection:u,boundingBoxIntersection:_,version:"0.9.0"};Qt.jsBezier=w}).call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.Biltong={version:"0.4.0"};Qt.Biltong=f;var V=function(l){return Object.prototype.toString.call(l)==="[object Array]"},it=function(l,i,b){return l=V(l)?l:[l.x,l.y],i=V(i)?i:[i.x,i.y],b(l,i)},K=f.gradient=function(l,i){return it(l,i,function(b,D){return D[0]==b[0]?D[1]>b[1]?1/0:-1/0:D[1]==b[1]?D[0]>b[0]?0:-0:(D[1]-b[1])/(D[0]-b[0])})};f.normal=function(l,i){return-1/K(l,i)},f.lineLength=function(l,i){return it(l,i,function(b,D){return Math.sqrt(Math.pow(D[1]-b[1],2)+Math.pow(D[0]-b[0],2))})};var nt=f.quadrant=function(l,i){return it(l,i,function(b,D){return D[0]>b[0]||D[0]==b[0]?D[1]>b[1]?2:1:D[1]>b[1]?3:4})};f.theta=function(l,i){return it(l,i,function(b,D){var M=K(b,D),C=Math.atan(M),a=nt(b,D);return(a==4||a==3)&&(C+=Math.PI),C<0&&(C+=2*Math.PI),C})},f.intersects=function(l,i){var b=l.x,D=l.x+l.w,M=l.y,C=l.y+l.h,a=i.x,e=i.x+i.w,T=i.y,L=i.y+i.h;return b<=a&&a<=D&&M<=T&&T<=C||b<=e&&e<=D&&M<=T&&T<=C||b<=a&&a<=D&&M<=L&&L<=C||b<=e&&a<=D&&M<=L&&L<=C||a<=b&&b<=e&&T<=M&&M<=L||a<=D&&D<=e&&T<=M&&M<=L||a<=b&&b<=e&&T<=C&&C<=L||a<=D&&b<=e&&T<=C&&C<=L},f.encloses=function(l,i,b){var D=l.x,M=l.x+l.w,C=l.y,a=l.y+l.h,e=i.x,T=i.x+i.w,L=i.y,H=i.y+i.h,G=function(P,A,r,p){return b?P<=A&&r>=p:P<A&&r>p};return G(D,e,M,T)&&G(C,L,a,H)};var c=[null,[1,-1],[1,1],[-1,1],[-1,-1]],O=[null,[-1,-1],[-1,1],[1,1],[1,-1]];f.pointOnLine=function(l,i,b){var D=K(l,i),M=nt(l,i),C=b>0?c[M]:O[M],a=Math.atan(D),e=Math.abs(b*Math.sin(a))*C[1],T=Math.abs(b*Math.cos(a))*C[0];return{x:l.x+T,y:l.y+e}},f.perpendicularLineTo=function(l,i,b){var D=K(l,i),M=Math.atan(-1/D),C=b/2*Math.sin(M),a=b/2*Math.cos(M);return[{x:i.x+a,y:i.y+C},{x:i.x-a,y:i.y-C}]}}.call(typeof window<"u"?window:jt),function(){function Z(n,o,t,d,v,F,I,X){return new Touch({target:o,identifier:B(),pageX:t,pageY:d,screenX:v,screenY:F,clientX:I||v,clientY:X||F})}function f(){var n=[];return Array.prototype.push.apply(n,arguments),n.item=function(o){return this[o]},n}function V(n,o,t,d,v,F,I,X){return f(Z.apply(null,arguments))}var it=this,K=function(n,o,t){t=t||n.parentNode;for(var d=t.querySelectorAll(o),v=0;v<d.length;v++)if(d[v]===n)return!0;return!1},nt=function(n){return typeof n=="string"||n.constructor===String?document.getElementById(n):n},c=function(n){return n.srcElement||n.target},O=function(n,o,t,d){if(d){if(typeof n.path<"u"&&n.path.indexOf)return{path:n.path,end:n.path.indexOf(t)};var v={path:[],end:-1},F=function(I){v.path.push(I),I===t?v.end=v.path.length-1:I.parentNode!=null&&F(I.parentNode)};return F(o),v}else return{path:[o],end:1}},l=function(n,o){for(var t=0,d=n.length;t<d&&n[t]!=o;t++);t<n.length&&n.splice(t,1)},i=1,b=function(n,o,t){var d=i++;return n.__ta=n.__ta||{},n.__ta[o]=n.__ta[o]||{},n.__ta[o][d]=t,t.__tauid=d,d},D=function(n,o,t){if(n.__ta&&n.__ta[o]&&delete n.__ta[o][t.__tauid],t.__taExtra){for(var d=0;d<t.__taExtra.length;d++)U(n,t.__taExtra[d][0],t.__taExtra[d][1]);t.__taExtra.length=0}t.__taUnstore&&t.__taUnstore()},M=function(n,o,t,d){if(n==null)return t;var v=n.split(","),F=function(I){F.__tauid=t.__tauid;var X=c(I),N=X,W=O(I,X,o,n!=null);if(W.end!=-1)for(var ot=0;ot<W.end;ot++){N=W.path[ot];for(var st=0;st<v.length;st++)K(N,v[st],o)&&t.apply(N,arguments)}};return C(t,d,F),F},C=function(n,o,t){n.__taExtra=n.__taExtra||[],n.__taExtra.push([o,t])},a=function(n,o,t,d){if(P&&r[o]){var v=M(d,n,t,r[o]);E(n,r[o],v,t)}o==="focus"&&n.getAttribute("tabindex")==null&&n.setAttribute("tabindex","1"),E(n,o,M(d,n,t,o),t)},e=function(n,o,t,d){if(n.__taSmartClicks==null){var v=function(X){n.__tad=x(X)},F=function(X){n.__tau=x(X)},I=function(X){if(n.__tad&&n.__tau&&n.__tad[0]===n.__tau[0]&&n.__tad[1]===n.__tau[1])for(var N=0;N<n.__taSmartClicks.length;N++)n.__taSmartClicks[N].apply(c(X),[X])};a(n,"mousedown",v,d),a(n,"mouseup",F,d),a(n,"click",I,d),n.__taSmartClicks=[]}n.__taSmartClicks.push(t),t.__taUnstore=function(){l(n.__taSmartClicks,t)}},T={tap:{touches:1,taps:1},dbltap:{touches:1,taps:2},contextmenu:{touches:2,taps:1}},L=function(n,o){return function(t,d,v,F){if(d=="contextmenu"&&A)a(t,d,v,F);else{if(t.__taTapHandler==null){var I=t.__taTapHandler={tap:[],dbltap:[],contextmenu:[],down:!1,taps:0,downSelectors:[]},X=function(st){for(var Q=c(st),rt=O(st,Q,t,F!=null),pt=!1,ft=0;ft<rt.end;ft++){if(pt)return;Q=rt.path[ft];for(var lt=0;lt<I.downSelectors.length;lt++)if(I.downSelectors[lt]==null||K(Q,I.downSelectors[lt],t)){I.down=!0,setTimeout(W,n),setTimeout(ot,o),pt=!0;break}}},N=function(st){if(I.down){var Q=c(st),rt,pt;I.taps++;var ft=g(st);for(var lt in T)if(T.hasOwnProperty(lt)){var bt=T[lt];if(bt.touches===ft&&(bt.taps===1||bt.taps===I.taps))for(var gt=0;gt<I[lt].length;gt++){pt=O(st,Q,t,I[lt][gt][1]!=null);for(var $=0;$<pt.end;$++)if(rt=pt.path[$],I[lt][gt][1]==null||K(rt,I[lt][gt][1],t)){I[lt][gt][0].apply(rt,[st]);break}}}}},W=function(){I.down=!1},ot=function(){I.taps=0};a(t,"mousedown",X),a(t,"mouseup",N)}t.__taTapHandler.downSelectors.push(F),t.__taTapHandler[d].push([v,F]),v.__taUnstore=function(){l(t.__taTapHandler[d],v)}}}},H=function(n,o,t,d){for(var v in t.__tamee[n])t.__tamee[n].hasOwnProperty(v)&&t.__tamee[n][v].apply(d,[o])},G=function(){var n=[];return function(o,t,d,v){if(!o.__tamee){o.__tamee={over:!1,mouseenter:[],mouseexit:[]};var F=function(X){var N=c(X);(v==null&&N==o&&!o.__tamee.over||K(N,v,o)&&(N.__tamee==null||!N.__tamee.over))&&(H("mouseenter",X,o,N),N.__tamee=N.__tamee||{},N.__tamee.over=!0,n.push(N))},I=function(X){for(var N=c(X),W=0;W<n.length;W++)N==n[W]&&!K(X.relatedTarget||X.toElement,"*",N)&&(N.__tamee.over=!1,n.splice(W,1),H("mouseexit",X,o,N))};E(o,"mouseover",M(v,o,F,"mouseover"),F),E(o,"mouseout",M(v,o,I,"mouseout"),I)}d.__taUnstore=function(){delete o.__tamee[t][d.__tauid]},b(o,t,d),o.__tamee[t][d.__tauid]=d}},P="ontouchstart"in document.documentElement||navigator.maxTouchPoints,A="onmousedown"in document.documentElement,r={mousedown:"touchstart",mouseup:"touchend",mousemove:"touchmove"},p=function(){var n=-1;if(navigator.appName=="Microsoft Internet Explorer"){var o=navigator.userAgent,t=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");t.exec(o)!=null&&(n=parseFloat(RegExp.$1))}return n}(),u=p>-1&&p<9,_=function(n,o){if(n==null)return[0,0];var t=w(n),d=y(t,0);return[d[o+"X"],d[o+"Y"]]},x=function(n){return n==null?[0,0]:u?[n.clientX+document.documentElement.scrollLeft,n.clientY+document.documentElement.scrollTop]:_(n,"page")},h=function(n){return _(n,"screen")},j=function(n){return _(n,"client")},y=function(n,o){return n.item?n.item(o):n[o]},w=function(n){return n.touches&&n.touches.length>0?n.touches:n.changedTouches&&n.changedTouches.length>0?n.changedTouches:n.targetTouches&&n.targetTouches.length>0?n.targetTouches:[n]},g=function(n){return w(n).length},E=function(n,o,t,d){if(b(n,o,t),d.__tauid=t.__tauid,n.addEventListener)n.addEventListener(o,t,!1);else if(n.attachEvent){var v=o+t.__tauid;n["e"+v]=t,n[v]=function(){n["e"+v]&&n["e"+v](window.event)},n.attachEvent("on"+o,n[v])}},U=function(n,o,t){t!=null&&R(n,function(){var d=nt(this);if(D(d,o,t),t.__tauid!=null){if(d.removeEventListener)d.removeEventListener(o,t,!1),P&&r[o]&&d.removeEventListener(r[o],t,!1);else if(this.detachEvent){var v=o+t.__tauid;d[v]&&d.detachEvent("on"+o,d[v]),d[v]=null,d["e"+v]=null}}t.__taTouchProxy&&U(n,t.__taTouchProxy[1],t.__taTouchProxy[0])})},R=function(n,o){if(n!=null){n=typeof Window<"u"&&typeof n.top!="unknown"&&n==n.top?[n]:typeof n!="string"&&n.tagName==null&&n.length!=null?n:typeof n=="string"?document.querySelectorAll(n):[n];for(var t=0;t<n.length;t++)o.apply(n[t])}},B=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var o=Math.random()*16|0,t=n=="x"?o:o&3|8;return t.toString(16)})};it.Mottle=function(n){n=n||{};var o=n.clickThreshold||250,t=n.dblClickThreshold||450,d=new G,v=new L(o,t),F=n.smartClicks,I=function(X,N,W,ot){W!=null&&R(X,function(){var st=nt(this);F&&N==="click"?e(st,N,W,ot):N==="tap"||N==="dbltap"||N==="contextmenu"?v(st,N,W,ot):N==="mouseenter"||N=="mouseexit"?d(st,N,W,ot):a(st,N,W,ot)})};this.remove=function(X){return R(X,function(){var N=nt(this);if(N.__ta){for(var W in N.__ta)if(N.__ta.hasOwnProperty(W))for(var ot in N.__ta[W])N.__ta[W].hasOwnProperty(ot)&&U(N,W,N.__ta[W][ot])}N.parentNode&&N.parentNode.removeChild(N)}),this},this.on=function(X,N,W,ot){var st=arguments[0],Q=arguments.length==4?arguments[2]:null,rt=arguments[1],pt=arguments[arguments.length-1];return I(st,rt,pt,Q),this},this.off=function(X,N,W){return U(X,N,W),this},this.trigger=function(X,N,W,ot){var st=A&&(typeof MouseEvent>"u"||W==null||W.constructor===MouseEvent),Q=P&&!A&&r[N]?r[N]:N,rt=!(P&&!A&&r[N]),pt=x(W),ft=h(W),lt=j(W);return R(X,function(){var bt=nt(this),gt;W=W||{screenX:ft[0],screenY:ft[1],clientX:lt[0],clientY:lt[1]};var $=function(vt){ot&&(vt.payload=ot)},q={TouchEvent:function(vt){var St=V(window,bt,0,pt[0],pt[1],ft[0],ft[1],lt[0],lt[1]),kt=vt.initTouchEvent||vt.initEvent;kt(Q,!0,!0,window,null,ft[0],ft[1],lt[0],lt[1],!1,!1,!1,!1,St,St,St,1,0)},MouseEvents:function(vt){vt.initMouseEvent(Q,!0,!0,window,0,ft[0],ft[1],lt[0],lt[1],!1,!1,!1,!1,1,bt)}};if(document.createEvent){var J=!rt&&!st&&P&&r[N],ut=J?"TouchEvent":"MouseEvents";gt=document.createEvent(ut),q[ut](gt),$(gt),bt.dispatchEvent(gt)}else document.createEventObject&&(gt=document.createEventObject(),gt.eventType=gt.eventName=Q,gt.screenX=ft[0],gt.screenY=ft[1],gt.clientX=lt[0],gt.clientY=lt[1],$(gt),bt.fireEvent("on"+Q,gt))}),this}},it.Mottle.consume=function(n,o){n.stopPropagation?n.stopPropagation():n.returnValue=!1,!o&&n.preventDefault&&n.preventDefault()},it.Mottle.pageLocation=x,it.Mottle.setForceTouchEvents=function(n){P=n},it.Mottle.setForceMouseEvents=function(n){A=n},it.Mottle.version="0.8.0",Qt.Mottle=it.Mottle}.call(typeof window>"u"?jt:window),function(){var Z=this,f=function(n,o,t){return n.indexOf(o)===-1?(t?n.unshift(o):n.push(o),!0):!1},V=function(n,o){var t=n.indexOf(o);t!==-1&&n.splice(t,1)},it=function(n,o){for(var t=[],d=0;d<n.length;d++)o.indexOf(n[d])===-1&&t.push(n[d]);return t},K=function(n){return n==null?!1:typeof n=="string"||n.constructor===String},nt=function(n){var o=n.getBoundingClientRect(),t=document.body,d=document.documentElement,v=window.pageYOffset||d.scrollTop||t.scrollTop,F=window.pageXOffset||d.scrollLeft||t.scrollLeft,I=d.clientTop||t.clientTop||0,X=d.clientLeft||t.clientLeft||0,N=o.top+v-I,W=o.left+F-X;return{top:Math.round(N),left:Math.round(W)}},c=function(n,o,t){t=t||n.parentNode;for(var d=t.querySelectorAll(o),v=0;v<d.length;v++)if(d[v]===n)return!0;return!1},O=function(n,o,t){if(c(o,t,n))return o;for(var d=o.parentNode;d!=null&&d!==n;){if(c(d,t,n))return d;d=d.parentNode}},l=function(n,o,t){for(var d=null,v=o.getAttribute("katavorio-draggable"),F=v!=null?"[katavorio-draggable='"+v+"'] ":"",I=0;I<n.length;I++)if(d=O(o,t,F+n[I].selector),d!=null){if(n[I].filter){var X=c(t,n[I].filter,d),N=n[I].filterExclude===!0;if(N&&!X||X)return null}return[n[I],d]}return null},i=function(){var n=-1;if(navigator.appName==="Microsoft Internet Explorer"){var o=navigator.userAgent,t=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");t.exec(o)!=null&&(n=parseFloat(RegExp.$1))}return n}(),b=10,D=10,M=i>-1&&i<9,C=i===9,a=function(n){if(M)return[n.clientX+document.documentElement.scrollLeft,n.clientY+document.documentElement.scrollTop];var o=T(n),t=e(o,0);return C?[t.pageX||t.clientX,t.pageY||t.clientY]:[t.pageX,t.pageY]},e=function(n,o){return n.item?n.item(o):n[o]},T=function(n){return n.touches&&n.touches.length>0?n.touches:n.changedTouches&&n.changedTouches.length>0?n.changedTouches:n.targetTouches&&n.targetTouches.length>0?n.targetTouches:[n]},L={delegatedDraggable:"katavorio-delegated-draggable",draggable:"katavorio-draggable",droppable:"katavorio-droppable",drag:"katavorio-drag",selected:"katavorio-drag-selected",active:"katavorio-drag-active",hover:"katavorio-drag-hover",noSelect:"katavorio-drag-no-select",ghostProxy:"katavorio-ghost-proxy",clonedDrag:"katavorio-clone-drag"},H="katavorio-drag-scope",G=["stop","start","drag","drop","over","out","beforeStart"],P=function(){},A=function(){return!0},r=function(n,o,t){for(var d=0;d<n.length;d++)n[d]!=t&&o(n[d])},p=function(n,o,t,d){r(n,function(v){v.setActive(o),o&&v.updatePosition(),t&&v.setHover(d,o)})},u=function(n,o){if(n!=null){n=!K(n)&&n.tagName==null&&n.length!=null?n:[n];for(var t=0;t<n.length;t++)o.apply(n[t],[n[t]])}},_=function(n){n.stopPropagation?(n.stopPropagation(),n.preventDefault()):n.returnValue=!1},x="input,textarea,select,button,option",h=function(n,o,t){var d=n.srcElement||n.target;return!c(d,t.getInputFilterSelector(),o)},j=function(n,o,t,d){this.params=o||{},this.el=n,this.params.addClass(this.el,this._class),this.uuid=U();var v=!0;return this.setEnabled=function(F){v=F},this.isEnabled=function(){return v},this.toggleEnabled=function(){v=!v},this.setScope=function(F){this.scopes=F?F.split(/\s+/):[d]},this.addScope=function(F){var I={};u(this.scopes,function(N){I[N]=!0}),u(F?F.split(/\s+/):[],function(N){I[N]=!0}),this.scopes=[];for(var X in I)this.scopes.push(X)},this.removeScope=function(F){var I={};u(this.scopes,function(N){I[N]=!0}),u(F?F.split(/\s+/):[],function(N){delete I[N]}),this.scopes=[];for(var X in I)this.scopes.push(X)},this.toggleScope=function(F){var I={};u(this.scopes,function(N){I[N]=!0}),u(F?F.split(/\s+/):[],function(N){I[N]?delete I[N]:I[N]=!0}),this.scopes=[];for(var X in I)this.scopes.push(X)},this.setScope(o.scope),this.k=o.katavorio,o.katavorio},y=function(){return!0},w=function(){return!1},g=function(n,o,t,d){this._class=t.draggable;var v=j.apply(this,arguments);this.rightButtonCanDrag=this.params.rightButtonCanDrag;var F=[0,0],I=null,X=null,N=[0,0],W=!1,ot=[0,0],st=this.params.consumeStartEvent!==!1,Q=this.el,rt=this.params.clone;this.params.scroll;var pt=o.multipleDrop!==!1,ft=!1,lt,bt,gt=null,$=[],q=null,J=o.ghostProxyParent,ut,vt,St,kt;if(o.ghostProxy===!0?lt=y:o.ghostProxy&&typeof o.ghostProxy=="function"?lt=o.ghostProxy:lt=function(tt,_t){return q&&q.useGhostProxy?q.useGhostProxy(tt,_t):!1},o.makeGhostProxy?bt=o.makeGhostProxy:bt=function(tt){return q&&q.makeGhostProxy?q.makeGhostProxy(tt):tt.cloneNode(!0)},o.selector){var It=n.getAttribute("katavorio-draggable");It==null&&(It=""+new Date().getTime(),n.setAttribute("katavorio-draggable",It)),$.push(o)}var Nt=o.snapThreshold,Gt=function(tt,_t,Pt,yt,Et){var xt=Math.floor(tt[0]/_t),s=_t*xt,S=s+_t,m=Math.abs(tt[0]-s)<=yt?s:Math.abs(S-tt[0])<=yt?S:tt[0],k=Math.floor(tt[1]/Pt),Y=Pt*k,z=Y+Pt,et=Math.abs(tt[1]-Y)<=Et?Y:Math.abs(z-tt[1])<=Et?z:tt[1];return[m,et]};this.posses=[],this.posseRoles={},this.toGrid=function(tt){if(this.params.grid==null)return tt;var _t=this.params.grid?this.params.grid[0]/2:Nt||b/2,Pt=this.params.grid?this.params.grid[1]/2:Nt||D/2;return Gt(tt,this.params.grid[0],this.params.grid[1],_t,Pt)},this.snap=function(tt,_t){if(Q!=null){tt=tt||(this.params.grid?this.params.grid[0]:b),_t=_t||(this.params.grid?this.params.grid[1]:D);var Pt=this.params.getPosition(Q),yt=this.params.grid?this.params.grid[0]/2:Nt,Et=this.params.grid?this.params.grid[1]/2:Nt,xt=Gt(Pt,tt,_t,yt,Et);return this.params.setPosition(Q,xt),xt}},this.setUseGhostProxy=function(tt){lt=tt?y:w};var Ut,ue=function(tt){return o.allowNegative===!1?[Math.max(0,tt[0]),Math.max(0,tt[1])]:tt},he=function(tt){Ut=typeof tt=="function"?tt:tt?function(_t,Pt,yt,Et){return ue([Math.max(0,Math.min(yt.w-Et[0],_t[0])),Math.max(0,Math.min(yt.h-Et[1],_t[1]))])}.bind(this):function(_t){return ue(_t)}}.bind(this);he(typeof this.params.constrain=="function"?this.params.constrain:this.params.constrain||this.params.containment),this.setConstrain=function(tt){he(tt)};var ce=function(tt,_t,Pt,yt){return q!=null&&q.constrain&&typeof q.constrain=="function"?q.constrain(tt,_t,Pt,yt):Ut(tt,_t,Pt,yt)},Ht;this.setRevert=function(tt){Ht=tt},this.params.revert&&(Ht=this.params.revert);var te=function(tt){return typeof tt=="function"?(tt._katavorioId=U(),tt._katavorioId):tt},Bt={},ee=function(tt){for(var _t in Bt){var Pt=Bt[_t],yt=Pt[0](tt);if(Pt[1]&&(yt=!yt),!yt)return!1}return!0},ie=this.setFilter=function(tt,_t){if(tt){var Pt=te(tt);Bt[Pt]=[function(yt){var Et=yt.srcElement||yt.target,xt;return K(tt)?xt=c(Et,tt,n):typeof tt=="function"&&(xt=tt(yt,n)),xt},_t!==!1]}};this.addFilter=ie,this.removeFilter=function(tt){var _t=typeof tt=="function"?tt._katavorioId:tt;delete Bt[_t]},this.clearAllFilters=function(){Bt={}},this.canDrag=this.params.canDrag||A;var se,At=[],Yt=[];this.addSelector=function(tt){tt.selector&&$.push(tt)},this.downListener=function(tt){if(!tt.defaultPrevented){var _t=this.rightButtonCanDrag||tt.which!==3&&tt.button!==2;if(_t&&this.isEnabled()&&this.canDrag()){var Pt=ee(tt)&&h(tt,this.el,this.k);if(Pt){if(q=null,gt=null,$.length>0){var yt=l($,this.el,tt.target||tt.srcElement);if(yt!=null&&(q=yt[0],gt=yt[1]),gt==null)return}else gt=this.el;if(rt)if(Q=gt.cloneNode(!0),this.params.addClass(Q,L.clonedDrag),Q.setAttribute("id",null),Q.style.position="absolute",this.params.parent!=null){var Et=this.params.getPosition(this.el);Q.style.left=Et[0]+"px",Q.style.top=Et[1]+"px",this.params.parent.appendChild(Q)}else{var xt=nt(gt);Q.style.left=xt.left+"px",Q.style.top=xt.top+"px",document.body.appendChild(Q)}else Q=gt;st&&_(tt),F=a(tt),Q&&Q.parentNode&&(ot=[Q.parentNode.scrollLeft,Q.parentNode.scrollTop]),this.params.bind(document,"mousemove",this.moveListener),this.params.bind(document,"mouseup",this.upListener),v.markSelection(this),v.markPosses(this),this.params.addClass(document.body,t.noSelect),Xt("beforeStart",{el:this.el,pos:I,e:tt,drag:this})}else this.params.consumeFilteredEvents&&_(tt)}}}.bind(this),this.moveListener=function(tt){if(F){if(!W){var _t=Xt("start",{el:this.el,pos:I,e:tt,drag:this});if(_t!==!1){if(!F)return;this.mark(!0),W=!0}else this.abort()}if(F){Yt.length=0;var Pt=a(tt),yt=Pt[0]-F[0],Et=Pt[1]-F[1],xt=this.params.ignoreZoom?1:v.getZoom();Q&&Q.parentNode&&(yt+=Q.parentNode.scrollLeft-ot[0],Et+=Q.parentNode.scrollTop-ot[1]),yt/=xt,Et/=xt,this.moveBy(yt,Et,tt),v.updateSelection(yt,Et,this),v.updatePosses(yt,Et,this)}}}.bind(this),this.upListener=function(tt){F&&(F=null,this.params.unbind(document,"mousemove",this.moveListener),this.params.unbind(document,"mouseup",this.upListener),this.params.removeClass(document.body,t.noSelect),this.unmark(tt),v.unmarkSelection(this,tt),v.unmarkPosses(this,tt),this.stop(tt),v.notifyPosseDragStop(this,tt),W=!1,Yt.length=0,rt?(Q&&Q.parentNode&&Q.parentNode.removeChild(Q),Q=null):Ht&&Ht(Q,this.params.getPosition(Q))===!0&&(this.params.setPosition(Q,I),Xt("revert",Q)))}.bind(this),this.getFilters=function(){return Bt},this.abort=function(){F!=null&&this.upListener()},this.getDragElement=function(tt){return tt?gt||this.el:Q||this.el};var Ot={start:[],drag:[],stop:[],over:[],out:[],beforeStart:[],revert:[]};o.events.start&&Ot.start.push(o.events.start),o.events.beforeStart&&Ot.beforeStart.push(o.events.beforeStart),o.events.stop&&Ot.stop.push(o.events.stop),o.events.drag&&Ot.drag.push(o.events.drag),o.events.revert&&Ot.revert.push(o.events.revert),this.on=function(tt,_t){Ot[tt]&&Ot[tt].push(_t)},this.off=function(tt,_t){if(Ot[tt]){for(var Pt=[],yt=0;yt<Ot[tt].length;yt++)Ot[tt][yt]!==_t&&Pt.push(Ot[tt][yt]);Ot[tt]=Pt}};var Xt=function(tt,_t){var Pt=null;if(q&&q[tt])Pt=q[tt](_t);else if(Ot[tt])for(var yt=0;yt<Ot[tt].length;yt++)try{var Et=Ot[tt][yt](_t);Et!=null&&(Pt=Et)}catch{}return Pt};this.notifyStart=function(tt){Xt("start",{el:this.el,pos:this.params.getPosition(Q),e:tt,drag:this})},this.stop=function(tt,_t){if(_t||W){var Pt=[],yt=v.getSelection(),Et=this.params.getPosition(Q);if(yt.length>0)for(var xt=0;xt<yt.length;xt++){var s=this.params.getPosition(yt[xt].el);Pt.push([yt[xt].el,{left:s[0],top:s[1]},yt[xt]])}else Pt.push([Q,{left:Et[0],top:Et[1]},this]);Xt("stop",{el:Q,pos:qt||Et,finalPos:Et,e:tt,drag:this,selection:Pt})}},this.mark=function(tt){I=this.params.getPosition(Q),X=this.params.getPosition(Q,!0),N=[X[0]-I[0],X[1]-I[1]],this.size=this.params.getSize(Q),At=v.getMatchingDroppables(this),p(At,!0,!1,this),this.params.addClass(Q,this.params.dragClass||t.drag);var _t;this.params.getConstrainingRectangle?_t=this.params.getConstrainingRectangle(Q):_t=this.params.getSize(Q.parentNode),se={w:_t[0],h:_t[1]},St=0,kt=0,tt&&v.notifySelectionDragStart(this)};var qt;this.unmark=function(tt,_t){if(p(At,!1,!0,this),ft&&lt(gt,Q)?(qt=[Q.offsetLeft-St,Q.offsetTop-kt],Q.parentNode.removeChild(Q),Q=gt):qt=null,this.params.removeClass(Q,this.params.dragClass||t.drag),At.length=0,ft=!1,!_t){Yt.length>0&&qt&&o.setPosition(gt,qt),Yt.sort(R);for(var Pt=0;Pt<Yt.length;Pt++){var yt=Yt[Pt].drop(this,tt);if(yt===!0)break}}},this.moveBy=function(tt,_t,Pt){Yt.length=0;var yt=this.toGrid([I[0]+tt,I[1]+_t]),Et=ce(yt,Q,se,this.size);if(lt(this.el,Q))if(yt[0]!==Et[0]||yt[1]!==Et[1]){if(!ft){var xt=bt(gt);o.addClass(xt,L.ghostProxy),J?(J.appendChild(xt),ut=o.getPosition(gt.parentNode,!0),vt=o.getPosition(o.ghostProxyParent,!0),St=ut[0]-vt[0],kt=ut[1]-vt[1]):gt.parentNode.appendChild(xt),Q=xt,ft=!0}Et=yt}else ft&&(Q.parentNode.removeChild(Q),Q=gt,ft=!1,ut=null,vt=null,St=0,kt=0);var s={x:Et[0],y:Et[1],w:this.size[0],h:this.size[1]},S={x:s.x+N[0],y:s.y+N[1],w:s.w,h:s.h},m=null;this.params.setPosition(Q,[Et[0]+St,Et[1]+kt]);for(var k=0;k<At.length;k++){var Y={x:At[k].pagePosition[0],y:At[k].pagePosition[1],w:At[k].size[0],h:At[k].size[1]};this.params.intersects(S,Y)&&(pt||m==null||m===At[k].el)&&At[k].canDrop(this)?(m||(m=At[k].el),Yt.push(At[k]),At[k].setHover(this,!0,Pt)):At[k].isHover()&&At[k].setHover(this,!1,Pt)}Xt("drag",{el:this.el,pos:Et,e:Pt,drag:this})},this.destroy=function(){this.params.unbind(this.el,"mousedown",this.downListener),this.params.unbind(document,"mousemove",this.moveListener),this.params.unbind(document,"mouseup",this.upListener),this.downListener=null,this.upListener=null,this.moveListener=null},this.params.bind(this.el,"mousedown",this.downListener),this.params.handle?ie(this.params.handle,!1):ie(this.params.filter,this.params.filterExclude)},E=function(n,o,t,d){this._class=t.droppable,this.params=o||{},this.rank=o.rank||0,this._activeClass=this.params.activeClass||t.active,this._hoverClass=this.params.hoverClass||t.hover,j.apply(this,arguments);var v=!1;this.allowLoopback=this.params.allowLoopback!==!1,this.setActive=function(F){this.params[F?"addClass":"removeClass"](this.el,this._activeClass)},this.updatePosition=function(){this.position=this.params.getPosition(this.el),this.pagePosition=this.params.getPosition(this.el,!0),this.size=this.params.getSize(this.el)},this.canDrop=this.params.canDrop||function(F){return!0},this.isHover=function(){return v},this.setHover=function(F,I,X){(I||this.el._katavorioDragHover==null||this.el._katavorioDragHover===F.el._katavorio)&&(this.params[I?"addClass":"removeClass"](this.el,this._hoverClass),this.el._katavorioDragHover=I?F.el._katavorio:null,v!==I&&this.params.events[I?"over":"out"]({el:this.el,e:X,drag:F,drop:this}),v=I)},this.drop=function(F,I){return this.params.events.drop({drag:F,e:I,drop:this})},this.destroy=function(){this._class=null,this._activeClass=null,this._hoverClass=null,v=null}},U=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var o=Math.random()*16|0,t=n==="x"?o:o&3|8;return t.toString(16)})},R=function(n,o){return n.rank<o.rank?1:n.rank>o.rank?-1:0},B=function(n){return n==null||(n=typeof n=="string"||n.constructor===String?document.getElementById(n):n,n==null)?null:(n._katavorio=n._katavorio||U(),n)};Z.Katavorio=function(n){var o=[],t={};this._dragsByScope={},this._dropsByScope={};var d=1,v=function($,q){u($,function(J){for(var ut=0;ut<J.scopes.length;ut++)q[J.scopes[ut]]=q[J.scopes[ut]]||[],q[J.scopes[ut]].push(J)})},F=function($,q){var J=0;return u($,function(ut){for(var vt=0;vt<ut.scopes.length;vt++)if(q[ut.scopes[vt]]){var St=n.indexOf(q[ut.scopes[vt]],ut);St!==-1&&(q[ut.scopes[vt]].splice(St,1),J++)}}),J>0};this.getMatchingDroppables=function($){for(var q=[],J={},ut=0;ut<$.scopes.length;ut++){var vt=this._dropsByScope[$.scopes[ut]];if(vt)for(var St=0;St<vt.length;St++)vt[St].canDrop($)&&!J[vt[St].uuid]&&(vt[St].allowLoopback||vt[St].el!==$.el)&&(J[vt[St].uuid]=!0,q.push(vt[St]))}return q.sort(R),q};var I=function($){$=$||{};var q={events:{}},J;for(J in n)q[J]=n[J];for(J in $)q[J]=$[J];for(J=0;J<G.length;J++)q.events[G[J]]=$[G[J]]||P;return q.katavorio=this,q}.bind(this),X=function($,q){for(var J=0;J<G.length;J++)q[G[J]]&&$.on(G[J],q[G[J]])}.bind(this),N={},W=n.css||{},ot=n.scope||H;for(var st in L)N[st]=L[st];for(var st in W)N[st]=W[st];var Q=n.inputFilterSelector||x;this.getInputFilterSelector=function(){return Q},this.setInputFilterSelector=function($){return Q=$,this},this.draggable=function($,q){var J=[];return u($,function(ut){if(ut=B(ut),ut!=null)if(ut._katavorioDrag==null){var vt=I(q);ut._katavorioDrag=new g(ut,vt,N,ot),v(ut._katavorioDrag,this._dragsByScope),J.push(ut._katavorioDrag),n.addClass(ut,vt.selector?N.delegatedDraggable:N.draggable)}else X(ut._katavorioDrag,q)}.bind(this)),J},this.droppable=function($,q){var J=[];return u($,function(ut){if(ut=B(ut),ut!=null){var vt=new E(ut,I(q),N,ot);ut._katavorioDrop=ut._katavorioDrop||[],ut._katavorioDrop.push(vt),v(vt,this._dropsByScope),J.push(vt),n.addClass(ut,N.droppable)}}.bind(this)),J},this.select=function($){return u($,function(){var q=B(this);q&&q._katavorioDrag&&(t[q._katavorio]||(o.push(q._katavorioDrag),t[q._katavorio]=[q,o.length-1],n.addClass(q,N.selected)))}),this},this.deselect=function($){return u($,function(){var q=B(this);if(q&&q._katavorio){var J=t[q._katavorio];if(J){for(var ut=[],vt=0;vt<o.length;vt++)o[vt].el!==q&&ut.push(o[vt]);o=ut,delete t[q._katavorio],n.removeClass(q,N.selected)}}}),this},this.deselectAll=function(){for(var $ in t){var q=t[$];n.removeClass(q[0],N.selected)}o.length=0,t={}},this.markSelection=function($){r(o,function(q){q.mark()},$)},this.markPosses=function($){$.posses&&u($.posses,function(q){$.posseRoles[q]&&bt[q]&&r(bt[q].members,function(J){J.mark()},$)})},this.unmarkSelection=function($,q){r(o,function(J){J.unmark(q)},$)},this.unmarkPosses=function($,q){$.posses&&u($.posses,function(J){$.posseRoles[J]&&bt[J]&&r(bt[J].members,function(ut){ut.unmark(q,!0)},$)})},this.getSelection=function(){return o.slice(0)},this.updateSelection=function($,q,J){r(o,function(ut){ut.moveBy($,q)},J)};var rt=function($,q){q.posses&&u(q.posses,function(J){q.posseRoles[J]&&bt[J]&&r(bt[J].members,function(ut){$(ut)},q)})};this.updatePosses=function($,q,J){rt(function(ut){ut.moveBy($,q)},J)},this.notifyPosseDragStop=function($,q){rt(function(J){J.stop(q,!0)},$)},this.notifySelectionDragStop=function($,q){r(o,function(J){J.stop(q,!0)},$)},this.notifySelectionDragStart=function($,q){r(o,function(J){J.notifyStart(q)},$)},this.setZoom=function($){d=$},this.getZoom=function(){return d};var pt=function($,q,J,ut){u($,function(vt){F(vt,J),vt[ut](q),v(vt,J)})};u(["set","add","remove","toggle"],function($){this[$+"Scope"]=function(q,J){pt(q._katavorioDrag,J,this._dragsByScope,$+"Scope"),pt(q._katavorioDrop,J,this._dropsByScope,$+"Scope")}.bind(this),this[$+"DragScope"]=function(q,J){pt(q.constructor===g?q:q._katavorioDrag,J,this._dragsByScope,$+"Scope")}.bind(this),this[$+"DropScope"]=function(q,J){pt(q.constructor===E?q:q._katavorioDrop,J,this._dropsByScope,$+"Scope")}.bind(this)}.bind(this)),this.snapToGrid=function($,q){for(var J in this._dragsByScope)r(this._dragsByScope[J],function(ut){ut.snap($,q)})},this.getDragsForScope=function($){return this._dragsByScope[$]},this.getDropsForScope=function($){return this._dropsByScope[$]};var ft=function($,q,J){if($=B($),$[q]){var ut=o.indexOf($[q]);ut>=0&&o.splice(ut,1),F($[q],J)&&u($[q],function(vt){vt.destroy()}),delete $[q]}},lt=function($,q,J,ut){$=B($),$[q]&&$[q].off(J,ut)};this.elementRemoved=function($){$._katavorioDrag&&this.destroyDraggable($),$._katavorioDrop&&this.destroyDroppable($)},this.destroyDraggable=function($,q,J){arguments.length===1?ft($,"_katavorioDrag",this._dragsByScope):lt($,"_katavorioDrag",q,J)},this.destroyDroppable=function($,q,J){arguments.length===1?ft($,"_katavorioDrop",this._dropsByScope):lt($,"_katavorioDrop",q,J)},this.reset=function(){this._dragsByScope={},this._dropsByScope={},o=[],t={},bt={}};var bt={},gt=function($,q,J){var ut=K(q)?q:q.id,vt=K(q)?!0:q.active!==!1,St=bt[ut]||function(){var kt={name:ut,members:[]};return bt[ut]=kt,kt}();return u($,function(kt){if(kt._katavorioDrag){if(J&&kt._katavorioDrag.posseRoles[St.name]!=null)return;f(St.members,kt._katavorioDrag),f(kt._katavorioDrag.posses,St.name),kt._katavorioDrag.posseRoles[St.name]=vt}}),St};this.addToPosse=function($,q){for(var J=[],ut=1;ut<arguments.length;ut++)J.push(gt($,arguments[ut]));return J.length===1?J[0]:J},this.setPosse=function($,q){for(var J=[],ut=1;ut<arguments.length;ut++)J.push(gt($,arguments[ut],!0).name);return u($,function(vt){if(vt._katavorioDrag){var St=it(vt._katavorioDrag.posses,J),kt=[];Array.prototype.push.apply(kt,vt._katavorioDrag.posses);for(var It=0;It<St.length;It++)this.removeFromPosse(vt,St[It])}}.bind(this)),J.length===1?J[0]:J},this.removeFromPosse=function($,q){if(arguments.length<2)throw new TypeError("No posse id provided for remove operation");for(var J=1;J<arguments.length;J++)q=arguments[J],u($,function(ut){if(ut._katavorioDrag&&ut._katavorioDrag.posses){var vt=ut._katavorioDrag;u(q,function(St){V(bt[St].members,vt),V(vt.posses,St),delete vt.posseRoles[St]})}})},this.removeFromAllPosses=function($){u($,function(q){if(q._katavorioDrag&&q._katavorioDrag.posses){var J=q._katavorioDrag;u(J.posses,function(ut){V(bt[ut].members,J)}),J.posses.length=0,J.posseRoles={}}})},this.setPosseState=function($,q,J){var ut=bt[q];ut&&u($,function(vt){vt._katavorioDrag&&vt._katavorioDrag.posses&&(vt._katavorioDrag.posseRoles[ut.name]=J)})}},Z.Katavorio.version="1.0.0",Qt.Katavorio=Z.Katavorio}.call(typeof window<"u"?window:jt),function(){var Z=this;Z.jsPlumbUtil=Z.jsPlumbUtil||{};var f=Z.jsPlumbUtil;Qt.jsPlumbUtil=f;function V(n){return Object.prototype.toString.call(n)==="[object Array]"}f.isArray=V;function it(n){return Object.prototype.toString.call(n)==="[object Number]"}f.isNumber=it;function K(n){return typeof n=="string"}f.isString=K;function nt(n){return typeof n=="boolean"}f.isBoolean=nt;function c(n){return n==null}f.isNull=c;function O(n){return n==null?!1:Object.prototype.toString.call(n)==="[object Object]"}f.isObject=O;function l(n){return Object.prototype.toString.call(n)==="[object Date]"}f.isDate=l;function i(n){return Object.prototype.toString.call(n)==="[object Function]"}f.isFunction=i;function b(n){return i(n)&&n.name!=null&&n.name.length>0}f.isNamedFunction=b;function D(n){for(var o in n)if(n.hasOwnProperty(o))return!1;return!0}f.isEmpty=D;function M(n){if(K(n))return""+n;if(nt(n))return!!n;if(l(n))return new Date(n.getTime());if(i(n))return n;if(V(n)){for(var o=[],t=0;t<n.length;t++)o.push(M(n[t]));return o}else if(O(n)){var d={};for(var v in n)d[v]=M(n[v]);return d}else return n}f.clone=M;function C(n,o,t,d){var v={},F,I,X={};for(t=t||[],d=d||[],I=0;I<t.length;I++)v[t[I]]=!0;for(I=0;I<d.length;I++)X[d[I]]=!0;var N=M(n);for(I in o)if(N[I]==null||X[I])N[I]=o[I];else if(K(o[I])||nt(o[I]))v[I]?(F=[],F.push.apply(F,V(N[I])?N[I]:[N[I]]),F.push.apply(F,nt(o[I])?o[I]:[o[I]]),N[I]=F):N[I]=o[I];else if(V(o[I]))F=[],V(N[I])&&F.push.apply(F,N[I]),F.push.apply(F,o[I]),N[I]=F;else if(O(o[I])){O(N[I])||(N[I]={});for(var W in o[I])N[I][W]=o[I][W]}return N}f.merge=C;function a(n,o,t){if(n!=null){var d=n,v=d;return o.replace(/([^\.])+/g,function(F,I,X,N){var W=F.match(/([^\[0-9]+){1}(\[)([0-9+])/),ot=X+F.length>=N.length,st=function(){return v[W[1]]||function(){return v[W[1]]=[],v[W[1]]}()};if(ot)W?st()[W[3]]=t:v[F]=t;else if(W){var Q=st();v=Q[W[3]]||function(){return Q[W[3]]={},Q[W[3]]}()}else v=v[F]||function(){return v[F]={},v[F]}();return""}),n}}f.replace=a;function e(n,o,t){for(var d=0;d<t.length;d++){var v=t[d][0][t[d][1]].apply(t[d][0],t[d][2]);if(v===o)return v}return n}f.functionChain=e;function T(n,o,t,d){var v=function(I){var X=I.match(/(\${.*?})/g);if(X!=null)for(var N=0;N<X.length;N++){var W=o[X[N].substring(2,X[N].length-1)]||"";W!=null&&(I=I.replace(X[N],W))}return I},F=function(I){if(I!=null){if(K(I))return v(I);if(i(I)&&!d&&(t==null||(I.name||"").indexOf(t)===0))return I(o);if(V(I)){for(var X=[],N=0;N<I.length;N++)X.push(F(I[N]));return X}else if(O(I)){var W={};for(var ot in I)W[ot]=F(I[ot]);return W}else return I}};return F(n)}f.populate=T;function L(n,o){if(n){for(var t=0;t<n.length;t++)if(o(n[t]))return t}return-1}f.findWithFunction=L;function H(n,o){var t=L(n,o);return t>-1&&n.splice(t,1),t!==-1}f.removeWithFunction=H;function G(n,o){var t=n.indexOf(o);return t>-1&&n.splice(t,1),t!==-1}f.remove=G;function P(n,o,t){L(n,t)===-1&&n.push(o)}f.addWithFunction=P;function A(n,o,t,d){var v=n[o];return v==null&&(v=[],n[o]=v),v[d?"unshift":"push"](t),v}f.addToList=A;function r(n,o,t){return n.indexOf(o)===-1?(t?n.unshift(o):n.push(o),!0):!1}f.suggest=r;function p(n,o,t){var d;o=V(o)?o:[o];var v=function(N){for(var W=N.__proto__;W!=null;)if(W.prototype!=null){for(var ot in W.prototype)W.prototype.hasOwnProperty(ot)&&!n.prototype.hasOwnProperty(ot)&&(n.prototype[ot]=W.prototype[ot]);W=W.prototype.__proto__}else W=null};for(d=0;d<o.length;d++){for(var F in o[d].prototype)o[d].prototype.hasOwnProperty(F)&&!n.prototype.hasOwnProperty(F)&&(n.prototype[F]=o[d].prototype[F]);v(o[d])}var I=function(N,W){return function(){for(d=0;d<o.length;d++)o[d].prototype[N]&&o[d].prototype[N].apply(this,arguments);return W.apply(this,arguments)}},X=function(N){for(var W in N)n.prototype[W]=I(W,N[W])};if(arguments.length>2)for(d=2;d<arguments.length;d++)X(arguments[d]);return n}f.extend=p;for(var u=[],_=0;_<256;_++)u[_]=(_<16?"0":"")+_.toString(16);function x(){var n=Math.random()*4294967295|0,o=Math.random()*4294967295|0,t=Math.random()*4294967295|0,d=Math.random()*4294967295|0;return u[n&255]+u[n>>8&255]+u[n>>16&255]+u[n>>24&255]+"-"+u[o&255]+u[o>>8&255]+"-"+u[o>>16&15|64]+u[o>>24&255]+"-"+u[t&63|128]+u[t>>8&255]+"-"+u[t>>16&255]+u[t>>24&255]+u[d&255]+u[d>>8&255]+u[d>>16&255]+u[d>>24&255]}f.uuid=x;function h(n){if(n==null)return null;for(var o=n.replace(/^\s\s*/,""),t=/\s/,d=o.length;t.test(o.charAt(--d)););return o.slice(0,d+1)}f.fastTrim=h;function j(n,o){n=n.length==null||typeof n=="string"?[n]:n;for(var t=0;t<n.length;t++)o(n[t])}f.each=j;function y(n,o){for(var t=[],d=0;d<n.length;d++)t.push(o(n[d]));return t}f.map=y;function w(n,o,t){t=t||"parent";var d=function(N){return N?o[N]:null},v=function(N){return N?d(N[t]):null},F=function(N,W){if(N==null)return W;var ot=["anchor","anchors","cssClass","connector","paintStyle","hoverPaintStyle","endpoint","endpoints"];W.mergeStrategy==="override"&&Array.prototype.push.apply(ot,["events","overlays"]);var st=C(N,W,[],ot);return F(v(N),st)},I=function(N){if(N==null)return{};if(typeof N=="string")return d(N);if(N.length){for(var W=!1,ot=0,st=void 0;!W&&ot<N.length;)st=I(N[ot]),st?W=!0:ot++;return st}},X=I(n);return X?F(v(X),X):{}}f.mergeWithParents=w,f.logEnabled=!0;function g(){if(f.logEnabled&&typeof console<"u")try{var n=arguments[arguments.length-1];console.log(n)}catch{}}f.log=g;function E(n,o,t){return function(){var d=null;try{o!=null&&(d=o.apply(this,arguments))}catch(v){g("jsPlumb function failed : "+v)}if(n!=null&&(t==null||d!==t))try{d=n.apply(this,arguments)}catch(v){g("wrapped function failed : "+v)}return d}}f.wrap=E;var U=function(){function n(){var o=this;this._listeners={},this.eventsSuspended=!1,this.tick=!1,this.eventsToDieOn={ready:!0},this.queue=[],this.bind=function(t,d,v){var F=function(X){A(o._listeners,X,d,v),d.__jsPlumb=d.__jsPlumb||{},d.__jsPlumb[x()]=X};if(typeof t=="string")F(t);else if(t.length!=null)for(var I=0;I<t.length;I++)F(t[I]);return o},this.fire=function(t,d,v){if(this.tick)this.queue.unshift(arguments);else{if(this.tick=!0,!this.eventsSuspended&&this._listeners[t]){var F=this._listeners[t].length,I=0,X=!1,N=null;if(!this.shouldFireEvent||this.shouldFireEvent(t,d,v))for(;!X&&I<F&&N!==!1;){if(this.eventsToDieOn[t])this._listeners[t][I].apply(this,[d,v]);else try{N=this._listeners[t][I].apply(this,[d,v])}catch(W){g("jsPlumb: fire failed for event "+t+" : "+W)}I++,(this._listeners==null||this._listeners[t]==null)&&(X=!0)}}this.tick=!1,this._drain()}return this},this._drain=function(){var t=o.queue.pop();t&&o.fire.apply(o,t)},this.unbind=function(t,d){if(arguments.length===0)this._listeners={};else if(arguments.length===1){if(typeof t=="string")delete this._listeners[t];else if(t.__jsPlumb){var v=void 0;for(var F in t.__jsPlumb)v=t.__jsPlumb[F],G(this._listeners[v]||[],t)}}else arguments.length===2&&G(this._listeners[t]||[],d);return this},this.getListener=function(t){return o._listeners[t]},this.setSuspendEvents=function(t){o.eventsSuspended=t},this.isSuspendEvents=function(){return o.eventsSuspended},this.silently=function(t){o.setSuspendEvents(!0);try{t()}catch(d){g("Cannot execute silent function "+d)}o.setSuspendEvents(!1)},this.cleanupListeners=function(){for(var t in o._listeners)o._listeners[t]=null}}return n}();f.EventGenerator=U;function R(n,o,t){var d=[n[0]-o[0],n[1]-o[1]],v=Math.cos(t/360*Math.PI*2),F=Math.sin(t/360*Math.PI*2);return[d[0]*v-d[1]*F+o[0],d[1]*v+d[0]*F+o[1],v,F]}f.rotatePoint=R;function B(n,o){var t=R(n,[0,0],o);return[Math.round(t[0]),Math.round(t[1])]}f.rotateAnchorOrientation=B}.call(typeof window<"u"?window:jt),function(){var Z=this;Z.jsPlumbUtil.matchesSelector=function(f,V,it){it=it||f.parentNode;for(var K=it.querySelectorAll(V),nt=0;nt<K.length;nt++)if(K[nt]===f)return!0;return!1},Z.jsPlumbUtil.consume=function(f,V){f.stopPropagation?f.stopPropagation():f.returnValue=!1,!V&&f.preventDefault&&f.preventDefault()},Z.jsPlumbUtil.sizeElement=function(f,V,it,K,nt){f&&(f.style.height=nt+"px",f.height=nt,f.style.width=K+"px",f.width=K,f.style.left=V+"px",f.style.top=it+"px")}}.call(typeof window<"u"?window:jt),function(){var Z={deriveAnchor:function(K,nt,c,O){return{top:["TopRight","TopLeft"],bottom:["BottomRight","BottomLeft"]}[K][nt]}},f=this,V=function(K,nt){this.count=0,this.instance=K,this.lists={},this.options=nt||{},this.instance.addList=function(c,O){return this.listManager.addList(c,O)},this.instance.removeList=function(c){this.listManager.removeList(c)},this.instance.bind("manageElement",function(c){for(var O=this.instance.getSelector(c.el,"[jtk-scrollable-list]"),l=0;l<O.length;l++)this.addList(O[l])}.bind(this)),this.instance.bind("unmanageElement",function(c){this.removeList(c.el)}),this.instance.bind("connection",function(c,O){O==null&&(this._maybeUpdateParentList(c.source),this._maybeUpdateParentList(c.target))}.bind(this))};f.jsPlumbListManager=V,V.prototype={addList:function(K,nt){var c=this.instance.extend({},Z);this.instance.extend(c,this.options),nt=this.instance.extend(c,nt||{});var O=[this.instance.getInstanceIndex(),this.count++].join("_");this.lists[O]=new it(this.instance,K,nt,O)},removeList:function(K){var nt=this.lists[K._jsPlumbList];nt&&(nt.destroy(),delete this.lists[K._jsPlumbList])},_maybeUpdateParentList:function(K){for(var nt=K.parentNode,c=this.instance.getContainer();nt!=null&&nt!==c;){if(nt._jsPlumbList!=null&&this.lists[nt._jsPlumbList]!=null){nt._jsPlumbScrollHandler();return}nt=nt.parentNode}}};var it=function(K,nt,c,O){nt._jsPlumbList=O;function l(M,C,a,e){return c.anchor?c.anchor:c.deriveAnchor(M,C,a,e)}function i(M,C,a,e){return c.deriveEndpoint?c.deriveEndpoint(M,C,a,e):c.endpoint?c.endpoint:a.type}function b(M){for(var C=M.parentNode,a=K.getContainer();C!=null&&C!==a;){if(K.hasClass(C,"jtk-managed")){K.recalculateOffsets(C);return}C=C.parentNode}}var D=function(M){for(var C=K.getSelector(nt,".jtk-managed"),a=K.getId(nt),e=0;e<C.length;e++){if(C[e].offsetTop<nt.scrollTop)C[e]._jsPlumbProxies||(C[e]._jsPlumbProxies=C[e]._jsPlumbProxies||[],K.select({source:C[e]}).each(function(L){K.proxyConnection(L,0,nt,a,function(){return i("top",0,L.endpoints[0],L)},function(){return l("top",0,L.endpoints[0],L)}),C[e]._jsPlumbProxies.push([L,0])}),K.select({target:C[e]}).each(function(L){K.proxyConnection(L,1,nt,a,function(){return i("top",1,L.endpoints[1],L)},function(){return l("top",1,L.endpoints[1],L)}),C[e]._jsPlumbProxies.push([L,1])}));else if(C[e].offsetTop+C[e].offsetHeight>nt.scrollTop+nt.offsetHeight)C[e]._jsPlumbProxies||(C[e]._jsPlumbProxies=C[e]._jsPlumbProxies||[],K.select({source:C[e]}).each(function(L){K.proxyConnection(L,0,nt,a,function(){return i("bottom",0,L.endpoints[0],L)},function(){return l("bottom",0,L.endpoints[0],L)}),C[e]._jsPlumbProxies.push([L,0])}),K.select({target:C[e]}).each(function(L){K.proxyConnection(L,1,nt,a,function(){return i("bottom",1,L.endpoints[1],L)},function(){return l("bottom",1,L.endpoints[1],L)}),C[e]._jsPlumbProxies.push([L,1])}));else if(C[e]._jsPlumbProxies){for(var T=0;T<C[e]._jsPlumbProxies.length;T++)K.unproxyConnection(C[e]._jsPlumbProxies[T][0],C[e]._jsPlumbProxies[T][1],a);delete C[e]._jsPlumbProxies}K.revalidate(C[e])}b(nt)};K.setAttribute(nt,"jtk-scrollable-list","true"),nt._jsPlumbScrollHandler=D,K.on(nt,"scroll",D),D(),this.destroy=function(){K.off(nt,"scroll",D),delete nt._jsPlumbScrollHandler;for(var M=K.getSelector(nt,".jtk-managed"),C=K.getId(nt),a=0;a<M.length;a++)if(M[a]._jsPlumbProxies){for(var e=0;e<M[a]._jsPlumbProxies.length;e++)K.unproxyConnection(M[a]._jsPlumbProxies[e][0],M[a]._jsPlumbProxies[e][1],C);delete M[a]._jsPlumbProxies}}}}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumbUtil,V=function(a){if(a._jsPlumb.paintStyle&&a._jsPlumb.hoverPaintStyle){var e={};C.extend(e,a._jsPlumb.paintStyle),C.extend(e,a._jsPlumb.hoverPaintStyle),delete a._jsPlumb.hoverPaintStyle,e.gradient&&a._jsPlumb.paintStyle.fill&&delete e.gradient,a._jsPlumb.hoverPaintStyle=e}},it=["tap","dbltap","click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","contextmenu"],K=function(a,e,T,L){var H=a.getAttachedElements();if(H)for(var G=0,P=H.length;G<P;G++)(!L||L!==H[G])&&H[G].setHover(e,!0,T)},nt=function(a){return a==null?null:a.split(" ")},c=function(a,e,T){for(var L in e)a[L]=T},O=function(a,e,T){if(a.getDefaultType){var L=a.getTypeDescriptor(),H={},G=a.getDefaultType(),P=f.merge({},G);c(H,G,"__default");for(var A=0,r=a._jsPlumb.types.length;A<r;A++){var p=a._jsPlumb.types[A];if(p!=="__default"){var u=a._jsPlumb.instance.getType(p,L);if(u!=null){var _=["anchor","anchors","connector","paintStyle","hoverPaintStyle","endpoint","endpoints","connectorOverlays","connectorStyle","connectorHoverStyle","endpointStyle","endpointHoverStyle"],x=[];u.mergeStrategy==="override"?Array.prototype.push.apply(_,["events","overlays","cssClass"]):x.push("cssClass"),P=f.merge(P,u,x,_),c(H,u,p)}}}e&&(P=f.populate(P,e,"_")),a.applyType(P,T,H),T||a.repaint()}},l=Z.jsPlumbUIComponent=function(a){f.EventGenerator.apply(this,arguments);var e=this,T=arguments,L=e.idPrefix,H=L+new Date().getTime();this._jsPlumb={instance:a._jsPlumb,parameters:a.parameters||{},paintStyle:null,hoverPaintStyle:null,paintStyleInUse:null,hover:!1,beforeDetach:a.beforeDetach,beforeDrop:a.beforeDrop,overlayPlacements:[],hoverClass:a.hoverClass||a._jsPlumb.Defaults.HoverClass,types:[],typeCache:{}},this.cacheTypeItem=function(x,h,j){this._jsPlumb.typeCache[j]=this._jsPlumb.typeCache[j]||{},this._jsPlumb.typeCache[j][x]=h},this.getCachedTypeItem=function(x,h){return this._jsPlumb.typeCache[h]?this._jsPlumb.typeCache[h][x]:null},this.getId=function(){return H};var G=a.overlays||[],P={};if(this.defaultOverlayKeys){for(var A=0;A<this.defaultOverlayKeys.length;A++)Array.prototype.push.apply(G,this._jsPlumb.instance.Defaults[this.defaultOverlayKeys[A]]||[]);for(A=0;A<G.length;A++){var r=C.convertToFullOverlaySpec(G[A]);P[r[1].id]=r}}var p={overlays:P,parameters:a.parameters||{},scope:a.scope||this._jsPlumb.instance.getDefaultScope()};if(this.getDefaultType=function(){return p},this.appendToDefaultType=function(x){for(var h in x)p[h]=x[h]},a.events)for(var u in a.events)e.bind(u,a.events[u]);this.clone=function(){var x=Object.create(this.constructor.prototype);return this.constructor.apply(x,T),x}.bind(this),this.isDetachAllowed=function(x){var h=!0;if(this._jsPlumb.beforeDetach)try{h=this._jsPlumb.beforeDetach(x)}catch(j){f.log("jsPlumb: beforeDetach callback failed",j)}return h},this.isDropAllowed=function(x,h,j,y,w,g,E){var U=this._jsPlumb.instance.checkCondition("beforeDrop",{sourceId:x,targetId:h,scope:j,connection:y,dropEndpoint:w,source:g,target:E});if(this._jsPlumb.beforeDrop)try{U=this._jsPlumb.beforeDrop({sourceId:x,targetId:h,scope:j,connection:y,dropEndpoint:w,source:g,target:E})}catch(R){f.log("jsPlumb: beforeDrop callback failed",R)}return U};var _=[];this.setListenerComponent=function(x){for(var h=0;h<_.length;h++)_[h][3]=x}},i=function(a,e){var T=a._jsPlumb.types[e],L=a._jsPlumb.instance.getType(T,a.getTypeDescriptor());L!=null&&L.cssClass&&a.canvas&&a._jsPlumb.instance.removeClass(a.canvas,L.cssClass)};f.extend(Z.jsPlumbUIComponent,f.EventGenerator,{getParameter:function(a){return this._jsPlumb.parameters[a]},setParameter:function(a,e){this._jsPlumb.parameters[a]=e},getParameters:function(){return this._jsPlumb.parameters},setParameters:function(a){this._jsPlumb.parameters=a},getClass:function(){return C.getClass(this.canvas)},hasClass:function(a){return C.hasClass(this.canvas,a)},addClass:function(a){C.addClass(this.canvas,a)},removeClass:function(a){C.removeClass(this.canvas,a)},updateClasses:function(a,e){C.updateClasses(this.canvas,a,e)},setType:function(a,e,T){this.clearTypes(),this._jsPlumb.types=nt(a)||[],O(this,e,T)},getType:function(){return this._jsPlumb.types},reapplyTypes:function(a,e){O(this,a,e)},hasType:function(a){return this._jsPlumb.types.indexOf(a)!==-1},addType:function(a,e,T){var L=nt(a),H=!1;if(L!=null){for(var G=0,P=L.length;G<P;G++)this.hasType(L[G])||(this._jsPlumb.types.push(L[G]),H=!0);H&&O(this,e,T)}},removeType:function(a,e,T){var L=nt(a),H=!1,G=function(r){var p=this._jsPlumb.types.indexOf(r);return p!==-1?(i(this,p),this._jsPlumb.types.splice(p,1),!0):!1}.bind(this);if(L!=null){for(var P=0,A=L.length;P<A;P++)H=G(L[P])||H;H&&O(this,e,T)}},clearTypes:function(a,e){for(var T=this._jsPlumb.types.length,L=0;L<T;L++)i(this,0),this._jsPlumb.types.splice(0,1);O(this,a,e)},toggleType:function(a,e,T){var L=nt(a);if(L!=null){for(var H=0,G=L.length;H<G;H++){var P=this._jsPlumb.types.indexOf(L[H]);P!==-1?(i(this,P),this._jsPlumb.types.splice(P,1)):this._jsPlumb.types.push(L[H])}O(this,e,T)}},applyType:function(a,e){if(this.setPaintStyle(a.paintStyle,e),this.setHoverPaintStyle(a.hoverPaintStyle,e),a.parameters)for(var T in a.parameters)this.setParameter(T,a.parameters[T]);this._jsPlumb.paintStyleInUse=this.getPaintStyle()},setPaintStyle:function(a,e){this._jsPlumb.paintStyle=a,this._jsPlumb.paintStyleInUse=this._jsPlumb.paintStyle,V(this),e||this.repaint()},getPaintStyle:function(){return this._jsPlumb.paintStyle},setHoverPaintStyle:function(a,e){this._jsPlumb.hoverPaintStyle=a,V(this),e||this.repaint()},getHoverPaintStyle:function(){return this._jsPlumb.hoverPaintStyle},destroy:function(a){(a||this.typeId==null)&&(this.cleanupListeners(),this.clone=null,this._jsPlumb=null)},isHover:function(){return this._jsPlumb.hover},setHover:function(a,e,T){if(this._jsPlumb&&!this._jsPlumb.instance.currentlyDragging&&!this._jsPlumb.instance.isHoverSuspended()){this._jsPlumb.hover=a;var L=a?"addClass":"removeClass";this.canvas!=null&&(this._jsPlumb.instance.hoverClass!=null&&this._jsPlumb.instance[L](this.canvas,this._jsPlumb.instance.hoverClass),this._jsPlumb.hoverClass!=null&&this._jsPlumb.instance[L](this.canvas,this._jsPlumb.hoverClass)),this._jsPlumb.hoverPaintStyle!=null&&(this._jsPlumb.paintStyleInUse=a?this._jsPlumb.hoverPaintStyle:this._jsPlumb.paintStyle,this._jsPlumb.instance.isSuspendDrawing()||(T=T||jsPlumbUtil.uuid(),this.repaint({timestamp:T,recalc:!1}))),this.getAttachedElements&&!e&&K(this,a,jsPlumbUtil.uuid(),this)}}});var b=0,D=function(){var a=b+1;return b++,a},M=Z.jsPlumbInstance=function(a){this.version="2.15.6",this.Defaults={Anchor:"Bottom",Anchors:[null,null],ConnectionsDetachable:!0,ConnectionOverlays:[],Connector:"Bezier",Container:null,DoNotThrowErrors:!1,DragOptions:{},DropOptions:{},Endpoint:"Dot",EndpointOverlays:[],Endpoints:[null,null],EndpointStyle:{fill:"#456"},EndpointStyles:[null,null],EndpointHoverStyle:null,EndpointHoverStyles:[null,null],HoverPaintStyle:null,LabelStyle:{color:"black"},ListStyle:{},LogEnabled:!1,Overlays:[],MaxConnections:1,PaintStyle:{"stroke-width":4,stroke:"#456"},ReattachConnections:!1,RenderMode:"svg",Scope:"jsPlumb_DefaultScope"},a&&C.extend(this.Defaults,a),this.logEnabled=this.Defaults.LogEnabled,this._connectionTypes={},this._endpointTypes={},f.EventGenerator.apply(this);var e=this,T=D(),L=e.bind,H={},G=1,P=function(s){if(s==null)return null;if(s.nodeType===3||s.nodeType===8)return{el:s,text:!0};var S=e.getElement(s);return{el:S,id:f.isString(s)&&S==null?s:lt(S)}};this.getInstanceIndex=function(){return T},this.setZoom=function(s,S){return G=s,e.fire("zoom",G),S&&e.repaintEverything(),!0},this.getZoom=function(){return G};for(var A in this.Defaults)H[A]=this.Defaults[A];var r,p=[];this.unbindContainer=function(){if(r!=null&&p.length>0)for(var s=0;s<p.length;s++)e.off(r,p[s][0],p[s][1])},this.setContainer=function(s){this.unbindContainer(),s=this.getElement(s),this.select().each(function(ct){ct.moveParent(s)}),this.selectEndpoints().each(function(ct){ct.moveParent(s)});var S=r;r=s,p.length=0;for(var m={endpointclick:"endpointClick",endpointdblclick:"endpointDblClick"},k=function(ct,ht,Ct){var mt=ht.srcElement||ht.target,Dt=(mt&&mt.parentNode?mt.parentNode._jsPlumb:null)||(mt?mt._jsPlumb:null)||(mt&&mt.parentNode&&mt.parentNode.parentNode?mt.parentNode.parentNode._jsPlumb:null);if(Dt){Dt.fire(ct,Dt,ht);var wt=Ct&&m[Ct+ct]||ct;e.fire(wt,Dt.component||Dt,ht)}},Y=function(ct,ht,Ct){p.push([ct,Ct]),e.on(r,ct,ht,Ct)},z=function(ct){Y(ct,".jtk-connector",function(ht){k(ct,ht)}),Y(ct,".jtk-endpoint",function(ht){k(ct,ht,"endpoint")}),Y(ct,".jtk-overlay",function(ht){k(ct,ht)})},et=0;et<it.length;et++)z(it[et]);for(var dt in y){var at=y[dt].el;at.parentNode===S&&(S.removeChild(at),r.appendChild(at))}},this.getContainer=function(){return r},this.bind=function(s,S){s==="ready"&&_?S():L.apply(e,[s,S])},e.importDefaults=function(s){for(var S in s)e.Defaults[S]=s[S];return s.Container&&e.setContainer(s.Container),e},e.restoreDefaults=function(){return e.Defaults=C.extend({},H),e};var u=null,_=!1,x=[],h={},j={},y={},w={},g={},E=!1,U=[],R=!1,B=null,n=this.Defaults.Scope,o=1,t=function(){return""+o++},d=function(s,S){r?r.appendChild(s):S?this.getElement(S).appendChild(s):this.appendToRoot(s)}.bind(this),v=function(s,S,m,k){var Y={c:[],e:[]};if(!R&&(s=e.getElement(s),s!=null)){var z=lt(s),et=s.querySelectorAll(".jtk-managed");m==null&&(m=jsPlumbUtil.uuid()),At({elId:z,offset:S,recalc:!1,timestamp:m});for(var dt=0;dt<et.length;dt++)At({elId:et[dt].getAttribute("id"),recalc:!0,timestamp:m});var at=e.router.redraw(z,S,m,null,k);if(Array.prototype.push.apply(Y.c,at.c),Array.prototype.push.apply(Y.e,at.e),et)for(var ct=0;ct<et.length;ct++)at=e.router.redraw(et[ct].getAttribute("id"),null,m,null,k,!0),Array.prototype.push.apply(Y.c,at.c),Array.prototype.push.apply(Y.e,at.e)}return Y},F=function(s){return j[s]},I=function(s,S){for(var m=s.scope.split(/\s/),k=S.scope.split(/\s/),Y=0;Y<m.length;Y++)for(var z=0;z<k.length;z++)if(k[z]===m[Y])return!0;return!1},X=function(s,S){var m=C.extend({},s);for(var k in S)S[k]&&(m[k]=S[k]);return m},N=function(s,S){var m=C.extend({},s);if(S&&C.extend(m,S),m.source&&(m.source.endpoint?m.sourceEndpoint=m.source:m.source=e.getElement(m.source)),m.target&&(m.target.endpoint?m.targetEndpoint=m.target:m.target=e.getElement(m.target)),s.uuids&&(m.sourceEndpoint=F(s.uuids[0]),m.targetEndpoint=F(s.uuids[1])),m.sourceEndpoint&&m.sourceEndpoint.isFull()){f.log(e,"could not add connection; source endpoint is full");return}if(m.targetEndpoint&&m.targetEndpoint.isFull()){f.log(e,"could not add connection; target endpoint is full");return}if(!m.type&&m.sourceEndpoint&&(m.type=m.sourceEndpoint.connectionType),m.sourceEndpoint&&m.sourceEndpoint.connectorOverlays){m.overlays=m.overlays||[];for(var k=0,Y=m.sourceEndpoint.connectorOverlays.length;k<Y;k++)m.overlays.push(m.sourceEndpoint.connectorOverlays[k])}m.sourceEndpoint&&m.sourceEndpoint.scope&&(m.scope=m.sourceEndpoint.scope),!m["pointer-events"]&&m.sourceEndpoint&&m.sourceEndpoint.connectorPointerEvents&&(m["pointer-events"]=m.sourceEndpoint.connectorPointerEvents);var z=function(dt,at,ct){var ht=X(at,{anchor:m.anchors?m.anchors[ct]:m.anchor,endpoint:m.endpoints?m.endpoints[ct]:m.endpoint,paintStyle:m.endpointStyles?m.endpointStyles[ct]:m.endpointStyle,hoverPaintStyle:m.endpointHoverStyles?m.endpointHoverStyles[ct]:m.endpointHoverStyle});return e.addEndpoint(dt,ht)},et=function(dt,at,ct,ht){if(m[dt]&&!m[dt].endpoint&&!m[dt+"Endpoint"]&&!m.newConnection){var Ct=lt(m[dt]),mt=ct[Ct];if(mt=mt?mt[ht]:null,mt){if(!mt.enabled)return!1;var Dt=C.extend({},mt.def);delete Dt.label;var wt=mt.endpoint!=null&&mt.endpoint._jsPlumb?mt.endpoint:z(m[dt],Dt,at);if(wt.isFull())return!1;m[dt+"Endpoint"]=wt,!m.scope&&Dt.scope&&(m.scope=Dt.scope),mt.uniqueEndpoint?mt.endpoint?wt.finalEndpoint=mt.endpoint:(mt.endpoint=wt,wt.setDeleteOnEmpty(!1)):wt.setDeleteOnEmpty(!0),at===0&&mt.def.connectorOverlays&&(m.overlays=m.overlays||[],Array.prototype.push.apply(m.overlays,mt.def.connectorOverlays))}}};if(et("source",0,this.sourceEndpointDefinitions,m.type||"default")!==!1&&et("target",1,this.targetEndpointDefinitions,m.type||"default")!==!1)return m.sourceEndpoint&&m.targetEndpoint&&(I(m.sourceEndpoint,m.targetEndpoint)||(m=null)),m}.bind(e),W=function(s){var S=e.Defaults.ConnectionType||e.getDefaultConnectionType();s._jsPlumb=e,s.newConnection=W,s.newEndpoint=st,s.endpointsByUUID=j,s.endpointsByElement=h,s.finaliseConnection=ot,s.id="con_"+t();var m=new S(s);return m.isDetachable()&&(m.endpoints[0].initDraggable("_jsPlumbSource"),m.endpoints[1].initDraggable("_jsPlumbTarget")),m},ot=e.finaliseConnection=function(s,S,m,k){if(S=S||{},s.suspendedEndpoint||x.push(s),s.pending=null,s.endpoints[0].isTemporarySource=!1,k!==!1&&e.router.newConnection(s),v(s.source),!S.doNotFireConnectionEvent&&S.fireEvent!==!1){var Y={connection:s,source:s.source,target:s.target,sourceId:s.sourceId,targetId:s.targetId,sourceEndpoint:s.endpoints[0],targetEndpoint:s.endpoints[1]};e.fire("connection",Y,m)}},st=function(s,S){var m=e.Defaults.EndpointType||C.Endpoint,k=C.extend({},s);k._jsPlumb=e,k.newConnection=W,k.newEndpoint=st,k.endpointsByUUID=j,k.endpointsByElement=h,k.fireDetachEvent=$,k.elementId=S||lt(k.source);var Y=new m(k);return Y.id="ep_"+t(),se(k.elementId,k.source),C.headless||e.getDragManager().endpointAdded(k.source,S),Y},Q=function(s,S,m){var k=h[s];if(k&&k.length)for(var Y=0,z=k.length;Y<z;Y++){for(var et=0,dt=k[Y].connections.length;et<dt;et++){var at=S(k[Y].connections[et]);if(at)return}m&&m(k[Y])}},rt=function(s,S,m){S=S==="block";var k=null;m&&(k=function(z){z.setVisible(S,!0,!0)});var Y=P(s);Q(Y.id,function(z){if(S&&m){var et=z.sourceId===Y.id?1:0;z.endpoints[et].isVisible()&&z.setVisible(!0)}else z.setVisible(S)},k)},pt=function(s,S){var m=null;S&&(m=function(k){var Y=k.isVisible();k.setVisible(!Y)}),Q(s,function(k){var Y=k.isVisible();k.setVisible(!Y)},m)},ft=function(s){var S=w[s];return S?{o:S,s:U[s]}:At({elId:s})},lt=function(s,S,m){if(f.isString(s))return s;if(s==null)return null;var k=e.getAttribute(s,"id");return(!k||k==="undefined")&&(arguments.length===2&&arguments[1]!==void 0?k=S:(arguments.length===1||arguments.length===3&&!arguments[2])&&(k="jsPlumb_"+T+"_"+t()),m||e.setAttribute(s,"id",k)),k};this.setConnectionBeingDragged=function(s){E=s},this.isConnectionBeingDragged=function(){return E},this.getManagedElements=function(){return y},this.connectorClass="jtk-connector",this.connectorOutlineClass="jtk-connector-outline",this.connectedClass="jtk-connected",this.hoverClass="jtk-hover",this.endpointClass="jtk-endpoint",this.endpointConnectedClass="jtk-endpoint-connected",this.endpointFullClass="jtk-endpoint-full",this.endpointDropAllowedClass="jtk-endpoint-drop-allowed",this.endpointDropForbiddenClass="jtk-endpoint-drop-forbidden",this.overlayClass="jtk-overlay",this.draggingClass="jtk-dragging",this.elementDraggingClass="jtk-element-dragging",this.sourceElementDraggingClass="jtk-source-element-dragging",this.targetElementDraggingClass="jtk-target-element-dragging",this.endpointAnchorClassPrefix="jtk-endpoint-anchor",this.hoverSourceClass="jtk-source-hover",this.hoverTargetClass="jtk-target-hover",this.dragSelectClass="jtk-drag-select",this.Anchors={},this.Connectors={svg:{}},this.Endpoints={svg:{}},this.Overlays={svg:{}},this.ConnectorRenderers={},this.SVG="svg",this.addEndpoint=function(s,S,m){m=m||{};var k=C.extend({},m);C.extend(k,S),k.endpoint=k.endpoint||e.Defaults.Endpoint,k.paintStyle=k.paintStyle||e.Defaults.EndpointStyle;for(var Y=[],z=f.isArray(s)||s.length!=null&&!f.isString(s)?s:[s],et=0,dt=z.length;et<dt;et++){k.source=e.getElement(z[et]),ee(k.source);var at=lt(k.source),ct=st(k,at),ht=se(at,k.source,null,!R).info.o;f.addToList(h,at,ct),R||ct.paint({anchorLoc:ct.anchor.compute({xy:[ht.left,ht.top],wh:U[at],element:ct,timestamp:B,rotation:this.getRotation(at)}),timestamp:B}),Y.push(ct)}return Y.length===1?Y[0]:Y},this.addEndpoints=function(s,S,m){for(var k=[],Y=0,z=S.length;Y<z;Y++){var et=e.addEndpoint(s,S[Y],m);f.isArray(et)?Array.prototype.push.apply(k,et):k.push(et)}return k},this.animate=function(s,S,m){if(!this.animationSupported)return!1;m=m||{};var k=e.getElement(s),Y=lt(k),z=C.animEvents.step,et=C.animEvents.complete;m[z]=f.wrap(m[z],function(){e.revalidate(Y)}),m[et]=f.wrap(m[et],function(){e.revalidate(Y)}),e.doAnimate(k,S,m)},this.checkCondition=function(s,S){var m=e.getListener(s),k=!0;if(m&&m.length>0){var Y=Array.prototype.slice.call(arguments,1);try{for(var z=0,et=m.length;z<et;z++)k=k&&m[z].apply(m[z],Y)}catch(dt){f.log(e,"cannot check condition ["+s+"]"+dt)}}return k},this.connect=function(s,S){var m=N(s,S),k;if(m){if(m.source==null&&m.sourceEndpoint==null){f.log("Cannot establish connection - source does not exist");return}if(m.target==null&&m.targetEndpoint==null){f.log("Cannot establish connection - target does not exist");return}ee(m.source),k=W(m),ot(k,m)}return k};var bt=[{el:"source",elId:"sourceId",epDefs:"sourceEndpointDefinitions"},{el:"target",elId:"targetId",epDefs:"targetEndpointDefinitions"}],gt=function(s,S,m,k){var Y,z=bt[m],et=s[z.elId];s[z.el];var dt,at,ct=s.endpoints[m],ht={index:m,originalSourceId:m===0?et:s.sourceId,newSourceId:s.sourceId,originalTargetId:m===1?et:s.targetId,newTargetId:s.targetId,connection:s};if(S.constructor===C.Endpoint)Y=S,Y.addConnection(s),S=Y.element;else if(dt=lt(S),at=this[z.epDefs][dt],dt===s[z.elId])Y=null;else if(at)for(var Ct in at){if(!at[Ct].enabled)return;Y=at[Ct].endpoint!=null&&at[Ct].endpoint._jsPlumb?at[Ct].endpoint:this.addEndpoint(S,at[Ct].def),at[Ct].uniqueEndpoint&&(at[Ct].endpoint=Y),Y.addConnection(s)}else Y=s.makeEndpoint(m===0,S,dt);return Y!=null&&(ct.detachFromConnection(s),s.endpoints[m]=Y,s[z.el]=Y.element,s[z.elId]=Y.elementId,ht[m===0?"newSourceId":"newTargetId"]=Y.elementId,q(ht),k||s.repaint()),ht.element=S,ht}.bind(this);this.setSource=function(s,S,m){var k=gt(s,S,0,m);this.router.sourceOrTargetChanged(k.originalSourceId,k.newSourceId,s,k.el,0)},this.setTarget=function(s,S,m){var k=gt(s,S,1,m);this.router.sourceOrTargetChanged(k.originalTargetId,k.newTargetId,s,k.el,1)},this.deleteEndpoint=function(s,S,m){var k=typeof s=="string"?j[s]:s;return k&&e.deleteObject({endpoint:k,dontUpdateHover:S,deleteAttachedObjects:m}),e},this.deleteEveryEndpoint=function(){var s=e.setSuspendDrawing(!0);for(var S in h){var m=h[S];if(m&&m.length)for(var k=0,Y=m.length;k<Y;k++)e.deleteEndpoint(m[k],!0)}h={},y={},j={},w={},g={},e.router.reset();var z=e.getDragManager();return z&&z.reset(),s||e.setSuspendDrawing(!1),e};var $=function(s,S,m){var k=e.Defaults.ConnectionType||e.getDefaultConnectionType(),Y=s.constructor===k,z=Y?{connection:s,source:s.source,target:s.target,sourceId:s.sourceId,targetId:s.targetId,sourceEndpoint:s.endpoints[0],targetEndpoint:s.endpoints[1]}:s;S&&e.fire("connectionDetached",z,m),e.fire("internal.connectionDetached",z,m),e.router.connectionDetached(z)},q=e.fireMoveEvent=function(s,S){e.fire("connectionMoved",s,S)};this.unregisterEndpoint=function(s){s._jsPlumb.uuid&&(j[s._jsPlumb.uuid]=null),e.router.deleteEndpoint(s);for(var S in h){var m=h[S];if(m){for(var k=[],Y=0,z=m.length;Y<z;Y++)m[Y]!==s&&k.push(m[Y]);h[S]=k}h[S].length<1&&delete h[S]}};var J="isDetachAllowed",ut="beforeDetach",vt="checkCondition";this.deleteConnection=function(s,S){return s!=null&&(S=S||{},S.force||f.functionChain(!0,!1,[[s.endpoints[0],J,[s]],[s.endpoints[1],J,[s]],[s,J,[s]],[e,vt,[ut,s]]]))?(s.setHover(!1),$(s,!s.pending&&S.fireEvent!==!1,S.originalEvent),s.endpoints[0].detachFromConnection(s),s.endpoints[1].detachFromConnection(s),f.removeWithFunction(x,function(m){return s.id===m.id}),s.cleanup(),s.destroy(),!0):!1},this.deleteEveryConnection=function(s){s=s||{};var S=x.length,m=0;return e.batch(function(){for(var k=0;k<S;k++)m+=e.deleteConnection(x[0],s)?1:0}),m},this.deleteConnectionsForElement=function(s,S){S=S||{},s=e.getElement(s);var m=lt(s),k=h[m];if(k&&k.length)for(var Y=0,z=k.length;Y<z;Y++)k[Y].deleteEveryConnection(S);return e},this.deleteObject=function(s){var S={endpoints:{},connections:{},endpointCount:0,connectionCount:0},m=s.deleteAttachedObjects!==!1,k=function(ht){ht!=null&&S.connections[ht.id]==null&&(!s.dontUpdateHover&&ht._jsPlumb!=null&&ht.setHover(!1),S.connections[ht.id]=ht,S.connectionCount++)},Y=function(ht){if(ht!=null&&S.endpoints[ht.id]==null&&(!s.dontUpdateHover&&ht._jsPlumb!=null&&ht.setHover(!1),S.endpoints[ht.id]=ht,S.endpointCount++,m))for(var Ct=0;Ct<ht.connections.length;Ct++){var mt=ht.connections[Ct];k(mt)}};s.connection?k(s.connection):Y(s.endpoint);for(var z in S.connections){var et=S.connections[z];if(et._jsPlumb){f.removeWithFunction(x,function(ht){return et.id===ht.id}),$(et,s.fireEvent===!1?!1:!et.pending,s.originalEvent);var dt=s.deleteAttachedObjects==null?null:!s.deleteAttachedObjects;et.endpoints[0].detachFromConnection(et,null,dt),et.endpoints[1].detachFromConnection(et,null,dt),et.cleanup(!0),et.destroy(!0)}}for(var at in S.endpoints){var ct=S.endpoints[at];ct._jsPlumb&&(e.unregisterEndpoint(ct),ct.cleanup(!0),ct.destroy(!0))}return S};var St=function(s,S,m,k){for(var Y=0,z=s.length;Y<z;Y++)s[Y][S].apply(s[Y],m);return k(s)},kt=function(s,S,m){for(var k=[],Y=0,z=s.length;Y<z;Y++)k.push([s[Y][S].apply(s[Y],m),s[Y]]);return k},It=function(s,S,m){return function(){return St(s,S,arguments,m)}},Nt=function(s,S){return function(){return kt(s,S,arguments)}},Gt=function(s,S){var m=[];if(s)if(typeof s=="string"){if(s==="*")return s;m.push(s)}else if(S)m=s;else if(s.length)for(var k=0,Y=s.length;k<Y;k++)m.push(P(s[k]).id);else m.push(P(s).id);return m},Ut=function(s,S,m){return s==="*"?!0:s.length>0?s.indexOf(S)!==-1:!m};this.getConnections=function(s,S){s?s.constructor===String&&(s={scope:s}):s={};for(var m=s.scope||e.getDefaultScope(),k=Gt(m,!0),Y=Gt(s.source),z=Gt(s.target),et=!S&&k.length>1?{}:[],dt=function(Dt,wt){if(!S&&k.length>1){var Tt=et[Dt];Tt==null&&(Tt=et[Dt]=[]),Tt.push(wt)}else et.push(wt)},at=0,ct=x.length;at<ct;at++){var ht=x[at],Ct=ht.proxies&&ht.proxies[0]?ht.proxies[0].originalEp.elementId:ht.sourceId,mt=ht.proxies&&ht.proxies[1]?ht.proxies[1].originalEp.elementId:ht.targetId;Ut(k,ht.scope)&&Ut(Y,Ct)&&Ut(z,mt)&&dt(ht.scope,ht)}return et};var ue=function(s,S){return function(m){for(var k=0,Y=s.length;k<Y;k++)m(s[k]);return S(s)}},he=function(s){return function(S){return s[S]}},ce=function(s,S){var m={length:s.length,each:ue(s,S),get:he(s)},k=["setHover","removeAllOverlays","setLabel","addClass","addOverlay","removeOverlay","removeOverlays","showOverlay","hideOverlay","showOverlays","hideOverlays","setPaintStyle","setHoverPaintStyle","setSuspendEvents","setParameter","setParameters","setVisible","repaint","addType","toggleType","removeType","removeClass","setType","bind","unbind"],Y=["getLabel","getOverlay","isHover","getParameter","getParameters","getPaintStyle","getHoverPaintStyle","isVisible","hasType","getType","isSuspendEvents"],z,et;for(z=0,et=k.length;z<et;z++)m[k[z]]=It(s,k[z],S);for(z=0,et=Y.length;z<et;z++)m[Y[z]]=Nt(s,Y[z]);return m},Ht=function(s){var S=ce(s,Ht);return C.extend(S,{setDetachable:It(s,"setDetachable",Ht),setReattach:It(s,"setReattach",Ht),setConnector:It(s,"setConnector",Ht),delete:function(){for(var m=0,k=s.length;m<k;m++)e.deleteConnection(s[m])},isDetachable:Nt(s,"isDetachable"),isReattach:Nt(s,"isReattach")})},te=function(s){var S=ce(s,te);return C.extend(S,{setEnabled:It(s,"setEnabled",te),setAnchor:It(s,"setAnchor",te),isEnabled:Nt(s,"isEnabled"),deleteEveryConnection:function(){for(var m=0,k=s.length;m<k;m++)s[m].deleteEveryConnection()},delete:function(){for(var m=0,k=s.length;m<k;m++)e.deleteEndpoint(s[m])}})};this.select=function(s){return s=s||{},s.scope=s.scope||"*",Ht(s.connections||e.getConnections(s,!0))},this.selectEndpoints=function(s){s=s||{},s.scope=s.scope||"*";var S=!s.element&&!s.source&&!s.target,m=S?"*":Gt(s.element),k=S?"*":Gt(s.source),Y=S?"*":Gt(s.target),z=Gt(s.scope,!0),et=[];for(var dt in h){var at=Ut(m,dt,!0),ct=Ut(k,dt,!0),ht=k!=="*",Ct=Ut(Y,dt,!0),mt=Y!=="*";if(at||ct||Ct)t:for(var Dt=0,wt=h[dt].length;Dt<wt;Dt++){var Tt=h[dt][Dt];if(Ut(z,Tt.scope,!0)){var fe=ht&&k.length>0&&!Tt.isSource,de=mt&&Y.length>0&&!Tt.isTarget;if(fe||de)continue t;et.push(Tt)}}}return te(et)},this.getAllConnections=function(){return x},this.getDefaultScope=function(){return n},this.getEndpoint=F,this.getEndpoints=function(s){return h[P(s).id]||[]},this.getDefaultEndpointType=function(){return C.Endpoint},this.getDefaultConnectionType=function(){return C.Connection},this.getId=lt,this.draw=v,this.info=P,this.appendElement=d;var Bt=!1;this.isHoverSuspended=function(){return Bt},this.setHoverSuspended=function(s){Bt=s},this.hide=function(s,S){return rt(s,"none",S),e},this.idstamp=t;var ee=function(s){if(!r&&s){var S=e.getElement(s);S.offsetParent&&e.setContainer(S.offsetParent)}},ie=function(){e.Defaults.Container&&e.setContainer(e.Defaults.Container)},se=e.manage=function(s,S,m,k){return y[s]?k&&(y[s].info=At({elId:s,timestamp:B,recalc:!0})):(y[s]={el:S,endpoints:[],connections:[],rotation:0},y[s].info=At({elId:s,timestamp:B}),e.addClass(S,"jtk-managed"),m||e.fire("manageElement",{id:s,info:y[s].info,el:S})),y[s]};this.unmanage=function(s){if(y[s]){var S=y[s].el;e.removeClass(S,"jtk-managed"),delete y[s],e.fire("unmanageElement",{id:s,el:S})}},this.rotate=function(s,S,m){return y[s]&&(y[s].rotation=S,y[s].el.style.transform="rotate("+S+"deg)",y[s].el.style.transformOrigin="center center",m!==!0)?this.revalidate(s):{c:[],e:[]}},this.getRotation=function(s){return y[s]&&y[s].rotation||0};var At=function(s){var S=s.timestamp,m=s.recalc,k=s.offset,Y=s.elId,z;return R&&!S&&(S=B),!m&&S&&S===g[Y]?{o:s.offset||w[Y],s:U[Y]}:(m||!k&&w[Y]==null?(z=y[Y]?y[Y].el:null,z!=null&&(U[Y]=e.getSize(z),w[Y]=e.getOffset(z),g[Y]=S)):(w[Y]=k||w[Y],U[Y]==null&&(z=y[Y].el,z!=null&&(U[Y]=e.getSize(z))),g[Y]=S),w[Y]&&!w[Y].right&&(w[Y].right=w[Y].left+U[Y][0],w[Y].bottom=w[Y].top+U[Y][1],w[Y].width=U[Y][0],w[Y].height=U[Y][1],w[Y].centerx=w[Y].left+w[Y].width/2,w[Y].centery=w[Y].top+w[Y].height/2),{o:w[Y],s:U[Y]})};this.updateOffset=At,this.init=function(){_||(ie(),e.router=new Z.jsPlumb.DefaultRouter(e),e.anchorManager=e.router.anchorManager,_=!0,e.fire("ready",e))}.bind(this),this.log=u,this.jsPlumbUIComponent=l,this.makeAnchor=function(){var s,S=function(et,dt){if(Z.jsPlumb.Anchors[et])return new Z.jsPlumb.Anchors[et](dt);if(!e.Defaults.DoNotThrowErrors)throw{msg:"jsPlumb: unknown anchor type '"+et+"'"}};if(arguments.length===0)return null;var m=arguments[0],k=arguments[1],Y=null;if(m.compute&&m.getOrientation)return m;if(typeof m=="string")Y=S(arguments[0],{elementId:k,jsPlumbInstance:e});else if(f.isArray(m))if(f.isArray(m[0])||f.isString(m[0]))m.length===2&&f.isObject(m[1])?f.isString(m[0])?(s=Z.jsPlumb.extend({elementId:k,jsPlumbInstance:e},m[1]),Y=S(m[0],s)):(s=Z.jsPlumb.extend({elementId:k,jsPlumbInstance:e,anchors:m[0]},m[1]),Y=new Z.jsPlumb.DynamicAnchor(s)):Y=new C.DynamicAnchor({anchors:m,selector:null,elementId:k,jsPlumbInstance:e});else{var z={x:m[0],y:m[1],orientation:m.length>=4?[m[2],m[3]]:[0,0],offsets:m.length>=6?[m[4],m[5]]:[0,0],elementId:k,jsPlumbInstance:e,cssClass:m.length===7?m[6]:null};Y=new Z.jsPlumb.Anchor(z),Y.clone=function(){return new Z.jsPlumb.Anchor(z)}}return Y.id||(Y.id="anchor_"+t()),Y},this.makeAnchors=function(s,S,m){for(var k=[],Y=0,z=s.length;Y<z;Y++)typeof s[Y]=="string"?k.push(Z.jsPlumb.Anchors[s[Y]]({elementId:S,jsPlumbInstance:m})):f.isArray(s[Y])&&k.push(e.makeAnchor(s[Y],S,m));return k},this.makeDynamicAnchor=function(s,S){return new Z.jsPlumb.DynamicAnchor({anchors:s,selector:S,elementId:null,jsPlumbInstance:e})},this.targetEndpointDefinitions={},this.sourceEndpointDefinitions={};var Yt=function(s,S,m,k,Y){for(var z=s.target||s.srcElement,et=!1,dt=k.getSelector(S,m),at=0;at<dt.length;at++)if(dt[at]===z){et=!0;break}return Y?!et:et},Ot=function(s,S,m,k,Y){var z=new l(S),et=S._jsPlumb.EndpointDropHandler({jsPlumb:e,enabled:function(){return s.def.enabled},isFull:function(){var at=e.select({target:s.id}).length;return s.def.maxConnections>0&&at>=s.def.maxConnections},element:s.el,elementId:s.id,isSource:k,isTarget:Y,addClass:function(at){e.addClass(s.el,at)},removeClass:function(at){e.removeClass(s.el,at)},onDrop:function(at){var ct=at.endpoints[0];ct.anchor.locked=!1},isDropAllowed:function(){return z.isDropAllowed.apply(z,arguments)},isRedrop:function(at){return at.suspendedElement!=null&&at.suspendedEndpoint!=null&&at.suspendedEndpoint.element===s.el},getEndpoint:function(at){var ct=s.def.endpoint;if(ct==null||ct._jsPlumb==null){var ht=e.deriveEndpointAndAnchorSpec(at.getType().join(" "),!0),Ct=ht.endpoints?Z.jsPlumb.extend(S,{endpoint:s.def.def.endpoint||ht.endpoints[1]}):S;ht.anchors&&(Ct=Z.jsPlumb.extend(Ct,{anchor:s.def.def.anchor||ht.anchors[1]})),ct=e.addEndpoint(s.el,Ct),ct._mtNew=!0}if(S.uniqueEndpoint&&(s.def.endpoint=ct),ct.setDeleteOnEmpty(!0),at.isDetachable()&&ct.initDraggable(),ct.anchor.positionFinder!=null){var mt=e.getUIPosition(arguments,e.getZoom()),Dt=e.getOffset(s.el),wt=e.getSize(s.el),Tt=mt==null?[0,0]:ct.anchor.positionFinder(mt,Dt,wt,ct.anchor.constructorParams);ct.anchor.x=Tt[0],ct.anchor.y=Tt[1]}return ct},maybeCleanup:function(at){at._mtNew&&at.connections.length===0?e.deleteObject({endpoint:at}):delete at._mtNew}}),dt=Z.jsPlumb.dragEvents.drop;return m.scope=m.scope||S.scope||e.Defaults.Scope,m[dt]=f.wrap(m[dt],et,!0),m.rank=S.rank||0,Y&&(m[Z.jsPlumb.dragEvents.over]=function(){return!0}),S.allowLoopback===!1&&(m.canDrop=function(at){var ct=at.getDragElement()._jsPlumbRelatedElement;return ct!==s.el}),e.initDroppable(s.el,m,"internal"),et};this.makeTarget=function(s,S,m){var k=Z.jsPlumb.extend({_jsPlumb:this},m);Z.jsPlumb.extend(k,S);for(var Y=k.maxConnections||-1,z=function(ct){var ht=P(ct),Ct=ht.id,mt=Z.jsPlumb.extend({},k.dropOptions||{}),Dt=k.connectionType||"default";this.targetEndpointDefinitions[Ct]=this.targetEndpointDefinitions[Ct]||{},ee(Ct),ht.el._isJsPlumbGroup&&mt.rank==null&&(mt.rank=-1);var wt={def:Z.jsPlumb.extend({},k),uniqueEndpoint:k.uniqueEndpoint,maxConnections:Y,enabled:!0};k.createEndpoint&&(wt.uniqueEndpoint=!0,wt.endpoint=e.addEndpoint(ct,wt.def),wt.endpoint.setDeleteOnEmpty(!1)),ht.def=wt,this.targetEndpointDefinitions[Ct][Dt]=wt,Ot(ht,k,mt,k.isSource===!0,!0),ht.el._katavorioDrop[ht.el._katavorioDrop.length-1].targetDef=wt}.bind(this),et=s.length&&s.constructor!==String?s:[s],dt=0,at=et.length;dt<at;dt++)z(et[dt]);return this},this.unmakeTarget=function(s,S){var m=P(s);return e.destroyDroppable(m.el,"internal"),S||delete this.targetEndpointDefinitions[m.id],this},this.makeSource=function(s,S,m){var k=Z.jsPlumb.extend({_jsPlumb:this},m);Z.jsPlumb.extend(k,S);var Y=k.connectionType||"default",z=e.deriveEndpointAndAnchorSpec(Y);k.endpoint=k.endpoint||z.endpoints[0],k.anchor=k.anchor||z.anchors[0];for(var et=k.maxConnections||-1,dt=k.onMaxConnections,at=function(mt){var Dt=mt.id,wt=this.getElement(mt.el);this.sourceEndpointDefinitions[Dt]=this.sourceEndpointDefinitions[Dt]||{},ee(Dt);var Tt={def:Z.jsPlumb.extend({},k),uniqueEndpoint:k.uniqueEndpoint,maxConnections:et,enabled:!0};k.createEndpoint&&(Tt.uniqueEndpoint=!0,Tt.endpoint=e.addEndpoint(s,Tt.def),Tt.endpoint.setDeleteOnEmpty(!1)),this.sourceEndpointDefinitions[Dt][Y]=Tt,mt.def=Tt;var fe=Z.jsPlumb.dragEvents.stop,de=Z.jsPlumb.dragEvents.drag,Wt=Z.jsPlumb.extend({},k.dragOptions||{}),Se=Wt.drag,xe=Wt.stop,Mt=null,pe=!1;Wt.scope=Wt.scope||k.scope,Wt[de]=f.wrap(Wt[de],function(){Se&&Se.apply(this,arguments),pe=!1}),Wt[fe]=f.wrap(Wt[fe],function(){if(xe&&xe.apply(this,arguments),this.currentlyDragging=!1,Mt._jsPlumb!=null){var Ft=k.anchor||this.Defaults.Anchor,Lt=Mt.anchor,ge=Mt.connections[0],Kt=this.makeAnchor(Ft,Dt,this),re=Mt.element;if(Kt.positionFinder!=null){var Vt=e.getOffset(re),$t=this.getSize(re),ve={left:Vt.left+Lt.x*$t[0],top:Vt.top+Lt.y*$t[1]},oe=Kt.positionFinder(ve,Vt,$t,Kt.constructorParams);Kt.x=oe[0],Kt.y=oe[1]}Mt.setAnchor(Kt,!0),Mt.repaint(),this.repaint(Mt.elementId),ge!=null&&this.repaint(ge.targetId)}}.bind(this));var we=function(Ft){if(!(Ft.which===3||Ft.button===2)){Dt=this.getId(this.getElement(mt.el));var Lt=this.sourceEndpointDefinitions[Dt][Y];if(Lt.enabled){if(k.filter){var ge=f.isString(k.filter)?Yt(Ft,mt.el,k.filter,this,k.filterExclude):k.filter(Ft,mt.el);if(ge===!1)return}var Kt=this.select({source:Dt}).length;if(Lt.maxConnections>=0&&Kt>=Lt.maxConnections)return dt&&dt({element:mt.el,maxConnections:et},Ft),!1;var re=Z.jsPlumb.getPositionOnElement(Ft,wt,G),Vt={};Z.jsPlumb.extend(Vt,Lt.def),Vt.isTemporarySource=!0,Vt.anchor=[re[0],re[1],0,0],Vt.dragOptions=Wt,Lt.def.scope&&(Vt.scope=Lt.def.scope),Mt=this.addEndpoint(Dt,Vt),pe=!0,Mt.setDeleteOnEmpty(!0),Lt.uniqueEndpoint&&(Lt.endpoint?Mt.finalEndpoint=Lt.endpoint:(Lt.endpoint=Mt,Mt.setDeleteOnEmpty(!1)));var $t=function(){e.off(Mt.canvas,"mouseup",$t),e.off(mt.el,"mouseup",$t),pe&&(pe=!1,e.deleteEndpoint(Mt))};e.on(Mt.canvas,"mouseup",$t),e.on(mt.el,"mouseup",$t);var ve={};if(Lt.def.extract)for(var oe in Lt.def.extract){var Ae=(Ft.srcElement||Ft.target).getAttribute(oe);Ae&&(ve[Lt.def.extract[oe]]=Ae)}e.trigger(Mt.canvas,"mousedown",Ft,ve),f.consume(Ft)}}}.bind(this);this.on(mt.el,"mousedown",we),Tt.trigger=we,k.filter&&(f.isString(k.filter)||f.isFunction(k.filter))&&e.setDragFilter(mt.el,k.filter);var Me=Z.jsPlumb.extend({},k.dropOptions||{});Ot(mt,k,Me,!0,k.isTarget===!0)}.bind(this),ct=s.length&&s.constructor!==String?s:[s],ht=0,Ct=ct.length;ht<Ct;ht++)at(P(ct[ht]));return this},this.unmakeSource=function(s,S,m){var k=P(s);e.destroyDroppable(k.el,"internal");var Y=this.sourceEndpointDefinitions[k.id];if(Y){for(var z in Y)if(S==null||S===z){var et=Y[z].trigger;et&&e.off(k.el,"mousedown",et),m||delete this.sourceEndpointDefinitions[k.id][z]}}return this},this.unmakeEverySource=function(){for(var s in this.sourceEndpointDefinitions)e.unmakeSource(s,null,!0);return this.sourceEndpointDefinitions={},this};var Xt=function(s,S,m){S=f.isArray(S)?S:[S];var k=lt(s);m=m||"default";for(var Y=0;Y<S.length;Y++){var z=this[S[Y]][k];if(z&&z[m])return z[m].def.scope||this.Defaults.Scope}}.bind(this),qt=function(s,S,m,k){m=f.isArray(m)?m:[m];var Y=lt(s);k=k||"default";for(var z=0;z<m.length;z++){var et=this[m[z]][Y];et&&et[k]&&(et[k].def.scope=S)}}.bind(this);this.getScope=function(s,S){return Xt(s,["sourceEndpointDefinitions","targetEndpointDefinitions"])},this.getSourceScope=function(s){return Xt(s,"sourceEndpointDefinitions")},this.getTargetScope=function(s){return Xt(s,"targetEndpointDefinitions")},this.setScope=function(s,S,m){this.setSourceScope(s,S,m),this.setTargetScope(s,S,m)},this.setSourceScope=function(s,S,m){qt(s,S,"sourceEndpointDefinitions",m),this.setDragScope(s,S)},this.setTargetScope=function(s,S,m){qt(s,S,"targetEndpointDefinitions",m),this.setDropScope(s,S)},this.unmakeEveryTarget=function(){for(var s in this.targetEndpointDefinitions)e.unmakeTarget(s,!0);return this.targetEndpointDefinitions={},this};var tt=function(s,S,m,k,Y){var z=s==="source"?this.sourceEndpointDefinitions:this.targetEndpointDefinitions,et,dt,at;if(Y=Y||"default",S.length&&!f.isString(S)){et=[];for(var ct=0,ht=S.length;ct<ht;ct++)dt=P(S[ct]),z[dt.id]&&z[dt.id][Y]&&(et[ct]=z[dt.id][Y].enabled,at=k?!et[ct]:m,z[dt.id][Y].enabled=at,e[at?"removeClass":"addClass"](dt.el,"jtk-"+s+"-disabled"))}else{dt=P(S);var Ct=dt.id;z[Ct]&&z[Ct][Y]&&(et=z[Ct][Y].enabled,at=k?!et:m,z[Ct][Y].enabled=at,e[at?"removeClass":"addClass"](dt.el,"jtk-"+s+"-disabled"))}return et}.bind(this),_t=function(s,S){if(s!=null){if(f.isString(s)||!s.length)return S.apply(this,[s]);if(s.length)return S.apply(this,[s[0]])}}.bind(this);this.toggleSourceEnabled=function(s,S){return tt("source",s,null,!0,S),this.isSourceEnabled(s,S)},this.setSourceEnabled=function(s,S,m){return tt("source",s,S,null,m)},this.isSource=function(s,S){return S=S||"default",_t(s,function(m){var k=this.sourceEndpointDefinitions[P(m).id];return k!=null&&k[S]!=null}.bind(this))},this.isSourceEnabled=function(s,S){return S=S||"default",_t(s,function(m){var k=this.sourceEndpointDefinitions[P(m).id];return k&&k[S]&&k[S].enabled===!0}.bind(this))},this.toggleTargetEnabled=function(s,S){return tt("target",s,null,!0,S),this.isTargetEnabled(s,S)},this.isTarget=function(s,S){return S=S||"default",_t(s,function(m){var k=this.targetEndpointDefinitions[P(m).id];return k!=null&&k[S]!=null}.bind(this))},this.isTargetEnabled=function(s,S){return S=S||"default",_t(s,function(m){var k=this.targetEndpointDefinitions[P(m).id];return k&&k[S]&&k[S].enabled===!0}.bind(this))},this.setTargetEnabled=function(s,S,m){return tt("target",s,S,null,m)},this.ready=function(s){e.bind("ready",s)};var Pt=function(s,S){if(typeof s=="object"&&s.length)for(var m=0,k=s.length;m<k;m++)S(s[m]);else S(s);return e};this.repaint=function(s,S,m){return Pt(s,function(k){v(k,S,m)})},this.revalidate=function(s,S,m){var k=m?s:e.getId(s);e.updateOffset({elId:k,recalc:!0,timestamp:S});var Y=e.getDragManager();return Y&&Y.updateOffsets(k),v(s,null,S)},this.repaintEverything=function(){var s=jsPlumbUtil.uuid(),S;for(S in h)e.updateOffset({elId:S,recalc:!0,timestamp:s});for(S in h)v(S,null,s);return this},this.removeAllEndpoints=function(s,S,m){m=m||[];var k=function(Y){var z=P(Y),et=h[z.id],dt,at;if(et)for(m.push(z),dt=0,at=et.length;dt<at;dt++)e.deleteEndpoint(et[dt],!1);if(delete h[z.id],S&&z.el&&z.el.nodeType!==3&&z.el.nodeType!==8)for(dt=0,at=z.el.childNodes.length;dt<at;dt++)k(z.el.childNodes[dt])};return k(s),this};var yt=function(s,S){e.removeAllEndpoints(s.id,!0,S);for(var m=e.getDragManager(),k=function(z){m&&m.elementRemoved(z.id),e.router.elementRemoved(z.id),e.isSource(z.el)&&e.unmakeSource(z.el),e.isTarget(z.el)&&e.unmakeTarget(z.el),e.destroyDraggable(z.el),e.destroyDroppable(z.el),delete e.floatingConnections[z.id],delete y[z.id],delete w[z.id],z.el&&(e.removeElement(z.el),z.el._jsPlumb=null)},Y=1;Y<S.length;Y++)k(S[Y]);k(s)};this.remove=function(s,S){var m=P(s),k=[];return m.text&&m.el.parentNode?m.el.parentNode.removeChild(m.el):m.id&&e.batch(function(){yt(m,k)},S===!0),e},this.empty=function(s,S){var m=[],k=function(Y,z){var et=P(Y);if(et.text)et.el.parentNode.removeChild(et.el);else if(et.el){for(;et.el.childNodes.length>0;)k(et.el.childNodes[0]);z||yt(et,m)}};return e.batch(function(){k(s,!0)},S===!1),e},this.reset=function(s){e.silently(function(){Bt=!1,e.removeAllGroups(),e.removeGroupManager(),e.deleteEveryEndpoint(),s||e.unbind(),this.targetEndpointDefinitions={},this.sourceEndpointDefinitions={},x.length=0,this.doReset&&this.doReset()}.bind(this))},this.destroy=function(){this.reset(),r=null,p=null};var Et=function(s){s.canvas&&s.canvas.parentNode&&s.canvas.parentNode.removeChild(s.canvas),s.cleanup(),s.destroy()};this.clear=function(){e.select().each(Et),e.selectEndpoints().each(Et),h={},j={}},this.setDefaultScope=function(s){return n=s,e},this.deriveEndpointAndAnchorSpec=function(s,S){for(var m=((S?"":"default ")+s).split(/[\s]/),k=null,Y=null,z=null,et=null,dt=0;dt<m.length;dt++){var at=e.getType(m[dt],"connection");at&&(at.endpoints&&(k=at.endpoints),at.endpoint&&(Y=at.endpoint),at.anchors&&(et=at.anchors),at.anchor&&(z=at.anchor))}return{endpoints:k||[Y,Y],anchors:et||[z,z]}},this.setId=function(s,S,m){var k;f.isString(s)?k=s:(s=this.getElement(s),k=this.getId(s));var Y=this.getConnections({source:k,scope:"*"},!0),z=this.getConnections({target:k,scope:"*"},!0);S=""+S,m?s=this.getElement(S):(s=this.getElement(k),this.setAttribute(s,"id",S)),h[S]=h[k]||[];for(var et=0,dt=h[S].length;et<dt;et++)h[S][et].setElementId(S),h[S][et].setReferenceElement(s);delete h[k],this.sourceEndpointDefinitions[S]=this.sourceEndpointDefinitions[k],delete this.sourceEndpointDefinitions[k],this.targetEndpointDefinitions[S]=this.targetEndpointDefinitions[k],delete this.targetEndpointDefinitions[k],this.router.changeId(k,S);var at=this.getDragManager();at&&at.changeId(k,S),y[S]=y[k],delete y[k];var ct=function(ht,Ct,mt){for(var Dt=0,wt=ht.length;Dt<wt;Dt++)ht[Dt].endpoints[Ct].setElementId(S),ht[Dt].endpoints[Ct].setReferenceElement(s),ht[Dt][mt+"Id"]=S,ht[Dt][mt]=s};ct(Y,0,"source"),ct(z,1,"target"),this.repaint(S)},this.setDebugLog=function(s){u=s},this.setSuspendDrawing=function(s,S){var m=R;return R=s,s?B=new Date().getTime():B=null,S&&this.repaintEverything(),m},this.isSuspendDrawing=function(){return R},this.getSuspendedAt=function(){return B},this.batch=function(s,S){var m=this.isSuspendDrawing();m||this.setSuspendDrawing(!0);try{s()}catch(k){f.log("Function run while suspended failed",k)}m||this.setSuspendDrawing(!1,!S)},this.doWhileSuspended=this.batch,this.getCachedData=ft,this.show=function(s,S){return rt(s,"block",S),e},this.toggleVisible=pt,this.addListener=this.bind;var xt=[];this.registerFloatingConnection=function(s,S,m){xt[s.id]=S,f.addToList(h,s.id,m)},this.getFloatingConnectionFor=function(s){return xt[s]},this.listManager=new Z.jsPlumbListManager(this,this.Defaults.ListStyle)};f.extend(Z.jsPlumbInstance,f.EventGenerator,{setAttribute:function(a,e,T){this.setAttribute(a,e,T)},getAttribute:function(a,e){return this.getAttribute(Z.jsPlumb.getElement(a),e)},convertToFullOverlaySpec:function(a){return f.isString(a)&&(a=[a,{}]),a[1].id=a[1].id||f.uuid(),a},registerConnectionType:function(a,e){if(this._connectionTypes[a]=Z.jsPlumb.extend({},e),e.overlays){for(var T={},L=0;L<e.overlays.length;L++){var H=this.convertToFullOverlaySpec(e.overlays[L]);T[H[1].id]=H}this._connectionTypes[a].overlays=T}},registerConnectionTypes:function(a){for(var e in a)this.registerConnectionType(e,a[e])},registerEndpointType:function(a,e){if(this._endpointTypes[a]=Z.jsPlumb.extend({},e),e.overlays){for(var T={},L=0;L<e.overlays.length;L++){var H=this.convertToFullOverlaySpec(e.overlays[L]);T[H[1].id]=H}this._endpointTypes[a].overlays=T}},registerEndpointTypes:function(a){for(var e in a)this.registerEndpointType(e,a[e])},getType:function(a,e){return e==="connection"?this._connectionTypes[a]:this._endpointTypes[a]},setIdChanged:function(a,e){this.setId(a,e,!0)},setParent:function(a,e){var T=this.getElement(a),L=this.getId(T),H=this.getElement(e),G=this.getId(H),P=this.getDragManager();T.parentNode.removeChild(T),H.appendChild(T),P&&P.setParent(T,L,H,G)},extend:function(a,e,T){var L;if(T)for(L=0;L<T.length;L++)a[T[L]]=e[T[L]];else for(L in e)a[L]=e[L];return a},floatingConnections:{},getFloatingAnchorIndex:function(a){return a.endpoints[0].isFloating()?0:a.endpoints[1].isFloating()?1:-1},proxyConnection:function(a,e,T,L,H,G){var P,A=a.endpoints[e].elementId,r=a.endpoints[e];a.proxies=a.proxies||[],a.proxies[e]?P=a.proxies[e].ep:P=this.addEndpoint(T,{endpoint:H(a,e),anchor:G(a,e),parameters:{isProxyEndpoint:!0}}),P.setDeleteOnEmpty(!0),a.proxies[e]={ep:P,originalEp:r},e===0?this.router.sourceOrTargetChanged(A,L,a,T,0):this.router.sourceOrTargetChanged(A,L,a,T,1),r.detachFromConnection(a,null,!0),P.connections=[a],a.endpoints[e]=P,r.setVisible(!1),a.setVisible(!0),this.revalidate(T)},unproxyConnection:function(a,e,T){if(!(a._jsPlumb==null||a.proxies==null||a.proxies[e]==null)){var L=a.proxies[e].originalEp.element,H=a.proxies[e].originalEp.elementId;a.endpoints[e]=a.proxies[e].originalEp,e===0?this.router.sourceOrTargetChanged(T,H,a,L,0):this.router.sourceOrTargetChanged(T,H,a,L,1),a.proxies[e].ep.detachFromConnection(a,null),a.proxies[e].originalEp.addConnection(a),a.isVisible()&&a.proxies[e].originalEp.setVisible(!0),delete a.proxies[e]}}});var C=new M;Z.jsPlumb=C,C.getInstance=function(a,e){var T=new M(a);if(e)for(var L in e)T[L]=e[L];return T.init(),T},C.each=function(a,e){if(a!=null)if(typeof a=="string")e(C.getElement(a));else if(a.length!=null)for(var T=0;T<a.length;T++)e(C.getElement(a[T]));else e(a)},Qt.jsPlumb=C}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it="__label",K=function(c,O){var l={cssClass:O.cssClass,labelStyle:c.labelStyle,id:it,component:c,_jsPlumb:c._jsPlumb.instance},i=f.extend(l,O);return new f.Overlays[c._jsPlumb.instance.getRenderMode()].Label(i)},nt=function(c,O){var l=null;if(V.isArray(O)){var i=O[0],b=f.extend({component:c,_jsPlumb:c._jsPlumb.instance},O[1]);O.length===3&&f.extend(b,O[2]),l=new f.Overlays[c._jsPlumb.instance.getRenderMode()][i](b)}else O.constructor===String?l=new f.Overlays[c._jsPlumb.instance.getRenderMode()][O]({component:c,_jsPlumb:c._jsPlumb.instance}):l=O;return l.id=l.id||V.uuid(),c.cacheTypeItem("overlay",l,l.id),c._jsPlumb.overlays[l.id]=l,l};f.OverlayCapableJsPlumbUIComponent=function(c){Z.jsPlumbUIComponent.apply(this,arguments),this._jsPlumb.overlays={},this._jsPlumb.overlayPositions={},c.label&&(this.getDefaultType().overlays[it]=["Label",{label:c.label,location:c.labelLocation||this.defaultLabelLocation||.5,labelStyle:c.labelStyle||this._jsPlumb.instance.Defaults.LabelStyle,id:it}]),this.setListenerComponent=function(O){if(this._jsPlumb)for(var l in this._jsPlumb.overlays)this._jsPlumb.overlays[l].setListenerComponent(O)}},f.OverlayCapableJsPlumbUIComponent.applyType=function(c,O){if(O.overlays){var l={},i;for(i in O.overlays){var b=c._jsPlumb.overlays[O.overlays[i][1].id];if(b)b.updateFrom(O.overlays[i][1]),l[O.overlays[i][1].id]=!0,b.reattach(c._jsPlumb.instance,c);else{var D=c.getCachedTypeItem("overlay",O.overlays[i][1].id);D!=null?(D.reattach(c._jsPlumb.instance,c),D.setVisible(!0),D.updateFrom(O.overlays[i][1]),c._jsPlumb.overlays[D.id]=D):D=c.addOverlay(O.overlays[i],!0),l[D.id]=!0}}for(i in c._jsPlumb.overlays)l[c._jsPlumb.overlays[i].id]==null&&c.removeOverlay(c._jsPlumb.overlays[i].id,!0)}},V.extend(f.OverlayCapableJsPlumbUIComponent,Z.jsPlumbUIComponent,{setHover:function(c,O){if(this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged())for(var l in this._jsPlumb.overlays)this._jsPlumb.overlays[l][c?"addClass":"removeClass"](this._jsPlumb.instance.hoverClass)},addOverlay:function(c,O){var l=nt(this,c);if(this.getData&&l.type==="Label"&&V.isArray(c)){var i=this.getData(),b=c[1];if(i){var D=b.labelLocationAttribute||"labelLocation",M=i?i[D]:null;M&&(l.loc=M)}}return O||this.repaint(),l},getOverlay:function(c){return this._jsPlumb.overlays[c]},getOverlays:function(){return this._jsPlumb.overlays},hideOverlay:function(c){var O=this.getOverlay(c);O&&O.hide()},hideOverlays:function(){for(var c in this._jsPlumb.overlays)this._jsPlumb.overlays[c].hide()},showOverlay:function(c){var O=this.getOverlay(c);O&&O.show()},showOverlays:function(){for(var c in this._jsPlumb.overlays)this._jsPlumb.overlays[c].show()},removeAllOverlays:function(c){for(var O in this._jsPlumb.overlays)this._jsPlumb.overlays[O].cleanup&&this._jsPlumb.overlays[O].cleanup();this._jsPlumb.overlays={},this._jsPlumb.overlayPositions=null,this._jsPlumb.overlayPlacements={},c||this.repaint()},removeOverlay:function(c,O){var l=this._jsPlumb.overlays[c];l&&(l.setVisible(!1),!O&&l.cleanup&&l.cleanup(),delete this._jsPlumb.overlays[c],this._jsPlumb.overlayPositions&&delete this._jsPlumb.overlayPositions[c],this._jsPlumb.overlayPlacements&&delete this._jsPlumb.overlayPlacements[c])},removeOverlays:function(){for(var c=0,O=arguments.length;c<O;c++)this.removeOverlay(arguments[c])},moveParent:function(c){if(this.bgCanvas&&(this.bgCanvas.parentNode.removeChild(this.bgCanvas),c.appendChild(this.bgCanvas)),this.canvas&&this.canvas.parentNode){this.canvas.parentNode.removeChild(this.canvas),c.appendChild(this.canvas);for(var O in this._jsPlumb.overlays)if(this._jsPlumb.overlays[O].isAppendedAtTopLevel){var l=this._jsPlumb.overlays[O].getElement();l.parentNode.removeChild(l),c.appendChild(l)}}},getLabel:function(){var c=this.getOverlay(it);return c!=null?c.getLabel():null},getLabelOverlay:function(){return this.getOverlay(it)},setLabel:function(c){var O=this.getOverlay(it);if(O)c.constructor===String||c.constructor===Function?O.setLabel(c):(c.label&&O.setLabel(c.label),c.location&&O.setLocation(c.location));else{var l=c.constructor===String||c.constructor===Function?{label:c}:c;O=K(this,l),this._jsPlumb.overlays[it]=O}this._jsPlumb.instance.isSuspendDrawing()||this.repaint()},cleanup:function(c){for(var O in this._jsPlumb.overlays)this._jsPlumb.overlays[O].cleanup(c),this._jsPlumb.overlays[O].destroy(c);c&&(this._jsPlumb.overlays={},this._jsPlumb.overlayPositions=null)},setVisible:function(c){this[c?"showOverlays":"hideOverlays"]()},setAbsoluteOverlayPosition:function(c,O){this._jsPlumb.overlayPositions[c.id]=O},getAbsoluteOverlayPosition:function(c){return this._jsPlumb.overlayPositions?this._jsPlumb.overlayPositions[c.id]:null},_clazzManip:function(c,O,l){if(!l)for(var i in this._jsPlumb.overlays)this._jsPlumb.overlays[i][c+"Class"](O)},addClass:function(c,O){this._clazzManip("add",c,O)},removeClass:function(c,O){this._clazzManip("remove",c,O)}})}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it=function(l,i,b){var D=!1;return{drag:function(){if(D)return D=!1,!0;if(i.element){var M=b.getUIPosition(arguments,b.getZoom());M!=null&&b.setPosition(i.element,M),b.repaint(i.element,M),l.paint({anchorPoint:l.anchor.getCurrentLocation({element:l})})}},stopDrag:function(){D=!0}}},K=function(l,i,b,D){var M=i.createElement("div",{position:"absolute"});i.appendElement(M);var C=i.getId(M);i.setPosition(M,b),M.style.width=D[0]+"px",M.style.height=D[1]+"px",i.manage(C,M,!0),l.id=C,l.element=M},nt=function(l,i,b,D,M,C,a,e){var T=new f.FloatingAnchor({reference:i,referenceCanvas:D,jsPlumbInstance:C});return a({paintStyle:l,endpoint:b,anchor:T,source:M,scope:e})},c=["connectorStyle","connectorHoverStyle","connectorOverlays","connector","connectionType","connectorClass","connectorHoverClass"],O=function(l,i){var b=0;if(i!=null){for(var D=0;D<l.connections.length;D++)if(l.connections[D].sourceId===i||l.connections[D].targetId===i){b=D;break}}return l.connections[b]};f.Endpoint=function(l){var i=l._jsPlumb,b=l.newConnection,D=l.newEndpoint;this.idPrefix="_jsplumb_e_",this.defaultLabelLocation=[.5,.5],this.defaultOverlayKeys=["Overlays","EndpointOverlays"],f.OverlayCapableJsPlumbUIComponent.apply(this,arguments),this.appendToDefaultType({connectionType:l.connectionType,maxConnections:l.maxConnections==null?this._jsPlumb.instance.Defaults.MaxConnections:l.maxConnections,paintStyle:l.endpointStyle||l.paintStyle||l.style||this._jsPlumb.instance.Defaults.EndpointStyle||f.Defaults.EndpointStyle,hoverPaintStyle:l.endpointHoverStyle||l.hoverPaintStyle||this._jsPlumb.instance.Defaults.EndpointHoverStyle||f.Defaults.EndpointHoverStyle,connectorStyle:l.connectorStyle,connectorHoverStyle:l.connectorHoverStyle,connectorClass:l.connectorClass,connectorHoverClass:l.connectorHoverClass,connectorOverlays:l.connectorOverlays,connector:l.connector,connectorTooltip:l.connectorTooltip}),this._jsPlumb.enabled=l.enabled!==!1,this._jsPlumb.visible=!0,this.element=f.getElement(l.source),this._jsPlumb.uuid=l.uuid,this._jsPlumb.floatingEndpoint=null,this._jsPlumb.uuid&&(l.endpointsByUUID[this._jsPlumb.uuid]=this),this.elementId=l.elementId,this.dragProxy=l.dragProxy,this._jsPlumb.connectionCost=l.connectionCost,this._jsPlumb.connectionsDirected=l.connectionsDirected,this._jsPlumb.currentAnchorClass="",this._jsPlumb.events={};var M=l.deleteOnEmpty===!0;this.setDeleteOnEmpty=function(P){M=P};var C=function(){var P=i.endpointAnchorClassPrefix+"-"+this._jsPlumb.currentAnchorClass;this._jsPlumb.currentAnchorClass=this.anchor.getCssClass();var A=i.endpointAnchorClassPrefix+(this._jsPlumb.currentAnchorClass?"-"+this._jsPlumb.currentAnchorClass:"");this.removeClass(P),this.addClass(A),f.updateClasses(this.element,A,P)}.bind(this);this.prepareAnchor=function(P){var A=this._jsPlumb.instance.makeAnchor(P,this.elementId,i);return A.bind("anchorChanged",function(r){this.fire("anchorChanged",{endpoint:this,anchor:r}),C()}.bind(this)),A},this.setPreparedAnchor=function(P,A){return this._jsPlumb.instance.continuousAnchorFactory.clear(this.elementId),this.anchor=P,C(),A||this._jsPlumb.instance.repaint(this.elementId),this},this.setAnchor=function(P,A){var r=this.prepareAnchor(P);return this.setPreparedAnchor(r,A),this};var a=function(P){if(this.connections.length>0)for(var A=0;A<this.connections.length;A++)this.connections[A].setHover(P,!1);else this.setHover(P)}.bind(this);this.bind("mouseover",function(){a(!0)}),this.bind("mouseout",function(){a(!1)}),l._transient||this._jsPlumb.instance.router.addEndpoint(this,this.elementId),this.prepareEndpoint=function(P,A){var r=function(_,x){var h=i.getRenderMode();if(f.Endpoints[h][_])return new f.Endpoints[h][_](x);if(!i.Defaults.DoNotThrowErrors)throw{msg:"jsPlumb: unknown endpoint type '"+_+"'"}},p={_jsPlumb:this._jsPlumb.instance,cssClass:l.cssClass,container:l.container,tooltip:l.tooltip,connectorTooltip:l.connectorTooltip,endpoint:this},u;return V.isString(P)?u=r(P,p):V.isArray(P)?(p=V.merge(P[1],p),u=r(P[0],p)):u=P.clone(),u.clone=function(){if(V.isString(P))return r(P,p);if(V.isArray(P))return p=V.merge(P[1],p),r(P[0],p)}.bind(this),u.typeId=A,u},this.setEndpoint=function(P,A){var r=this.prepareEndpoint(P);this.setPreparedEndpoint(r,!0)},this.setPreparedEndpoint=function(P,A){this.endpoint!=null&&(this.endpoint.cleanup(),this.endpoint.destroy()),this.endpoint=P,this.type=this.endpoint.type,this.canvas=this.endpoint.canvas},f.extend(this,l,c),this.isSource=l.isSource||!1,this.isTemporarySource=l.isTemporarySource||!1,this.isTarget=l.isTarget||!1,this.connections=l.connections||[],this.connectorPointerEvents=l["connector-pointer-events"],this.scope=l.scope||i.getDefaultScope(),this.timestamp=null,this.reattachConnections=l.reattach||i.Defaults.ReattachConnections,this.connectionsDetachable=i.Defaults.ConnectionsDetachable,(l.connectionsDetachable===!1||l.detachable===!1)&&(this.connectionsDetachable=!1),this.dragAllowedWhenFull=l.dragAllowedWhenFull!==!1,l.onMaxConnections&&this.bind("maxConnections",l.onMaxConnections),this.addConnection=function(P){this.connections.push(P),this[(this.connections.length>0?"add":"remove")+"Class"](i.endpointConnectedClass),this[(this.isFull()?"add":"remove")+"Class"](i.endpointFullClass)},this.detachFromConnection=function(P,A,r){A=A??this.connections.indexOf(P),A>=0&&(this.connections.splice(A,1),this[(this.connections.length>0?"add":"remove")+"Class"](i.endpointConnectedClass),this[(this.isFull()?"add":"remove")+"Class"](i.endpointFullClass)),!r&&M&&this.connections.length===0&&i.deleteObject({endpoint:this,fireEvent:!1,deleteAttachedObjects:r!==!0})},this.deleteEveryConnection=function(P){for(var A=this.connections.length,r=0;r<A;r++)i.deleteConnection(this.connections[0],P)},this.detachFrom=function(P,A,r){for(var p=[],u=0;u<this.connections.length;u++)(this.connections[u].endpoints[1]===P||this.connections[u].endpoints[0]===P)&&p.push(this.connections[u]);for(var _=0,x=p.length;_<x;_++)i.deleteConnection(p[0]);return this},this.getElement=function(){return this.element},this.setElement=function(P){var A=this._jsPlumb.instance.getId(P),r=this.elementId;return V.removeWithFunction(l.endpointsByElement[this.elementId],function(p){return p.id===this.id}.bind(this)),this.element=f.getElement(P),this.elementId=i.getId(this.element),i.router.rehomeEndpoint(this,r,this.element),i.dragManager.endpointAdded(this.element),V.addToList(l.endpointsByElement,A,this),this},this.makeInPlaceCopy=function(){var P=this.anchor.getCurrentLocation({element:this}),A=this.anchor.getOrientation(this),r=this.anchor.getCssClass(),p={bind:function(){},compute:function(){return[P[0],P[1]]},getCurrentLocation:function(){return[P[0],P[1]]},getOrientation:function(){return A},getCssClass:function(){return r}};return D({dropOptions:l.dropOptions,anchor:p,source:this.element,paintStyle:this.getPaintStyle(),endpoint:l.hideOnDrag?"Blank":this.endpoint,_transient:!0,scope:this.scope,reference:this})},this.connectorSelector=function(){return this.connections[0]},this.setStyle=this.setPaintStyle,this.paint=function(P){P=P||{};var A=P.timestamp,r=P.recalc!==!1;if(!A||this.timestamp!==A){var p=i.updateOffset({elId:this.elementId,timestamp:A}),u=P.offset?P.offset.o:p.o;if(u!=null){var _=P.anchorPoint,x=P.connectorPaintStyle;if(_==null){var h=P.dimensions||p.s,j={xy:[u.left,u.top],wh:h,element:this,timestamp:A};if(r&&this.anchor.isDynamic&&this.connections.length>0){var y=O(this,P.elementWithPrecedence),w=y.endpoints[0]===this?1:0,g=w===0?y.sourceId:y.targetId,E=i.getCachedData(g),U=E.o,R=E.s;j.index=w===0?1:0,j.connection=y,j.txy=[U.left,U.top],j.twh=R,j.tElement=y.endpoints[w],j.tRotation=i.getRotation(g)}else this.connections.length>0&&(j.connection=this.connections[0]);j.rotation=i.getRotation(this.elementId),_=this.anchor.compute(j)}this.endpoint.compute(_,this.anchor.getOrientation(this),this._jsPlumb.paintStyleInUse,x||this.paintStyleInUse),this.endpoint.paint(this._jsPlumb.paintStyleInUse,this.anchor),this.timestamp=A;for(var B in this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(B)){var n=this._jsPlumb.overlays[B];n.isVisible()&&(this._jsPlumb.overlayPlacements[B]=n.draw(this.endpoint,this._jsPlumb.paintStyleInUse),n.paint(this._jsPlumb.overlayPlacements[B]))}}}},this.getTypeDescriptor=function(){return"endpoint"},this.isVisible=function(){return this._jsPlumb.visible},this.repaint=this.paint;var e=!1;this.initDraggable=function(){if(!e&&f.isDragSupported(this.element)){var P={id:null,element:null},A=null,r=!1,p=null,u=it(this,P,i),_=l.dragOptions||{},x={},h=f.dragEvents.start,j=f.dragEvents.stop,y=f.dragEvents.drag,w=f.dragEvents.beforeStart,g,E=function(B){g=B.e.payload||{}},U=function(B){A=this.connectorSelector();var n=!0;this.isEnabled()||(n=!1),A==null&&!this.isSource&&!this.isTemporarySource&&(n=!1),this.isSource&&this.isFull()&&!(A!=null&&this.dragAllowedWhenFull)&&(n=!1),A!=null&&!A.isDetachable(this)&&(this.isFull()?n=!1:A=null);var o=i.checkCondition(A==null?"beforeDrag":"beforeStartDetach",{endpoint:this,source:this.element,sourceId:this.elementId,connection:A});if(o===!1?n=!1:typeof o=="object"?f.extend(o,g||{}):o=g||{},n===!1)return i.stopDrag&&i.stopDrag(this.canvas),u.stopDrag(),!1;for(var t=0;t<this.connections.length;t++)this.connections[t].setHover(!1);this.addClass("endpointDrag"),i.setConnectionBeingDragged(!0),A&&!this.isFull()&&this.isSource&&(A=null),i.updateOffset({elId:this.elementId});var d=this._jsPlumb.instance.getOffset(this.canvas),v=this.canvas,F=this._jsPlumb.instance.getSize(this.canvas);K(P,i,d,F),i.setAttributes(this.canvas,{dragId:P.id,elId:this.elementId});var I=this.dragProxy||this.endpoint;if(this.dragProxy==null&&this.connectionType!=null){var X=this._jsPlumb.instance.deriveEndpointAndAnchorSpec(this.connectionType);X.endpoints[1]&&(I=X.endpoints[1])}var N=this._jsPlumb.instance.makeAnchor("Center");N.isFloating=!0,this._jsPlumb.floatingEndpoint=nt(this.getPaintStyle(),N,I,this.canvas,P.element,i,D,this.scope);var W=this._jsPlumb.floatingEndpoint.anchor;if(A==null)this.setHover(!1,!1),A=b({sourceEndpoint:this,targetEndpoint:this._jsPlumb.floatingEndpoint,source:this.element,target:P.element,anchors:[this.anchor,this._jsPlumb.floatingEndpoint.anchor],paintStyle:l.connectorStyle,hoverPaintStyle:l.connectorHoverStyle,connector:l.connector,overlays:l.connectorOverlays,type:this.connectionType,cssClass:this.connectorClass,hoverClass:this.connectorHoverClass,scope:l.scope,data:o}),A.pending=!0,A.addClass(i.draggingClass),this._jsPlumb.floatingEndpoint.addClass(i.draggingClass),this._jsPlumb.floatingEndpoint.anchor=W,i.fire("connectionDrag",A),i.router.newConnection(A);else{r=!0,A.setHover(!1);var ot=A.endpoints[0].id===this.id?0:1;this.detachFromConnection(A,null,!0);var st=i.getDragScope(v);i.setAttribute(this.canvas,"originalScope",st),i.fire("connectionDrag",A),ot===0?(p=[A.source,A.sourceId,v,st],i.router.sourceOrTargetChanged(A.endpoints[ot].elementId,P.id,A,P.element,0)):(p=[A.target,A.targetId,v,st],i.router.sourceOrTargetChanged(A.endpoints[ot].elementId,P.id,A,P.element,1)),A.suspendedEndpoint=A.endpoints[ot],A.suspendedElement=A.endpoints[ot].getElement(),A.suspendedElementId=A.endpoints[ot].elementId,A.suspendedElementType=ot===0?"source":"target",A.suspendedEndpoint.setHover(!1),this._jsPlumb.floatingEndpoint.referenceEndpoint=A.suspendedEndpoint,A.endpoints[ot]=this._jsPlumb.floatingEndpoint,A.addClass(i.draggingClass),this._jsPlumb.floatingEndpoint.addClass(i.draggingClass)}i.registerFloatingConnection(P,A,this._jsPlumb.floatingEndpoint),i.currentlyDragging=!0}.bind(this),R=function(){if(i.setConnectionBeingDragged(!1),A&&A.endpoints!=null){var B=i.getDropEvent(arguments),n=i.getFloatingAnchorIndex(A);if(A.endpoints[n===0?1:0].anchor.locked=!1,A.removeClass(i.draggingClass),this._jsPlumb&&(A.deleteConnectionNow||A.endpoints[n]===this._jsPlumb.floatingEndpoint)&&r&&A.suspendedEndpoint){n===0?(A.floatingElement=A.source,A.floatingId=A.sourceId,A.floatingEndpoint=A.endpoints[0],A.floatingIndex=0,A.source=p[0],A.sourceId=p[1]):(A.floatingElement=A.target,A.floatingId=A.targetId,A.floatingEndpoint=A.endpoints[1],A.floatingIndex=1,A.target=p[0],A.targetId=p[1]);var o=this._jsPlumb.floatingEndpoint;i.setDragScope(p[2],p[3]),A.endpoints[n]=A.suspendedEndpoint,A.isReattach()||A._forceReattach||A._forceDetach||!i.deleteConnection(A,{originalEvent:B})?(A.setHover(!1),A._forceDetach=null,A._forceReattach=null,this._jsPlumb.floatingEndpoint.detachFromConnection(A),A.suspendedEndpoint.addConnection(A),n===1?i.router.sourceOrTargetChanged(A.floatingId,A.targetId,A,A.target,n):i.router.sourceOrTargetChanged(A.floatingId,A.sourceId,A,A.source,n),i.repaint(p[1])):i.deleteObject({endpoint:o})}this.deleteAfterDragStop?i.deleteObject({endpoint:this}):this._jsPlumb&&this.paint({recalc:!1}),i.fire("connectionDragStop",A,B),A.pending&&i.fire("connectionAborted",A,B),i.currentlyDragging=!1,A.suspendedElement=null,A.suspendedEndpoint=null,A=null}P&&P.element&&i.remove(P.element,!1,!1),this._jsPlumb&&(this.canvas.style.visibility="visible",this.anchor.locked=!1,this._jsPlumb.floatingEndpoint=null)}.bind(this);_=f.extend(x,_),_.scope=this.scope||_.scope,_[w]=V.wrap(_[w],E,!1),_[h]=V.wrap(_[h],U,!1),_[y]=V.wrap(_[y],u.drag),_[j]=V.wrap(_[j],R),_.multipleDrop=!1,_.canDrag=function(){return this.isSource||this.isTemporarySource||this.connections.length>0&&this.connectionsDetachable!==!1}.bind(this),i.initDraggable(this.canvas,_,"internal"),this.canvas._jsPlumbRelatedElement=this.element,e=!0}};var T=l.endpoint||this._jsPlumb.instance.Defaults.Endpoint||f.Defaults.Endpoint;this.setEndpoint(T,!0);var L=l.anchor?l.anchor:l.anchors?l.anchors:i.Defaults.Anchor||"Top";this.setAnchor(L,!0);var H=["default",l.type||""].join(" ");this.addType(H,l.data,!0),this.canvas=this.endpoint.canvas,this.canvas._jsPlumb=this,this.initDraggable();var G=function(P,A,r,p){if(f.isDropSupported(this.element)){var u=l.dropOptions||i.Defaults.DropOptions||f.Defaults.DropOptions;u=f.extend({},u),u.scope=u.scope||this.scope;var _=f.dragEvents.drop,x=f.dragEvents.over,h=f.dragEvents.out,j=this,y=i.EndpointDropHandler({getEndpoint:function(){return j},jsPlumb:i,enabled:function(){return r!=null?r.isEnabled():!0},isFull:function(){return r.isFull()},element:this.element,elementId:this.elementId,isSource:this.isSource,isTarget:this.isTarget,addClass:function(w){j.addClass(w)},removeClass:function(w){j.removeClass(w)},isDropAllowed:function(){return j.isDropAllowed.apply(j,arguments)},reference:p,isRedrop:function(w,g){return w.suspendedEndpoint&&g.reference&&w.suspendedEndpoint.id===g.reference.id}});u[_]=V.wrap(u[_],y,!0),u[x]=V.wrap(u[x],function(){var w=f.getDragObject(arguments),g=i.getAttribute(f.getElement(w),"dragId"),E=i.getFloatingConnectionFor(g);if(E!=null){var U=i.getFloatingAnchorIndex(E),R=this.isTarget&&U!==0||E.suspendedEndpoint&&this.referenceEndpoint&&this.referenceEndpoint.id===E.suspendedEndpoint.id;if(R){var B=i.checkCondition("checkDropAllowed",{sourceEndpoint:E.endpoints[U],targetEndpoint:this,connection:E});this[(B?"add":"remove")+"Class"](i.endpointDropAllowedClass),this[(B?"remove":"add")+"Class"](i.endpointDropForbiddenClass),E.endpoints[U].anchor.over(this.anchor,this)}}}.bind(this)),u[h]=V.wrap(u[h],function(){var w=f.getDragObject(arguments),g=w==null?null:i.getAttribute(f.getElement(w),"dragId"),E=g?i.getFloatingConnectionFor(g):null;if(E!=null){var U=i.getFloatingAnchorIndex(E),R=this.isTarget&&U!==0||E.suspendedEndpoint&&this.referenceEndpoint&&this.referenceEndpoint.id===E.suspendedEndpoint.id;R&&(this.removeClass(i.endpointDropAllowedClass),this.removeClass(i.endpointDropForbiddenClass),E.endpoints[U].anchor.out())}}.bind(this)),i.initDroppable(P,u,"internal",A)}}.bind(this);return this.anchor.isFloating||G(this.canvas,!(l._transient||this.anchor.isFloating),this,l.reference),this},V.extend(f.Endpoint,f.OverlayCapableJsPlumbUIComponent,{setVisible:function(l,i,b){if(this._jsPlumb.visible=l,this.canvas&&(this.canvas.style.display=l?"block":"none"),this[l?"showOverlays":"hideOverlays"](),!i){for(var D=0;D<this.connections.length;D++)if(this.connections[D].setVisible(l),!b){var M=this===this.connections[D].endpoints[0]?1:0;this.connections[D].endpoints[M].connections.length===1&&this.connections[D].endpoints[M].setVisible(l,!0,!0)}}},getAttachedElements:function(){return this.connections},applyType:function(l,i){this.setPaintStyle(l.endpointStyle||l.paintStyle,i),this.setHoverPaintStyle(l.endpointHoverStyle||l.hoverPaintStyle,i),l.maxConnections!=null&&(this._jsPlumb.maxConnections=l.maxConnections),l.scope&&(this.scope=l.scope),f.extend(this,l,c),l.cssClass!=null&&this.canvas&&this._jsPlumb.instance.addClass(this.canvas,l.cssClass),f.OverlayCapableJsPlumbUIComponent.applyType(this,l)},isEnabled:function(){return this._jsPlumb.enabled},setEnabled:function(l){this._jsPlumb.enabled=l},cleanup:function(){var l=this._jsPlumb.instance.endpointAnchorClassPrefix+(this._jsPlumb.currentAnchorClass?"-"+this._jsPlumb.currentAnchorClass:"");f.removeClass(this.element,l),this.anchor=null,this.endpoint.cleanup(!0),this.endpoint.destroy(),this.endpoint=null,this._jsPlumb.instance.destroyDraggable(this.canvas,"internal"),this._jsPlumb.instance.destroyDroppable(this.canvas,"internal")},setHover:function(l){this.endpoint&&this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged()&&this.endpoint.setHover(l)},isFull:function(){return this._jsPlumb.maxConnections===0?!0:!(this.isFloating()||this._jsPlumb.maxConnections<0||this.connections.length<this._jsPlumb.maxConnections)},isFloating:function(){return this.anchor!=null&&this.anchor.isFloating},isConnectedTo:function(l){var i=!1;if(l){for(var b=0;b<this.connections.length;b++)if(this.connections[b].endpoints[1]===l||this.connections[b].endpoints[0]===l){i=!0;break}}return i},getConnectionCost:function(){return this._jsPlumb.connectionCost},setConnectionCost:function(l){this._jsPlumb.connectionCost=l},areConnectionsDirected:function(){return this._jsPlumb.connectionsDirected},setConnectionsDirected:function(l){this._jsPlumb.connectionsDirected=l},setElementId:function(l){this.elementId=l,this.anchor.elementId=l},setReferenceElement:function(l){this.element=f.getElement(l)},setDragAllowedWhenFull:function(l){this.dragAllowedWhenFull=l},equals:function(l){return this.anchor.equals(l.anchor)},getUuid:function(){return this._jsPlumb.uuid},computeAnchor:function(l){return this.anchor.compute(l)}}),Z.jsPlumbInstance.prototype.EndpointDropHandler=function(l){return function(i){var b=l.jsPlumb;l.removeClass(b.endpointDropAllowedClass),l.removeClass(b.endpointDropForbiddenClass);var D=b.getDropEvent(arguments),M=b.getDragObject(arguments),C=b.getAttribute(M,"dragId");b.getAttribute(M,"elId");var a=b.getAttribute(M,"originalScope"),e=b.getFloatingConnectionFor(C);if(e!=null){var T=e.suspendedEndpoint!=null;if(!(T&&e.suspendedEndpoint._jsPlumb==null)){var L=l.getEndpoint(e);if(L!=null){if(l.isRedrop(e,l)){e._forceReattach=!0,e.setHover(!1),l.maybeCleanup&&l.maybeCleanup(L);return}var H=b.getFloatingAnchorIndex(e);if(H===0&&!l.isSource||H===1&&!l.isTarget){l.maybeCleanup&&l.maybeCleanup(L);return}l.onDrop&&l.onDrop(e),a&&b.setDragScope(M,a);var G=l.isFull(i);if(G&&L.fire("maxConnections",{endpoint:this,connection:e,maxConnections:L._jsPlumb.maxConnections},D),!G&&l.enabled()){var P=!0;H===0?(e.floatingElement=e.source,e.floatingId=e.sourceId,e.floatingEndpoint=e.endpoints[0],e.floatingIndex=0,e.source=l.element,e.sourceId=b.getId(l.element)):(e.floatingElement=e.target,e.floatingId=e.targetId,e.floatingEndpoint=e.endpoints[1],e.floatingIndex=1,e.target=l.element,e.targetId=b.getId(l.element)),T&&e.suspendedEndpoint.id!==L.id&&(!e.isDetachAllowed(e)||!e.endpoints[H].isDetachAllowed(e)||!e.suspendedEndpoint.isDetachAllowed(e)||!b.checkCondition("beforeDetach",e))&&(P=!1);var A=function(p){e.endpoints[H].detachFromConnection(e),e.suspendedEndpoint&&e.suspendedEndpoint.detachFromConnection(e),e.endpoints[H]=L,L.addConnection(e);var u=L.getParameters();for(var _ in u)e.setParameter(_,u[_]);if(!T)u.draggable&&b.initDraggable(this.element,l.dragOptions,"internal",b);else{var x=e.suspendedEndpoint.elementId;b.fireMoveEvent({index:H,originalSourceId:H===0?x:e.sourceId,newSourceId:H===0?L.elementId:e.sourceId,originalTargetId:H===1?x:e.targetId,newTargetId:H===1?L.elementId:e.targetId,originalSourceEndpoint:H===0?e.suspendedEndpoint:e.endpoints[0],newSourceEndpoint:H===0?L:e.endpoints[0],originalTargetEndpoint:H===1?e.suspendedEndpoint:e.endpoints[1],newTargetEndpoint:H===1?L:e.endpoints[1],connection:e},D)}if(H===1?b.router.sourceOrTargetChanged(e.floatingId,e.targetId,e,e.target,1):b.router.sourceOrTargetChanged(e.floatingId,e.sourceId,e,e.source,0),e.endpoints[0].finalEndpoint){var h=e.endpoints[0];h.detachFromConnection(e),e.endpoints[0]=e.endpoints[0].finalEndpoint,e.endpoints[0].addConnection(e)}V.isObject(p)&&e.mergeData(p),b.finaliseConnection(e,null,D,!1),e.setHover(!1),b.revalidate(e.endpoints[0].element)}.bind(this),r=function(){e.suspendedEndpoint&&(e.endpoints[H]=e.suspendedEndpoint,e.setHover(!1),e._forceDetach=!0,H===0?(e.source=e.suspendedEndpoint.element,e.sourceId=e.suspendedEndpoint.elementId):(e.target=e.suspendedEndpoint.element,e.targetId=e.suspendedEndpoint.elementId),e.suspendedEndpoint.addConnection(e),H===1?b.router.sourceOrTargetChanged(e.floatingId,e.targetId,e,e.target,1):b.router.sourceOrTargetChanged(e.floatingId,e.sourceId,e,e.source,0),b.repaint(e.sourceId),e._forceDetach=!1)};if(P=P&&l.isDropAllowed(e.sourceId,e.targetId,e.scope,e,L),P)return A(P),!0;r()}l.maybeCleanup&&l.maybeCleanup(L),b.currentlyDragging=!1}}}}}}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it=function(c,O,l,i,b){if(f.Connectors[O]=f.Connectors[O]||{},f.Connectors[O][l]==null){if(f.Connectors[l]==null){if(c.Defaults.DoNotThrowErrors)return null;throw new TypeError("jsPlumb: unknown connector type '"+l+"'")}f.Connectors[O][l]=function(){f.Connectors[l].apply(this,arguments),f.ConnectorRenderers[O].apply(this,arguments)},V.extend(f.Connectors[O][l],[f.Connectors[l],f.ConnectorRenderers[O]])}return new f.Connectors[O][l](i,b)},K=function(c,O,l){return c?l.makeAnchor(c,O,l):null},nt=function(c,O,l,i){O!=null&&(O._jsPlumbConnections=O._jsPlumbConnections||{},i?delete O._jsPlumbConnections[c.id]:O._jsPlumbConnections[c.id]=!0,V.isEmpty(O._jsPlumbConnections)?l.removeClass(O,l.connectedClass):l.addClass(O,l.connectedClass))};f.Connection=function(c){var O=c.newEndpoint;this.id=c.id,this.connector=null,this.idPrefix="_jsplumb_c_",this.defaultLabelLocation=.5,this.defaultOverlayKeys=["Overlays","ConnectionOverlays"],this.previousConnection=c.previousConnection,this.source=f.getElement(c.source),this.target=f.getElement(c.target),f.OverlayCapableJsPlumbUIComponent.apply(this,arguments),c.sourceEndpoint?(this.source=c.sourceEndpoint.getElement(),this.sourceId=c.sourceEndpoint.elementId):this.sourceId=this._jsPlumb.instance.getId(this.source),c.targetEndpoint?(this.target=c.targetEndpoint.getElement(),this.targetId=c.targetEndpoint.elementId):this.targetId=this._jsPlumb.instance.getId(this.target),this.scope=c.scope,this.endpoints=[],this.endpointStyles=[];var l=this._jsPlumb.instance;l.manage(this.sourceId,this.source),l.manage(this.targetId,this.target),this._jsPlumb.visible=!0,this._jsPlumb.params={cssClass:c.cssClass,container:c.container,"pointer-events":c["pointer-events"],editorParams:c.editorParams,overlays:c.overlays},this._jsPlumb.lastPaintedAt=null,this.bind("mouseover",function(){this.setHover(!0)}.bind(this)),this.bind("mouseout",function(){this.setHover(!1)}.bind(this)),this.makeEndpoint=function(_,x,h,j,y){return h=h||this._jsPlumb.instance.getId(x),this.prepareEndpoint(l,O,this,j,_?0:1,c,x,h,y)},c.type&&(c.endpoints=c.endpoints||this._jsPlumb.instance.deriveEndpointAndAnchorSpec(c.type).endpoints);var i=this.makeEndpoint(!0,this.source,this.sourceId,c.sourceEndpoint),b=this.makeEndpoint(!1,this.target,this.targetId,c.targetEndpoint);i&&V.addToList(c.endpointsByElement,this.sourceId,i),b&&V.addToList(c.endpointsByElement,this.targetId,b),this.scope||(this.scope=this.endpoints[0].scope),c.deleteEndpointsOnEmpty!=null&&(this.endpoints[0].setDeleteOnEmpty(c.deleteEndpointsOnEmpty),this.endpoints[1].setDeleteOnEmpty(c.deleteEndpointsOnEmpty));var D=l.Defaults.ConnectionsDetachable;c.detachable===!1&&(D=!1),this.endpoints[0].connectionsDetachable===!1&&(D=!1),this.endpoints[1].connectionsDetachable===!1&&(D=!1);var M=c.reattach||this.endpoints[0].reattachConnections||this.endpoints[1].reattachConnections||l.Defaults.ReattachConnections;this.appendToDefaultType({detachable:D,reattach:M,paintStyle:this.endpoints[0].connectorStyle||this.endpoints[1].connectorStyle||c.paintStyle||l.Defaults.PaintStyle||f.Defaults.PaintStyle,hoverPaintStyle:this.endpoints[0].connectorHoverStyle||this.endpoints[1].connectorHoverStyle||c.hoverPaintStyle||l.Defaults.HoverPaintStyle||f.Defaults.HoverPaintStyle});var C=l.getSuspendedAt();if(!l.isSuspendDrawing()){var a=l.getCachedData(this.sourceId),e=a.o,T=a.s,L=l.getCachedData(this.targetId),H=L.o,G=L.s,P=C||jsPlumbUtil.uuid(),A=this.endpoints[0].anchor.compute({xy:[e.left,e.top],wh:T,element:this.endpoints[0],elementId:this.endpoints[0].elementId,txy:[H.left,H.top],twh:G,tElement:this.endpoints[1],timestamp:P,rotation:l.getRotation(this.endpoints[0].elementId)});this.endpoints[0].paint({anchorLoc:A,timestamp:P}),A=this.endpoints[1].anchor.compute({xy:[H.left,H.top],wh:G,element:this.endpoints[1],elementId:this.endpoints[1].elementId,txy:[e.left,e.top],twh:T,tElement:this.endpoints[0],timestamp:P,rotation:l.getRotation(this.endpoints[1].elementId)}),this.endpoints[1].paint({anchorLoc:A,timestamp:P})}this.getTypeDescriptor=function(){return"connection"},this.getAttachedElements=function(){return this.endpoints},this.isDetachable=function(_){return this._jsPlumb.detachable===!1?!1:_!=null?_.connectionsDetachable===!0:this._jsPlumb.detachable===!0},this.setDetachable=function(_){this._jsPlumb.detachable=_===!0},this.isReattach=function(){return this._jsPlumb.reattach===!0||this.endpoints[0].reattachConnections===!0||this.endpoints[1].reattachConnections===!0},this.setReattach=function(_){this._jsPlumb.reattach=_===!0},this._jsPlumb.cost=c.cost||this.endpoints[0].getConnectionCost(),this._jsPlumb.directed=c.directed,c.directed==null&&(this._jsPlumb.directed=this.endpoints[0].areConnectionsDirected());var r=f.extend({},this.endpoints[1].getParameters());f.extend(r,this.endpoints[0].getParameters()),f.extend(r,this.getParameters()),this.setParameters(r),this.setConnector(this.endpoints[0].connector||this.endpoints[1].connector||c.connector||l.Defaults.Connector||f.Defaults.Connector,!0);var p=c.data==null||!V.isObject(c.data)?{}:c.data;this.getData=function(){return p},this.setData=function(_){p=_||{}},this.mergeData=function(_){p=f.extend(p,_)};var u=["default",this.endpoints[0].connectionType,this.endpoints[1].connectionType,c.type].join(" ");/[^\s]/.test(u)&&this.addType(u,c.data,!0),this.updateConnectedClass()},V.extend(f.Connection,f.OverlayCapableJsPlumbUIComponent,{applyType:function(c,O,l){var i=null;c.connector!=null&&(i=this.getCachedTypeItem("connector",l.connector),i==null&&(i=this.prepareConnector(c.connector,l.connector),this.cacheTypeItem("connector",i,l.connector)),this.setPreparedConnector(i)),c.detachable!=null&&this.setDetachable(c.detachable),c.reattach!=null&&this.setReattach(c.reattach),c.scope&&(this.scope=c.scope),c.cssClass!=null&&this.canvas&&this._jsPlumb.instance.addClass(this.canvas,c.cssClass);var b=null;c.anchor?(b=this.getCachedTypeItem("anchors",l.anchor),b==null&&(b=[this._jsPlumb.instance.makeAnchor(c.anchor),this._jsPlumb.instance.makeAnchor(c.anchor)],this.cacheTypeItem("anchors",b,l.anchor))):c.anchors&&(b=this.getCachedTypeItem("anchors",l.anchors),b==null&&(b=[this._jsPlumb.instance.makeAnchor(c.anchors[0]),this._jsPlumb.instance.makeAnchor(c.anchors[1])],this.cacheTypeItem("anchors",b,l.anchors))),b!=null&&(this.endpoints[0].anchor=b[0],this.endpoints[1].anchor=b[1],this.endpoints[1].anchor.isDynamic&&this._jsPlumb.instance.repaint(this.endpoints[1].elementId)),f.OverlayCapableJsPlumbUIComponent.applyType(this,c)},addClass:function(c,O){O&&(this.endpoints[0].addClass(c),this.endpoints[1].addClass(c),this.suspendedEndpoint&&this.suspendedEndpoint.addClass(c)),this.connector&&this.connector.addClass(c)},removeClass:function(c,O){O&&(this.endpoints[0].removeClass(c),this.endpoints[1].removeClass(c),this.suspendedEndpoint&&this.suspendedEndpoint.removeClass(c)),this.connector&&this.connector.removeClass(c)},isVisible:function(){return this._jsPlumb.visible},setVisible:function(c){this._jsPlumb.visible=c,this.connector&&this.connector.setVisible(c),this.repaint()},cleanup:function(){this.updateConnectedClass(!0),this.endpoints=null,this.source=null,this.target=null,this.connector!=null&&(this.connector.cleanup(!0),this.connector.destroy(!0)),this.connector=null},updateConnectedClass:function(c){this._jsPlumb&&(nt(this,this.source,this._jsPlumb.instance,c),nt(this,this.target,this._jsPlumb.instance,c))},setHover:function(c){this.connector&&this._jsPlumb&&!this._jsPlumb.instance.isConnectionBeingDragged()&&(this.connector.setHover(c),Z.jsPlumb[c?"addClass":"removeClass"](this.source,this._jsPlumb.instance.hoverSourceClass),Z.jsPlumb[c?"addClass":"removeClass"](this.target,this._jsPlumb.instance.hoverTargetClass))},getUuids:function(){return[this.endpoints[0].getUuid(),this.endpoints[1].getUuid()]},getCost:function(){return this._jsPlumb?this._jsPlumb.cost:-1/0},setCost:function(c){this._jsPlumb.cost=c},isDirected:function(){return this._jsPlumb.directed},getConnector:function(){return this.connector},prepareConnector:function(c,O){var l={_jsPlumb:this._jsPlumb.instance,cssClass:this._jsPlumb.params.cssClass,container:this._jsPlumb.params.container,"pointer-events":this._jsPlumb.params["pointer-events"]},i=this._jsPlumb.instance.getRenderMode(),b;return V.isString(c)?b=it(this._jsPlumb.instance,i,c,l,this):V.isArray(c)&&(c.length===1?b=it(this._jsPlumb.instance,i,c[0],l,this):b=it(this._jsPlumb.instance,i,c[0],V.merge(c[1],l),this)),O!=null&&(b.typeId=O),b},setPreparedConnector:function(c,O,l,i){if(this.connector!==c){var b,D="";if(this.connector!=null&&(b=this.connector,D=b.getClass(),this.connector.cleanup(),this.connector.destroy()),this.connector=c,i&&this.cacheTypeItem("connector",c,i),this.canvas=this.connector.canvas,this.bgCanvas=this.connector.bgCanvas,this.connector.reattach(this._jsPlumb.instance),this.addClass(D),this.canvas&&(this.canvas._jsPlumb=this),this.bgCanvas&&(this.bgCanvas._jsPlumb=this),b!=null)for(var M=this.getOverlays(),C=0;C<M.length;C++)M[C].transfer&&M[C].transfer(this.connector);l||this.setListenerComponent(this.connector),O||this.repaint()}},setConnector:function(c,O,l,i){var b=this.prepareConnector(c,i);this.setPreparedConnector(b,O,l,i)},paint:function(c){if(!this._jsPlumb.instance.isSuspendDrawing()&&this._jsPlumb.visible){c=c||{};var O=c.timestamp,l=!1,i=l?this.sourceId:this.targetId,b=l?this.targetId:this.sourceId,D=l?0:1,M=l?1:0;if(O==null||O!==this._jsPlumb.lastPaintedAt){var C=this._jsPlumb.instance.updateOffset({elId:b}).o,a=this._jsPlumb.instance.updateOffset({elId:i}).o,e=this.endpoints[M],T=this.endpoints[D],L=e.anchor.getCurrentLocation({xy:[C.left,C.top],wh:[C.width,C.height],element:e,timestamp:O,rotation:this._jsPlumb.instance.getRotation(this.sourceId)}),H=T.anchor.getCurrentLocation({xy:[a.left,a.top],wh:[a.width,a.height],element:T,timestamp:O,rotation:this._jsPlumb.instance.getRotation(this.targetId)});this.connector.resetBounds(),this.connector.compute({sourcePos:L,targetPos:H,sourceOrientation:e.anchor.getOrientation(e),targetOrientation:T.anchor.getOrientation(T),sourceEndpoint:this.endpoints[M],targetEndpoint:this.endpoints[D],"stroke-width":this._jsPlumb.paintStyleInUse.strokeWidth,sourceInfo:C,targetInfo:a});var G={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};for(var P in this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(P)){var A=this._jsPlumb.overlays[P];A.isVisible()&&(this._jsPlumb.overlayPlacements[P]=A.draw(this.connector,this._jsPlumb.paintStyleInUse,this.getAbsoluteOverlayPosition(A)),G.minX=Math.min(G.minX,this._jsPlumb.overlayPlacements[P].minX),G.maxX=Math.max(G.maxX,this._jsPlumb.overlayPlacements[P].maxX),G.minY=Math.min(G.minY,this._jsPlumb.overlayPlacements[P].minY),G.maxY=Math.max(G.maxY,this._jsPlumb.overlayPlacements[P].maxY))}var r=parseFloat(this._jsPlumb.paintStyleInUse.strokeWidth||1)/2,p=parseFloat(this._jsPlumb.paintStyleInUse.strokeWidth||0),u={xmin:Math.min(this.connector.bounds.minX-(r+p),G.minX),ymin:Math.min(this.connector.bounds.minY-(r+p),G.minY),xmax:Math.max(this.connector.bounds.maxX+(r+p),G.maxX),ymax:Math.max(this.connector.bounds.maxY+(r+p),G.maxY)};this.connector.paintExtents=u,this.connector.paint(this._jsPlumb.paintStyleInUse,null,u);for(var _ in this._jsPlumb.overlays)if(this._jsPlumb.overlays.hasOwnProperty(_)){var x=this._jsPlumb.overlays[_];x.isVisible()&&x.paint(this._jsPlumb.overlayPlacements[_],u)}}this._jsPlumb.lastPaintedAt=O}},repaint:function(c){var O=jsPlumb.extend(c||{},{});O.elId=this.sourceId,this.paint(O)},prepareEndpoint:function(c,O,l,i,b,D,M,C,a){var e;if(i)l.endpoints[b]=i,i.addConnection(l);else{D.endpoints||(D.endpoints=[null,null]);var T=a||D.endpoints[b]||D.endpoint||c.Defaults.Endpoints[b]||f.Defaults.Endpoints[b]||c.Defaults.Endpoint||f.Defaults.Endpoint;D.endpointStyles||(D.endpointStyles=[null,null]),D.endpointHoverStyles||(D.endpointHoverStyles=[null,null]);var L=D.endpointStyles[b]||D.endpointStyle||c.Defaults.EndpointStyles[b]||f.Defaults.EndpointStyles[b]||c.Defaults.EndpointStyle||f.Defaults.EndpointStyle;L.fill==null&&D.paintStyle!=null&&(L.fill=D.paintStyle.stroke),L.outlineStroke==null&&D.paintStyle!=null&&(L.outlineStroke=D.paintStyle.outlineStroke),L.outlineWidth==null&&D.paintStyle!=null&&(L.outlineWidth=D.paintStyle.outlineWidth);var H=D.endpointHoverStyles[b]||D.endpointHoverStyle||c.Defaults.EndpointHoverStyles[b]||f.Defaults.EndpointHoverStyles[b]||c.Defaults.EndpointHoverStyle||f.Defaults.EndpointHoverStyle;D.hoverPaintStyle!=null&&(H==null&&(H={}),H.fill==null&&(H.fill=D.hoverPaintStyle.stroke));var G=D.anchors?D.anchors[b]:D.anchor?D.anchor:K(c.Defaults.Anchors[b],C,c)||K(f.Defaults.Anchors[b],C,c)||K(c.Defaults.Anchor,C,c)||K(f.Defaults.Anchor,C,c),P=D.uuids?D.uuids[b]:null;e=O({paintStyle:L,hoverPaintStyle:H,endpoint:T,connections:[l],uuid:P,anchor:G,source:M,scope:D.scope,reattach:D.reattach||c.Defaults.ReattachConnections,detachable:D.detachable||c.Defaults.ConnectionsDetachable}),i==null&&e.setDeleteOnEmpty(!0),l.endpoints[b]=e,D.drawEndpoints===!1&&e.setVisible(!1,!0,!0)}return e},replaceEndpoint:function(c,O){var l=this.endpoints[c],i=l.elementId,b=this._jsPlumb.instance.getEndpoints(i),D=b.indexOf(l),M=this.makeEndpoint(c===0,l.element,i,null,O);this.endpoints[c]=M,b.splice(D,1,M),this._jsPlumb.instance.deleteObject({endpoint:l,deleteAttachedObjects:!1}),this._jsPlumb.instance.fire("endpointReplaced",{previous:l,current:M}),this._jsPlumb.instance.router.sourceOrTargetChanged(this.endpoints[1].elementId,this.endpoints[1].elementId,this,this.endpoints[1].element,1)}})}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumbUtil,V=Z.jsPlumb;V.AnchorManager=function(c){var O={},l={},i={},b={},D=this,M={},C=c.jsPlumbInstance,a={},e=function(u,_,x,h,j,y,w,g){for(var E=[],U=_[j?0:1]/(h.length+1),R=0;R<h.length;R++){var B=(R+1)*U,n=y*_[j?1:0];w&&(B=_[j?0:1]-B);var o=j?B:n,t=x.left+o,d=o/_[0],v=j?n:B,F=x.top+v,I=v/_[1];if(g!==0){var X=jsPlumbUtil.rotatePoint([t,F],[x.centerx,x.centery],g);t=X[0],F=X[1]}E.push([t,F,d,I,h[R][1],h[R][2]])}return E},T=function(u,_){return _[0][0]-u[0][0]},L=function(u,_){var x=u[0][0]<0?-Math.PI-u[0][0]:Math.PI-u[0][0],h=_[0][0]<0?-Math.PI-_[0][0]:Math.PI-_[0][0];return x-h},H={top:L,right:T,bottom:T,left:L},G=function(u,_){return u.sort(_)},P=function(u,_){var x=C.getCachedData(u),h=x.s,j=x.o,y=function(w,g,E,U,R,B,n){if(U.length>0)for(var o=G(U,H[w]),t=w==="right"||w==="top",d=C.getRotation(u),v=e(w,g,E,o,R,B,t,d),F=function(ot,st){l[ot.id]=[st[0],st[1],st[2],st[3]],i[ot.id]=n},I=0;I<v.length;I++){var X=v[I][4],N=X.endpoints[0].elementId===u,W=X.endpoints[1].elementId===u;N&&F(X.endpoints[0],v[I]),W&&F(X.endpoints[1],v[I])}};y("bottom",h,j,_.bottom,!0,1,[0,1]),y("top",h,j,_.top,!0,0,[0,-1]),y("left",h,j,_.left,!1,0,[-1,0]),y("right",h,j,_.right,!1,1,[1,0])};this.reset=function(){O={},b={},M={}},this.addFloatingConnection=function(u,_){a[u]=_},this.newConnection=function(u){var _=u.sourceId,x=u.targetId,h=u.endpoints,j=!0,y=function(w,g,E,U,R){_===x&&E.isContinuous&&(u._jsPlumb.instance.removeElement(h[1].canvas),j=!1),f.addToList(b,U,[R,g,E.constructor===V.DynamicAnchor])};y(0,h[0],h[0].anchor,x,u),j&&y(1,h[1],h[1].anchor,_,u)};var A=function(u){(function(_,x){if(_){var h=function(j){return j[4]===x};f.removeWithFunction(_.top,h),f.removeWithFunction(_.left,h),f.removeWithFunction(_.bottom,h),f.removeWithFunction(_.right,h)}})(M[u.elementId],u.id)};this.connectionDetached=function(u,_){var x=u.connection||u,h=u.sourceId,j=u.targetId,y=x.endpoints,w=function(g,E,U,R,B){f.removeWithFunction(b[R],function(n){return n[0].id===B.id})};w(1,y[1],y[1].anchor,h,x),w(0,y[0],y[0].anchor,j,x),x.floatingId&&(w(x.floatingIndex,x.floatingEndpoint,x.floatingEndpoint.anchor,x.floatingId,x),A(x.floatingEndpoint)),A(x.endpoints[0]),A(x.endpoints[1]),_||(D.redraw(x.sourceId),x.targetId!==x.sourceId&&D.redraw(x.targetId))},this.addEndpoint=function(u,_){f.addToList(O,_,u)},this.changeId=function(u,_){b[_]=b[u],O[_]=O[u],delete b[u],delete O[u]},this.getConnectionsFor=function(u){return b[u]||[]},this.getEndpointsFor=function(u){return O[u]||[]},this.deleteEndpoint=function(u){f.removeWithFunction(O[u.elementId],function(_){return _.id===u.id}),A(u)},this.elementRemoved=function(u){delete a[u],delete O[u],O[u]=[]};var r=function(u,_,x,h,j,y,w,g,E,U,R,B){var n=-1,o=h.endpoints[w],t=o.id,d=[1,0][w],v=[[_,x],h,j,y,t],F=u[E],I=o._continuousAnchorEdge?u[o._continuousAnchorEdge]:null,X,N;if(I){var W=f.findWithFunction(I,function(st){return st[4]===t});if(W!==-1)for(I.splice(W,1),X=0;X<I.length;X++)N=I[X][1],f.addWithFunction(R,N,function(st){return st.id===N.id}),f.addWithFunction(B,I[X][1].endpoints[w],function(st){return st.id===N.endpoints[w].id}),f.addWithFunction(B,I[X][1].endpoints[d],function(st){return st.id===N.endpoints[d].id})}for(X=0;X<F.length;X++)N=F[X][1],c.idx===1&&F[X][3]===y&&n===-1&&(n=X),f.addWithFunction(R,N,function(st){return st.id===N.id}),f.addWithFunction(B,F[X][1].endpoints[w],function(st){return st.id===N.endpoints[w].id}),f.addWithFunction(B,F[X][1].endpoints[d],function(st){return st.id===N.endpoints[d].id});{var ot=g?n!==-1?n:0:F.length;F.splice(ot,0,v)}o._continuousAnchorEdge=E};this.sourceOrTargetChanged=function(u,_,x,h,j){if(j===0){if(u!==_){x.sourceId=_,x.source=h,f.removeWithFunction(b[u],function(U){return U[0].id===x.id});var y=f.findWithFunction(b[x.targetId],function(U){return U[0].id===x.id});y>-1&&(b[x.targetId][y][0]=x,b[x.targetId][y][1]=x.endpoints[0],b[x.targetId][y][2]=x.endpoints[0].anchor.constructor===V.DynamicAnchor),f.addToList(b,_,[x,x.endpoints[1],x.endpoints[1].anchor.constructor===V.DynamicAnchor]),x.endpoints[1].anchor.isContinuous&&(x.source===x.target?x._jsPlumb.instance.removeElement(x.endpoints[1].canvas):x.endpoints[1].canvas.parentNode==null&&x._jsPlumb.instance.appendElement(x.endpoints[1].canvas)),x.updateConnectedClass()}}else if(j===1){var w=x.endpoints[0].elementId;x.target=h,x.targetId=_;var g=f.findWithFunction(b[w],function(U){return U[0].id===x.id}),E=f.findWithFunction(b[u],function(U){return U[0].id===x.id});g!==-1&&(b[w][g][0]=x,b[w][g][1]=x.endpoints[1],b[w][g][2]=x.endpoints[1].anchor.constructor===V.DynamicAnchor),E>-1&&(b[u].splice(E,1),f.addToList(b,_,[x,x.endpoints[0],x.endpoints[0].anchor.constructor===V.DynamicAnchor])),x.updateConnectedClass()}},this.rehomeEndpoint=function(u,_,x){var h=O[_]||[],j=C.getId(x);if(j!==_){var y=h.indexOf(u);if(y>-1){var w=h.splice(y,1)[0];D.add(w,j)}}for(var g=0;g<u.connections.length;g++)u.connections[g].sourceId===_?D.sourceOrTargetChanged(_,u.elementId,u.connections[g],u.element,0):u.connections[g].targetId===_&&D.sourceOrTargetChanged(_,u.elementId,u.connections[g],u.element,1)},this.redraw=function(u,_,x,h,j,y){var w=[],g=[],E=[];if(!C.isSuspendDrawing()){var U=O[u]||[],R=b[u]||[];x=x||jsPlumbUtil.uuid(),h=h||{left:0,top:0},_&&(_={left:_.left+h.left,top:_.top+h.top});for(var B=C.updateOffset({elId:u,offset:_,recalc:!1,timestamp:x}),n={},o=0;o<R.length;o++){var t=R[o][0],d=t.sourceId,v=t.targetId,F=t.endpoints[0].anchor.isContinuous,I=t.endpoints[1].anchor.isContinuous;if(F||I){var X=d+"_"+v,N=n[X],W=t.sourceId===u?1:0,ot=C.getRotation(v),st=C.getRotation(d);F&&!M[d]&&(M[d]={top:[],right:[],bottom:[],left:[]}),I&&!M[v]&&(M[v]={top:[],right:[],bottom:[],left:[]}),u!==v&&C.updateOffset({elId:v,timestamp:x}),u!==d&&C.updateOffset({elId:d,timestamp:x});var Q=C.getCachedData(v),rt=C.getCachedData(d);v===d&&(F||I)?(r(M[d],-Math.PI/2,0,t,!1,v,0,!1,"top",d,w,g),r(M[v],-Math.PI/2,0,t,!1,d,1,!1,"top",v,w,g)):(N||(N=this.calculateOrientation(d,v,rt.o,Q.o,t.endpoints[0].anchor,t.endpoints[1].anchor,t,st,ot),n[X]=N),F&&r(M[d],N.theta,0,t,!1,v,0,!1,N.a[0],d,w,g),I&&r(M[v],N.theta2,-1,t,!0,d,1,!0,N.a[1],v,w,g)),F&&f.addWithFunction(E,d,function(gt){return gt===d}),I&&f.addWithFunction(E,v,function(gt){return gt===v}),f.addWithFunction(w,t,function(gt){return gt.id===t.id}),(F&&W===0||I&&W===1)&&f.addWithFunction(g,t.endpoints[W],function(gt){return gt.id===t.endpoints[W].id})}}for(o=0;o<U.length;o++)U[o].connections.length===0&&U[o].anchor.isContinuous&&(M[u]||(M[u]={top:[],right:[],bottom:[],left:[]}),r(M[u],-Math.PI/2,0,{endpoints:[U[o],U[o]],paint:function(){}},!1,u,0,!1,U[o].anchor.getDefaultFace(),u,w,g),f.addWithFunction(E,u,function(gt){return gt===u}));for(o=0;o<E.length;o++)P(E[o],M[E[o]]);for(o=0;o<U.length;o++)U[o].paint({timestamp:x,offset:B,dimensions:B.s,recalc:y!==!0});for(o=0;o<g.length;o++){var pt=C.getCachedData(g[o].elementId);g[o].paint({timestamp:null,offset:pt,dimensions:pt.s})}for(o=0;o<R.length;o++){var ft=R[o][1];if(ft.anchor.constructor===V.DynamicAnchor){ft.paint({elementWithPrecedence:u,timestamp:x}),f.addWithFunction(w,R[o][0],function(gt){return gt.id===R[o][0].id});for(var lt=0;lt<ft.connections.length;lt++)ft.connections[lt]!==R[o][0]&&f.addWithFunction(w,ft.connections[lt],function(gt){return gt.id===ft.connections[lt].id})}else f.addWithFunction(w,R[o][0],function(gt){return gt.id===R[o][0].id})}var bt=a[u];for(bt&&bt.paint({timestamp:x,recalc:!1,elId:u}),o=0;o<w.length;o++)w[o].paint({elId:u,timestamp:null,recalc:!1,clearEdits:j})}return{c:w,e:g}};var p=function(u){f.EventGenerator.apply(this),this.type="Continuous",this.isDynamic=!0,this.isContinuous=!0;for(var _=u.faces||["top","right","bottom","left"],x=u.clockwise!==!1,h={},j={top:"bottom",right:"left",left:"right",bottom:"top"},y={top:"right",right:"bottom",left:"top",bottom:"left"},w={top:"left",right:"top",left:"bottom",bottom:"right"},g=x?y:w,E=x?w:y,U=u.cssClass||"",R=null,B=null,n=["left","right"],o=["top","bottom"],t=null,d=0;d<_.length;d++)h[_[d]]=!0;this.getDefaultFace=function(){return _.length===0?"top":_[0]},this.isRelocatable=function(){return!0},this.isSnapOnRelocate=function(){return!0},this.verifyEdge=function(v){return h[v]?v:h[j[v]]?j[v]:h[g[v]]?g[v]:h[E[v]]?E[v]:v},this.isEdgeSupported=function(v){return t==null?B==null?h[v]===!0:B===v:t.indexOf(v)!==-1},this.setCurrentFace=function(v,F){R=v,F&&B!=null&&(B=R)},this.getCurrentFace=function(){return R},this.getSupportedFaces=function(){var v=[];for(var F in h)h[F]&&v.push(F);return v},this.lock=function(){B=R},this.unlock=function(){B=null},this.isLocked=function(){return B!=null},this.lockCurrentAxis=function(){R!=null&&(t=R==="left"||R==="right"?n:o)},this.unlockCurrentAxis=function(){t=null},this.compute=function(v){return l[v.element.id]||[0,0]},this.getCurrentLocation=function(v){return l[v.element.id]||[0,0]},this.getOrientation=function(v){return i[v.id]||[0,0]},this.getCssClass=function(){return U}};C.continuousAnchorFactory={get:function(u){return new p(u)},clear:function(u){delete l[u]}}},V.AnchorManager.prototype.calculateOrientation=function(c,O,l,i,b,D,M,C,a){var e={HORIZONTAL:"horizontal",VERTICAL:"vertical",DIAGONAL:"diagonal",IDENTITY:"identity"},T=["left","top","right","bottom"];if(c===O)return{orientation:e.IDENTITY,a:["top","top"]};var L=Math.atan2(i.centery-l.centery,i.centerx-l.centerx),H=Math.atan2(l.centery-i.centery,l.centerx-i.centerx),G=[],P={};(function(x,h){for(var j=0;j<x.length;j++)if(P[x[j]]={left:[h[j][0].left,h[j][0].centery],right:[h[j][0].right,h[j][0].centery],top:[h[j][0].centerx,h[j][0].top],bottom:[h[j][0].centerx,h[j][0].bottom]},h[j][1]!==0)for(var y in P[x[j]])P[x[j]][y]=jsPlumbUtil.rotatePoint(P[x[j]][y],[h[j][0].centerx,h[j][0].centery],h[j][1])})(["source","target"],[[l,C],[i,a]]);for(var A=0;A<T.length;A++)for(var r=0;r<T.length;r++)G.push({source:T[A],target:T[r],dist:Biltong.lineLength(P.source[T[A]],P.target[T[r]])});G.sort(function(x,h){return x.dist<h.dist?-1:x.dist>h.dist?1:0});for(var p=G[0].source,u=G[0].target,_=0;_<G.length&&(b.isContinuous&&b.locked?p=b.getCurrentFace():!b.isContinuous||b.isEdgeSupported(G[_].source)?p=G[_].source:p=null,D.isContinuous&&D.locked?u=D.getCurrentFace():!D.isContinuous||D.isEdgeSupported(G[_].target)?u=G[_].target:u=null,!(p!=null&&u!=null));_++);return b.isContinuous&&b.setCurrentFace(p),D.isContinuous&&D.setCurrentFace(u),{a:[p,u],theta:L,theta2:H}},V.Anchor=function(c){this.x=c.x||0,this.y=c.y||0,this.elementId=c.elementId,this.cssClass=c.cssClass||"",this.orientation=c.orientation||[0,0],this.lastReturnValue=null,this.offsets=c.offsets||[0,0],this.timestamp=null,this._unrotatedOrientation=[this.orientation[0],this.orientation[1]],this.relocatable=c.relocatable!==!1,this.snapOnRelocate=c.snapOnRelocate!==!1,this.locked=!1,f.EventGenerator.apply(this),this.compute=function(O){var l=O.xy,i=O.wh,b=O.timestamp;if(b&&b===this.timestamp)return this.lastReturnValue;var D=[l[0]+this.x*i[0]+this.offsets[0],l[1]+this.y*i[1]+this.offsets[1],this.x,this.y],M=O.rotation;if(M!=null&&M!==0){var C=jsPlumbUtil.rotatePoint(D,[l[0]+i[0]/2,l[1]+i[1]/2],M);this.orientation[0]=Math.round(this._unrotatedOrientation[0]*C[2]-this._unrotatedOrientation[1]*C[3]),this.orientation[1]=Math.round(this._unrotatedOrientation[1]*C[2]+this._unrotatedOrientation[0]*C[3]),this.lastReturnValue=[C[0],C[1],this.x,this.y]}else this.orientation[0]=this._unrotatedOrientation[0],this.orientation[1]=this._unrotatedOrientation[1],this.lastReturnValue=D;return this.timestamp=b,this.lastReturnValue},this.getCurrentLocation=function(O){return O=O||{},this.lastReturnValue==null||O.timestamp!=null&&this.timestamp!==O.timestamp?this.compute(O):this.lastReturnValue},this.setPosition=function(O,l,i,b,D){(!this.locked||D)&&(this.x=O,this.y=l,this.orientation=[i,b],this.lastReturnValue=null)}},f.extend(V.Anchor,f.EventGenerator,{equals:function(c){if(!c)return!1;var O=c.getOrientation(),l=this.getOrientation();return this.x===c.x&&this.y===c.y&&this.offsets[0]===c.offsets[0]&&this.offsets[1]===c.offsets[1]&&l[0]===O[0]&&l[1]===O[1]},getOrientation:function(){return this.orientation},getCssClass:function(){return this.cssClass}}),V.FloatingAnchor=function(c){V.Anchor.apply(this,arguments);var O=c.reference,l=c.referenceCanvas,i=V.getSize(l),b=0,D=0,M=null,C=null;this.orientation=null,this.x=0,this.y=0,this.isFloating=!0,this.compute=function(a){var e=a.xy,T=[e[0]+i[0]/2,e[1]+i[1]/2];return C=T,T},this.getOrientation=function(a){if(M)return M;var e=O.getOrientation(a);return[Math.abs(e[0])*b*-1,Math.abs(e[1])*D*-1]},this.over=function(a,e){M=a.getOrientation(e)},this.out=function(){M=null},this.getCurrentLocation=function(a){return C??this.compute(a)}},f.extend(V.FloatingAnchor,V.Anchor);var it=function(c,O,l){return c.constructor===V.Anchor?c:O.makeAnchor(c,l,O)};V.DynamicAnchor=function(c){V.Anchor.apply(this,arguments),this.isDynamic=!0,this.anchors=[],this.elementId=c.elementId,this.jsPlumbInstance=c.jsPlumbInstance;for(var O=0;O<c.anchors.length;O++)this.anchors[O]=it(c.anchors[O],this.jsPlumbInstance,this.elementId);this.getAnchors=function(){return this.anchors};var l=this.anchors.length>0?this.anchors[0]:null,i=l,b=function(M,C,a,e,T,L,H){var G=e[0]+M.x*T[0],P=e[1]+M.y*T[1],A=e[0]+T[0]/2,r=e[1]+T[1]/2;if(L!=null&&L!==0){var p=jsPlumbUtil.rotatePoint([G,P],[A,r],L);G=p[0],P=p[1]}return Math.sqrt(Math.pow(C-G,2)+Math.pow(a-P,2))+Math.sqrt(Math.pow(A-G,2)+Math.pow(r-P,2))},D=c.selector||function(M,C,a,e,T,L,H){for(var G=a[0]+e[0]/2,P=a[1]+e[1]/2,A=-1,r=1/0,p=0;p<H.length;p++){var u=b(H[p],G,P,M,C,T);u<r&&(A=p+0,r=u)}return H[A]};this.compute=function(M){var C=M.xy,a=M.wh,e=M.txy,T=M.twh,L=M.rotation,H=M.tRotation;return this.timestamp=M.timestamp,this.locked||e==null||T==null?(this.lastReturnValue=l.compute(M),this.lastReturnValue):(M.timestamp=null,l=D(C,a,e,T,L,H,this.anchors),this.x=l.x,this.y=l.y,l!==i&&this.fire("anchorChanged",l),i=l,this.lastReturnValue=l.compute(M),this.lastReturnValue)},this.getCurrentLocation=function(M){return l!=null?l.getCurrentLocation(M):null},this.getOrientation=function(M){return l!=null?l.getOrientation(M):[0,0]},this.over=function(M,C){l!=null&&l.over(M,C)},this.out=function(){l!=null&&l.out()},this.setAnchor=function(M){l=M},this.getCssClass=function(){return l&&l.getCssClass()||""},this.setAnchorCoordinates=function(M){var C=jsPlumbUtil.findWithFunction(this.anchors,function(a){return a.x===M[0]&&a.y===M[1]});return C!==-1?(this.setAnchor(this.anchors[C]),!0):!1}},f.extend(V.DynamicAnchor,V.Anchor);var K=function(c,O,l,i,b,D){V.Anchors[b]=function(M){var C=M.jsPlumbInstance.makeAnchor([c,O,l,i,0,0],M.elementId,M.jsPlumbInstance);return C.type=b,D&&D(C,M),C}};K(.5,0,0,-1,"TopCenter"),K(.5,1,0,1,"BottomCenter"),K(0,.5,-1,0,"LeftMiddle"),K(1,.5,1,0,"RightMiddle"),K(.5,0,0,-1,"Top"),K(.5,1,0,1,"Bottom"),K(0,.5,-1,0,"Left"),K(1,.5,1,0,"Right"),K(.5,.5,0,0,"Center"),K(1,0,0,-1,"TopRight"),K(1,1,0,1,"BottomRight"),K(0,0,0,-1,"TopLeft"),K(0,1,0,1,"BottomLeft"),V.Defaults.DynamicAnchors=function(c){return c.jsPlumbInstance.makeAnchors(["TopCenter","RightMiddle","BottomCenter","LeftMiddle"],c.elementId,c.jsPlumbInstance)},V.Anchors.AutoDefault=function(c){var O=c.jsPlumbInstance.makeDynamicAnchor(V.Defaults.DynamicAnchors(c));return O.type="AutoDefault",O};var nt=function(c,O){V.Anchors[c]=function(l){var i=l.jsPlumbInstance.makeAnchor(["Continuous",{faces:O}],l.elementId,l.jsPlumbInstance);return i.type=c,i}};V.Anchors.Continuous=function(c){return c.jsPlumbInstance.continuousAnchorFactory.get(c)},nt("ContinuousLeft",["left"]),nt("ContinuousTop",["top"]),nt("ContinuousBottom",["bottom"]),nt("ContinuousRight",["right"]),K(0,0,0,0,"Assign",function(c,O){var l=O.position||"Fixed";c.positionFinder=l.constructor===String?O.jsPlumbInstance.AnchorPositionFinders[l]:l,c.constructorParams=O}),Z.jsPlumbInstance.prototype.AnchorPositionFinders={Fixed:function(c,O,l){return[(c.left-O.left)/l[0],(c.top-O.top)/l[1]]},Grid:function(c,O,l,i){var b=c.left-O.left,D=c.top-O.top,M=l[0]/i.grid[0],C=l[1]/i.grid[1],a=Math.floor(b/M),e=Math.floor(D/C);return[(a*M+M/2)/l[0],(e*C+C/2)/l[1]]}},V.Anchors.Perimeter=function(c){c=c||{};var O=c.anchorCount||60,l=c.shape;if(!l)throw new Error("no shape supplied to Perimeter Anchor type");var i=function(){for(var L=.5,H=Math.PI*2/O,G=0,P=[],A=0;A<O;A++){var r=L+L*Math.sin(G),p=L+L*Math.cos(G);P.push([r,p,0,0]),G+=H}return P},b=function(L){for(var H=O/L.length,G=[],P=function(r,p,u,_,x,h,j){H=O*x;for(var y=(u-r)/H,w=(_-p)/H,g=0;g<H;g++)G.push([r+y*g,p+w*g,h??0,j??0])},A=0;A<L.length;A++)P.apply(null,L[A]);return G},D=function(L){for(var H=[],G=0;G<L.length;G++)H.push([L[G][0],L[G][1],L[G][2],L[G][3],1/L.length,L[G][4],L[G][5]]);return b(H)},M=function(){return D([[0,0,1,0,0,-1],[1,0,1,1,1,0],[1,1,0,1,0,1],[0,1,0,0,-1,0]])},C={Circle:i,Ellipse:i,Diamond:function(){return D([[.5,0,1,.5],[1,.5,.5,1],[.5,1,0,.5],[0,.5,.5,0]])},Rectangle:M,Square:M,Triangle:function(){return D([[.5,0,1,1],[1,1,0,1],[0,1,.5,0]])},Path:function(L){for(var H=L.points,G=[],P=0,A=0;A<H.length-1;A++){var r=Math.sqrt(Math.pow(H[A][2]-H[A][0])+Math.pow(H[A][3]-H[A][1]));P+=r,G.push([H[A][0],H[A][1],H[A+1][0],H[A+1][1],r])}for(var p=0;p<G.length;p++)G[p][4]=G[p][4]/P;return b(G)}},a=function(L,H){for(var G=[],P=H/180*Math.PI,A=0;A<L.length;A++){var r=L[A][0]-.5,p=L[A][1]-.5;G.push([.5+(r*Math.cos(P)-p*Math.sin(P)),.5+(r*Math.sin(P)+p*Math.cos(P)),L[A][2],L[A][3]])}return G};if(!C[l])throw new Error("Shape ["+l+"] is unknown by Perimeter Anchor type");var e=C[l](c);c.rotation&&(e=a(e,c.rotation));var T=c.jsPlumbInstance.makeDynamicAnchor(e);return T.type="Perimeter",T}}.call(typeof window<"u"?window:jt),function(){var Z=this;Z.jsPlumbUtil;var f=Z.jsPlumb;f.DefaultRouter=function(V){this.jsPlumbInstance=V,this.anchorManager=new f.AnchorManager({jsPlumbInstance:V}),this.sourceOrTargetChanged=function(it,K,nt,c,O){this.anchorManager.sourceOrTargetChanged(it,K,nt,c,O)},this.reset=function(){this.anchorManager.reset()},this.changeId=function(it,K){this.anchorManager.changeId(it,K)},this.elementRemoved=function(it){this.anchorManager.elementRemoved(it)},this.newConnection=function(it){this.anchorManager.newConnection(it)},this.connectionDetached=function(it,K){this.anchorManager.connectionDetached(it,K)},this.redraw=function(it,K,nt,c,O,l){return this.anchorManager.redraw(it,K,nt,c,O,l)},this.deleteEndpoint=function(it){this.anchorManager.deleteEndpoint(it)},this.rehomeEndpoint=function(it,K,nt){this.anchorManager.rehomeEndpoint(it,K,nt)},this.addEndpoint=function(it,K){this.anchorManager.addEndpoint(it,K)}}}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it=Z.Biltong;f.Segments={AbstractSegment:function(i){this.params=i,this.findClosestPointOnPath=function(b,D){return{d:1/0,x:null,y:null,l:null}},this.getBounds=function(){return{minX:Math.min(i.x1,i.x2),minY:Math.min(i.y1,i.y2),maxX:Math.max(i.x1,i.x2),maxY:Math.max(i.y1,i.y2)}},this.lineIntersection=function(b,D,M,C){return[]},this.boxIntersection=function(b,D,M,C){var a=[];return a.push.apply(a,this.lineIntersection(b,D,b+M,D)),a.push.apply(a,this.lineIntersection(b+M,D,b+M,D+C)),a.push.apply(a,this.lineIntersection(b+M,D+C,b,D+C)),a.push.apply(a,this.lineIntersection(b,D+C,b,D)),a},this.boundingBoxIntersection=function(b){return this.boxIntersection(b.x,b.y,b.w,b.y)}},Straight:function(i){f.Segments.AbstractSegment.apply(this,arguments);var b,D,M,C,a,e,T,L=function(){b=Math.sqrt(Math.pow(a-C,2)+Math.pow(T-e,2)),D=it.gradient({x:C,y:e},{x:a,y:T}),M=-1/D};this.type="Straight",this.getLength=function(){return b},this.getGradient=function(){return D},this.getCoordinates=function(){return{x1:C,y1:e,x2:a,y2:T}},this.setCoordinates=function(r){C=r.x1,e=r.y1,a=r.x2,T=r.y2,L()},this.setCoordinates({x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2}),this.getBounds=function(){return{minX:Math.min(C,a),minY:Math.min(e,T),maxX:Math.max(C,a),maxY:Math.max(e,T)}},this.pointOnPath=function(r,p){if(r===0&&!p)return{x:C,y:e};if(r===1&&!p)return{x:a,y:T};var u=p?r>0?r:b+r:r*b;return it.pointOnLine({x:C,y:e},{x:a,y:T},u)},this.gradientAtPoint=function(r){return D},this.pointAlongPathFrom=function(r,p,u){var _=this.pointOnPath(r,u),x=p<=0?{x:C,y:e}:{x:a,y:T};return p<=0&&Math.abs(p)>1&&(p*=-1),it.pointOnLine(_,x,p)};var H=function(r,p,u){return u>=Math.min(r,p)&&u<=Math.max(r,p)},G=function(r,p,u){return Math.abs(u-r)<Math.abs(u-p)?r:p};this.findClosestPointOnPath=function(r,p){var u={d:1/0,x:null,y:null,l:null,x1:C,x2:a,y1:e,y2:T};if(D===0)u.y=e,u.x=H(C,a,r)?r:G(C,a,r);else if(D===1/0||D===-1/0)u.x=C,u.y=H(e,T,p)?p:G(e,T,p);else{var _=e-D*C,x=p-M*r,h=(x-_)/(D-M),j=D*h+_;u.x=H(C,a,h)?h:G(C,a,h),u.y=H(e,T,j)?j:G(e,T,j)}var y=it.lineLength([u.x,u.y],[C,e]);return u.d=it.lineLength([r,p],[u.x,u.y]),u.l=y/b,u};var P=function(r,p,u){return u>p?p<=r&&r<=u:p>=r&&r>=u},A=P;this.lineIntersection=function(r,p,u,_){var x=Math.abs(it.gradient({x:r,y:p},{x:u,y:_})),h=Math.abs(D),j=h===1/0?C:e-h*C,y=[],w=x===1/0?r:p-x*r;if(x!==h)if(x===1/0&&h===0)A(r,C,a)&&A(e,p,_)&&(y=[r,e]);else if(x===0&&h===1/0)A(p,e,T)&&A(C,r,u)&&(y=[C,p]);else{var g,E;x===1/0?(g=r,A(g,C,a)&&(E=h*r+j,A(E,p,_)&&(y=[g,E]))):x===0?(E=p,A(E,e,T)&&(g=(p-j)/h,A(g,r,u)&&(y=[g,E]))):(g=(w-j)/(h-x),E=h*g+j,A(g,C,a)&&A(E,e,T)&&(y=[g,E]))}return y},this.boxIntersection=function(r,p,u,_){var x=[];return x.push.apply(x,this.lineIntersection(r,p,r+u,p)),x.push.apply(x,this.lineIntersection(r+u,p,r+u,p+_)),x.push.apply(x,this.lineIntersection(r+u,p+_,r,p+_)),x.push.apply(x,this.lineIntersection(r,p+_,r,p)),x},this.boundingBoxIntersection=function(r){return this.boxIntersection(r.x,r.y,r.w,r.h)}},Arc:function(i){f.Segments.AbstractSegment.apply(this,arguments);var b=function(G,P){return it.theta([i.cx,i.cy],[G,P])},D=function(G,P){if(G.anticlockwise){var A=G.startAngle<G.endAngle?G.startAngle+M:G.startAngle,r=Math.abs(A-G.endAngle);return A-r*P}else{var p=G.endAngle<G.startAngle?G.endAngle+M:G.endAngle,u=Math.abs(p-G.startAngle);return G.startAngle+u*P}},M=2*Math.PI;this.radius=i.r,this.anticlockwise=i.ac,this.type="Arc",i.startAngle&&i.endAngle?(this.startAngle=i.startAngle,this.endAngle=i.endAngle,this.x1=i.cx+this.radius*Math.cos(i.startAngle),this.y1=i.cy+this.radius*Math.sin(i.startAngle),this.x2=i.cx+this.radius*Math.cos(i.endAngle),this.y2=i.cy+this.radius*Math.sin(i.endAngle)):(this.startAngle=b(i.x1,i.y1),this.endAngle=b(i.x2,i.y2),this.x1=i.x1,this.y1=i.y1,this.x2=i.x2,this.y2=i.y2),this.endAngle<0&&(this.endAngle+=M),this.startAngle<0&&(this.startAngle+=M);var C=this.endAngle<this.startAngle?this.endAngle+M:this.endAngle;this.sweep=Math.abs(C-this.startAngle),this.anticlockwise&&(this.sweep=M-this.sweep);var a=2*Math.PI*this.radius,e=this.sweep/M,T=a*e;this.getLength=function(){return T},this.getBounds=function(){return{minX:i.cx-i.r,maxX:i.cx+i.r,minY:i.cy-i.r,maxY:i.cy+i.r}};var L=1e-10,H=function(G){var P=Math.floor(G),A=Math.ceil(G);return G-P<L?P:A-G<L?A:G};this.pointOnPath=function(G,P){if(G===0)return{x:this.x1,y:this.y1,theta:this.startAngle};if(G===1)return{x:this.x2,y:this.y2,theta:this.endAngle};P&&(G=G/T);var A=D(this,G),r=i.cx+i.r*Math.cos(A),p=i.cy+i.r*Math.sin(A);return{x:H(r),y:H(p),theta:A}},this.gradientAtPoint=function(G,P){var A=this.pointOnPath(G,P),r=it.normal([i.cx,i.cy],[A.x,A.y]);return!this.anticlockwise&&(r===1/0||r===-1/0)&&(r*=-1),r},this.pointAlongPathFrom=function(G,P,A){var r=this.pointOnPath(G,A),p=P/a*2*Math.PI,u=this.anticlockwise?-1:1,_=r.theta+u*p,x=i.cx+this.radius*Math.cos(_),h=i.cy+this.radius*Math.sin(_);return{x,y:h}}},Bezier:function(i){this.curve=[{x:i.x1,y:i.y1},{x:i.cp1x,y:i.cp1y},{x:i.cp2x,y:i.cp2y},{x:i.x2,y:i.y2}];var b=function(T){return T[0].x===T[1].x&&T[0].y===T[1].y},D=function(T,L){return Math.sqrt(Math.pow(T.x-L.x,2)+Math.pow(T.y-L.y,2))},M=function(T){var L={x:0,y:0};if(T===0)return this.curve[0];var H=this.curve.length-1;if(T===1)return this.curve[H];var G=this.curve,P=1-T;if(H===0)return this.curve[0];if(H===1)return{x:P*G[0].x+T*G[1].x,y:P*G[0].y+T*G[1].y};if(H<4){var A=P*P,r=T*T,p=0,u,_,x;return H===2?(G=[G[0],G[1],G[2],L],u=A,_=2*(P*T),x=r):H===3&&(u=A*P,_=3*(A*T),x=3*(P*r),p=T*r),{x:u*G[0].x+_*G[1].x+x*G[2].x+p*G[3].x,y:u*G[0].y+_*G[1].y+x*G[2].y+p*G[3].y}}else return L}.bind(this),C=function(T){var L=[];T--;for(var H=0;H<=T;H++)L.push(M(H/T));return L},a=function(){b(this.curve)&&(this.length=0);var T=16,L=C(T);this.length=0;for(var H=0;H<T-1;H++){var G=L[H],P=L[H+1];this.length+=D(G,P)}}.bind(this);f.Segments.AbstractSegment.apply(this,arguments),this.bounds={minX:Math.min(i.x1,i.x2,i.cp1x,i.cp2x),minY:Math.min(i.y1,i.y2,i.cp1y,i.cp2y),maxX:Math.max(i.x1,i.x2,i.cp1x,i.cp2x),maxY:Math.max(i.y1,i.y2,i.cp1y,i.cp2y)},this.type="Bezier",a();var e=function(T,L,H){return H&&(L=Z.jsBezier.locationAlongCurveFrom(T,L>0?0:1,L)),L};this.pointOnPath=function(T,L){return T=e(this.curve,T,L),Z.jsBezier.pointOnCurve(this.curve,T)},this.gradientAtPoint=function(T,L){return T=e(this.curve,T,L),Z.jsBezier.gradientAtPoint(this.curve,T)},this.pointAlongPathFrom=function(T,L,H){return T=e(this.curve,T,H),Z.jsBezier.pointAlongCurveFrom(this.curve,T,L)},this.getLength=function(){return this.length},this.getBounds=function(){return this.bounds},this.findClosestPointOnPath=function(T,L){var H=Z.jsBezier.nearestPointOnCurve({x:T,y:L},this.curve);return{d:Math.sqrt(Math.pow(H.point.x-T,2)+Math.pow(H.point.y-L,2)),x:H.point.x,y:H.point.y,l:1-H.location,s:this}},this.lineIntersection=function(T,L,H,G){return Z.jsBezier.lineIntersection(T,L,H,G,this.curve)}}},f.SegmentRenderer={getPath:function(i,b){return{Straight:function(D){var M=i.getCoordinates();return(D?"M "+M.x1+" "+M.y1+" ":"")+"L "+M.x2+" "+M.y2},Bezier:function(D){var M=i.params;return(D?"M "+M.x2+" "+M.y2+" ":"")+"C "+M.cp2x+" "+M.cp2y+" "+M.cp1x+" "+M.cp1y+" "+M.x1+" "+M.y1},Arc:function(D){var M=i.params,C=i.sweep>Math.PI?1:0,a=i.anticlockwise?0:1;return(D?"M"+i.x1+" "+i.y1+" ":"")+"A "+i.radius+" "+M.r+" 0 "+C+","+a+" "+i.x2+" "+i.y2}}[i.type](b)}};var K=function(){this.resetBounds=function(){this.bounds={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}},this.resetBounds()};f.Connectors.AbstractConnector=function(i){K.apply(this,arguments);var b=[],D=0,M=[],C=[],a=i.stub||0,e=V.isArray(a)?a[0]:a,T=V.isArray(a)?a[1]:a,L=i.gap||0,H=V.isArray(L)?L[0]:L,G=V.isArray(L)?L[1]:L,P=null,A=null;this.getPathData=function(){for(var h="",j=0;j<b.length;j++)h+=f.SegmentRenderer.getPath(b[j],j===0),h+=" ";return h},this.findSegmentForPoint=function(h,j){for(var y={d:1/0,s:null,x:null,y:null,l:null},w=0;w<b.length;w++){var g=b[w].findClosestPointOnPath(h,j);g.d<y.d&&(y.d=g.d,y.l=g.l,y.x=g.x,y.y=g.y,y.s=b[w],y.x1=g.x1,y.x2=g.x2,y.y1=g.y1,y.y2=g.y2,y.index=w,y.connectorLocation=M[w][0]+g.l*(M[w][1]-M[w][0]))}return y},this.lineIntersection=function(h,j,y,w){for(var g=[],E=0;E<b.length;E++)g.push.apply(g,b[E].lineIntersection(h,j,y,w));return g},this.boxIntersection=function(h,j,y,w){for(var g=[],E=0;E<b.length;E++)g.push.apply(g,b[E].boxIntersection(h,j,y,w));return g},this.boundingBoxIntersection=function(h){for(var j=[],y=0;y<b.length;y++)j.push.apply(j,b[y].boundingBoxIntersection(h));return j};var r=function(){for(var h=0,j=0;j<b.length;j++){var y=b[j].getLength();C[j]=y/D,M[j]=[h,h+=y/D]}},p=function(h,j){var y,w,g;if(j&&(h=h>0?h/D:(D+h)/D),h===1)y=b.length-1,g=1;else if(h===0)g=0,y=0;else if(h>=.5){for(y=0,g=0,w=M.length-1;w>-1;w--)if(M[w][1]>=h&&M[w][0]<=h){y=w,g=(h-M[w][0])/C[w];break}}else for(y=M.length-1,g=1,w=0;w<M.length;w++)if(M[w][1]>=h){y=w,g=(h-M[w][0])/C[w];break}return{segment:b[y],proportion:g,index:y}},u=function(h,j,y){if(!(y.x1===y.x2&&y.y1===y.y2)){var w=new f.Segments[j](y);b.push(w),D+=w.getLength(),h.updateBounds(w)}},_=function(){D=b.length=M.length=C.length=0};this.setSegments=function(h){P=[],D=0;for(var j=0;j<h.length;j++)P.push(h[j]),D+=h[j].getLength()},this.getLength=function(){return D};var x=function(h){this.strokeWidth=h.strokeWidth;var j=it.quadrant(h.sourcePos,h.targetPos),y=h.targetPos[0]<h.sourcePos[0],w=h.targetPos[1]<h.sourcePos[1],g=h.strokeWidth||1,E=h.sourceEndpoint.anchor.getOrientation(h.sourceEndpoint),U=h.targetEndpoint.anchor.getOrientation(h.targetEndpoint),R=y?h.targetPos[0]:h.sourcePos[0],B=w?h.targetPos[1]:h.sourcePos[1],n=Math.abs(h.targetPos[0]-h.sourcePos[0]),o=Math.abs(h.targetPos[1]-h.sourcePos[1]);if(E[0]===0&&E[1]===0||U[0]===0&&U[1]===0){var t=n>o?0:1,d=[1,0][t];E=[],U=[],E[t]=h.sourcePos[t]>h.targetPos[t]?-1:1,U[t]=h.sourcePos[t]>h.targetPos[t]?1:-1,E[d]=0,U[d]=0}var v=y?n+H*E[0]:H*E[0],F=w?o+H*E[1]:H*E[1],I=y?G*U[0]:n+G*U[0],X=w?G*U[1]:o+G*U[1],N=E[0]*U[0]+E[1]*U[1],W={sx:v,sy:F,tx:I,ty:X,lw:g,xSpan:Math.abs(I-v),ySpan:Math.abs(X-F),mx:(v+I)/2,my:(F+X)/2,so:E,to:U,x:R,y:B,w:n,h:o,segment:j,startStubX:v+E[0]*e,startStubY:F+E[1]*e,endStubX:I+U[0]*T,endStubY:X+U[1]*T,isXGreaterThanStubTimes2:Math.abs(v-I)>e+T,isYGreaterThanStubTimes2:Math.abs(F-X)>e+T,opposite:N===-1,perpendicular:N===0,orthogonal:N===1,sourceAxis:E[0]===0?"y":"x",points:[R,B,n,o,v,F,I,X],stubs:[e,T]};return W.anchorOrientation=W.opposite?"opposite":W.orthogonal?"orthogonal":"perpendicular",W};return this.getSegments=function(){return b},this.updateBounds=function(h){var j=h.getBounds();this.bounds.minX=Math.min(this.bounds.minX,j.minX),this.bounds.maxX=Math.max(this.bounds.maxX,j.maxX),this.bounds.minY=Math.min(this.bounds.minY,j.minY),this.bounds.maxY=Math.max(this.bounds.maxY,j.maxY)},this.pointOnPath=function(h,j){var y=p(h,j);return y.segment&&y.segment.pointOnPath(y.proportion,!1)||[0,0]},this.gradientAtPoint=function(h,j){var y=p(h,j);return y.segment&&y.segment.gradientAtPoint(y.proportion,!1)||0},this.pointAlongPathFrom=function(h,j,y){var w=p(h,y);return w.segment&&w.segment.pointAlongPathFrom(w.proportion,j,!1)||[0,0]},this.compute=function(h){A=x.call(this,h),_(),this._compute(A,h),this.x=A.points[0],this.y=A.points[1],this.w=A.points[2],this.h=A.points[3],this.segment=A.segment,r()},{addSegment:u,prepareCompute:x,sourceStub:e,targetStub:T,maxStub:Math.max(e,T),sourceGap:H,targetGap:G,maxGap:Math.max(H,G)}},V.extend(f.Connectors.AbstractConnector,K),f.Endpoints.AbstractEndpoint=function(i){K.apply(this,arguments);var b=this.compute=function(D,M,C,a){var e=this._compute.apply(this,arguments);return this.x=e[0],this.y=e[1],this.w=e[2],this.h=e[3],this.bounds.minX=this.x,this.bounds.minY=this.y,this.bounds.maxX=this.x+this.w,this.bounds.maxY=this.y+this.h,e};return{compute:b,cssClass:i.cssClass}},V.extend(f.Endpoints.AbstractEndpoint,K),f.Endpoints.Dot=function(i){this.type="Dot",f.Endpoints.AbstractEndpoint.apply(this,arguments),i=i||{},this.radius=i.radius||10,this.defaultOffset=.5*this.radius,this.defaultInnerRadius=this.radius/3,this._compute=function(b,D,M,C){this.radius=M.radius||this.radius;var a=b[0]-this.radius,e=b[1]-this.radius,T=this.radius*2,L=this.radius*2;if(M.stroke){var H=M.strokeWidth||1;a-=H,e-=H,T+=H*2,L+=H*2}return[a,e,T,L,this.radius]}},V.extend(f.Endpoints.Dot,f.Endpoints.AbstractEndpoint),f.Endpoints.Rectangle=function(i){this.type="Rectangle",f.Endpoints.AbstractEndpoint.apply(this,arguments),i=i||{},this.width=i.width||20,this.height=i.height||20,this._compute=function(b,D,M,C){var a=M.width||this.width,e=M.height||this.height,T=b[0]-a/2,L=b[1]-e/2;return[T,L,a,e]}},V.extend(f.Endpoints.Rectangle,f.Endpoints.AbstractEndpoint);var nt=function(i){f.jsPlumbUIComponent.apply(this,arguments),this._jsPlumb.displayElements=[]};V.extend(nt,f.jsPlumbUIComponent,{getDisplayElements:function(){return this._jsPlumb.displayElements},appendDisplayElement:function(i){this._jsPlumb.displayElements.push(i)}}),f.Endpoints.Image=function(i){this.type="Image",nt.apply(this,arguments),f.Endpoints.AbstractEndpoint.apply(this,arguments);var b=i.onload,D=i.src||i.url,M=i.cssClass?" "+i.cssClass:"";this._jsPlumb.img=new Image,this._jsPlumb.ready=!1,this._jsPlumb.initialized=!1,this._jsPlumb.deleted=!1,this._jsPlumb.widthToUse=i.width,this._jsPlumb.heightToUse=i.height,this._jsPlumb.endpoint=i.endpoint,this._jsPlumb.img.onload=function(){this._jsPlumb!=null&&(this._jsPlumb.ready=!0,this._jsPlumb.widthToUse=this._jsPlumb.widthToUse||this._jsPlumb.img.width,this._jsPlumb.heightToUse=this._jsPlumb.heightToUse||this._jsPlumb.img.height,b&&b(this))}.bind(this),this._jsPlumb.endpoint.setImage=function(C,a){var e=C.constructor===String?C:C.src;b=a,this._jsPlumb.img.src=e,this.canvas!=null&&this.canvas.setAttribute("src",this._jsPlumb.img.src)}.bind(this),this._jsPlumb.endpoint.setImage(D,b),this._compute=function(C,a,e,T){return this.anchorPoint=C,this._jsPlumb.ready?[C[0]-this._jsPlumb.widthToUse/2,C[1]-this._jsPlumb.heightToUse/2,this._jsPlumb.widthToUse,this._jsPlumb.heightToUse]:[0,0,0,0]},this.canvas=f.createElement("img",{position:"absolute",margin:0,padding:0,outline:0},this._jsPlumb.instance.endpointClass+M),this._jsPlumb.widthToUse&&this.canvas.setAttribute("width",this._jsPlumb.widthToUse),this._jsPlumb.heightToUse&&this.canvas.setAttribute("height",this._jsPlumb.heightToUse),this._jsPlumb.instance.appendElement(this.canvas),this.actuallyPaint=function(C,a,e){if(!this._jsPlumb.deleted){this._jsPlumb.initialized||(this.canvas.setAttribute("src",this._jsPlumb.img.src),this.appendDisplayElement(this.canvas),this._jsPlumb.initialized=!0);var T=this.anchorPoint[0]-this._jsPlumb.widthToUse/2,L=this.anchorPoint[1]-this._jsPlumb.heightToUse/2;V.sizeElement(this.canvas,T,L,this._jsPlumb.widthToUse,this._jsPlumb.heightToUse)}},this.paint=function(C,a){this._jsPlumb!=null&&(this._jsPlumb.ready?this.actuallyPaint(C,a):Z.setTimeout(function(){this.paint(C,a)}.bind(this),200))}},V.extend(f.Endpoints.Image,[nt,f.Endpoints.AbstractEndpoint],{cleanup:function(i){i&&(this._jsPlumb.deleted=!0,this.canvas&&this.canvas.parentNode.removeChild(this.canvas),this.canvas=null)}}),f.Endpoints.Blank=function(i){f.Endpoints.AbstractEndpoint.apply(this,arguments),this.type="Blank",nt.apply(this,arguments),this._compute=function(D,M,C,a){return[D[0],D[1],10,0]};var b=i.cssClass?" "+i.cssClass:"";this.canvas=f.createElement("div",{display:"block",width:"1px",height:"1px",background:"transparent",position:"absolute"},this._jsPlumb.instance.endpointClass+b),this._jsPlumb.instance.appendElement(this.canvas),this.paint=function(D,M){V.sizeElement(this.canvas,this.x,this.y,this.w,this.h)}},V.extend(f.Endpoints.Blank,[f.Endpoints.AbstractEndpoint,nt],{cleanup:function(){this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)}}),f.Endpoints.Triangle=function(i){this.type="Triangle",f.Endpoints.AbstractEndpoint.apply(this,arguments);var b=this;i=i||{},i.width=i.width||55,i.height=i.height||55,this.width=i.width,this.height=i.height,this._compute=function(D,M,C,a){var e=C.width||b.width,T=C.height||b.height,L=D[0]-e/2,H=D[1]-T/2;return[L,H,e,T]}};var c=f.Overlays.AbstractOverlay=function(i){this.visible=!0,this.isAppendedAtTopLevel=!0,this.component=i.component,this.loc=i.location==null?.5:i.location,this.endpointLoc=i.endpointLocation==null?[.5,.5]:i.endpointLocation,this.visible=i.visible!==!1};c.prototype={cleanup:function(i){i&&(this.component=null,this.canvas=null,this.endpointLoc=null)},reattach:function(i,b){},setVisible:function(i){this.visible=i,this.component.repaint()},isVisible:function(){return this.visible},hide:function(){this.setVisible(!1)},show:function(){this.setVisible(!0)},incrementLocation:function(i){this.loc+=i,this.component.repaint()},setLocation:function(i){this.loc=i,this.component.repaint()},getLocation:function(){return this.loc},updateFrom:function(){}},f.Overlays.Arrow=function(i){this.type="Arrow",c.apply(this,arguments),this.isAppendedAtTopLevel=!1,i=i||{};var b=this;this.length=i.length||20,this.width=i.width||20,this.id=i.id,this.direction=(i.direction||1)<0?-1:1;var D=i.paintStyle||{"stroke-width":1},M=i.foldback||.623;this.computeMaxSize=function(){return b.width*1.5},this.elementCreated=function(C,a){if(this.path=C,i.events)for(var e in i.events)f.on(C,e,i.events[e])},this.draw=function(C,a){var e,T,L,H,G;if(C.pointAlongPathFrom){if(V.isString(this.loc)||this.loc>1||this.loc<0){var P=parseInt(this.loc,10),A=this.loc<0?1:0;e=C.pointAlongPathFrom(A,P,!1),T=C.pointAlongPathFrom(A,P-this.direction*this.length/2,!1),L=it.pointOnLine(e,T,this.length)}else if(this.loc===1){if(e=C.pointOnPath(this.loc),T=C.pointAlongPathFrom(this.loc,-this.length),L=it.pointOnLine(e,T,this.length),this.direction===-1){var r=L;L=e,e=r}}else if(this.loc===0){if(L=C.pointOnPath(this.loc),T=C.pointAlongPathFrom(this.loc,this.length),e=it.pointOnLine(L,T,this.length),this.direction===-1){var p=L;L=e,e=p}}else e=C.pointAlongPathFrom(this.loc,this.direction*this.length/2),T=C.pointOnPath(this.loc),L=it.pointOnLine(e,T,this.length);H=it.perpendicularLineTo(e,L,this.width),G=it.pointOnLine(e,L,M*this.length);var u={hxy:e,tail:H,cxy:G},_=D.stroke||a.stroke,x=D.fill||a.stroke,h=D.strokeWidth||a.strokeWidth;return{component:C,d:u,"stroke-width":h,stroke:_,fill:x,minX:Math.min(e.x,H[0].x,H[1].x),maxX:Math.max(e.x,H[0].x,H[1].x),minY:Math.min(e.y,H[0].y,H[1].y),maxY:Math.max(e.y,H[0].y,H[1].y)}}else return{component:C,minX:0,maxX:0,minY:0,maxY:0}}},V.extend(f.Overlays.Arrow,c,{updateFrom:function(i){this.length=i.length||this.length,this.width=i.width||this.width,this.direction=i.direction!=null?i.direction:this.direction,this.foldback=i.foldback||this.foldback},cleanup:function(){this.path&&this.path.parentNode&&this.path.parentNode.removeChild(this.path)}}),f.Overlays.PlainArrow=function(i){i=i||{};var b=f.extend(i,{foldback:1});f.Overlays.Arrow.call(this,b),this.type="PlainArrow"},V.extend(f.Overlays.PlainArrow,f.Overlays.Arrow),f.Overlays.Diamond=function(i){i=i||{};var b=i.length||40,D=f.extend(i,{length:b/2,foldback:2});f.Overlays.Arrow.call(this,D),this.type="Diamond"},V.extend(f.Overlays.Diamond,f.Overlays.Arrow);var O=function(i,b){return(i._jsPlumb.cachedDimensions==null||b)&&(i._jsPlumb.cachedDimensions=i.getDimensions()),i._jsPlumb.cachedDimensions},l=function(i){f.jsPlumbUIComponent.apply(this,arguments),c.apply(this,arguments);var b=this.fire;this.fire=function(){b.apply(this,arguments),this.component&&this.component.fire.apply(this.component,arguments)},this.detached=!1,this.id=i.id,this._jsPlumb.div=null,this._jsPlumb.initialised=!1,this._jsPlumb.component=i.component,this._jsPlumb.cachedDimensions=null,this._jsPlumb.create=i.create,this._jsPlumb.initiallyInvisible=i.visible===!1,this.getElement=function(){if(this._jsPlumb.div==null){var D=this._jsPlumb.div=f.getElement(this._jsPlumb.create(this._jsPlumb.component));D.style.position="absolute",jsPlumb.addClass(D,this._jsPlumb.instance.overlayClass+" "+(this.cssClass?this.cssClass:i.cssClass?i.cssClass:"")),this._jsPlumb.instance.appendElement(D),this._jsPlumb.instance.getId(D),this.canvas=D;var M="translate(-50%, -50%)";D.style.webkitTransform=M,D.style.mozTransform=M,D.style.msTransform=M,D.style.oTransform=M,D.style.transform=M,D._jsPlumb=this,i.visible===!1&&(D.style.display="none")}return this._jsPlumb.div},this.draw=function(D,M,C){var a=O(this);if(a!=null&&a.length===2){var e={x:0,y:0};if(C)e={x:C[0],y:C[1]};else if(D.pointOnPath){var T=this.loc,L=!1;(V.isString(this.loc)||this.loc<0||this.loc>1)&&(T=parseInt(this.loc,10),L=!0),e=D.pointOnPath(T,L)}else{var H=this.loc.constructor===Array?this.loc:this.endpointLoc;e={x:H[0]*D.w,y:H[1]*D.h}}var G=e.x-a[0]/2,P=e.y-a[1]/2;return{component:D,d:{minx:G,miny:P,td:a,cxy:e},minX:G,maxX:G+a[0],minY:P,maxY:P+a[1]}}else return{minX:0,maxX:0,minY:0,maxY:0}}};V.extend(l,[f.jsPlumbUIComponent,c],{getDimensions:function(){return[1,1]},setVisible:function(i){this._jsPlumb.div&&(this._jsPlumb.div.style.display=i?"block":"none",i&&this._jsPlumb.initiallyInvisible&&(O(this,!0),this.component.repaint(),this._jsPlumb.initiallyInvisible=!1))},clearCachedDimensions:function(){this._jsPlumb.cachedDimensions=null},cleanup:function(i){i?this._jsPlumb.div!=null&&(this._jsPlumb.div._jsPlumb=null,this._jsPlumb.instance.removeElement(this._jsPlumb.div)):(this._jsPlumb&&this._jsPlumb.div&&this._jsPlumb.div.parentNode&&this._jsPlumb.div.parentNode.removeChild(this._jsPlumb.div),this.detached=!0)},reattach:function(i,b){this._jsPlumb.div!=null&&i.getContainer().appendChild(this._jsPlumb.div),this.detached=!1},computeMaxSize:function(){var i=O(this);return Math.max(i[0],i[1])},paint:function(i,b){this._jsPlumb.initialised||(this.getElement(),i.component.appendDisplayElement(this._jsPlumb.div),this._jsPlumb.initialised=!0,this.detached&&this._jsPlumb.div.parentNode.removeChild(this._jsPlumb.div)),this._jsPlumb.div.style.left=i.component.x+i.d.minx+"px",this._jsPlumb.div.style.top=i.component.y+i.d.miny+"px"}}),f.Overlays.Custom=function(i){this.type="Custom",l.apply(this,arguments)},V.extend(f.Overlays.Custom,l),f.Overlays.GuideLines=function(){var i=this;i.length=50,i.strokeWidth=5,this.type="GuideLines",c.apply(this,arguments),f.jsPlumbUIComponent.apply(this,arguments),this.draw=function(b,D){var M=b.pointAlongPathFrom(i.loc,i.length/2),C=b.pointOnPath(i.loc),a=it.pointOnLine(M,C,i.length),e=it.perpendicularLineTo(M,a,40),T=it.perpendicularLineTo(a,M,20);return{connector:b,head:M,tail:a,headLine:T,tailLine:e,minX:Math.min(M.x,a.x,T[0].x,T[1].x),minY:Math.min(M.y,a.y,T[0].y,T[1].y),maxX:Math.max(M.x,a.x,T[0].x,T[1].x),maxY:Math.max(M.y,a.y,T[0].y,T[1].y)}}},f.Overlays.Label=function(i){this.labelStyle=i.labelStyle,this.cssClass=this.labelStyle!=null?this.labelStyle.cssClass:null;var b=f.extend({create:function(){return f.createElement("div")}},i);if(f.Overlays.Custom.call(this,b),this.type="Label",this.label=i.label||"",this.labelText=null,this.labelStyle){var D=this.getElement();if(this.labelStyle.font=this.labelStyle.font||"12px sans-serif",D.style.font=this.labelStyle.font,D.style.color=this.labelStyle.color||"black",this.labelStyle.fill&&(D.style.background=this.labelStyle.fill),this.labelStyle.borderWidth>0){var M=this.labelStyle.borderStyle?this.labelStyle.borderStyle:"black";D.style.border=this.labelStyle.borderWidth+"px solid "+M}this.labelStyle.padding&&(D.style.padding=this.labelStyle.padding)}},V.extend(f.Overlays.Label,f.Overlays.Custom,{cleanup:function(i){i&&(this.div=null,this.label=null,this.labelText=null,this.cssClass=null,this.labelStyle=null)},getLabel:function(){return this.label},setLabel:function(i){this.label=i,this.labelText=null,this.clearCachedDimensions(),this.update(),this.component.repaint()},getDimensions:function(){return this.update(),l.prototype.getDimensions.apply(this,arguments)},update:function(){if(typeof this.label=="function"){var i=this.label(this);this.getElement().innerHTML=i.replace(/\r\n/g,"<br/>")}else this.labelText==null&&(this.labelText=this.label,this.getElement().innerHTML=this.labelText.replace(/\r\n/g,"<br/>"))},updateFrom:function(i){i.label!=null&&this.setLabel(i.label)}})}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumbUtil,V=Z.jsPlumbInstance,it="jtk-group-collapsed",K="jtk-group-expanded",nt="[jtk-group-content]",c="elementDraggable",O="stop",l="revert",i="_groupManager",b="_jsPlumbGroup",D="_jsPlumbGroupDrag",M="group:addMember",C="group:removeMember",a="group:add",e="group:remove",T="group:expand",L="group:collapse",H="groupDragStop",G="connectionMoved",P="internal.connectionDetached",A="removeAll",r="orphanAll",p="show",u="hide",_=function(h){var j={},y={},w={},g=this;function E(t,d){for(var v=h.getContainer(),F=!1;!F;){if(t==null||t===v)return!1;if(t===d)return!0;t=t.parentNode}}h.bind("connection",function(t){var d=h.getGroupFor(t.source),v=h.getGroupFor(t.target);d!=null&&v!=null&&d===v?(y[t.connection.id]=d,w[t.connection.id]=d):(d!=null&&(f.suggest(d.connections.source,t.connection),y[t.connection.id]=d),v!=null&&(f.suggest(v.connections.target,t.connection),w[t.connection.id]=v))});function U(t){delete t.proxies;var d=y[t.id],v;d!=null&&(v=function(F){return F.id===t.id},f.removeWithFunction(d.connections.source,v),f.removeWithFunction(d.connections.target,v),delete y[t.id]),d=w[t.id],d!=null&&(v=function(F){return F.id===t.id},f.removeWithFunction(d.connections.source,v),f.removeWithFunction(d.connections.target,v),delete w[t.id])}h.bind(P,function(t){U(t.connection)}),h.bind(G,function(t){var d=t.index===0?y:w,v=d[t.connection.id];if(v){var F=v.connections[t.index===0?"source":"target"],I=F.indexOf(t.connection);I!==-1&&F.splice(I,1)}}),this.addGroup=function(t){h.addClass(t.getEl(),K),j[t.id]=t,t.manager=this,o(t),h.fire(a,{group:t})},this.addToGroup=function(t,d,v){if(t=this.getGroup(t),t){var F=t.getEl();if(d._isJsPlumbGroup)return;var I=d._jsPlumbGroup;if(I!==t){h.removeFromDragSelection(d);var X=h.getOffset(d,!0),N=t.collapsed?h.getOffset(F,!0):h.getOffset(t.getDragArea(),!0);I!=null&&(I.remove(d,!1,v,!1,t),g.updateConnectionsForGroup(I)),t.add(d,v);var W=function(rt,pt){var ft=pt===0?1:0;rt.each(function(lt){lt.setVisible(!1),lt.endpoints[ft].element._jsPlumbGroup===t?(lt.endpoints[ft].setVisible(!1),n(lt,ft,t)):(lt.endpoints[pt].setVisible(!1),B(lt,pt,t))})};t.collapsed&&(W(h.select({source:d}),0),W(h.select({target:d}),1));var ot=h.getId(d);h.dragManager.setParent(d,ot,F,h.getId(F),X);var st={left:X.left-N.left,top:X.top-N.top};if(h.setPosition(d,st),h.dragManager.revalidateParent(d,ot,X),g.updateConnectionsForGroup(t),h.revalidate(ot),!v){var Q={group:t,el:d,pos:st};I&&(Q.sourceGroup=I),h.fire(M,Q)}}}},this.removeFromGroup=function(t,d,v){if(t=this.getGroup(t),t){if(t.collapsed){var F=function(I,X){for(var N=0;N<I.length;N++){var W=I[N];if(W.proxies){for(var ot=0;ot<W.proxies.length;ot++)if(W.proxies[ot]!=null){var st=W.proxies[ot].originalEp.element;(st===d||E(st,d))&&n(W,X,t)}}}};F(t.connections.source.slice(),0),F(t.connections.target.slice(),1)}t.remove(d,null,v)}},this.getGroup=function(t){var d=t;if(f.isString(t)&&(d=j[t],d==null))throw new TypeError("No such group ["+t+"]");return d},this.getGroups=function(){var t=[];for(var d in j)t.push(j[d]);return t},this.removeGroup=function(t,d,v,F){t=this.getGroup(t),this.expandGroup(t,!0);var I=t[d?A:r](v,F);return h.remove(t.getEl()),delete j[t.id],delete h._groups[t.id],h.fire(e,{group:t}),I},this.removeAllGroups=function(t,d,v){for(var F in j)this.removeGroup(j[F],t,d,v)};function R(t,d){for(var v=t.getEl().querySelectorAll(".jtk-managed"),F=0;F<v.length;F++)h[d?p:u](v[F],!0)}var B=function(t,d,v){var F=t.endpoints[d===0?1:0].element;if(!(F[b]&&!F[b].shouldProxy()&&F[b].collapsed)){var I=v.getEl(),X=h.getId(I);h.proxyConnection(t,d,I,X,function(N,W){return v.getEndpoint(N,W)},function(N,W){return v.getAnchor(N,W)})}};this.collapseGroup=function(t){if(t=this.getGroup(t),!(t==null||t.collapsed)){var d=t.getEl();if(R(t,!1),t.shouldProxy()){var v=function(F,I){for(var X=0;X<F.length;X++){var N=F[X];B(N,I,t)}};v(t.connections.source,0),v(t.connections.target,1)}t.collapsed=!0,h.removeClass(d,K),h.addClass(d,it),h.revalidate(d),h.fire(L,{group:t})}};var n=function(t,d,v){h.unproxyConnection(t,d,h.getId(v.getEl()))};this.expandGroup=function(t,d){if(t=this.getGroup(t),!(t==null||!t.collapsed)){var v=t.getEl();if(R(t,!0),t.shouldProxy()){var F=function(I,X){for(var N=0;N<I.length;N++){var W=I[N];n(W,X,t)}};F(t.connections.source,0),F(t.connections.target,1)}t.collapsed=!1,h.addClass(v,K),h.removeClass(v,it),h.revalidate(v),this.repaintGroup(t),d||h.fire(T,{group:t})}},this.repaintGroup=function(t){t=this.getGroup(t);for(var d=t.getMembers(),v=0;v<d.length;v++)h.revalidate(d[v])};function o(t){for(var d=t.getMembers().slice(),v=[],F=0;F<d.length;F++)Array.prototype.push.apply(v,d[F].querySelectorAll(".jtk-managed"));Array.prototype.push.apply(d,v);var I=h.getConnections({source:d,scope:"*"},!0),X=h.getConnections({target:d,scope:"*"},!0),N={};t.connections.source.length=0,t.connections.target.length=0;var W=function(ot){for(var st=0;st<ot.length;st++)if(!N[ot[st].id]){N[ot[st].id]=!0;var Q=h.getGroupFor(ot[st].source),rt=h.getGroupFor(ot[st].target);Q===t?(rt!==t&&t.connections.source.push(ot[st]),y[ot[st].id]=t):rt===t&&(t.connections.target.push(ot[st]),w[ot[st].id]=t)}};W(I),W(X)}this.updateConnectionsForGroup=o,this.refreshAllGroups=function(){for(var t in j)o(j[t]),h.dragManager.updateOffsets(h.getId(j[t].getEl()))}},x=function(h,j){var y=this,w=j.el;this.getEl=function(){return w},this.id=j.id||f.uuid(),w._isJsPlumbGroup=!0;var g=this.getDragArea=function(){var rt=h.getSelector(w,nt);return rt&&rt.length>0?rt[0]:w},E=j.ghost===!0,U=E||j.constrain===!0,R=j.revert!==!1,B=j.orphan===!0,n=j.prune===!0,o=j.dropOverride===!0,t=j.proxied!==!1,d=[];if(this.connections={source:[],target:[],internal:[]},this.getAnchor=function(rt,pt){return j.anchor||"Continuous"},this.getEndpoint=function(rt,pt){return j.endpoint||["Dot",{radius:10}]},this.collapsed=!1,j.draggable!==!1){var v={drag:function(){for(var rt=0;rt<d.length;rt++)h.draw(d[rt])},stop:function(rt){h.fire(H,jsPlumb.extend(rt,{group:y}))},scope:D};j.dragOptions&&Z.jsPlumb.extend(v,j.dragOptions),h.draggable(j.el,v)}j.droppable!==!1&&h.droppable(j.el,{drop:function(rt){var pt=rt.drag.el;if(!pt._isJsPlumbGroup){var ft=pt._jsPlumbGroup;if(ft!==y){if(ft!=null&&ft.overrideDrop(pt,y))return;h.getGroupManager().addToGroup(y,pt,!1)}}}});var F=function(rt,pt){for(var ft=rt.nodeType==null?rt:[rt],lt=0;lt<ft.length;lt++)pt(ft[lt])};this.overrideDrop=function(rt,pt){return o&&(R||n||B)},this.add=function(rt,pt){var ft=g();F(rt,function(lt){if(lt._jsPlumbGroup!=null){if(lt._jsPlumbGroup===y)return;lt._jsPlumbGroup.remove(lt,!0,pt,!1)}lt._jsPlumbGroup=y,d.push(lt),h.isAlreadyDraggable(lt)&&Q(lt),lt.parentNode!==ft&&ft.appendChild(lt)}),h.getGroupManager().updateConnectionsForGroup(y)},this.remove=function(rt,pt,ft,lt,bt){F(rt,function(gt){if(gt._jsPlumbGroup===y){if(delete gt._jsPlumbGroup,f.removeWithFunction(d,function(q){return q===gt}),pt)try{y.getDragArea().removeChild(gt)}catch(q){jsPlumbUtil.log("Could not remove element from Group "+q)}if(st(gt),!ft){var $={group:y,el:gt};bt&&($.targetGroup=bt),h.fire(C,$)}}}),lt||h.getGroupManager().updateConnectionsForGroup(y)},this.removeAll=function(rt,pt){for(var ft=0,lt=d.length;ft<lt;ft++){var bt=d[0];y.remove(bt,rt,pt,!0),h.remove(bt,!0)}d.length=0,h.getGroupManager().updateConnectionsForGroup(y)},this.orphanAll=function(){for(var rt={},pt=0;pt<d.length;pt++){var ft=N(d[pt]);rt[ft[0]]=ft[1]}return d.length=0,rt},this.getMembers=function(){return d},w[b]=this,h.bind(c,function(rt){rt.el._jsPlumbGroup===this&&Q(rt.el)}.bind(this));function I(rt){return rt.offsetParent}function X(rt,pt){var ft=I(rt),lt=h.getSize(ft),bt=h.getSize(rt),gt=pt[0],$=gt+bt[0],q=pt[1],J=q+bt[1];return $>0&&gt<lt[0]&&J>0&&q<lt[1]}function N(rt){var pt=h.getId(rt),ft=h.getOffset(rt);return rt.parentNode.removeChild(rt),h.getContainer().appendChild(rt),h.setPosition(rt,ft),st(rt),h.dragManager.clearParent(rt,pt),[pt,ft]}function W(rt){var pt=[];function ft(bt,gt,$){var q=null;if(!X(bt,[gt,$])){var J=bt._jsPlumbGroup;n?h.remove(bt):q=N(bt),J.remove(bt)}return q}for(var lt=0;lt<rt.selection.length;lt++)pt.push(ft(rt.selection[lt][0],rt.selection[lt][1].left,rt.selection[lt][1].top));return pt.length===1?pt[0]:pt}function ot(rt){var pt=h.getId(rt);h.revalidate(rt),h.dragManager.revalidateParent(rt,pt)}function st(rt){rt._katavorioDrag&&((n||B)&&rt._katavorioDrag.off(O,W),!n&&!B&&R&&(rt._katavorioDrag.off(l,ot),rt._katavorioDrag.setRevert(null)))}function Q(rt){rt._katavorioDrag&&((n||B)&&rt._katavorioDrag.on(O,W),U&&rt._katavorioDrag.setConstrain(!0),E&&rt._katavorioDrag.setUseGhostProxy(!0),!n&&!B&&R&&(rt._katavorioDrag.on(l,ot),rt._katavorioDrag.setRevert(function(pt,ft){return!X(pt,ft)})))}this.shouldProxy=function(){return t},h.getGroupManager().addGroup(this)};V.prototype.addGroup=function(h){var j=this;if(j._groups=j._groups||{},j._groups[h.id]!=null)throw new TypeError("cannot create Group ["+h.id+"]; a Group with that ID exists");if(h.el[b]!=null)throw new TypeError("cannot create Group ["+h.id+"]; the given element is already a Group");var y=new x(j,h);return j._groups[y.id]=y,h.collapsed&&this.collapseGroup(y),y},V.prototype.addToGroup=function(h,j,y){var w=function(E){var U=this.getId(E);this.manage(U,E),this.getGroupManager().addToGroup(h,E,y)}.bind(this);if(Array.isArray(j))for(var g=0;g<j.length;g++)w(j[g]);else w(j)},V.prototype.removeFromGroup=function(h,j,y){this.getGroupManager().removeFromGroup(h,j,y),this.getContainer().appendChild(j)},V.prototype.removeGroup=function(h,j,y,w){return this.getGroupManager().removeGroup(h,j,y,w)},V.prototype.removeAllGroups=function(h,j,y){this.getGroupManager().removeAllGroups(h,j,y)},V.prototype.getGroup=function(h){return this.getGroupManager().getGroup(h)},V.prototype.getGroups=function(){return this.getGroupManager().getGroups()},V.prototype.expandGroup=function(h){this.getGroupManager().expandGroup(h)},V.prototype.collapseGroup=function(h){this.getGroupManager().collapseGroup(h)},V.prototype.repaintGroup=function(h){this.getGroupManager().repaintGroup(h)},V.prototype.toggleGroup=function(h){h=this.getGroupManager().getGroup(h),h!=null&&this.getGroupManager()[h.collapsed?"expandGroup":"collapseGroup"](h)},V.prototype.getGroupManager=function(){var h=this[i];return h==null&&(h=this[i]=new _(this)),h},V.prototype.removeGroupManager=function(){delete this[i]},V.prototype.getGroupFor=function(h){if(h=this.getElement(h),h){for(var j=this.getContainer(),y=!1,w=null;!y;)h==null||h===j?y=!0:h[b]?(w=h[b],y=!0):h=h.parentNode;return w}}}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it="Straight",K="Arc",nt=function(c){this.type="Flowchart",c=c||{},c.stub=c.stub==null?30:c.stub;var O,l=f.Connectors.AbstractConnector.apply(this,arguments),i=c.midpoint==null||isNaN(c.midpoint)?.5:c.midpoint,b=c.alwaysRespectStubs===!0,D=null,M=null,C=c.cornerRadius!=null?c.cornerRadius:0;c.loopbackRadius;var a=function(P){return P<0?-1:P===0?0:1},e=function(P){return[a(P[2]-P[0]),a(P[3]-P[1])]},T=function(P,A,r,p){if(!(D===A&&M===r)){var u=D??p.sx,_=M??p.sy,x=u===A?"v":"h";D=A,M=r,P.push([u,_,A,r,x])}},L=function(P){return Math.sqrt(Math.pow(P[0]-P[2],2)+Math.pow(P[1]-P[3],2))},H=function(P){var A=[];return A.push.apply(A,P),A},G=function(P,A,r){for(var p=null,u,_,x,h=0;h<A.length-1;h++){if(p=p||H(A[h]),u=H(A[h+1]),_=e(p),x=e(u),C>0&&p[4]!==u[4]){var j=Math.min(L(p),L(u)),y=Math.min(C,j/2);p[2]-=_[0]*y,p[3]-=_[1]*y,u[0]+=x[0]*y,u[1]+=x[1]*y;var w=_[1]===x[0]&&x[0]===1||_[1]===x[0]&&x[0]===0&&_[0]!==x[1]||_[1]===x[0]&&x[0]===-1,g=u[1]>p[3]?1:-1,E=u[0]>p[2]?1:-1,U=g===E,R=U&&w||!U&&!w?u[0]:p[2],B=U&&w||!U&&!w?p[3]:u[1];l.addSegment(P,it,{x1:p[0],y1:p[1],x2:p[2],y2:p[3]}),l.addSegment(P,K,{r:y,x1:p[2],y1:p[3],x2:u[0],y2:u[1],cx:R,cy:B,ac:w})}else{var n=p[2]===p[0]?0:p[2]>p[0]?r.lw/2:-(r.lw/2),o=p[3]===p[1]?0:p[3]>p[1]?r.lw/2:-(r.lw/2);l.addSegment(P,it,{x1:p[0]-n,y1:p[1]-o,x2:p[2]+n,y2:p[3]+o})}p=u}u!=null&&l.addSegment(P,it,{x1:u[0],y1:u[1],x2:u[2],y2:u[3]})};this.midpoint=i,this._compute=function(P,A){O=[],D=null,M=null;var r=function(){return[P.startStubX,P.startStubY,P.endStubX,P.endStubY]},p={perpendicular:r,orthogonal:r,opposite:function(o){var t=P,d=o==="x"?0:1,v={x:function(){return t.so[d]===1&&(t.startStubX>t.endStubX&&t.tx>t.startStubX||t.sx>t.endStubX&&t.tx>t.sx)||t.so[d]===-1&&(t.startStubX<t.endStubX&&t.tx<t.startStubX||t.sx<t.endStubX&&t.tx<t.sx)},y:function(){return t.so[d]===1&&(t.startStubY>t.endStubY&&t.ty>t.startStubY||t.sy>t.endStubY&&t.ty>t.sy)||t.so[d]===-1&&(t.startStubY<t.endStubY&&t.ty<t.startStubY||t.sy<t.endStubY&&t.ty<t.sy)}};return!b&&v[o]()?{x:[(P.sx+P.tx)/2,P.startStubY,(P.sx+P.tx)/2,P.endStubY],y:[P.startStubX,(P.sy+P.ty)/2,P.endStubX,(P.sy+P.ty)/2]}[o]:[P.startStubX,P.startStubY,P.endStubX,P.endStubY]}},u=p[P.anchorOrientation](P.sourceAxis),_=P.sourceAxis==="x"?0:1,x=P.sourceAxis==="x"?1:0,h=u[_],j=u[x],y=u[_+2],w=u[x+2];T(O,u[0],u[1],P);var g=P.startStubX+(P.endStubX-P.startStubX)*i,E=P.startStubY+(P.endStubY-P.startStubY)*i,U={x:[0,1],y:[1,0]},R={perpendicular:function(o){var t=P,d={x:[[[1,2,3,4],null,[2,1,4,3]],null,[[4,3,2,1],null,[3,4,1,2]]],y:[[[3,2,1,4],null,[2,3,4,1]],null,[[4,1,2,3],null,[1,4,3,2]]]},v={x:[[t.startStubX,t.endStubX],null,[t.endStubX,t.startStubX]],y:[[t.startStubY,t.endStubY],null,[t.endStubY,t.startStubY]]},F={x:[[g,t.startStubY],[g,t.endStubY]],y:[[t.startStubX,E],[t.endStubX,E]]},I={x:[[t.endStubX,t.startStubY]],y:[[t.startStubX,t.endStubY]]},X={x:[[t.startStubX,t.endStubY],[t.endStubX,t.endStubY]],y:[[t.endStubX,t.startStubY],[t.endStubX,t.endStubY]]},N={x:[[t.startStubX,E],[t.endStubX,E],[t.endStubX,t.endStubY]],y:[[g,t.startStubY],[g,t.endStubY],[t.endStubX,t.endStubY]]},W={x:[t.startStubY,t.endStubY],y:[t.startStubX,t.endStubX]},ot=U[o][0],st=U[o][1],Q=t.so[ot]+1,rt=t.to[st]+1,pt=t.to[st]===-1&&W[o][1]<W[o][0]||t.to[st]===1&&W[o][1]>W[o][0],ft=v[o][Q][0],lt=v[o][Q][1],bt=d[o][Q][rt];if(t.segment===bt[3]||t.segment===bt[2]&&pt)return F[o];if(t.segment===bt[2]&&lt<ft)return I[o];if(t.segment===bt[2]&&lt>=ft||t.segment===bt[1]&&!pt)return N[o];if(t.segment===bt[0]||t.segment===bt[1]&&pt)return X[o]},orthogonal:function(o,t,d,v,F){var I=P,X={x:I.so[0]===-1?Math.min(t,v):Math.max(t,v),y:I.so[1]===-1?Math.min(t,v):Math.max(t,v)}[o];return{x:[[X,d],[X,F],[v,F]],y:[[d,X],[F,X],[F,v]]}[o]},opposite:function(o,t,d,v){var F=P,I={x:"y",y:"x"}[o],X={x:"height",y:"width"}[o],N=F["is"+o.toUpperCase()+"GreaterThanStubTimes2"];if(A.sourceEndpoint.elementId===A.targetEndpoint.elementId){var W=d+(1-A.sourceEndpoint.anchor[I])*A.sourceInfo[X]+l.maxStub;return{x:[[t,W],[v,W]],y:[[W,t],[W,v]]}[o]}else{if(!N||F.so[_]===1&&t>v||F.so[_]===-1&&t<v)return{x:[[t,E],[v,E]],y:[[g,t],[g,v]]}[o];if(F.so[_]===1&&t<v||F.so[_]===-1&&t>v)return{x:[[g,F.sy],[g,F.ty]],y:[[F.sx,E],[F.tx,E]]}[o]}}},B=R[P.anchorOrientation](P.sourceAxis,h,j,y,w);if(B)for(var n=0;n<B.length;n++)T(O,B[n][0],B[n][1],P);T(O,u[2],u[3],P),T(O,P.tx,P.ty,P),G(this,O,P)}};f.Connectors.Flowchart=nt,V.extend(f.Connectors.Flowchart,f.Connectors.AbstractConnector)}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil;f.Connectors.AbstractBezierConnector=function(K){K=K||{};var nt=K.showLoopback!==!1;K.curviness;var c=K.margin||5;K.proximityLimit;var O=K.orientation&&K.orientation==="clockwise",l=K.loopbackRadius||25,i;return this._compute=function(b,D){var M=D.sourcePos,C=D.targetPos,a=Math.abs(M[0]-C[0]),e=Math.abs(M[1]-C[1]);if(!nt||D.sourceEndpoint.elementId!==D.targetEndpoint.elementId)this._computeBezier(b,D,M,C,a,e);else{var T=D.sourcePos[0],L=D.sourcePos[1]-c,H=T,G=L-l,P=H-l,A=G-l;a=2*l,e=2*l,b.points[0]=P,b.points[1]=A,b.points[2]=a,b.points[3]=e,i.addSegment(this,"Arc",{loopback:!0,x1:T-P+4,y1:L-A,startAngle:0,endAngle:2*Math.PI,r:l,ac:!O,x2:T-P-4,y2:L-A,cx:H-P,cy:G-A})}},i=f.Connectors.AbstractConnector.apply(this,arguments),i},V.extend(f.Connectors.AbstractBezierConnector,f.Connectors.AbstractConnector);var it=function(K){K=K||{},this.type="Bezier";var nt=f.Connectors.AbstractBezierConnector.apply(this,arguments),c=K.curviness||150,O=10;this.getCurviness=function(){return c},this._findControlPoint=function(l,i,b,D,M,C,a){var e=C[0]!==a[0]||C[1]===a[1],T=[];return e?(a[0]===0?T.push(b[0]<i[0]?l[0]+O:l[0]-O):T.push(l[0]+c*a[0]),a[1]===0?T.push(b[1]<i[1]?l[1]+O:l[1]-O):T.push(l[1]+c*C[1])):(C[0]===0?T.push(i[0]<b[0]?l[0]+O:l[0]-O):T.push(l[0]-c*C[0]),C[1]===0?T.push(i[1]<b[1]?l[1]+O:l[1]-O):T.push(l[1]+c*a[1])),T},this._computeBezier=function(l,i,b,D,M,C){var a,e,T=b[0]<D[0]?M:0,L=b[1]<D[1]?C:0,H=b[0]<D[0]?0:M,G=b[1]<D[1]?0:C;a=this._findControlPoint([T,L],b,D,i.sourceEndpoint,i.targetEndpoint,l.so,l.to),e=this._findControlPoint([H,G],D,b,i.targetEndpoint,i.sourceEndpoint,l.to,l.so),nt.addSegment(this,"Bezier",{x1:T,y1:L,x2:H,y2:G,cp1x:a[0],cp1y:a[1],cp2x:e[0],cp2y:e[1]})}};f.Connectors.Bezier=it,V.extend(it,f.Connectors.AbstractBezierConnector)}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it=function(c,O,l,i){return c<=l&&i<=O?1:c<=l&&O<=i?2:l<=c&&i>=O?3:4},K=function(c,O,l,i,b,D,M,C,a){if(C<=a)return[c,O];if(l===1)return i[3]<=0&&b[3]>=1?[c+(i[2]<.5?-1*D:D),O]:i[2]>=1&&b[2]<=0?[c,O+(i[3]<.5?-1*M:M)]:[c+-1*D,O+-1*M];if(l===2)return i[3]>=1&&b[3]<=0?[c+(i[2]<.5?-1*D:D),O]:i[2]>=1&&b[2]<=0?[c,O+(i[3]<.5?-1*M:M)]:[c+D,O+-1*M];if(l===3)return i[3]>=1&&b[3]<=0?[c+(i[2]<.5?-1*D:D),O]:i[2]<=0&&b[2]>=1?[c,O+(i[3]<.5?-1*M:M)]:[c+-1*D,O+-1*M];if(l===4)return i[3]<=0&&b[3]>=1?[c+(i[2]<.5?-1*D:D),O]:i[2]<=0&&b[2]>=1?[c,O+(i[3]<.5?-1*M:M)]:[c+D,O+-1*M]},nt=function(c){c=c||{},this.type="StateMachine";var O=f.Connectors.AbstractBezierConnector.apply(this,arguments),l=c.curviness||10,i=c.margin||5,b=c.proximityLimit||80;c.orientation&&c.orientation;var D;this._computeBezier=function(M,C,a,e,T,L){var H=C.sourcePos[0]<C.targetPos[0]?0:T,G=C.sourcePos[1]<C.targetPos[1]?0:L,P=C.sourcePos[0]<C.targetPos[0]?T:0,A=C.sourcePos[1]<C.targetPos[1]?L:0;C.sourcePos[2]===0&&(H-=i),C.sourcePos[2]===1&&(H+=i),C.sourcePos[3]===0&&(G-=i),C.sourcePos[3]===1&&(G+=i),C.targetPos[2]===0&&(P-=i),C.targetPos[2]===1&&(P+=i),C.targetPos[3]===0&&(A-=i),C.targetPos[3]===1&&(A+=i);var r=(H+P)/2,p=(G+A)/2,u=it(H,G,P,A),_=Math.sqrt(Math.pow(P-H,2)+Math.pow(A-G,2)),x,h,j,y;D=K(r,p,u,C.sourcePos,C.targetPos,l,l,_,b),x=D[0],h=D[0],j=D[1],y=D[1],O.addSegment(this,"Bezier",{x1:P,y1:A,x2:H,y2:G,cp1x:x,cp1y:j,cp2x:h,cp2y:y})}};f.Connectors.StateMachine=nt,V.extend(nt,f.Connectors.AbstractBezierConnector)}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it="Straight",K=function(nt){this.type=it;var c=f.Connectors.AbstractConnector.apply(this,arguments);this._compute=function(O,l){c.addSegment(this,it,{x1:O.sx,y1:O.sy,x2:O.startStubX,y2:O.startStubY}),c.addSegment(this,it,{x1:O.startStubX,y1:O.startStubY,x2:O.endStubX,y2:O.endStubY}),c.addSegment(this,it,{x1:O.endStubX,y1:O.endStubY,x2:O.tx,y2:O.ty})}};f.Connectors.Straight=K,V.extend(K,f.Connectors.AbstractConnector)}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it={"stroke-linejoin":"stroke-linejoin","stroke-dashoffset":"stroke-dashoffset","stroke-linecap":"stroke-linecap"},K="stroke-dasharray",nt="dashstyle",c="linearGradient",O="radialGradient",l="defs",i="fill",b="stop",D="stroke",M="stroke-width",C="style",a="none",e="jsplumb_gradient_",T="strokeWidth",L={svg:"http://www.w3.org/2000/svg"},H=function(y,w){for(var g in w)y.setAttribute(g,""+w[g])},G=function(y,w){return w=w||{},w.version="1.1",w.xmlns=L.svg,f.createElementNS(L.svg,y,null,null,w)},P=function(y){return"position:absolute;left:"+y[0]+"px;top:"+y[1]+"px"},A=function(y){for(var w=y.querySelectorAll(" defs,linearGradient,radialGradient"),g=0;g<w.length;g++)w[g].parentNode.removeChild(w[g])},r=function(y,w,g,E,U){var R=e+U._jsPlumb.instance.idstamp();A(y);var B;g.gradient.offset?B=G(O,{id:R}):B=G(c,{id:R,gradientUnits:"userSpaceOnUse"});var n=G(l);y.appendChild(n),n.appendChild(B);for(var o=0;o<g.gradient.stops.length;o++){var t=U.segment===1||U.segment===2?o:g.gradient.stops.length-1-o,d=g.gradient.stops[t][1],v=G(b,{offset:Math.floor(g.gradient.stops[o][0]*100)+"%","stop-color":d});B.appendChild(v)}var F=g.stroke?D:i;w.setAttribute(F,"url(#"+R+")")},p=function(y,w,g,E,U){if(w.setAttribute(i,g.fill?g.fill:a),w.setAttribute(D,g.stroke?g.stroke:a),g.gradient?r(y,w,g,E,U):(A(y),w.setAttribute(C,"")),g.strokeWidth&&w.setAttribute(M,g.strokeWidth),g[nt]&&g[T]&&!g[K]){var R=g[nt].indexOf(",")===-1?" ":",",B=g[nt].split(R),n="";B.forEach(function(t){n+=Math.floor(t*g.strokeWidth)+R}),w.setAttribute(K,n)}else g[K]&&w.setAttribute(K,g[K]);for(var o in it)g[o]&&w.setAttribute(it[o],g[o])},u=function(y,w,g){y.childNodes.length>g?y.insertBefore(w,y.childNodes[g]):y.appendChild(w)};V.svg={node:G,attr:H,pos:P};var _=function(y){var w=y.pointerEventsSpec||"all",g={};f.jsPlumbUIComponent.apply(this,y.originalArgs),this.canvas=null,this.path=null,this.svg=null,this.bgCanvas=null;var E=y.cssClass+" "+(y.originalArgs[0].cssClass||""),U={style:"",width:0,height:0,"pointer-events":w,position:"absolute"};this.svg=G("svg",U),y.useDivWrapper?(this.canvas=f.createElement("div",{position:"absolute"}),V.sizeElement(this.canvas,0,0,1,1),this.canvas.className=E):(H(this.svg,{class:E}),this.canvas=this.svg),y._jsPlumb.appendElement(this.canvas,y.originalArgs[0].parent),y.useDivWrapper&&this.canvas.appendChild(this.svg);var R=[this.canvas];return this.getDisplayElements=function(){return R},this.appendDisplayElement=function(B){R.push(B)},this.paint=function(B,n,o){if(B!=null){var t=[this.x,this.y],d=[this.w,this.h],v;o!=null&&(o.xmin<0&&(t[0]+=o.xmin),o.ymin<0&&(t[1]+=o.ymin),d[0]=o.xmax+(o.xmin<0?-o.xmin:0),d[1]=o.ymax+(o.ymin<0?-o.ymin:0)),y.useDivWrapper?(V.sizeElement(this.canvas,t[0],t[1],d[0]>0?d[0]:1,d[1]>0?d[1]:1),t[0]=0,t[1]=0,v=P([0,0])):v=P([t[0],t[1]]),g.paint.apply(this,arguments),H(this.svg,{style:v,width:d[0]||1,height:d[1]||1})}},{renderer:g}};V.extend(_,f.jsPlumbUIComponent,{cleanup:function(y){y||this.typeId==null?(this.canvas&&(this.canvas._jsPlumb=null),this.svg&&(this.svg._jsPlumb=null),this.bgCanvas&&(this.bgCanvas._jsPlumb=null),this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.svg=null,this.canvas=null,this.path=null,this.group=null,this._jsPlumb=null):(this.canvas&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode&&this.bgCanvas.parentNode.removeChild(this.bgCanvas))},reattach:function(y){var w=y.getContainer();this.canvas&&this.canvas.parentNode==null&&w.appendChild(this.canvas),this.bgCanvas&&this.bgCanvas.parentNode==null&&w.appendChild(this.bgCanvas)},setVisible:function(y){this.canvas&&(this.canvas.style.display=y?"block":"none")}}),f.ConnectorRenderers.svg=function(y){var w=this,g=_.apply(this,[{cssClass:y._jsPlumb.connectorClass,originalArgs:arguments,pointerEventsSpec:"none",_jsPlumb:y._jsPlumb}]);g.renderer.paint=function(E,U,R){var B=w.getSegments(),n="",o=[0,0];if(R.xmin<0&&(o[0]=-R.xmin),R.ymin<0&&(o[1]=-R.ymin),B.length>0){n=w.getPathData();var t={d:n,transform:"translate("+o[0]+","+o[1]+")","pointer-events":y["pointer-events"]||"visibleStroke"},d=null,v=[w.x,w.y,w.w,w.h];if(E.outlineStroke){var F=E.outlineWidth||1,I=E.strokeWidth+2*F;d=f.extend({},E),delete d.gradient,d.stroke=E.outlineStroke,d.strokeWidth=I,w.bgPath==null?(w.bgPath=G("path",t),f.addClass(w.bgPath,f.connectorOutlineClass),u(w.svg,w.bgPath,0)):H(w.bgPath,t),p(w.svg,w.bgPath,d,v,w)}w.path==null?(w.path=G("path",t),u(w.svg,w.path,E.outlineStroke?1:0)):H(w.path,t),p(w.svg,w.path,E,v,w)}}},V.extend(f.ConnectorRenderers.svg,_);var x=f.SvgEndpoint=function(y){var w=_.apply(this,[{cssClass:y._jsPlumb.endpointClass,originalArgs:arguments,pointerEventsSpec:"all",useDivWrapper:!0,_jsPlumb:y._jsPlumb}]);w.renderer.paint=function(g){var E=f.extend({},g);E.outlineStroke&&(E.stroke=E.outlineStroke),this.node==null?(this.node=this.makeNode(E),this.svg.appendChild(this.node)):this.updateNode!=null&&this.updateNode(this.node),p(this.svg,this.node,E,[this.x,this.y,this.w,this.h],this),P(this.node,[this.x,this.y])}.bind(this)};V.extend(x,_),f.Endpoints.svg.Dot=function(){f.Endpoints.Dot.apply(this,arguments),x.apply(this,arguments),this.makeNode=function(y){return G("circle",{cx:this.w/2,cy:this.h/2,r:this.radius})},this.updateNode=function(y){H(y,{cx:this.w/2,cy:this.h/2,r:this.radius})}},V.extend(f.Endpoints.svg.Dot,[f.Endpoints.Dot,x]),f.Endpoints.svg.Rectangle=function(){f.Endpoints.Rectangle.apply(this,arguments),x.apply(this,arguments),this.makeNode=function(y){return G("rect",{width:this.w,height:this.h})},this.updateNode=function(y){H(y,{width:this.w,height:this.h})}},V.extend(f.Endpoints.svg.Rectangle,[f.Endpoints.Rectangle,x]),f.Endpoints.svg.Image=f.Endpoints.Image,f.Endpoints.svg.Blank=f.Endpoints.Blank,f.Overlays.svg.Label=f.Overlays.Label,f.Overlays.svg.Custom=f.Overlays.Custom;var h=function(y,w){y.apply(this,w),f.jsPlumbUIComponent.apply(this,w),this.isAppendedAtTopLevel=!1,this.path=null,this.paint=function(E,U){if(E.component.svg&&U){this.path==null&&(this.path=G("path",{"pointer-events":"all"}),E.component.svg.appendChild(this.path),this.elementCreated&&this.elementCreated(this.path,E.component),this.canvas=E.component.svg);var R=w&&w.length===1&&w[0].cssClass||"",B=[0,0];U.xmin<0&&(B[0]=-U.xmin),U.ymin<0&&(B[1]=-U.ymin),H(this.path,{d:g(E.d),class:R,stroke:E.stroke?E.stroke:null,fill:E.fill?E.fill:null,transform:"translate("+B[0]+","+B[1]+")"})}};var g=function(E){return isNaN(E.cxy.x)||isNaN(E.cxy.y)?"":"M"+E.hxy.x+","+E.hxy.y+" L"+E.tail[0].x+","+E.tail[0].y+" L"+E.cxy.x+","+E.cxy.y+" L"+E.tail[1].x+","+E.tail[1].y+" L"+E.hxy.x+","+E.hxy.y};this.transfer=function(E){E.canvas&&this.path&&this.path.parentNode&&(this.path.parentNode.removeChild(this.path),E.canvas.appendChild(this.path))}},j={cleanup:function(y){this.path!=null&&(y?this._jsPlumb.instance.removeElement(this.path):this.path.parentNode&&this.path.parentNode.removeChild(this.path))},reattach:function(y,w){this.path&&w.canvas&&w.canvas.appendChild(this.path)},setVisible:function(y){this.path!=null&&(this.path.style.display=y?"block":"none")}};V.extend(h,[f.jsPlumbUIComponent,f.Overlays.AbstractOverlay]),f.Overlays.svg.Arrow=function(){h.apply(this,[f.Overlays.Arrow,arguments])},V.extend(f.Overlays.svg.Arrow,[f.Overlays.Arrow,h],j),f.Overlays.svg.PlainArrow=function(){h.apply(this,[f.Overlays.PlainArrow,arguments])},V.extend(f.Overlays.svg.PlainArrow,[f.Overlays.PlainArrow,h],j),f.Overlays.svg.Diamond=function(){h.apply(this,[f.Overlays.Diamond,arguments])},V.extend(f.Overlays.svg.Diamond,[f.Overlays.Diamond,h],j),f.Overlays.svg.GuideLines=function(){var y=null,w=this,g,E;f.Overlays.GuideLines.apply(this,arguments),this.paint=function(R,B){y==null&&(y=G("path"),R.connector.svg.appendChild(y),w.attachListeners(y,R.connector),w.attachListeners(y,w),g=G("path"),R.connector.svg.appendChild(g),w.attachListeners(g,R.connector),w.attachListeners(g,w),E=G("path"),R.connector.svg.appendChild(E),w.attachListeners(E,R.connector),w.attachListeners(E,w));var n=[0,0];B.xmin<0&&(n[0]=-B.xmin),B.ymin<0&&(n[1]=-B.ymin),H(y,{d:U(R.head,R.tail),stroke:"red",fill:null,transform:"translate("+n[0]+","+n[1]+")"}),H(g,{d:U(R.tailLine[0],R.tailLine[1]),stroke:"blue",fill:null,transform:"translate("+n[0]+","+n[1]+")"}),H(E,{d:U(R.headLine[0],R.headLine[1]),stroke:"green",fill:null,transform:"translate("+n[0]+","+n[1]+")"})};var U=function(R,B){return"M "+R.x+","+R.y+" L"+B.x+","+B.y}},V.extend(f.Overlays.svg.GuideLines,f.Overlays.GuideLines)}.call(typeof window<"u"?window:jt),function(){var Z=this,f=Z.jsPlumb,V=Z.jsPlumbUtil,it=Z.Katavorio,K=Z.Biltong,nt=function(r){var p=r._mottle;return p||(p=r._mottle=new Z.Mottle),p},c=function(r,p){p=p||"main";var u="_katavorio_"+p,_=r[u],x=r.getEventManager();return _||(_=new it({bind:x.on,unbind:x.off,getSize:f.getSize,getConstrainingRectangle:function(h){return[h.parentNode.scrollWidth,h.parentNode.scrollHeight]},getPosition:function(h,j){var y=r.getOffset(h,j,h._katavorioDrag?h.offsetParent:null);return[y.left,y.top]},setPosition:function(h,j){h.style.left=j[0]+"px",h.style.top=j[1]+"px"},addClass:f.addClass,removeClass:f.removeClass,intersects:K.intersects,indexOf:function(h,j){return h.indexOf(j)},scope:r.getDefaultScope(),css:{noSelect:r.dragSelectClass,droppable:"jtk-droppable",draggable:"jtk-draggable",drag:"jtk-drag",selected:"jtk-drag-selected",active:"jtk-drag-active",hover:"jtk-drag-hover",ghostProxy:"jtk-ghost-proxy"}}),_.setZoom(r.getZoom()),r[u]=_,r.bind("zoom",_.setZoom)),_},O=function(r){var p=r.el._jsPlumbDragOptions,u=!0;return p.canDrag&&(u=p.canDrag()),u&&(this.setHoverSuspended(!0),this.select({source:r.el}).addClass(this.elementDraggingClass+" "+this.sourceElementDraggingClass,!0),this.select({target:r.el}).addClass(this.elementDraggingClass+" "+this.targetElementDraggingClass,!0),this.setConnectionBeingDragged(!0)),u},l=function(r){var p=this.getUIPosition(arguments,this.getZoom());if(p!=null){var u=r.el._jsPlumbDragOptions;this.draw(r.el,p,null,!0),u._dragging&&this.addClass(r.el,"jtk-dragged"),u._dragging=!0}},i=function(r){for(var p=r.selection,u,_=function(h){var j;h[1]!=null&&(u=this.getUIPosition([{el:h[2].el,pos:[h[1].left,h[1].top]}]),j=this.draw(h[2].el,u)),h[0]._jsPlumbDragOptions!=null&&delete h[0]._jsPlumbDragOptions._dragging,this.removeClass(h[0],"jtk-dragged"),this.select({source:h[2].el}).removeClass(this.elementDraggingClass+" "+this.sourceElementDraggingClass,!0),this.select({target:h[2].el}).removeClass(this.elementDraggingClass+" "+this.targetElementDraggingClass,!0),r.e._drawResult=r.e._drawResult||{c:[],e:[],a:[]},Array.prototype.push.apply(r.e._drawResult.c,j.c),Array.prototype.push.apply(r.e._drawResult.e,j.e),Array.prototype.push.apply(r.e._drawResult.a,j.a),this.getDragManager().dragEnded(h[2].el)}.bind(this),x=0;x<p.length;x++)_(p[x]);this.setHoverSuspended(!1),this.setConnectionBeingDragged(!1)},b=function(r,p){var u=function(_){if(p[_]!=null)if(V.isString(p[_])){var x=p[_].match(/-=/)?-1:1,h=p[_].substring(2);return r[_]+x*h}else return p[_];else return r[_]};return[u("left"),u("top")]},D=function(r,p){if(p==null)return[0,0];var u=T(p),_=e(u,0);return[_[r+"X"],_[r+"Y"]]},M=D.bind(this,"page"),C=D.bind(this,"screen"),a=D.bind(this,"client"),e=function(r,p){return r.item?r.item(p):r[p]},T=function(r){return r.touches&&r.touches.length>0?r.touches:r.changedTouches&&r.changedTouches.length>0?r.changedTouches:r.targetTouches&&r.targetTouches.length>0?r.targetTouches:[r]},L=function(r){var p={},u=[],_={},x={},h={};this.register=function(j){var y=r.getId(j),w;p[y]||(p[y]=j,u.push(j),_[y]={});var g=function(E){if(E){for(var U=0;U<E.childNodes.length;U++)if(E.childNodes[U].nodeType!==3&&E.childNodes[U].nodeType!==8){var R=jsPlumb.getElement(E.childNodes[U]),B=r.getId(E.childNodes[U],null,!0);if(B&&x[B]&&x[B]>0){w||(w=r.getOffset(j));var n=r.getOffset(R);_[y][B]={id:B,offset:{left:n.left-w.left,top:n.top-w.top}},h[B]=y}g(E.childNodes[U])}}};g(j)},this.updateOffsets=function(j,y){if(j!=null){y=y||{};var w=jsPlumb.getElement(j),g=r.getId(w),E=_[g],U;if(E){for(var R in E)if(E.hasOwnProperty(R)){var B=jsPlumb.getElement(R),n=y[R]||r.getOffset(B);if(B.offsetParent==null&&_[g][R]!=null)continue;U||(U=r.getOffset(w)),_[g][R]={id:R,offset:{left:n.left-U.left,top:n.top-U.top}},h[R]=g}}}},this.endpointAdded=function(j,y){y=y||r.getId(j);var w=document.body,g=j.parentNode;for(x[y]=x[y]?x[y]+1:1;g!=null&&g!==w;){var E=r.getId(g,null,!0);if(E&&p[E]){var U=r.getOffset(g);if(_[E][y]==null){var R=r.getOffset(j);_[E][y]={id:y,offset:{left:R.left-U.left,top:R.top-U.top}},h[y]=E}break}g=g.parentNode}},this.endpointDeleted=function(j){if(x[j.elementId]&&(x[j.elementId]--,x[j.elementId]<=0))for(var y in _)_.hasOwnProperty(y)&&_[y]&&(delete _[y][j.elementId],delete h[j.elementId])},this.changeId=function(j,y){_[y]=_[j],_[j]={},h[y]=h[j],h[j]=null},this.getElementsForDraggable=function(j){return _[j]},this.elementRemoved=function(j){var y=h[j];y&&(_[y]&&delete _[y][j],delete h[j])},this.reset=function(){p={},u=[],_={},x={}},this.dragEnded=function(j){if(j.offsetParent!=null){var y=r.getId(j),w=h[y];w&&this.updateOffsets(w)}},this.setParent=function(j,y,w,g,E){var U=h[y];_[g]||(_[g]={});var R=r.getOffset(w),B=E||r.getOffset(j);U&&_[U]&&delete _[U][y],_[g][y]={id:y,offset:{left:B.left-R.left,top:B.top-R.top}},h[y]=g},this.clearParent=function(j,y){var w=h[y];w&&(delete _[w][y],delete h[y])},this.revalidateParent=function(j,y,w){var g=h[y];if(g){var E={};E[y]=w,this.updateOffsets(g,E),r.revalidate(g)}},this.getDragAncestor=function(j){var y=jsPlumb.getElement(j),w=r.getId(y),g=h[w];return g?jsPlumb.getElement(g):null}},H=function(r,p,u){p=V.fastTrim(p),typeof r.className.baseVal<"u"?r.className.baseVal=p:r.className=p;try{var _=r.classList;if(_!=null){for(;_.length>0;)_.remove(_.item(0));for(var x=0;x<u.length;x++)u[x]&&_.add(u[x])}}catch(h){V.log("JSPLUMB: cannot set class list",h)}},G=function(r){return typeof r.className.baseVal>"u"?r.className:r.className.baseVal},P=function(r,p,u){p=p==null?[]:V.isArray(p)?p:p.split(/\s+/),u=u==null?[]:V.isArray(u)?u:u.split(/\s+/);var _=G(r),x=_.split(/\s+/),h=function(j,y){for(var w=0;w<y.length;w++)if(j)x.indexOf(y[w])===-1&&x.push(y[w]);else{var g=x.indexOf(y[w]);g!==-1&&x.splice(g,1)}};h(!0,p),h(!1,u),H(r,x.join(" "),x)};Z.jsPlumb.extend(Z.jsPlumbInstance.prototype,{headless:!1,pageLocation:M,screenLocation:C,clientLocation:a,getDragManager:function(){return this.dragManager==null&&(this.dragManager=new L(this)),this.dragManager},recalculateOffsets:function(r){this.getDragManager().updateOffsets(r)},createElement:function(r,p,u,_){return this.createElementNS(null,r,p,u,_)},createElementNS:function(r,p,u,_,x){var h=r==null?document.createElement(p):document.createElementNS(r,p),j;u=u||{};for(j in u)h.style[j]=u[j];_&&(h.className=_),x=x||{};for(j in x)h.setAttribute(j,""+x[j]);return h},getAttribute:function(r,p){return r.getAttribute!=null?r.getAttribute(p):null},setAttribute:function(r,p,u){r.setAttribute!=null&&r.setAttribute(p,u)},setAttributes:function(r,p){for(var u in p)p.hasOwnProperty(u)&&r.setAttribute(u,p[u])},appendToRoot:function(r){document.body.appendChild(r)},getRenderModes:function(){return["svg"]},getClass:G,addClass:function(r,p){jsPlumb.each(r,function(u){P(u,p)})},hasClass:function(r,p){return r=jsPlumb.getElement(r),r.classList?r.classList.contains(p):G(r).indexOf(p)!==-1},removeClass:function(r,p){jsPlumb.each(r,function(u){P(u,null,p)})},toggleClass:function(r,p){jsPlumb.hasClass(r,p)?jsPlumb.removeClass(r,p):jsPlumb.addClass(r,p)},updateClasses:function(r,p,u){jsPlumb.each(r,function(_){P(_,p,u)})},setClass:function(r,p){p!=null&&jsPlumb.each(r,function(u){H(u,p,p.split(/\s+/))})},setPosition:function(r,p){r.style.left=p.left+"px",r.style.top=p.top+"px"},getPosition:function(r){var p=function(u){var _=r.style[u];return _?_.substring(0,_.length-2):0};return{left:p("left"),top:p("top")}},getStyle:function(r,p){return typeof window.getComputedStyle<"u"?getComputedStyle(r,null).getPropertyValue(p):r.currentStyle[p]},getSelector:function(r,p){var u=null;return arguments.length===1?u=r.nodeType!=null?r:document.querySelectorAll(r):u=r.querySelectorAll(p),u},getOffset:function(r,p,u){r=jsPlumb.getElement(r),u=u||this.getContainer();for(var _={left:r.offsetLeft,top:r.offsetTop},x=p||u!=null&&r!==u&&r.offsetParent!==u?r.offsetParent:null,h=function(w){w!=null&&w!==document.body&&(w.scrollTop>0||w.scrollLeft>0)&&(_.left-=w.scrollLeft,_.top-=w.scrollTop)}.bind(this);x!=null;)_.left+=x.offsetLeft,_.top+=x.offsetTop,h(x),x=p?x.offsetParent:x.offsetParent===u?null:x.offsetParent;if(u!=null&&!p&&(u.scrollTop>0||u.scrollLeft>0)){var j=r.offsetParent!=null?this.getStyle(r.offsetParent,"position"):"static",y=this.getStyle(r,"position");y!=="absolute"&&y!=="fixed"&&j!=="absolute"&&j!=="fixed"&&(_.left-=u.scrollLeft,_.top-=u.scrollTop)}return _},getPositionOnElement:function(r,p,u){var _=typeof p.getBoundingClientRect<"u"?p.getBoundingClientRect():{left:0,top:0,width:0,height:0},x=document.body,h=document.documentElement,j=window.pageYOffset||h.scrollTop||x.scrollTop,y=window.pageXOffset||h.scrollLeft||x.scrollLeft,w=h.clientTop||x.clientTop||0,g=h.clientLeft||x.clientLeft||0,E=0,U=0,R=_.top+j-w+E*u,B=_.left+y-g+U*u,n=jsPlumb.pageLocation(r),o=_.width||p.offsetWidth*u,t=_.height||p.offsetHeight*u,d=(n[0]-B)/o,v=(n[1]-R)/t;return[d,v]},getAbsolutePosition:function(r){var p=function(u){var _=r.style[u];if(_)return parseFloat(_.substring(0,_.length-2))};return[p("left"),p("top")]},setAbsolutePosition:function(r,p,u,_){u?this.animate(r,{left:"+="+(p[0]-u[0]),top:"+="+(p[1]-u[1])},_):(r.style.left=p[0]+"px",r.style.top=p[1]+"px")},getSize:function(r){return[r.offsetWidth,r.offsetHeight]},getWidth:function(r){return r.offsetWidth},getHeight:function(r){return r.offsetHeight},getRenderMode:function(){return"svg"},draggable:function(r,p){var u;return r=V.isArray(r)||r.length!=null&&!V.isString(r)?r:[r],Array.prototype.slice.call(r).forEach(function(_){u=this.info(_),u.el&&this._initDraggableIfNecessary(u.el,!0,p,u.id,!0)}.bind(this)),this},snapToGrid:function(r,p,u){var _=[],x=function(y){var w=this.info(y);if(w.el!=null&&w.el._katavorioDrag){var g=w.el._katavorioDrag.snap(p,u);this.revalidate(w.el),_.push([w.el,g])}}.bind(this);if(arguments.length===1||arguments.length===3)x(r,p,u);else{var h=this.getManagedElements();for(var j in h)x(j,arguments[0],arguments[1])}return _},initDraggable:function(r,p,u){c(this,u).draggable(r,p),r._jsPlumbDragOptions=p},destroyDraggable:function(r,p){c(this,p).destroyDraggable(r),r._jsPlumbDragOptions=null,r._jsPlumbRelatedElement=null},unbindDraggable:function(r,p,u,_){c(this,_).destroyDraggable(r,p,u)},setDraggable:function(r,p){return jsPlumb.each(r,function(u){this.isDragSupported(u)&&(this._draggableStates[this.getAttribute(u,"id")]=p,this.setElementDraggable(u,p))}.bind(this))},_draggableStates:{},toggleDraggable:function(r){var p;return jsPlumb.each(r,function(u){var _=this.getAttribute(u,"id");return p=this._draggableStates[_]==null?!1:this._draggableStates[_],p=!p,this._draggableStates[_]=p,this.setDraggable(u,p),p}.bind(this)),p},_initDraggableIfNecessary:function(r,p,u,_,x){if(!jsPlumb.headless){var h=p??!1;if(h&&jsPlumb.isDragSupported(r,this)){var j=u||this.Defaults.DragOptions;if(j=jsPlumb.extend({},j),jsPlumb.isAlreadyDraggable(r,this))u.force&&this.initDraggable(r,j);else{var y=jsPlumb.dragEvents.drag,w=jsPlumb.dragEvents.stop,g=jsPlumb.dragEvents.start;this.manage(_,r),j[g]=V.wrap(j[g],O.bind(this)),j[y]=V.wrap(j[y],l.bind(this)),j[w]=V.wrap(j[w],i.bind(this));var E=this.getId(r);this._draggableStates[E]=!0;var U=this._draggableStates[E];j.disabled=U==null?!1:!U,this.initDraggable(r,j),this.getDragManager().register(r),x&&this.fire("elementDraggable",{el:r,options:j})}}}},animationSupported:!0,getElement:function(r){return r==null?null:(r=typeof r=="string"?r:r.tagName==null&&r.length!=null&&r.enctype==null?r[0]:r,typeof r=="string"?document.getElementById(r):r)},removeElement:function(r){c(this).elementRemoved(r),this.getEventManager().remove(r)},doAnimate:function(r,p,u){u=u||{};var _=this.getOffset(r),x=b(_,p),h=x[0]-_.left,j=x[1]-_.top,y=u.duration||250,w=15,g=y/w,E=w/y*h,U=w/y*j,R=0,B=setInterval(function(){f.setPosition(r,{left:_.left+E*(R+1),top:_.top+U*(R+1)}),u.step!=null&&u.step(R,Math.ceil(g)),R++,R>=g&&(window.clearInterval(B),u.complete!=null&&u.complete())},w)},destroyDroppable:function(r,p){c(this,p).destroyDroppable(r)},unbindDroppable:function(r,p,u,_){c(this,_).destroyDroppable(r,p,u)},droppable:function(r,p){r=V.isArray(r)||r.length!=null&&!V.isString(r)?r:[r];var u;return p=p||{},p.allowLoopback=!1,Array.prototype.slice.call(r).forEach(function(_){u=this.info(_),u.el&&this.initDroppable(u.el,p)}.bind(this)),this},initDroppable:function(r,p,u){c(this,u).droppable(r,p)},isAlreadyDraggable:function(r){return r._katavorioDrag!=null},isDragSupported:function(r,p){return!0},isDropSupported:function(r,p){return!0},isElementDraggable:function(r){return r=f.getElement(r),r._katavorioDrag&&r._katavorioDrag.isEnabled()},getDragObject:function(r){return r[0].drag.getDragElement()},getDragScope:function(r){return r._katavorioDrag&&r._katavorioDrag.scopes.join(" ")||""},getDropEvent:function(r){return r[0].e},getUIPosition:function(r,p){var u=r[0].el;if(u.offsetParent==null)return null;var _=r[0].finalPos||r[0].pos,x={left:_[0],top:_[1]};if(u._katavorioDrag&&u.offsetParent!==this.getContainer()){var h=this.getOffset(u.offsetParent);x.left+=h.left,x.top+=h.top}return x},setDragFilter:function(r,p,u){r._katavorioDrag&&r._katavorioDrag.setFilter(p,u)},setElementDraggable:function(r,p){r=f.getElement(r),r._katavorioDrag&&r._katavorioDrag.setEnabled(p)},setDragScope:function(r,p){r._katavorioDrag&&r._katavorioDrag.k.setDragScope(r,p)},setDropScope:function(r,p){r._katavorioDrop&&r._katavorioDrop.length>0&&r._katavorioDrop[0].k.setDropScope(r,p)},addToPosse:function(r,p){var u=Array.prototype.slice.call(arguments,1),_=c(this);f.each(r,function(x){x=[f.getElement(x)],x.push.apply(x,u),_.addToPosse.apply(_,x)})},setPosse:function(r,p){var u=Array.prototype.slice.call(arguments,1),_=c(this);f.each(r,function(x){x=[f.getElement(x)],x.push.apply(x,u),_.setPosse.apply(_,x)})},removeFromPosse:function(r,p){var u=Array.prototype.slice.call(arguments,1),_=c(this);f.each(r,function(x){x=[f.getElement(x)],x.push.apply(x,u),_.removeFromPosse.apply(_,x)})},removeFromAllPosses:function(r){var p=c(this);f.each(r,function(u){p.removeFromAllPosses(f.getElement(u))})},setPosseState:function(r,p,u){var _=c(this);f.each(r,function(x){_.setPosseState(f.getElement(x),p,u)})},dragEvents:{start:"start",stop:"stop",drag:"drag",step:"step",over:"over",out:"out",drop:"drop",complete:"complete",beforeStart:"beforeStart"},animEvents:{step:"step",complete:"complete"},stopDrag:function(r){r._katavorioDrag&&r._katavorioDrag.abort()},addToDragSelection:function(r){var p=this.getElement(r);p!=null&&(p._isJsPlumbGroup||p._jsPlumbGroup==null)&&c(this).select(r)},removeFromDragSelection:function(r){c(this).deselect(r)},getDragSelection:function(){return c(this).getSelection()},clearDragSelection:function(){c(this).deselectAll()},trigger:function(r,p,u,_){this.getEventManager().trigger(r,p,u,_)},doReset:function(){for(var r in this)r.indexOf("_katavorio_")===0&&this[r].reset()},getEventManager:function(){return nt(this)},on:function(r,p,u){return this.getEventManager().on.apply(this,arguments),this},off:function(r,p,u){return this.getEventManager().off.apply(this,arguments),this}});var A=function(r){var p=function(){/complete|loaded|interactive/.test(document.readyState)&&typeof document.body<"u"&&document.body!=null?r():setTimeout(p,9)};p()};A(f.init)}.call(typeof window<"u"?window:jt)})(De);const ze=[{title:"工作流",icon:"iconfont icon-shouye",isOpen:!0,id:"1",children:[{icon:"iconfont icon-gongju",name:"引擎",id:"11",form:[{type:"input",label:"客户姓名",prop:"name",placeholder:"请输入客户姓名",required:!0,disabled:!1},{type:"select",label:"性别",prop:"sex",placeholder:"请选择性别",required:!0,disabled:!1,options:[{value:"0",label:"女"},{value:"1",label:"男"}]},{type:"input",label:"员工编号",prop:"number",placeholder:"请输入员工编号",required:!0,disabled:!1},{type:"input",label:"办公电话",prop:"mobile",placeholder:"请输入办公电话",required:!0,disabled:!1},{type:"select",label:"权限分配",prop:"role",placeholder:"请选择性别",required:!0,disabled:!1,options:[{value:"0",label:"编辑权限"},{value:"1",label:"删除权限"}]},{type:"checkbox",label:"模块选择",prop:"module",placeholder:"请选择模块",required:!0,disabled:!1}]},{icon:"iconfont icon-shouye_dongtaihui",name:"模版",id:"12",form:[{type:"input",label:"等级",prop:"grade",placeholder:"请输入等级",required:!0,disabled:!1},{type:"input",label:"登记密码",prop:"password",placeholder:"请输入登记密码",required:!0,disabled:!1}]},{icon:"iconfont icon-zhongduancanshuchaxun",name:"名称",id:"13",form:[{type:"input",label:"数据表",prop:"dataSheet",placeholder:"请输入数据表",required:!0,disabled:!1},{type:"input",label:"字段配置",prop:"field",placeholder:"请输入字段配置",required:!0,disabled:!1}]},{icon:"iconfont icon-zhongduancanshu",name:"版本",id:"14",form:[{type:"input",label:"发布模板",prop:"publish",placeholder:"请输入发布模板",required:!0,disabled:!1}]},{icon:"iconfont icon-bolangnengshiyanchang",name:"建模",id:"15",form:[{type:"input",label:"内容模板",prop:"content",placeholder:"请输入内容模板",required:!0,disabled:!1}]},{icon:"iconfont icon-xingqiu",name:"节点",id:"16",form:[{type:"input",label:"活动名称6",prop:"name16"}]}]},{title:"流程",isOpen:!0,icon:"iconfont icon-caijian",id:"2",children:[{icon:"iconfont icon-fuwenben",name:"实例",id:"21",form:[{type:"input",label:"活动名称7",prop:"name21"}]},{icon:"iconfont icon-fuwenbenkuang",name:"轨迹",id:"22",form:[{type:"input",label:"活动名称8",prop:"name22"}]},{icon:"iconfont icon-shangchuan",name:"数据",id:"23",form:[{type:"input",label:"活动名称9",prop:"name23"}]}]},{title:"任务",isOpen:!0,icon:"iconfont icon-shuju",id:"3",children:[{icon:"iconfont icon-icon-",name:"参与人",id:"31",form:[{type:"input",label:"活动名称1",prop:"name31"}]},{icon:"iconfont icon-gerenzhongxin",name:"执行人",id:"32",form:[{type:"input",label:"活动名称2",prop:"name32"}]},{icon:"iconfont icon-fangkuang",name:"工单",id:"33",form:[{type:"input",label:"活动名称3",prop:"name33"}]}]}],qe={Anchors:["Top","TopCenter","TopRight","TopLeft","Right","RightMiddle","Bottom","BottomCenter","BottomRight","BottomLeft","Left","LeftMiddle"],Container:"workflow-right",Connector:["Bezier",{curviness:100}],ConnectionsDetachable:!1,DeleteEndpointsOnDetach:!1,Endpoint:["Blank",{Overlays:""}],EndpointStyle:{fill:"#1879ffa1",outlineWidth:1},LogEnabled:!0,PaintStyle:{stroke:"#E0E3E7",strokeWidth:1,outlineStroke:"transparent",outlineWidth:10},DragOptions:{cursor:"pointer",zIndex:2e3},Overlays:[["Arrow",{width:10,length:8,location:1,direction:1,foldback:.623}],["Label",{label:"",location:.5,cssClass:"aLabel"}]],RenderMode:"svg",HoverPaintStyle:{stroke:"#b0b2b5",strokeWidth:1},EndpointHoverStyle:{fill:"red"},Scope:"jsPlumb_DefaultScope"},Ke={filter:".workflow-icon-drag",filterExclude:!1,anchor:"Continuous",allowLoopback:!0,maxConnections:-1},$e={filter:".workflow-icon-drag",filterExclude:!1,anchor:"Continuous",allowLoopback:!0,dropOptions:{hoverClass:"ef-drop-hover"}},Ee={isSource:!0,isTarget:!0,anchor:"Continuous"},Ze={class:"workflow-container layout-padding"},Je={key:0,class:"workflow-mask"},Qe={class:"layout-padding-auto layout-padding-view workflow-warp"},tn={class:"workflow"},en={class:"workflow-content"},nn={class:"workflow-left"},sn=["onClick"],rn=["data-name","data-icon","data-id"],on={class:"workflow-left-item-icon"},an={class:"font10 pl5 name"},ln=["id","data-node-id","onClick","onContextmenu"],un={class:"workflow-left-item-icon"},hn={class:"font10 pl5 name"},cn=Oe({name:"pagesWorkflow"}),fn=Oe({...cn,setup(Qt){const Z=ye(()=>me(()=>import("./index.34813e3f.js"),["./index.34813e3f.js","./vue.aade88c7.js","./index.72328493.js","./index.b5b78cd7.css","./index.c80e0093.css"],import.meta.url)),f=ye(()=>me(()=>import("./index.d8cd11f3.js"),["./index.d8cd11f3.js","./vue.aade88c7.js","./index.72328493.js","./index.b5b78cd7.css","./index.8013691f.css"],import.meta.url)),V=ye(()=>me(()=>import("./index.96098c50.js"),["./index.96098c50.js","./index.72328493.js","./vue.aade88c7.js","./index.b5b78cd7.css"],import.meta.url)),it=ye(()=>me(()=>import("./help.295de586.js"),["./help.295de586.js","./vue.aade88c7.js"],import.meta.url)),K=ne([]),nt=ne(),c=ne(),O=ne(),l=ne(),i=ne(),b=Le(),D=Ie(),{themeConfig:M}=Ne(D),{copyText:C}=We(),a=Ge({leftNavList:[],dropdownNode:{x:"",y:""},dropdownLine:{x:"",y:""},isShow:!1,jsPlumb:null,jsPlumbNodeIndex:null,jsplumbDefaults:qe,jsplumbMakeSource:Ke,jsplumbMakeTarget:$e,jsplumbConnect:Ee,jsplumbData:{nodeList:[],lineList:[]}}),e=()=>{document.body.clientWidth<768?a.isShow=!0:a.isShow=!1},T=()=>{a.leftNavList=ze,a.jsplumbData={nodeList:[{nodeId:"huej738hbji",left:"148px",top:"93px",class:"workflow-right-clone",icon:"iconfont icon-gongju",name:"引擎",id:"11"},{nodeId:"52kcszzyxrd",left:"458px",top:"203px",class:"workflow-right-clone",icon:"iconfont icon-shouye_dongtaihui",name:"模版",id:"12"},{nodeId:"nltskl6k4me",left:"164px",top:"350px",class:"workflow-right-clone",icon:"iconfont icon-zhongduancanshuchaxun",name:"名称",id:"13"}],lineList:[{sourceId:"huej738hbji",targetId:"52kcszzyxrd",label:"传送"},{sourceId:"huej738hbji",targetId:"nltskl6k4me",label:""}]}},L=()=>{K.value.forEach(R=>{Ve.create(R,{group:{name:"vue-next-admin-1",pull:"clone",put:!1},animation:0,sort:!1,draggable:".workflow-left-item",forceFallback:!0,onEnd:function(B){const{name:n,icon:o,id:t}=B.clone.dataset,{layerX:d,layerY:v,clientX:F,clientY:I}=B.originalEvent,X=nt.value,{x:N,y:W,width:ot,height:st}=X.getBoundingClientRect();if(F<N||F>ot+N||I<W||W>W+st)ae.warning("请把节点拖入到画布中");else{const Q=Math.random().toString(36).substr(2,12),rt={nodeId:Q,left:`${d-40}px`,top:`${v-15}px`,class:"workflow-right-clone",name:n,icon:o,id:t};a.jsplumbData.nodeList.push(rt),be(()=>{a.jsPlumb.makeSource(Q,a.jsplumbMakeSource),a.jsPlumb.makeTarget(Q,a.jsplumbMakeTarget,Ee),a.jsPlumb.draggable(Q,{containment:"parent",stop:pt=>{a.jsplumbData.nodeList.forEach(ft=>{ft.nodeId===pt.el.id&&(ft.left=`${pt.pos[0]}px`,ft.top=`${pt.pos[1]}px`)})}})})}}})})},H=()=>{De.jsPlumb.ready(()=>{a.jsPlumb=De.jsPlumb.getInstance({detachable:!1,Container:"workflow-right"}),a.jsPlumb.fire("jsPlumbDemoLoaded",a.jsPlumb),a.jsPlumb.importDefaults(a.jsplumbDefaults),a.jsPlumb.setSuspendDrawing(!1,!0),G(),a.jsPlumb.bind("contextmenu",(R,B)=>{B.preventDefault();const{sourceId:n,targetId:o}=R,{clientX:t,clientY:d}=B;a.dropdownLine.x=t,a.dropdownLine.y=d;const v=a.jsplumbData.nodeList.find(I=>I.nodeId===o),F=a.jsplumbData.lineList.find(I=>I.sourceId===n&&I.targetId===o);v.type="line",v.label=F.label,O.value.openContextmenu(v,R)}),a.jsPlumb.bind("beforeDrop",R=>{const{sourceId:B,targetId:n}=R;return a.jsplumbData.lineList.find(t=>t.sourceId===B&&t.targetId===n)?(ae.warning("关系已存在,不可重复连接"),!1):!0}),a.jsPlumb.bind("connection",R=>{const{sourceId:B,targetId:n}=R;a.jsplumbData.lineList.push({sourceId:B,targetId:n,label:""})}),a.jsPlumb.bind("connectionDetached",R=>{const{sourceId:B,targetId:n}=R;a.jsplumbData.lineList=a.jsplumbData.lineList.filter(o=>!(o.sourceId==B&&o.targetId==n))})})},G=()=>{a.jsplumbData.nodeList.forEach(R=>{a.jsPlumb.makeSource(R.nodeId,a.jsplumbMakeSource),a.jsPlumb.makeTarget(R.nodeId,a.jsplumbMakeTarget,Ee),a.jsPlumb.draggable(R.nodeId,{containment:"parent",stop:B=>{a.jsplumbData.nodeList.forEach(n=>{n.nodeId===B.el.id&&(n.left=`${B.pos[0]}px`,n.top=`${B.pos[1]}px`)})}})}),a.jsplumbData.lineList.forEach(R=>{a.jsPlumb.connect({source:R.sourceId,target:R.targetId,label:R.label},a.jsplumbConnect)})},P=R=>{R.isOpen=!R.isOpen},A=R=>{a.jsPlumbNodeIndex=R},r=(R,B,n)=>{a.jsPlumbNodeIndex=B;const{clientX:o,clientY:t}=n;a.dropdownNode.x=o,a.dropdownNode.y=t,R.type="node",R.label="";let d={};a.leftNavList.forEach(v=>{v.children&&v.children.find(F=>F.id===R.id)&&(d=v.children.find(F=>F.id===R.id))}),R.from=d.form,c.value.openContextmenu(R)},p=R=>{const{contextMenuClickId:B,nodeId:n}=R;if(B===0){const o=a.jsplumbData.nodeList.findIndex(t=>t.nodeId===n);a.jsplumbData.nodeList.splice(o,1),a.jsPlumb.removeAllEndpoints(n),a.jsPlumbNodeIndex=null}else B===1&&l.value.open(R)},u=(R,B)=>{const{contextMenuClickId:n}=R,{endpoints:o}=B,t=[];o.forEach(d=>{t.push({id:d.element.id,innerText:d.element.innerText})}),R.contact=`${t[0].innerText}(${t[0].id}) => ${t[1].innerText}(${t[1].id})`,n===0?a.jsPlumb.deleteConnection(B):n===1&&l.value.open(R,B)},_=R=>{const{sourceId:B,targetId:n,label:o}=R,t=a.jsPlumb.getConnections({source:B,target:n})[0];t.setLabel(o),!o||o===""?t.addClass("workflow-right-empty-label"):(t.removeClass("workflow-right-empty-label"),t.addClass("workflow-right-label")),a.jsplumbData.lineList.forEach(d=>{d.sourceId===B&&d.targetId===n&&(d.label=o)})},x=R=>{const{nodeId:B,name:n,icon:o}=R;a.jsplumbData.nodeList.forEach(t=>{t.nodeId===B&&(t.name=n,t.icon=o)}),be(()=>{a.jsPlumb.setSuspendDrawing(!1,!0)})},h=R=>{switch(R){case"help":j();break;case"download":y();break;case"submit":w();break;case"copy":g();break;case"del":E();break;case"fullscreen":U();break}},j=()=>{be(()=>{i.value.open()})},y=()=>{const{globalTitle:R}=M.value,B="data:text/json;charset=utf-8,"+encodeURIComponent(JSON.stringify(a.jsplumbData,null," ")),n=document.createElement("a");n.setAttribute("href",B),n.setAttribute("download",`${R}工作流.json`),n.click(),n.remove(),ae.success("下载成功")},w=()=>{ae.success("数据提交成功")},g=()=>{C(JSON.stringify(a.jsplumbData))},E=()=>{Fe.confirm("此操作将清空画布,是否继续?","提示",{confirmButtonText:"清空",cancelButtonText:"取消"}).then(()=>{a.jsplumbData.nodeList.forEach(R=>{a.jsPlumb.removeAllEndpoints(R.nodeId)}),be(()=>{a.jsplumbData={nodeList:[],lineList:[]},ae.success("清空画布成功")})}).catch(()=>{})},U=()=>{b.setCurrenFullscreen(!0)};return Ue(async()=>{await T(),L(),H(),e(),window.addEventListener("resize",e)}),He(()=>{window.removeEventListener("resize",e)}),(R,B)=>{const n=je("SvgIcon"),o=je("el-scrollbar");return Zt(),Jt("div",Ze,[a.isShow?(Zt(),Jt("div",Je)):Be("",!0),Rt("div",Qe,[Rt("div",tn,[zt(le(Z),{onTool:h}),Rt("div",en,[Rt("div",nn,[zt(o,null,{default:Ye(()=>[(Zt(!0),Jt(_e,null,Pe(a.leftNavList,t=>(Zt(),Jt("div",{ref_for:!0,ref_key:"leftNavRefs",ref:K,key:t.id,style:ke({height:t.isOpen?"auto":"50px",overflow:"hidden"}),class:"workflow-left-id"},[Rt("div",{class:"workflow-left-title",onClick:d=>P(t)},[Rt("span",null,Ce(t.title),1),zt(n,{name:t.isOpen?"ele-ArrowDown":"ele-ArrowRight"},null,8,["name"])],8,sn),(Zt(!0),Jt(_e,null,Pe(t.children,(d,v)=>(Zt(),Jt("div",{class:"workflow-left-item",key:v,"data-name":d.name,"data-icon":d.icon,"data-id":d.id},[Rt("div",on,[zt(n,{name:d.icon,class:"workflow-icon-drag"},null,8,["name"]),Rt("div",an,Ce(d.name),1)])],8,rn))),128))],4))),128))]),_:1})]),Rt("div",{class:"workflow-right",ref_key:"workflowRightRef",ref:nt},[(Zt(!0),Jt(_e,null,Pe(a.jsplumbData.nodeList,(t,d)=>(Zt(),Jt("div",{key:t.nodeId,id:t.nodeId,"data-node-id":t.nodeId,class:Te(t.class),style:ke({left:t.left,top:t.top}),onClick:v=>A(d),onContextmenu:Xe(v=>r(t,d,v),["prevent"])},[Rt("div",{class:Te(["workflow-right-box",{"workflow-right-active":a.jsPlumbNodeIndex===d}])},[Rt("div",un,[zt(n,{name:t.icon,class:"workflow-icon-drag"},null,8,["name"]),Rt("div",hn,Ce(t.name),1)])],2)],46,ln))),128))],512)])])]),zt(le(f),{dropdown:a.dropdownNode,ref_key:"contextmenuNodeRef",ref:c,onCurrent:p},null,8,["dropdown"]),zt(le(f),{dropdown:a.dropdownLine,ref_key:"contextmenuLineRef",ref:O,onCurrent:u},null,8,["dropdown"]),zt(le(V),{ref_key:"drawerRef",ref:l,onLabel:_,onNode:x},null,512),zt(le(it),{ref_key:"helpRef",ref:i},null,512)])}}});const bn=Re(fn,[["__scopeId","data-v-fd2debf1"]]);export{bn as default};
  2. //# sourceMappingURL=index.d0ce99f2.js.map