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.11 */ zingchart.setModule("chord"),function(){var l;ZC.AFV=((l=function(){this.AF9="palette",this.C2="#6a921f",this.BP=[],this.T0=.8,this.AFA=.1,this.AFB=0,this.AFC=5,this.iGroupPadding=10,this.iGroupOffset=0,this.JF=1,this.K9=!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.B8,t),l.NR[e]&&ZC._cp_(l.NR[e],t),t},l.B8={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.NR={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.AQ.GC(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.T0=ZC._f_(ZC.IL(i))),null!==ZC._n_(i=A["band-width"])&&(b.AFA=ZC._f_(ZC.IL(i))),null!==ZC._n_(i=A["band-space"])&&(b.AFB=ZC._f_(ZC.IL(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.JF=ZC._f_(i)),null!==ZC._n_(i=A.flat)&&(b.K9=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 F=ZC.BQ(y.length,1),B=t["chord-"+l.id+"-"+d]||[],m=B.length,E=0;for(C=0,p=x.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,C))for(Z=0,g=(s=x[C].values||[]).length;Z<g;Z++)(0===m||m>0&&-1===ZC.AV(B,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(B,C))&&M++;if(-1===_&&(_=x.length),-1===o)for(C=0,p=x.length;C<p;C++)s=x[C].values||[],o=ZC.BQ(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,O,G,P,I,L,Q=v.labels;v.legend&&(v.legend["toggle-action"]="none");var R,T=360-b.AFC*M-b.iGroupPadding*(F>1?F:0),J=[],U=[],X=[],H=0,K=0,W=null,Y=!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)),Y=!1,K=0,null===W&&null!==ZC._n_(x[C].group)?W=ZC._i_(x[C].group):ZC._i_(x[C].group)!==W&&(W=ZC._i_(x[C].group),Y=!0),Y&&C>0&&(K=b.iGroupPadding);var S=b.C2;if("palette"===b.AF9)if(b.BP.length>0)S=b.BP[C%b.BP.length];else S=zingchart.getPalette(u,C,"bar")[1];else"random"===b.AF9&&(S=b.AGQ());if(0===m||m>0&&-1===ZC.AV(B,C)){null===ZC._n_(x[C]["background-color"])&&(x[C]["background-color"]=S),x[C].visible=!0;var j={},q=0;for(Z=0,g=(s=x[C].values||[]).length;Z<g;Z++)(0===m||m>0&&-1===ZC.AV(B,Z))&&(q+=ZC._f_(s[Z]));for(var $ in j["angle-start"]=H+K,j["angle-end"]=j["angle-start"]+T*q/E,j.group=R,j.total=q,j.values=x[C].values,x[C])"data-"===$.substr(0,5)&&(j[$]=x[C][$]);H=j["angle-end"]+b.AFC,J.push(j);var ll=zingchart.getInstance(u,"style");ll.append(x[C]),ll.parse(),U[C]=ll,v.legend&&ZC._cp_({"legend-marker":{alpha:.75,"background-color-1":ll.A0,"background-color-2":ll.AE}},x[C]),G={"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,G);var el=x[C].text||"";G.text=el;var tl={alpha:h.alpha,"border-width":0,"background-color":ll.A0+" "+ll.AE,tooltip:G};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":j["angle-start"],"angle-end":j["angle-end"]},tl),tl.tooltip.text=tl.tooltip.text.replace(/%text/gi,el),b.fBandAlpha=tl.alpha||.75,X.push(tl)}else x[C].visible=!1,J.push(null),X.push(null)}var nl=0;if(F>1){var al=Number.MAX_VALUE,_l=-Number.MAX_VALUE;for(C=0,p=J.length;C<p;C++)1===J[C].group&&(al=Math.min(al,J[C]["angle-start"]),_l=Math.max(_l,J[C]["angle-end"]));nl=(_l-al)/2}for(nl+=b.iGroupOffset,C=0,p=J.length;C<p;C++)J[C]&&X[C]&&(J[C]["angle-start"]-=nl,J[C]["angle-end"]-=nl,X[C]["angle-start"]-=nl,X[C]["angle-end"]-=nl,V.push(X[C]));var ol,rl=Number.MAX_VALUE;if(0!==E){for(C=0,p=J.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,C)){var il=Math.pow(10,Math.floor(Math.log(J[C].total)/Math.LN10));il>0&&(rl=ZC.CY(rl,il))}for(;!((ol=T*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=J.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,C))for(Cl=0,pl=ZC.BQ(1,Math.floor(10/ol)),k=J[C]["angle-start"];k<J[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.DW),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.DW),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"],Fl=0;Fl<yl.length;Fl++)"dynamic"===v.plotarea[yl[Fl]]&&(0===hl.AA?v.plotarea[yl[Fl]]=cl+fl+bl-20:v.plotarea[yl[Fl]]=cl+fl+Al-20);var Bl,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(Bl=b.T0>1?ZC._i_(b.T0):ZC._i_(b.T0*ZC.CY(El.plotarea.width/2,El.plotarea.height/2)),Bl*=b.JF,ml=b.AFA>1?Bl-ZC._i_(b.AFA):ZC._i_((1-b.AFA)*Bl),b.AFB<1&&(b.AFB=ZC._i_(b.AFB*Bl)),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=Bl,V[C].slice=ml);for(C=0,p=J.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,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.BQ(1,Math.floor(10/ol)),O=30,k=J[C]["angle-start"];k<J[C]["angle-end"];k+=ol){var Ol=ZC.AO.BN(kl,wl,Bl,k+.1),Gl=ZC.AO.BN(kl,wl,Bl+zl,k+.1);Dl.push(Ol,Gl,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),O=Zl.width||cl,z=ZC._i_(Zl["offset-r"]||"0"),N=ZC.AO.BN(Ml,Vl,Bl+zl+z+O/2,k+.1),ZC._cp_({anchor:"c",flat:!0,x:ZC._i_(N[0]),y:ZC._i_(N[1]),width:O,angle:w,"text-align":D,text:gl},Zl),("undefined"==typeof Zl.visible||ZC._b_(Zl.visible))&&Q.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=(J[C]["angle-start"]+J[C]["angle-end"])/2,k<0&&(k+=360),k%=360,D="center",0===hl.AA?k>=0&&k<=180?w-=90:w+=90:k>=0&&k<=90||k>=270&&k<=360?w-=90:w+=90;var Pl={};ZC._cp_(h["value-box"],Pl),null!==ZC._n_(v.plot)&&null!==ZC._n_(i=v.plot["value-box"])&&ZC._cp_(i,Pl),null!==ZC._n_(i=x[C]["value-box"])&&ZC._cp_(i,Pl);var Il=ZC.AO.BN(kl,wl,(Bl+ml)/2,(J[C]["angle-start"]+J[C]["angle-end"])/2),Ll=w;null===ZC._n_(Pl.angle)&&null===ZC._n_(Pl["font-angle"])||(Pl["auto-align"]?null!==ZC._n_(Pl.angle)?Ll+=ZC._f_(Pl.angle):Ll+=ZC._f_(Pl["font-angle"]):Ll=null!==ZC._n_(Pl.angle)?ZC._f_(Pl.angle):ZC._f_(Pl["font-angle"])),ZC._cp_({id:"vbox_"+C,anchor:"c",angle:Ll,x:Il[0],y:Il[1],flat:!0},Pl),Pl.text=Pl.text||"%node-value",Pl.text=Pl.text.replace(/%plot-text/gi,x[C].text||"").replace(/%node-value/gi,J[C].total),("undefined"==typeof Pl.visible||ZC._b_(Pl.visible))&&Q.push(Pl),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,L=vl.height||bl,P=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.AA&&(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.AA?ZC.AO.BN(Ml,Vl,Bl+zl+z+O+P+L,k):ZC.AO.BN(Ml,Vl,Bl+zl+z+O+P+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))&&Q.push(vl)}var Ql=ml-b.AFB;for(C=0,p=J.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,C))for(Z=0,g=J.length;Z<p;Z++)if(0===m||m>0&&-1===ZC.AV(B,Z)){for(var Rl=0,Tl=0,Jl=0;Jl<Z;Jl++)(0===m||m>0&&-1===ZC.AV(B,Jl))&&("undefined"==typeof J[C].values[Jl]&&(J[C].values[Jl]=0),Rl+=J[C].values[Jl]);for(Jl=0;Jl<C;Jl++)(0===m||m>0&&-1===ZC.AV(B,Jl))&&("undefined"==typeof J[Z].values[Jl]&&(J[Z].values[Jl]=0),Tl+=J[Z].values[Jl]);var Ul=0;"undefined"!=typeof J[C].values[Z]&&(Ul=J[C].values[Z]);var Xl=0;"undefined"!=typeof J[Z].values[C]&&(Xl=J[Z].values[C]);var Hl=J[C]["angle-start"]+(J[C]["angle-end"]-J[C]["angle-start"])*Rl/J[C].total,Kl=Hl+(J[C]["angle-end"]-J[C]["angle-start"])*Ul/J[C].total,Wl=J[Z]["angle-start"]+(J[Z]["angle-end"]-J[Z]["angle-start"])*Tl/J[Z].total,Yl=Wl+(J[Z]["angle-end"]-J[Z]["angle-start"])*Xl/J[Z].total;0===J[C].total&&(Hl=J[C]["angle-start"],Kl=J[C]["angle-end"]),0===J[Z].total&&(Wl=J[Z]["angle-start"],Yl=J[Z]["angle-end"]);var Sl=ZC.AO.BN(kl,wl,Ql,Hl),jl=ZC.AO.BN(kl,wl,Ql,Wl);G={"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,G);var ql=x[C].text||"",$l=x[Z].text||"",le={},ee=[];if(C===Z?(G.text=ql+":"+J[C].values[Z],ee=[[Sl[0],Sl[1]],[kl,wl,Ql,Hl,Kl,0],[kl,wl,Sl[0],Sl[1]]]):C<=Z&&(G.text=ql+" -> "+$l+":"+J[C].values[Z]+"<br>"+$l+" -> "+ql+":"+J[Z].values[C],ee=[[Sl[0],Sl[1]],[kl,wl,Ql,Hl,Kl,0],[kl,wl,jl[0],jl[1]],[kl,wl,Ql,Wl,Yl,0],[kl,wl,Sl[0],Sl[1]]]),ee.length>0){var te=Ul>=Xl?C:Z;ZC._cp_({"background-color":U[te].A0+" "+U[te].AE,alpha:.75,"border-width":1,"border-color":h["border-color-2"],tooltip:G},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,J[Z].values[C]).replace(/%text-source/gi,ql).replace(/%value-source/gi,J[C].values[Z]).replace(/%text/gi,ql).replace(/%value/gi,J[C].values[Z]);var ne=null;for(var $ in J[C])"data-"===$.substr(0,5)&&(ne=new RegExp("%"+$+"-destination","g"),le.tooltip.text=le.tooltip.text.replace(ne,J[C][$][Z]||""));for(var $ in J[Z])"data-"===$.substr(0,5)&&(ne=new RegExp("%"+$+"-source","g"),le.tooltip.text=le.tooltip.text.replace(ne,J[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===Ul&&0===Xl||V.push(le))}}}return r})}();