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.11
*/
zingchart.setModule("chord"),function(){var e;ZC.AFV=((e=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 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.B8,t),e.NR[l]&&ZC._cp_(e.NR[l],t),t},e.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}},e.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"}}},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.AQ.GC(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.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(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 F=ZC.BQ(y.length,1),B=t["chord-"+e.id+"-"+h]||[],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,u=(s=x[C].values||[]).length;Z<u;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(g,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,u=(s=x[C].values||[]).length;Z<u;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 ee=zingchart.getInstance(g,"style");ee.append(x[C]),ee.parse(),U[C]=ee,v.legend&&ZC._cp_({"legend-marker":{alpha:.75,"background-color-1":ee.A0,"background-color-2":ee.AE}},x[C]),G={"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,G);var le=x[C].text||"";G.text=le;var te={alpha:d.alpha,"border-width":0,"background-color":ee.A0+" "+ee.AE,tooltip:G};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":j["angle-start"],"angle-end":j["angle-end"]},te),te.tooltip.text=te.tooltip.text.replace(/%text/gi,le),b.fBandAlpha=te.alpha||.75,X.push(te)}else x[C].visible=!1,J.push(null),X.push(null)}var ne=0;if(F>1){var ae=Number.MAX_VALUE,_e=-Number.MAX_VALUE;for(C=0,p=J.length;C<p;C++)1===J[C].group&&(ae=Math.min(ae,J[C]["angle-start"]),_e=Math.max(_e,J[C]["angle-end"]));ne=(_e-ae)/2}for(ne+=b.iGroupOffset,C=0,p=J.length;C<p;C++)J[C]&&X[C]&&(J[C]["angle-start"]-=ne,J[C]["angle-end"]-=ne,X[C]["angle-start"]-=ne,X[C]["angle-end"]-=ne,V.push(X[C]));var oe,re=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 ie=Math.pow(10,Math.floor(Math.log(J[C].total)/Math.LN10));ie>0&&(re=ZC.CY(re,ie))}for(;!((oe=T*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=J.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,C))for(Ce=0,pe=ZC.BQ(1,Math.floor(10/oe)),k=J[C]["angle-start"];k<J[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.DW),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.DW),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"],Fe=0;Fe<ye.length;Fe++)"dynamic"===v.plotarea[ye[Fe]]&&(0===de.AA?v.plotarea[ye[Fe]]=ce+fe+be-20:v.plotarea[ye[Fe]]=ce+fe+Ae-20);var Be,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(Be=b.T0>1?ZC._i_(b.T0):ZC._i_(b.T0*ZC.CY(Ee.plotarea.width/2,Ee.plotarea.height/2)),Be*=b.JF,me=b.AFA>1?Be-ZC._i_(b.AFA):ZC._i_((1-b.AFA)*Be),b.AFB<1&&(b.AFB=ZC._i_(b.AFB*Be)),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=Be,V[C].slice=me);for(C=0,p=J.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,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.BQ(1,Math.floor(10/oe)),O=30,k=J[C]["angle-start"];k<J[C]["angle-end"];k+=oe){var Oe=ZC.AO.BN(ke,we,Be,k+.1),Ge=ZC.AO.BN(ke,we,Be+ze,k+.1);De.push(Oe,Ge,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),O=Ze.width||ce,z=ZC._i_(Ze["offset-r"]||"0"),N=ZC.AO.BN(Me,Ve,Be+ze+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:ue},Ze),("undefined"==typeof Ze.visible||ZC._b_(Ze.visible))&&Q.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=(J[C]["angle-start"]+J[C]["angle-end"])/2,k<0&&(k+=360),k%=360,D="center",0===de.AA?k>=0&&k<=180?w-=90:w+=90:k>=0&&k<=90||k>=270&&k<=360?w-=90:w+=90;var Pe={};ZC._cp_(d["value-box"],Pe),null!==ZC._n_(v.plot)&&null!==ZC._n_(i=v.plot["value-box"])&&ZC._cp_(i,Pe),null!==ZC._n_(i=x[C]["value-box"])&&ZC._cp_(i,Pe);var Ie=ZC.AO.BN(ke,we,(Be+me)/2,(J[C]["angle-start"]+J[C]["angle-end"])/2),Le=w;null===ZC._n_(Pe.angle)&&null===ZC._n_(Pe["font-angle"])||(Pe["auto-align"]?null!==ZC._n_(Pe.angle)?Le+=ZC._f_(Pe.angle):Le+=ZC._f_(Pe["font-angle"]):Le=null!==ZC._n_(Pe.angle)?ZC._f_(Pe.angle):ZC._f_(Pe["font-angle"])),ZC._cp_({id:"vbox_"+C,anchor:"c",angle:Le,x:Ie[0],y:Ie[1],flat:!0},Pe),Pe.text=Pe.text||"%node-value",Pe.text=Pe.text.replace(/%plot-text/gi,x[C].text||"").replace(/%node-value/gi,J[C].total),("undefined"==typeof Pe.visible||ZC._b_(Pe.visible))&&Q.push(Pe),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,L=ve.height||be,P=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.AA&&(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.AA?ZC.AO.BN(Me,Ve,Be+ze+z+O+P+L,k):ZC.AO.BN(Me,Ve,Be+ze+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},ve),("undefined"==typeof ve.visible||ZC._b_(ve.visible))&&Q.push(ve)}var Qe=me-b.AFB;for(C=0,p=J.length;C<p;C++)if(0===m||m>0&&-1===ZC.AV(B,C))for(Z=0,u=J.length;Z<p;Z++)if(0===m||m>0&&-1===ZC.AV(B,Z)){for(var Re=0,Te=0,Je=0;Je<Z;Je++)(0===m||m>0&&-1===ZC.AV(B,Je))&&("undefined"==typeof J[C].values[Je]&&(J[C].values[Je]=0),Re+=J[C].values[Je]);for(Je=0;Je<C;Je++)(0===m||m>0&&-1===ZC.AV(B,Je))&&("undefined"==typeof J[Z].values[Je]&&(J[Z].values[Je]=0),Te+=J[Z].values[Je]);var Ue=0;"undefined"!=typeof J[C].values[Z]&&(Ue=J[C].values[Z]);var Xe=0;"undefined"!=typeof J[Z].values[C]&&(Xe=J[Z].values[C]);var He=J[C]["angle-start"]+(J[C]["angle-end"]-J[C]["angle-start"])*Re/J[C].total,Ke=He+(J[C]["angle-end"]-J[C]["angle-start"])*Ue/J[C].total,We=J[Z]["angle-start"]+(J[Z]["angle-end"]-J[Z]["angle-start"])*Te/J[Z].total,Ye=We+(J[Z]["angle-end"]-J[Z]["angle-start"])*Xe/J[Z].total;0===J[C].total&&(He=J[C]["angle-start"],Ke=J[C]["angle-end"]),0===J[Z].total&&(We=J[Z]["angle-start"],Ye=J[Z]["angle-end"]),"undefined"!=typeof out&&(He=ZC._i_(He),Ke=ZC._i_(Ke),We=ZC._i_(We),Ye=ZC._i_(Ye),He===Ke&&(He-=.25,Ke+=.25),We===Ye&&(We-=.25,Ye+=.25));var Se=ZC.AO.BN(ke,we,Qe,He),je=ZC.AO.BN(ke,we,Qe,We);G={"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,G);var qe=x[C].text||"",$e=x[Z].text||"",el={},ll=[];if(C===Z?(G.text=qe+":"+J[C].values[Z],ll=[[Se[0],Se[1]],[ke,we,Qe,He,Ke,0],[ke,we,Se[0],Se[1]]]):C<=Z&&(G.text=qe+" -> "+$e+":"+J[C].values[Z]+"<br>"+$e+" -> "+qe+":"+J[Z].values[C],ll=[[Se[0],Se[1]],[ke,we,Qe,He,Ke,0],[ke,we,je[0],je[1]],[ke,we,Qe,We,Ye,0],[ke,we,Se[0],Se[1]]]),ll.length>0){var tl=Ue>=Xe?C:Z;ZC._cp_({"background-color":U[tl].A0+" "+U[tl].AE,alpha:.75,"border-width":1,"border-color":d["border-color-2"],tooltip:G},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,J[Z].values[C]).replace(/%text-source/gi,qe).replace(/%value-source/gi,J[C].values[Z]).replace(/%text/gi,qe).replace(/%value/gi,J[C].values[Z]);var nl=null;for(var $ in J[C])"data-"===$.substr(0,5)&&(nl=new RegExp("%"+$+"-destination","g"),el.tooltip.text=el.tooltip.text.replace(nl,J[C][$][Z]||""));for(var $ in J[Z])"data-"===$.substr(0,5)&&(nl=new RegExp("%"+$+"-source","g"),el.tooltip.text=el.tooltip.text.replace(nl,J[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===Ue&&0===Xe||V.push(el))}}}return r})}();