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.7 kB
JavaScript
/*
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 e;ZC.AFV=((e=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 e=(16777215*Math.random()+1<<0).toString(16);e.length<6;)e="0"+e;return"#"+e}}).getDefaults=function(l){var t={};return ZC._cp_(e.B6,t),e.NT[l]&&ZC._cp_(e.NT[l],t),t},e.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}},e.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"}}},e);var l={},t={},n=null,a=null,_=-1,o=-1;zingchart.bind(null,"dataparse",function(e,r){var i,C,p,s,Z,u,g=zingchart.getLoader(e.id);zingchart.initThemes(g);for(var d=ZC.AFV.getDefaults(e.theme),h=0,c=r.graphset.length;h<c;h++)if("chord"===r.graphset[h].type){var f=r.graphset[h].type,v=r.graphset[h],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;l["chord-"+e.id+"-"+h]=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:d.palette.length>0&&(b.BP=d.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(e,l){return null!==ZC._n_(e.group)&&-1===ZC.AV(y,ZC._i_(e.group))&&y.push(ZC._i_(e.group)),null!==ZC._n_(l.group)&&-1===ZC.AV(y,ZC._i_(l.group))&&y.push(ZC._i_(l.group)),null!==ZC._n_(e.group)&&null!==ZC._n_(l.group)&&ZC._i_(e.group)-ZC._i_(l.group)!=0?ZC._i_(e.group)-ZC._i_(l.group):e["sort-index"]-l["sort-index"]});var B=ZC.BR(y.length,1),F=t["chord-"+e.id+"-"+h]||[],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,u=(s=x[C].values||[]).length;Z<u;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(g,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,u=(s=x[C].values||[]).length;Z<u;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 ee=zingchart.getInstance(g,"style");ee.append(x[C]),ee.parse(),X[C]=ee,v.legend&&ZC._cp_({"legend-marker":{alpha:.75,"background-color-1":ee.A0,"background-color-2":ee.AE}},x[C]),P={"background-color":"#fff",color:"#333","border-width":1,"border-color":d["border-color-1"],padding:10},null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tooltip)&&ZC._cp_(i,P);var le=x[C].text||"";P.text=le;var te={alpha:d.alpha,"border-width":0,"background-color":ee.A0+" "+ee.AE,tooltip:P};null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.band)&&ZC._cp_(i,te),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.band)&&ZC._cp_(i,te),ZC._cp_({type:"pie",id:"segment_"+C,"angle-start":q["angle-start"],"angle-end":q["angle-end"]},te),te.tooltip.text=te.tooltip.text.replace(/%text/gi,le),b.fBandAlpha=te.alpha||.75,K.push(te)}else x[C].visible=!1,U.push(null),K.push(null)}var ne=0;if(B>1){var ae=Number.MAX_VALUE,_e=-Number.MAX_VALUE;for(C=0,p=U.length;C<p;C++)1===U[C].group&&(ae=Math.min(ae,U[C]["angle-start"]),_e=Math.max(_e,U[C]["angle-end"]));ne=(_e-ae)/2}for(ne+=b.iGroupOffset,C=0,p=U.length;C<p;C++)U[C]&&K[C]&&(U[C]["angle-start"]-=ne,U[C]["angle-end"]-=ne,K[C]["angle-start"]-=ne,K[C]["angle-end"]-=ne,V.push(K[C]));var oe,re=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 ie=Math.pow(10,Math.floor(Math.log(U[C].total)/Math.LN10));ie>0&&(re=ZC.CY(re,ie))}for(;!((oe=L*re/E)<15);)re/=2}else re=1;var Ce,pe,se,Ze,ue,ge,de,he=Math.min(0,Math.ceil(Math.log(re)/Math.LN10)+1),ce=0,fe=0;for(C=0,p=U.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C))for(Ce=0,pe=ZC.BR(1,Math.floor(10/oe)),k=U[C]["angle-start"];k<U[C]["angle-end"];k+=oe)Ce%pe==0&&(ue=(se=Ce*re).toFixed(he),se>=1e3&&(ue=se/1e3+"k"),se>=1e6&&(ue=se/1e6+"M"),Ze={},ZC._cp_(d.item,Ze),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.item)&&ZC._cp_(i,Ze),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.item)&&ZC._cp_(i,Ze),Ze.text=ue,ZC._todash_(Ze),(ge=zingchart.getInstance(g,"textbox")).append(Ze),ge.parse(),fe=Math.max(fe,ge.DX),ce=Math.max(ce,ge.I)),Ce++;var ve,Ae=0,be=0,xe=0;for(C=0;C<x.length;C++)ue=x[C].text||"",ve={},ZC._cp_(d.label,ve),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.label)&&ZC._cp_(i,ve),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.label)&&ZC._cp_(i,ve),ve.text=ue,ZC._todash_(ve),(de=zingchart.getInstance(g,"textbox")).append(ve),de.parse(),xe=Math.max(xe,de.DX),Ae=Math.max(Ae,de.I),be=Math.max(be,de.F);if(v.plotarea)for(var ye=["margin","margin-top","margin-right","margin-bottom","margin-left"],Be=0;Be<ye.length;Be++)"dynamic"===v.plotarea[ye[Be]]&&(0===de.AB?v.plotarea[ye[Be]]=ce+fe+be-20:v.plotarea[ye[Be]]=ce+fe+Ae-20);var Fe,me,Ee=zingchart.getGraphInfo(g,r,h),Me=Ee.plotarea.x+Ee.plotarea.width/2,Ve=Ee.plotarea.y+Ee.plotarea.height/2,ke=Ee.graph.x+Me,we=Ee.graph.y+Ve;for(Fe=b.T6>1?ZC._i_(b.T6):ZC._i_(b.T6*ZC.CY(Ee.plotarea.width/2,Ee.plotarea.height/2)),Fe*=b.JU,me=b.AFA>1?Fe-ZC._i_(b.AFA):ZC._i_((1-b.AFA)*Fe),b.AFB<1&&(b.AFB=ZC._i_(b.AFB*Fe)),C=0,p=V.length;C<p;C++)V[C].id&&0===V[C].id.indexOf("segment_")&&(V[C].x=Me,V[C].y=Ve,V[C].size=Fe,V[C].slice=me);for(C=0,p=U.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C)){Ce=0;var De=[],Ne={};ZC._cp_(d.tick,Ne),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tick)&&ZC._cp_(i,Ne),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.tick)&&ZC._cp_(i,Ne);var ze=Ne.size||5;for(pe=ZC.BR(1,Math.floor(10/oe)),G=30,k=U[C]["angle-start"];k<U[C]["angle-end"];k+=oe){var Ge=ZC.AQ.BN(ke,we,Fe,k+.1),Pe=ZC.AQ.BN(ke,we,Fe+ze,k+.1);De.push(Ge,Pe,null),Ce%pe==0&&(ue=(se=Ce*re).toFixed(he),se>=1e3&&(ue=se/1e3+"k"),se>=1e6&&(ue=se/1e6+"M"),w=k,D="left",k>90&&k<270&&(w=k-180,D="right"),Ze={},ZC._cp_(d.item,Ze),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.item)&&ZC._cp_(i,Ze),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.item)&&ZC._cp_(i,Ze),G=Ze.width||ce,z=ZC._i_(Ze["offset-r"]||"0"),N=ZC.AQ.BN(Me,Ve,Fe+ze+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:ue},Ze),("undefined"==typeof Ze.visible||ZC._b_(Ze.visible))&&O.push(Ze)),Ce++}ZC._cp_({type:"line",id:"ticks"+C,points:De},Ne),("undefined"==typeof Ne.visible||ZC._b_(Ne.visible))&&V.push(Ne),w=k=(U[C]["angle-start"]+U[C]["angle-end"])/2,k<0&&(k+=360),k%=360,D="center",0===de.AB?k>=0&&k<=180?w-=90:w+=90:k>=0&&k<=90||k>=270&&k<=360?w-=90:w+=90;var Qe={};ZC._cp_(d["value-box"],Qe),null!==ZC._n_(v.plot)&&null!==ZC._n_(i=v.plot["value-box"])&&ZC._cp_(i,Qe),null!==ZC._n_(i=x[C]["value-box"])&&ZC._cp_(i,Qe);var Ie=ZC.AQ.BN(ke,we,(Fe+me)/2,(U[C]["angle-start"]+U[C]["angle-end"])/2),Te=w;null===ZC._n_(Qe.angle)&&null===ZC._n_(Qe["font-angle"])||(Qe["auto-align"]?null!==ZC._n_(Qe.angle)?Te+=ZC._f_(Qe.angle):Te+=ZC._f_(Qe["font-angle"]):Te=null!==ZC._n_(Qe.angle)?ZC._f_(Qe.angle):ZC._f_(Qe["font-angle"])),ZC._cp_({id:"vbox_"+C,anchor:"c",angle:Te,x:Ie[0],y:Ie[1],flat:!0},Qe),Qe.text=Qe.text||"%node-value",Qe.text=Qe.text.replace(/%plot-text/gi,x[C].text||"").replace(/%node-value/gi,U[C].total),("undefined"==typeof Qe.visible||ZC._b_(Qe.visible))&&O.push(Qe),ve={},ZC._cp_(d.label,ve),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.label)&&ZC._cp_(i,ve),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.label)&&ZC._cp_(i,ve),I=ve.width||Ae,T=ve.height||be,Q=ZC._i_(ve["offset-r"]||"0"),null===ZC._n_(ve.angle)&&null===ZC._n_(ve["font-angle"])||(ve["auto-align"]?(null!==ZC._n_(ve.angle)?w+=ZC._f_(ve.angle):w+=ZC._f_(ve["font-angle"]),0!==de.AB&&(D=k>=0&&k<=90||k>=270&&k<=360?"left":"right")):w=null!==ZC._n_(ve.angle)?ZC._f_(ve.angle):ZC._f_(ve["font-angle"])),N=0===de.AB?ZC.AQ.BN(Me,Ve,Fe+ze+z+G+Q+T,k):ZC.AQ.BN(Me,Ve,Fe+ze+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},ve),("undefined"==typeof ve.visible||ZC._b_(ve.visible))&&O.push(ve)}var Oe=me-b.AFB;for(C=0,p=U.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(F,C))for(Z=0,u=U.length;Z<p;Z++)if(0===m||m>0&&-1===ZC.AV(F,Z)){for(var Re=0,Le=0,Ue=0;Ue<Z;Ue++)(0===m||m>0&&-1===ZC.AV(F,Ue))&&("undefined"==typeof U[C].values[Ue]&&(U[C].values[Ue]=0),Re+=U[C].values[Ue]);for(Ue=0;Ue<C;Ue++)(0===m||m>0&&-1===ZC.AV(F,Ue))&&("undefined"==typeof U[Z].values[Ue]&&(U[Z].values[Ue]=0),Le+=U[Z].values[Ue]);var Xe=0;"undefined"!=typeof U[C].values[Z]&&(Xe=U[C].values[Z]);var Ke=0;"undefined"!=typeof U[Z].values[C]&&(Ke=U[Z].values[C]);var Je=U[C]["angle-start"]+(U[C]["angle-end"]-U[C]["angle-start"])*Re/U[C].total,He=Je+(U[C]["angle-end"]-U[C]["angle-start"])*Xe/U[C].total,Ye=U[Z]["angle-start"]+(U[Z]["angle-end"]-U[Z]["angle-start"])*Le/U[Z].total,Se=Ye+(U[Z]["angle-end"]-U[Z]["angle-start"])*Ke/U[Z].total;0===U[C].total&&(Je=U[C]["angle-start"],He=U[C]["angle-end"]),0===U[Z].total&&(Ye=U[Z]["angle-start"],Se=U[Z]["angle-end"]),"undefined"!=typeof out&&(Je=ZC._i_(Je),He=ZC._i_(He),Ye=ZC._i_(Ye),Se=ZC._i_(Se),Je===He&&(Je-=.25,He+=.25),Ye===Se&&(Ye-=.25,Se+=.25));var je=ZC.AQ.BN(ke,we,Oe,Je),qe=ZC.AQ.BN(ke,we,Oe,Ye);P={"background-color":"#fff",color:"#333","border-width":1,"border-color":d["border-color-1"],padding:10},null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tooltip)&&ZC._cp_(i,P);var We=x[C].text||"",$e=x[Z].text||"",el={},ll=[];if(C===Z?(P.text=We+":"+U[C].values[Z],ll=[[je[0],je[1]],[ke,we,Oe,Je,He,0],[ke,we,je[0],je[1]]]):C<=Z&&(P.text=We+" -> "+$e+":"+U[C].values[Z]+"<br>"+$e+" -> "+We+":"+U[Z].values[C],ll=[[je[0],je[1]],[ke,we,Oe,Je,He,0],[ke,we,qe[0],qe[1]],[ke,we,Oe,Ye,Se,0],[ke,we,je[0],je[1]]]),ll.length>0){var tl=Xe>=Ke?C:Z;ZC._cp_({"background-color":X[tl].A0+" "+X[tl].AE,alpha:.75,"border-width":1,"border-color":d["border-color-2"],tooltip:P},el),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.chord)&&ZC._cp_(i,el),null!==ZC._n_(x[C].style)&&null!==ZC._n_(i=x[C].style.chord)&&ZC._cp_(i,el),ZC._cp_({type:"poly",id:"chord_"+C+"_"+Z,dynamic:!0,"fast-vector-path":!0,points:ll},el),b.fChordAlpha=el.alpha||.75,C!==Z&&null!==ZC._n_(i=el.tooltip["text-chord"])&&(el.tooltip.text=i),el.tooltip.text=el.tooltip.text.replace(/%text-destination/gi,$e).replace(/%value-destination/gi,U[Z].values[C]).replace(/%text-source/gi,We).replace(/%value-source/gi,U[C].values[Z]).replace(/%text/gi,We).replace(/%value/gi,U[C].values[Z]);var nl=null;for(var $ in U[C])"data-"===$.substr(0,5)&&(nl=new RegExp("%"+$+"-destination","g"),el.tooltip.text=el.tooltip.text.replace(nl,U[C][$][Z]||""));for(var $ in U[Z])"data-"===$.substr(0,5)&&(nl=new RegExp("%"+$+"-source","g"),el.tooltip.text=el.tooltip.text.replace(nl,U[Z][$][C]||""));nl=new RegExp("%data-([a-zA-Z0-9]+)-(source|destination)","g"),el.tooltip.text=el.tooltip.text.replace(nl,""),nl=new RegExp("%data-([a-zA-Z0-9]+)","g"),el.tooltip.text=el.tooltip.text.replace(nl,""),("undefined"==typeof el.visible||ZC._b_(el.visible))&&(0===Xe&&0===Ke||V.push(el))}}}return r})}();