1 line
8.8 KiB
JavaScript
1 line
8.8 KiB
JavaScript
!function(h){"use strict";var G=h.ht,z=G.Default,m=z.getInternal(),j=m.ui(),E=null,B="__segmentLengths",O="__lineTotalLength",n="__linePoints",D="__distance0",s="flow.count",F="flow.step",f="flow.element.max",b="flow.element.count",H="flow.element.min",Q="flow.element.space",e="flow.element.autorotate",$="flow.element.background",Z="flow.element.shadow.max",M="flow.element.shadow.min",L="flow.element.shadow.begincolor",w="flow.element.shadow.endcolor",U="flow.element.shadow.visible",q="flow.element.image",o="flow",W=G.Math.Vector2,d=new W;new W,new W,G.List;var S=G.Default._edgeProtectMethod,y=S.getStraightLinePoints,K=function(W,n){for(var O=[],X=W.length,U=0;X>U;U++){var C=W[U];C._as&&(C=C._as);for(var K=C[0],N=1;N<C.length;N++)O.push([K,C[N]]),K=C[N]}for(var I=[],U=0;U<O.length;U++){var l=i(O[U][0],O[U][1],n);I.push(l)}return{distance:I,segments:O}},t=function(t,l,T){if(t){for(var F,W=K(t,l),E=W.distance,y=W.segments,$=1/0,A=null,Y=0,g=E.length;g>Y;Y++){var u=E[Y];u.z<$&&(F=Y,$=u.z,A=u)}if(null==T&&(T=.1),A.z<T){for(var V=0,X=0;F>=X;X++)V+=z.getDistance(y[X][0],F>X?y[X][1]:A);return V}}},i=function(y,r,M){var F=y.x,K=y.y,B=r.x,m=r.y,I=M.x,i=M.y,s=B-F,l=m-K,t=Math.sqrt(s*s+l*l),V=s/t,f=l/t,N=(-F+I)*V+(-K+i)*f,z={x:F+N*V,y:K+N*f};return z.x>=Math.min(y.x,r.x)&&z.x<=Math.max(y.x,r.x)&&z.y>=Math.min(y.y,r.y)&&z.y<=Math.max(y.y,r.y)||(z.x=Math.abs(z.x-y.x)<Math.abs(z.x-r.x)?y.x:r.x,z.y=Math.abs(z.y-y.y)<Math.abs(z.y-r.y)?y.y:r.y),s=I-z.x,l=i-z.y,z.z=Math.sqrt(s*s+l*l),z},u=function(p,P){if(p){var i=K(p,P).distance,_=1/0,S=null;return i.forEach(function(R){R.z<_&&(_=R.z,S=R)}),S}},r=S.calculateLineLength,A=S.calcSegmentIndexByDistance,Y=S.calculatePointAlongLine,g=function(U,D,B){if(!U)return B;if(0===D){var S=U[0][0],u=U[0][1];return B+Math.atan2(u.y-S.y,u.x-S.x)}if(100===D){U=U[U.length-1];var S=U[U.length-2],u=U[U.length-1];return B+Math.atan2(u.y-S.y,u.x-S.x)}for(var p=0,L=[],z=U.length,P=0;z>P;P++){var l=U[P],m=r(l);p+=m,L.push(m)}for(var i=p*D/100,C=A(i,L),n=0,w=0;C>w;w++)n+=L[w];i-=n;for(var $=Y(U[C],i),k=U[C],b=0,G=0,v=0;v<k.length-1;v++){var o=k[v],g=k[v+1],H=g.x-o.x,d=g.y-o.y,J=Math.sqrt(H*H+d*d);if(b+=J,b>i){G=v;break}}var O=k[G];return B+Math.atan2($.y-O.y,$.x-O.x)},x=function(M){var x=0;if(M)if(Array.isArray(M[0]))for(var e=M.length,V=0;e>V;V++){var l=M[V],H=r(l);x+=H}else x=r(M);return x},p=function(q,y,G,n){return d.set(y,G).rotateAround(null,n),q?{x:q.x+d.x,y:q.y+d.y}:{x:d.x,y:d.y}},I=function(E){var j=E._data,W=y(E);if(W){j.s("flow.reverse")&&(W.reverse(),W.forEach(function(z){z.reverse()}));for(var t=0,u=[],a=W.length,U=0;a>U;U++){var f=W[U],L=r(f);t+=L,u.push(L)}if(j[B]=u,j[O]=t,j[n]=W,j instanceof G.Edge){var Y=z.unionPoint(W),T=Y.x+Y.width/2,S=Y.y+Y.height/2;j.$10e={x:T,y:S}}R(E,!0)}},v=S.getPercentPosition,R=function($,g){var L=$._data,U=L[O],w=L.s(s),V=L.s(F),x=0,j=L[B],z=L.s(f),v=L.s(H),c=L.s(b),Q=(z-v)/(c-1),C=[];if(j){if(1===c)C.push(z);else if(2===c)C.push(z),C.push(v);else{if(!(c>2))return;C.push(z);for(var r=c-2;r>0;r--)C.push(v+Q*r);C.push(v)}var K=0,d=0;C.forEach(function(S){c-1>K&&(d+=L.getFlowElementSpace(S)),K++}),d+=(z+v)/2,x=(U-w*d+d)/w;var Y=$[D];for(null==Y&&(Y=0),g||(Y+=V);Y>U+d;){var m=$._overCount;m?m++:m=1,m>=w&&(m=null),$._overCount=m,L.s("flow.autoreverse")?m?Y-=x+d:(Y=0,L.s("flow.reverse",!L.s("flow.reverse"))):Y-=x+d}$[D]=Y}},C="prototype",N=G.graph.GraphView[C],X=G.Data[C],P=j.DataUI[C],l=j.ShapeUI[C],a=j.EdgeUI[C],J=G.DataModel[C],c=G.Style;c[f]==E&&(c[f]=7),c[H]==E&&(c[H]=0),c[s]==E&&(c[s]=1),c[F]==E&&(c[F]=3),c[b]==E&&(c[b]=10),c[Q]==E&&(c[Q]=3.5),c[e]==E&&(c[e]=!1),c[$]==E&&(c[$]="rgba(255, 255, 114, 0.4)"),c[L]==E&&(c[L]="rgba(255, 255, 0, 0.3)"),c[w]==E&&(c[w]="rgba(255, 255, 0, 0)"),c[U]==E&&(c[U]=1),c[Z]==E&&(c[Z]=22),c[M]==E&&(c[M]=4),N.calculatePointLength=function(b,K,O){var D=this.getDataUI(b),X=y(D);return t(X,K,O)},z.calculatePointLength=function(Z,v,T,D){var O=y(E,Z,v);return t(O,T,D)},z.calculateClosestPointOnLine=i,N.calculateClosestPoint=function(i,h){var W=this.getDataUI(i),P=y(W);return u(P,h)},z.calculateClosestPoint=function(b,h,t){var I=y(E,b,h);return u(I,t)},N.getPercentAngle=function(S,J){var q=this.getDataUI(S),u=y(q);return S.getRotation?S.getRotation():0,g(u,J,S.getRotation?S.getRotation():0)},z.getPercentAngle=function(z,o,k){var b=y(E,z,o);return g(b,k,0)},N.calculateLength=function(J){var l=this.getDataUI(J),N=y(l);return x(N)},z.calculateLength=function(g,s){var M=y(E,g,s);return x(M)},N.getPercentPosition=function(E,Q){var D=this.getDataUI(E),w=y(D);return v(w,Q)},z.getPercentPositionOnPoints=function(A,f,L){var W=y(E,A,f);return v(W,L)};var T=function(B){var x=B.data,K=this.dm();if(x&&"add"===B.kind){var X=K.$3e;X&&x.s(o)&&X.indexOf(x)<0&&X.push(x)}"clear"===B.kind&&(K.$3e=[])},V=function(f){var u=f.property,t=f.data,r=f.newValue,g=this.dm().$3e;if(g&&"s:flow"===u)if(r)g.indexOf(t)<0&&g.push(t);else for(var Y=g.length,c=0;Y>c;c++)if(g[c]===t){g.splice(c,1);break}},_=N.setDataModel;N.setDataModel=function(I){var i=this,E=i._dataModel;if(E!==I){E&&(E.umm(T,i),E.umd(V,i),E.$3e=[]),I.mm(T,i),I.md(V,i);var $=I.$3e=[];I.each(function(y){y.s(o)&&$.indexOf(y)<0&&$.push(y)}),_.call(i,I)}},X.getFlowElementSpace=function(){return this.s(Q)};var k=function(C){var r=this,w=r._data,U=w[O],m=w[B],o=w[n],k=w.s(s),N=0,v=r[D],J=w.s(f),q=w.s(H),l=w.s(b),z=w.s(M),_=w.s(Z),S=w.s(e),V=(_-z)/(l-1),d=(J-q)/(l-1),L=w.getRotation?w.getRotation():0,Q=w.getPosition?w.p():w.$10e,P=[],X=[];if(v!=E){if(1===l)P.push(J);else if(2===l)P.push(J),P.push(q);else{if(!(l>2))return;P.push(J);for(var i=l-2;i>0;i--)P.push(q+d*i);P.push(q)}if(1===l)X.push(_);else if(2===l)X.push(_),X.push(z);else{if(!(l>2))return;X.push(_);for(var i=l-2;i>0;i--)X.push(z+V*i);X.push(z)}var K=0,$=0;P.forEach(function(m){l-1>K&&($+=w.getFlowElementSpace(m)),K++}),$+=(J+q)/2,N=(U-k*$+$)/k,C.save();for(var i=0;k>i;i++){var F=v,c=0,I=r._overCount,T=0;w.s("flow.autoreverse")&&I&&I>k-(i+1)||(F-=i*(N+$),K=0,P.forEach(function(Z){var E=F-c;if(E>=0&&U>E){var f=!0,V=A(E,m);T=0;for(var b=0;V>b;b++)T+=m[b];if(E-=T,f){var O=Y(o[V],E),B=L;if(S){for(var M=o[V],R=0,I=0,i=0;i<M.length-1;i++){var n=M[i],W=M[i+1],v=W.x-n.x,a=W.y-n.y,H=Math.sqrt(v*v+a*a);if(R+=H,R>E){I=i;break}}var s=M[I];B+=Math.atan2(O.y-s.y,O.x-s.x)}L&&(O=p(Q,O.x-Q.x,O.y-Q.y,L)),r.$5e(C,O,Z,X[K],B)}}c+=w.getFlowElementSpace(P[K]),K++}))}C.restore()}},$b=a._80o;a._80o=function(u){$b.call(this,u);var B=this,h=B._data,D=B.gv;h.s(o)&&D.$7e!=E&&k.call(B,u)};var Qp=l._80o;l._80o=function(O){Qp.call(this,O);var v=this,Y=v._data,j=v.gv;Y.s(o)&&j.$7e!=E&&k.call(v,O)};var so=a._79o,Zn=l._79o,De=function(){var u=this,L=u._data,M=L.s(f),W=!1,i=E;if(u._6I||(W=!0),i=L instanceof G.Edge?so.call(u):Zn.call(u),L.s(o)&&W){var c=L.s(Z),P=L.s(U);P&&c>M&&(M=c),M>0&&z.grow(i,Math.ceil(M/2)),I(u)}return!L.s(o)&&W&&(L[B]=L[O]=L[n]=u[D]=E),i};l._79o=De,a._79o=De,P.$5e=function(F,O,f,n,r){var H=this,B=H._data,V=H.gv,D=B.s($),M=B.s(L),X=B.s(w),S=B.s(U),d=V.$8e,b=B.s(q);if(d==E&&(d=V.$8e={}),F.beginPath(),b!=E){var Y=z.getImage(b),J=f/2;F.translate(O.x,O.y),F.rotate(r),F.translate(-O.x,-O.y),z.drawImage(F,Y,O.x-J,O.y-J,f,f,B),F.translate(O.x,O.y),F.rotate(-r),F.translate(-O.x,-O.y)}else if(V.__flowBatch){var o=V.__flowBatchGroup;o||(o=V.__flowBatchGroup={});var P=[O.x,O.y,f/2];o[D]?o[D].push(P):o[D]=[P]}else F.fillStyle=D,F.arc(O.x,O.y,f/2,0,2*Math.PI,!0),F.fill();if(S){var K=22,k=K+"_"+M+"_"+X,T=d[k];if(T==E){var u=document.createElement("canvas");m.setCanvas(u,K,K);var e=u.getContext("2d"),R=K/2,j=R,G=R;m.translateAndScale(e,0,0,1),e.beginPath();var Q=e.createRadialGradient(j,G,0,j,j,R);Q.addColorStop(0,M),Q.addColorStop(1,X),e.fillStyle=Q,e.arc(j,G,R,0,2*Math.PI,!0),e.fill(),T=d[k]=u}var J=n/2;z.drawImage(F,T,O.x-J,O.y-J,n,n,B)}},N.$9e=function(){var L=this,b=L.dm().$3e;L._24I,b.forEach(function(l){L._24I[l._id]=l}),L.iv()};var $e=J.prepareRemove;J.prepareRemove=function(f){$e.call(this,f);var K=f._dataModel,i=K.$3e;if(i)for(var L=i.length,Y=0;L>Y;Y++)if(i[Y]===f){i.splice(Y,1);break}},N.setFlowInterval=function(D){var G=this,u=G.$11e;G.$11e=D,G.fp("flowInterval",u,D),G.$7e!=E&&(clearInterval(G.$7e),delete G.$7e,G.enableFlow(D))},N.getFlowInterval=function(){return this.$11e},N.enableFlow=function(J){var n=this,C=n.dm(),Y=C.$3e;n.$7e==E&&(Y.forEach(function(k){var r=n.getDataUI(k);I(r)}),n.$7e=setInterval(function(){C.$3e.forEach(function(u){R(n.getDataUI(u))}),n.$9e()},J||n.$11e||50))},N.disableFlow=function(){var J=this;clearInterval(J.$7e),delete J.$7e;var I=J.dm().$3e;I&&J.$9e()};var xr=function(){this.__flowBatchGroup={}},Nc=function(Q){var e=this.__flowBatchGroup;if(e){Q.save();for(var b in e){Q.fillStyle=b,Q.beginPath();var o=e[b];o.forEach(function(V){Q.moveTo(V[0],V[1]),Q.arc(V[0],V[1],V[2],0,2*Math.PI,!0)}),Q.fill()}Q.restore()}};N.setFlowBatch=function(a){var f=this;!!f.__flowBatch!=!!a&&(f.__flowBatch=a,a?(f.addBottomPainter(xr),f.addTopPainter(Nc)):(f.removeBottomPainter(xr),f.removeTopPainter(Nc)))}}("undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:(0,eval)("this"),Object); |