UNPKG

zingchart

Version:

Our JavaScript charting library is a commercial product. But the full branded version is free to try, forever.

8 lines (7 loc) 13.5 kB
/* All of the code within the ZingChart software is developed and copyrighted by ZingChart, Inc., and may not be copied, replicated, or used in any other software or application without prior permission from ZingChart. All usage must coincide with the ZingChart End User License Agreement which can be requested by email at support@zingchart.com. Build 2.9.16-hf1 */ zingchart.setModule("chord"),function(){var l;ZC.AFV=((l=function(){this.AF9="palette",this.C2="#6a921f",this.BP=[],this.T6=.8,this.AFA=.1,this.AFB=0,this.AFC=5,this.iGroupPadding=10,this.iGroupOffset=0,this.JU=1,this.KK=!1,this.fBandAlpha=.75,this.fChordAlpha=.75,this.iHoverEffect=1,this.AGQ=function(){for(var l=(16777215*Math.random()+1<<0).toString(16);l.length<6;)l="0"+l;return"#"+l}}).getDefaults=function(e){var t={};return ZC._cp_(l.B6,t),l.NT[e]&&ZC._cp_(l.NT[e],t),t},l.B6={palette:[],"border-color-1":"#999","border-color-2":"#666",alpha:.75,tick:{"line-color":"#666",flat:!0,"line-width":1},item:{color:"#333","offset-r":0},label:{"auto-align":!0,color:"#333","offset-r":0},"value-box":{visible:!1}},l.NT={light:{palette:[["#7CA82B","#7CA82B","#638F12"],["#29A2CC","#29A2CC","#1089B3"],["#D31E1E","#D31E1E","#BA0505"],["#EF8535","#EF8535","#D66C1C"],["#A05F18","#A05F18","#874600"],["#265E96","#265E96","#0D457D"],["#6B7075","#6B7075","#52575C"]],"border-color-1":"#000","border-color-2":"#fff",alpha:1,tick:{"line-color":"#666"}},dark:{palette:[["#7CA82B","#7CA82B","#638F12"],["#29A2CC","#29A2CC","#1089B3"],["#D31E1E","#D31E1E","#BA0505"],["#EF8535","#EF8535","#D66C1C"],["#A05F18","#A05F18","#874600"],["#265E96","#265E96","#0D457D"],["#6B7075","#6B7075","#52575C"]],"border-color-1":"#221F1F","border-color-2":"#221F1F",alpha:1,tick:{"line-color":"#58595B"},item:{color:"#fff"},label:{color:"#D1D3D4"}}},l);var e={},t={},n=null,a=null,_=-1,o=-1;zingchart.bind(null,"dataparse",function(l,r){var i,C,p,s,Z,g,u=zingchart.getLoader(l.id);zingchart.initThemes(u);for(var h=ZC.AFV.getDefaults(l.theme),d=0,c=r.graphset.length;d<c;d++)if("chord"===r.graphset[d].type){var f=r.graphset[d].type,v=r.graphset[d],A={};v.options&&(A=v.options[f]||v.options),ZC._todash_(A),null!==ZC._n_(n)&&(v.shapes=[],ZC._cpa_(n,v.shapes)),null!==ZC._n_(a)&&(v.labels=[],ZC._cpa_(a,v.labels));var b=new ZC.AFV;e["chord-"+l.id+"-"+d]=b,null!==ZC._n_(i=A["color-type"])&&(b.AF9=i),null!==ZC._n_(i=A.color)&&(b.C2=ZC.AO.GD(i)),null!==ZC._n_(i=A["hover-effect"])&&(b.iHoverEffect=ZC._i_(i)),null!==ZC._n_(i=A.palette)?b.BP=i:h.palette.length>0&&(b.BP=h.palette),null!==ZC._n_(i=A.radius)&&(b.T6=ZC._f_(ZC.IO(i))),null!==ZC._n_(i=A["band-width"])&&(b.AFA=ZC._f_(ZC.IO(i))),null!==ZC._n_(i=A["band-space"])&&(b.AFB=ZC._f_(ZC.IO(i))),null!==ZC._n_(i=A["angle-padding"])&&(b.AFC=ZC._i_(i)),null!==ZC._n_(i=A["group-padding"])&&(b.iGroupPadding=ZC._i_(i)),null!==ZC._n_(i=A["group-offset"])&&(b.iGroupOffset=ZC._i_(i)),null!==ZC._n_(i=A["size-factor"])&&(b.JU=ZC._f_(i)),null!==ZC._n_(i=A.flat)&&(b.KK=ZC._b_(i));var x=v.series;for(C=0;C<x.length;C++)x[C]["sort-index"]=C;var y=[];x.sort(function(l,e){return null!==ZC._n_(l.group)&&-1===ZC.AV(y,ZC._i_(l.group))&&y.push(ZC._i_(l.group)),null!==ZC._n_(e.group)&&-1===ZC.AV(y,ZC._i_(e.group))&&y.push(ZC._i_(e.group)),null!==ZC._n_(l.group)&&null!==ZC._n_(e.group)&&ZC._i_(l.group)-ZC._i_(e.group)!=0?ZC._i_(l.group)-ZC._i_(e.group):l["sort-index"]-e["sort-index"]});var B=ZC.BR(y.length,1),F=t["chord-"+l.id+"-"+d]||[],m=F.length,E=0;for(C=0,p=x.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C))for(Z=0,g=(s=x[C].values||[]).length;Z<g;Z++)(0===m||m>0&&-1===ZC.AV(F,Z))&&(E+=ZC._f_(s[Z]));var M=0;for(C=0,p=x.length;C<p;C++)(0===m||m>0&&-1===ZC.AV(F,C))&&M++;if(-1===_&&(_=x.length),-1===o)for(C=0,p=x.length;C<p;C++)s=x[C].values||[],o=ZC.BR(o,s.length);v.shapes||(v.shapes=[]),n||(n=[],ZC._cpa_(v.shapes,n));var V=v.shapes;v.labels||(v.labels=[]),a||(a=[],ZC._cpa_(v.labels,a));var k,w,D,N,z,G,P,Q,I,T,O=v.labels;v.legend&&(v.legend["toggle-action"]="none");var R,L=360-b.AFC*M-b.iGroupPadding*(B>1?B:0),U=[],X=[],K=[],J=0,H=0,Y=null,S=!1;for(C=0,p=x.length;C<p;C++){ZC._todash_(x[C]),R=1,null!==ZC._n_(x[C].group)&&(R=ZC._i_(x[C].group)),S=!1,H=0,null===Y&&null!==ZC._n_(x[C].group)?Y=ZC._i_(x[C].group):ZC._i_(x[C].group)!==Y&&(Y=ZC._i_(x[C].group),S=!0),S&&C>0&&(H=b.iGroupPadding);var j=b.C2;if("palette"===b.AF9)if(b.BP.length>0)j=b.BP[C%b.BP.length];else j=zingchart.getPalette(u,C,"bar")[1];else"random"===b.AF9&&(j=b.AGQ());if(0===m||m>0&&-1===ZC.AV(F,C)){null===ZC._n_(x[C]["background-color"])&&(x[C]["background-color"]=j),x[C].visible=!0;var q={},W=0;for(Z=0,g=(s=x[C].values||[]).length;Z<g;Z++)(0===m||m>0&&-1===ZC.AV(F,Z))&&(W+=ZC._f_(s[Z]));for(var $ in q["angle-start"]=J+H,q["angle-end"]=q["angle-start"]+L*W/E,q.group=R,q.total=W,q.values=x[C].values,x[C])"data-"===$.substr(0,5)&&(q[$]=x[C][$]);J=q["angle-end"]+b.AFC,U.push(q);var ll=zingchart.getInstance(u,"style");ll.append(x[C]),ll.parse(),X[C]=ll,v.legend&&ZC._cp_({"legend-marker":{alpha:.75,"background-color-1":ll.A0,"background-color-2":ll.AE}},x[C]),P={"background-color":"#fff",color:"#333","border-width":1,"border-color":h["border-color-1"],padding:10},null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tooltip)&&ZC._cp_(i,P);var el=x[C].text||"";P.text=el;var tl={alpha:h.alpha,"border-width":0,"background-color":ll.A0+" "+ll.AE,tooltip:P};null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.band)&&ZC._cp_(i,tl),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.band)&&ZC._cp_(i,tl),ZC._cp_({type:"pie",id:"segment_"+C,"angle-start":q["angle-start"],"angle-end":q["angle-end"]},tl),tl.tooltip.text=tl.tooltip.text.replace(/%text/gi,el),b.fBandAlpha=tl.alpha||.75,K.push(tl)}else x[C].visible=!1,U.push(null),K.push(null)}var nl=0;if(B>1){var al=Number.MAX_VALUE,_l=-Number.MAX_VALUE;for(C=0,p=U.length;C<p;C++)1===U[C].group&&(al=Math.min(al,U[C]["angle-start"]),_l=Math.max(_l,U[C]["angle-end"]));nl=(_l-al)/2}for(nl+=b.iGroupOffset,C=0,p=U.length;C<p;C++)U[C]&&K[C]&&(U[C]["angle-start"]-=nl,U[C]["angle-end"]-=nl,K[C]["angle-start"]-=nl,K[C]["angle-end"]-=nl,V.push(K[C]));var ol,rl=Number.MAX_VALUE;if(0!==E){for(C=0,p=U.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C)){var il=Math.pow(10,Math.floor(Math.log(U[C].total)/Math.LN10));il>0&&(rl=ZC.CY(rl,il))}for(;!((ol=L*rl/E)<15);)rl/=2}else rl=1;var Cl,pl,sl,Zl,gl,ul,hl,dl=Math.min(0,Math.ceil(Math.log(rl)/Math.LN10)+1),cl=0,fl=0;for(C=0,p=U.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C))for(Cl=0,pl=ZC.BR(1,Math.floor(10/ol)),k=U[C]["angle-start"];k<U[C]["angle-end"];k+=ol)Cl%pl==0&&(gl=(sl=Cl*rl).toFixed(dl),sl>=1e3&&(gl=sl/1e3+"k"),sl>=1e6&&(gl=sl/1e6+"M"),Zl={},ZC._cp_(h.item,Zl),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.item)&&ZC._cp_(i,Zl),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.item)&&ZC._cp_(i,Zl),Zl.text=gl,ZC._todash_(Zl),(ul=zingchart.getInstance(u,"textbox")).append(Zl),ul.parse(),fl=Math.max(fl,ul.DX),cl=Math.max(cl,ul.I)),Cl++;var vl,Al=0,bl=0,xl=0;for(C=0;C<x.length;C++)gl=x[C].text||"",vl={},ZC._cp_(h.label,vl),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.label)&&ZC._cp_(i,vl),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.label)&&ZC._cp_(i,vl),vl.text=gl,ZC._todash_(vl),(hl=zingchart.getInstance(u,"textbox")).append(vl),hl.parse(),xl=Math.max(xl,hl.DX),Al=Math.max(Al,hl.I),bl=Math.max(bl,hl.F);if(v.plotarea)for(var yl=["margin","margin-top","margin-right","margin-bottom","margin-left"],Bl=0;Bl<yl.length;Bl++)"dynamic"===v.plotarea[yl[Bl]]&&(0===hl.AB?v.plotarea[yl[Bl]]=cl+fl+bl-20:v.plotarea[yl[Bl]]=cl+fl+Al-20);var Fl,ml,El=zingchart.getGraphInfo(u,r,d),Ml=El.plotarea.x+El.plotarea.width/2,Vl=El.plotarea.y+El.plotarea.height/2,kl=El.graph.x+Ml,wl=El.graph.y+Vl;for(Fl=b.T6>1?ZC._i_(b.T6):ZC._i_(b.T6*ZC.CY(El.plotarea.width/2,El.plotarea.height/2)),Fl*=b.JU,ml=b.AFA>1?Fl-ZC._i_(b.AFA):ZC._i_((1-b.AFA)*Fl),b.AFB<1&&(b.AFB=ZC._i_(b.AFB*Fl)),C=0,p=V.length;C<p;C++)V[C].id&&0===V[C].id.indexOf("segment_")&&(V[C].x=Ml,V[C].y=Vl,V[C].size=Fl,V[C].slice=ml);for(C=0,p=U.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C)){Cl=0;var Dl=[],Nl={};ZC._cp_(h.tick,Nl),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tick)&&ZC._cp_(i,Nl),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.tick)&&ZC._cp_(i,Nl);var zl=Nl.size||5;for(pl=ZC.BR(1,Math.floor(10/ol)),G=30,k=U[C]["angle-start"];k<U[C]["angle-end"];k+=ol){var Gl=ZC.AQ.BN(kl,wl,Fl,k+.1),Pl=ZC.AQ.BN(kl,wl,Fl+zl,k+.1);Dl.push(Gl,Pl,null),Cl%pl==0&&(gl=(sl=Cl*rl).toFixed(dl),sl>=1e3&&(gl=sl/1e3+"k"),sl>=1e6&&(gl=sl/1e6+"M"),w=k,D="left",k>90&&k<270&&(w=k-180,D="right"),Zl={},ZC._cp_(h.item,Zl),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.item)&&ZC._cp_(i,Zl),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.item)&&ZC._cp_(i,Zl),G=Zl.width||cl,z=ZC._i_(Zl["offset-r"]||"0"),N=ZC.AQ.BN(Ml,Vl,Fl+zl+z+G/2,k+.1),ZC._cp_({anchor:"c",flat:!0,x:ZC._i_(N[0]),y:ZC._i_(N[1]),width:G,angle:w,"text-align":D,text:gl},Zl),("undefined"==typeof Zl.visible||ZC._b_(Zl.visible))&&O.push(Zl)),Cl++}ZC._cp_({type:"line",id:"ticks"+C,points:Dl},Nl),("undefined"==typeof Nl.visible||ZC._b_(Nl.visible))&&V.push(Nl),w=k=(U[C]["angle-start"]+U[C]["angle-end"])/2,k<0&&(k+=360),k%=360,D="center",0===hl.AB?k>=0&&k<=180?w-=90:w+=90:k>=0&&k<=90||k>=270&&k<=360?w-=90:w+=90;var Ql={};ZC._cp_(h["value-box"],Ql),null!==ZC._n_(v.plot)&&null!==ZC._n_(i=v.plot["value-box"])&&ZC._cp_(i,Ql),null!==ZC._n_(i=x[C]["value-box"])&&ZC._cp_(i,Ql);var Il=ZC.AQ.BN(kl,wl,(Fl+ml)/2,(U[C]["angle-start"]+U[C]["angle-end"])/2),Tl=w;null===ZC._n_(Ql.angle)&&null===ZC._n_(Ql["font-angle"])||(Ql["auto-align"]?null!==ZC._n_(Ql.angle)?Tl+=ZC._f_(Ql.angle):Tl+=ZC._f_(Ql["font-angle"]):Tl=null!==ZC._n_(Ql.angle)?ZC._f_(Ql.angle):ZC._f_(Ql["font-angle"])),ZC._cp_({id:"vbox_"+C,anchor:"c",angle:Tl,x:Il[0],y:Il[1],flat:!0},Ql),Ql.text=Ql.text||"%node-value",Ql.text=Ql.text.replace(/%plot-text/gi,x[C].text||"").replace(/%node-value/gi,U[C].total),("undefined"==typeof Ql.visible||ZC._b_(Ql.visible))&&O.push(Ql),vl={},ZC._cp_(h.label,vl),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.label)&&ZC._cp_(i,vl),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.label)&&ZC._cp_(i,vl),I=vl.width||Al,T=vl.height||bl,Q=ZC._i_(vl["offset-r"]||"0"),null===ZC._n_(vl.angle)&&null===ZC._n_(vl["font-angle"])||(vl["auto-align"]?(null!==ZC._n_(vl.angle)?w+=ZC._f_(vl.angle):w+=ZC._f_(vl["font-angle"]),0!==hl.AB&&(D=k>=0&&k<=90||k>=270&&k<=360?"left":"right")):w=null!==ZC._n_(vl.angle)?ZC._f_(vl.angle):ZC._f_(vl["font-angle"])),N=0===hl.AB?ZC.AQ.BN(Ml,Vl,Fl+zl+z+G+Q+T,k):ZC.AQ.BN(Ml,Vl,Fl+zl+z+G+Q+I/2,k),ZC._cp_({anchor:"c",flat:!0,x:ZC._i_(N[0]),y:ZC._i_(N[1]),width:I,angle:w,"font-angle":w,"text-align":D,text:x[C].text},vl),("undefined"==typeof vl.visible||ZC._b_(vl.visible))&&O.push(vl)}var Ol=ml-b.AFB;for(C=0,p=U.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C))for(Z=0,g=U.length;Z<p;Z++)if(0===m||m>0&&-1===ZC.AV(F,Z)){for(var Rl=0,Ll=0,Ul=0;Ul<Z;Ul++)(0===m||m>0&&-1===ZC.AV(F,Ul))&&("undefined"==typeof U[C].values[Ul]&&(U[C].values[Ul]=0),Rl+=U[C].values[Ul]);for(Ul=0;Ul<C;Ul++)(0===m||m>0&&-1===ZC.AV(F,Ul))&&("undefined"==typeof U[Z].values[Ul]&&(U[Z].values[Ul]=0),Ll+=U[Z].values[Ul]);var Xl=0;"undefined"!=typeof U[C].values[Z]&&(Xl=U[C].values[Z]);var Kl=0;"undefined"!=typeof U[Z].values[C]&&(Kl=U[Z].values[C]);var Jl=U[C]["angle-start"]+(U[C]["angle-end"]-U[C]["angle-start"])*Rl/U[C].total,Hl=Jl+(U[C]["angle-end"]-U[C]["angle-start"])*Xl/U[C].total,Yl=U[Z]["angle-start"]+(U[Z]["angle-end"]-U[Z]["angle-start"])*Ll/U[Z].total,Sl=Yl+(U[Z]["angle-end"]-U[Z]["angle-start"])*Kl/U[Z].total;0===U[C].total&&(Jl=U[C]["angle-start"],Hl=U[C]["angle-end"]),0===U[Z].total&&(Yl=U[Z]["angle-start"],Sl=U[Z]["angle-end"]);var jl=ZC.AQ.BN(kl,wl,Ol,Jl),ql=ZC.AQ.BN(kl,wl,Ol,Yl);P={"background-color":"#fff",color:"#333","border-width":1,"border-color":h["border-color-1"],padding:10},null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tooltip)&&ZC._cp_(i,P);var Wl=x[C].text||"",$l=x[Z].text||"",le={},ee=[];if(C===Z?(P.text=Wl+":"+U[C].values[Z],ee=[[jl[0],jl[1]],[kl,wl,Ol,Jl,Hl,0],[kl,wl,jl[0],jl[1]]]):C<=Z&&(P.text=Wl+" -> "+$l+":"+U[C].values[Z]+"<br>"+$l+" -> "+Wl+":"+U[Z].values[C],ee=[[jl[0],jl[1]],[kl,wl,Ol,Jl,Hl,0],[kl,wl,ql[0],ql[1]],[kl,wl,Ol,Yl,Sl,0],[kl,wl,jl[0],jl[1]]]),ee.length>0){var te=Xl>=Kl?C:Z;ZC._cp_({"background-color":X[te].A0+" "+X[te].AE,alpha:.75,"border-width":1,"border-color":h["border-color-2"],tooltip:P},le),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.chord)&&ZC._cp_(i,le),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.chord)&&ZC._cp_(i,le),ZC._cp_({type:"poly",id:"chord_"+C+"_"+Z,dynamic:!0,"fast-vector-path":!0,points:ee},le),b.fChordAlpha=le.alpha||.75,C!==Z&&null!==ZC._n_(i=le.tooltip["text-chord"])&&(le.tooltip.text=i),le.tooltip.text=le.tooltip.text.replace(/%text-destination/gi,$l).replace(/%value-destination/gi,U[Z].values[C]).replace(/%text-source/gi,Wl).replace(/%value-source/gi,U[C].values[Z]).replace(/%text/gi,Wl).replace(/%value/gi,U[C].values[Z]);var ne=null;for(var $ in U[C])"data-"===$.substr(0,5)&&(ne=new RegExp("%"+$+"-destination","g"),le.tooltip.text=le.tooltip.text.replace(ne,U[C][$][Z]||""));for(var $ in U[Z])"data-"===$.substr(0,5)&&(ne=new RegExp("%"+$+"-source","g"),le.tooltip.text=le.tooltip.text.replace(ne,U[Z][$][C]||""));ne=new RegExp("%data-([a-zA-Z0-9]+)-(source|destination)","g"),le.tooltip.text=le.tooltip.text.replace(ne,""),ne=new RegExp("%data-([a-zA-Z0-9]+)","g"),le.tooltip.text=le.tooltip.text.replace(ne,""),("undefined"==typeof le.visible||ZC._b_(le.visible))&&(0===Xl&&0===Kl||V.push(le))}}}return r})}();