zingchart
Version:
Our JavaScript charting library is a commercial product. But the full branded version is free to try, forever.
8 lines (7 loc) • 15.1 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(t){var l={};return ZC._cp_(e.B8,l),e.NR[t]&&ZC._cp_(e.NR[t],l),l},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 t={},l={},a=null,n=null,r=-1,o=-1,_=function(e){var a=zingchart.getLoader(e.id);if(a){var n=zingchart.getGraph(a,e.graphid);if(n&&"chord"===n.o.type)if(t["chord-"+e.id+"-"+e.graphidx]){l["chord-"+e.id+"-"+e.graphidx]=l["chord-"+e.id+"-"+e.graphidx]||[];var r,o=l["chord-"+e.id+"-"+e.graphidx];-1!==(r=ZC.AV(o,e.plotindex))?o.splice(r,1):o.push(e.plotindex),a.K8()}}};zingchart.bind(null,"legend_item_click",_),zingchart.bind(null,"legend_marker_click",_),zingchart.bind(null,"shape_mouseover",function(e){var l=zingchart.getLoader(e.id);if(l){var a=zingchart.getGraph(l,e.graphid);if(a&&"chord"===a.o.type){var n=t["chord-"+e.id+"-"+e.graphidx];if(n&&!n.K9&&"segment_"===e.shapeid.substring(0,8)){for(var _=ZC._i_(e.shapeid.replace("segment_","")),i=[],p=0;p<r;p++){for(var g=0;g<o;g++)1!==n.iHoverEffect&&2!==n.iHoverEffect||i.push({id:"chord_"+p+"_"+g,alpha:n.fChordAlpha*(_===p||_===g?1:.25)});2===n.iHoverEffect&&i.push({id:"segment_"+p,alpha:n.fBandAlpha*(_===p?1:.25)})}0!==n.iHoverEffect&&zingchart.exec(e.id,"updateobject",{type:"shape",graphid:e.graphid,dynamic:!0,data:i})}}}}),zingchart.bind(null,"shape_mouseout",function(e){var l=zingchart.getLoader(e.id);if(l){var a=zingchart.getGraph(l,e.graphid);if(a&&"chord"===a.o.type){var n=t["chord-"+e.id+"-"+e.graphidx];if(n&&!n.K9&&"segment_"===e.shapeid.substring(0,8)){for(var _=[],i=0;i<r;i++){for(var p=0;p<o;p++)1!==n.iHoverEffect&&2!==n.iHoverEffect||_.push({id:"chord_"+i+"_"+p,alpha:n.fChordAlpha});2===n.iHoverEffect&&_.push({id:"segment_"+i,alpha:n.fBandAlpha})}0!==n.iHoverEffect&&zingchart.exec(e.id,"updateobject",{type:"shape",graphid:e.graphid,dynamic:!0,data:_})}}}}),zingchart.bind(null,"dataparse",function(e,_){var i,p,g,C,s,d,h=zingchart.getLoader(e.id);zingchart.initThemes(h);for(var u=ZC.AFV.getDefaults(e.theme),Z=0,c=_.graphset.length;Z<c;Z++)if("chord"===_.graphset[Z].type){var f=_.graphset[Z].type,v=_.graphset[Z],A={};v.options&&(A=v.options[f]||v.options),ZC._todash_(A),null!==ZC._n_(a)&&(v.shapes=[],ZC._cpa_(a,v.shapes)),null!==ZC._n_(n)&&(v.labels=[],ZC._cpa_(n,v.labels));var b=new ZC.AFV;t["chord-"+e.id+"-"+Z]=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:u.palette.length>0&&(b.BP=u.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(p=0;p<x.length;p++)x[p]["sort-index"]=p;var y=[];x.sort(function(e,t){return null!==ZC._n_(e.group)&&-1===ZC.AV(y,ZC._i_(e.group))&&y.push(ZC._i_(e.group)),null!==ZC._n_(t.group)&&-1===ZC.AV(y,ZC._i_(t.group))&&y.push(ZC._i_(t.group)),null!==ZC._n_(e.group)&&null!==ZC._n_(t.group)&&ZC._i_(e.group)-ZC._i_(t.group)!=0?ZC._i_(e.group)-ZC._i_(t.group):e["sort-index"]-t["sort-index"]});var m=ZC.BQ(y.length,1),B=l["chord-"+e.id+"-"+Z]||[],F=B.length,E=0;for(p=0,g=x.length;p<g;p++)if(0===F||F>0&&-1===ZC.AV(B,p))for(s=0,d=(C=x[p].values||[]).length;s<d;s++)(0===F||F>0&&-1===ZC.AV(B,s))&&(E+=ZC._f_(C[s]));var z=0;for(p=0,g=x.length;p<g;p++)(0===F||F>0&&-1===ZC.AV(B,p))&&z++;if(-1===r&&(r=x.length),-1===o)for(p=0,g=x.length;p<g;p++)C=x[p].values||[],o=ZC.BQ(o,C.length);v.shapes||(v.shapes=[]),a||(a=[],ZC._cpa_(v.shapes,a));var M=v.shapes;v.labels||(v.labels=[]),n||(n=[],ZC._cpa_(v.labels,n));var k,V,w,D,N,G,L,O,P,H,I=v.labels;v.legend&&(v.legend["toggle-action"]="none");var Q,R=360-b.AFC*z-b.iGroupPadding*(m>1?m:0),T=[],K=[],J=[],U=0,X=0,j=null,W=!1;for(p=0,g=x.length;p<g;p++){ZC._todash_(x[p]),Q=1,null!==ZC._n_(x[p].group)&&(Q=ZC._i_(x[p].group)),W=!1,X=0,null===j&&null!==ZC._n_(x[p].group)?j=ZC._i_(x[p].group):ZC._i_(x[p].group)!==j&&(j=ZC._i_(x[p].group),W=!0),W&&p>0&&(X=b.iGroupPadding);var Y=b.C2;if("palette"===b.AF9)if(b.BP.length>0)Y=b.BP[p%b.BP.length];else Y=zingchart.getPalette(h,p,"bar")[1];else"random"===b.AF9&&(Y=b.AGQ());if(0===F||F>0&&-1===ZC.AV(B,p)){null===ZC._n_(x[p]["background-color"])&&(x[p]["background-color"]=Y),x[p].visible=!0;var S={},q=0;for(s=0,d=(C=x[p].values||[]).length;s<d;s++)(0===F||F>0&&-1===ZC.AV(B,s))&&(q+=ZC._f_(C[s]));for(var $ in S["angle-start"]=U+X,S["angle-end"]=S["angle-start"]+R*q/E,S.group=Q,S.total=q,S.values=x[p].values,x[p])"data-"===$.substr(0,5)&&(S[$]=x[p][$]);U=S["angle-end"]+b.AFC,T.push(S);var ee=zingchart.getInstance(h,"style");ee.append(x[p]),ee.parse(),K[p]=ee,v.legend&&ZC._cp_({"legend-marker":{alpha:.75,"background-color-1":ee.A0,"background-color-2":ee.AE}},x[p]),L={"background-color":"#fff",color:"#333","border-width":1,"border-color":u["border-color-1"],padding:10},null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tooltip)&&ZC._cp_(i,L);var te=x[p].text||"";L.text=te;var le={alpha:u.alpha,"border-width":0,"background-color":ee.A0+" "+ee.AE,tooltip:L};null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.band)&&ZC._cp_(i,le),null!==ZC._n_(x[p].style)&&null!==ZC._n_(i=x[p].style.band)&&ZC._cp_(i,le),ZC._cp_({type:"pie",id:"segment_"+p,"angle-start":S["angle-start"],"angle-end":S["angle-end"]},le),le.tooltip.text=le.tooltip.text.replace(/%text/gi,te),b.fBandAlpha=le.alpha||.75,J.push(le)}else x[p].visible=!1,T.push(null),J.push(null)}var ae=0;if(m>1){var ne=Number.MAX_VALUE,re=-Number.MAX_VALUE;for(p=0,g=T.length;p<g;p++)1===T[p].group&&(ne=Math.min(ne,T[p]["angle-start"]),re=Math.max(re,T[p]["angle-end"]));ae=(re-ne)/2}for(ae+=b.iGroupOffset,p=0,g=T.length;p<g;p++)T[p]&&J[p]&&(T[p]["angle-start"]-=ae,T[p]["angle-end"]-=ae,J[p]["angle-start"]-=ae,J[p]["angle-end"]-=ae,M.push(J[p]));var oe,_e=Number.MAX_VALUE;if(0!==E){for(p=0,g=T.length;p<g;p++)if(0===F||F>0&&-1===ZC.AV(B,p)){var ie=Math.pow(10,Math.floor(Math.log(T[p].total)/Math.LN10));ie>0&&(_e=ZC.CY(_e,ie))}for(;!((oe=R*_e/E)<15);)_e/=2}else _e=1;var pe,ge,Ce,se,de,he,ue,Ze=Math.min(0,Math.ceil(Math.log(_e)/Math.LN10)+1),ce=0,fe=0;for(p=0,g=T.length;p<g;p++)if(0===F||F>0&&-1===ZC.AV(B,p))for(pe=0,ge=ZC.BQ(1,Math.floor(10/oe)),k=T[p]["angle-start"];k<T[p]["angle-end"];k+=oe)pe%ge==0&&(de=(Ce=pe*_e).toFixed(Ze),Ce>=1e3&&(de=Ce/1e3+"k"),Ce>=1e6&&(de=Ce/1e6+"M"),se={},ZC._cp_(u.item,se),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.item)&&ZC._cp_(i,se),null!==ZC._n_(x[p].style)&&null!==ZC._n_(i=x[p].style.item)&&ZC._cp_(i,se),se.text=de,ZC._todash_(se),(he=zingchart.getInstance(h,"textbox")).append(se),he.parse(),fe=Math.max(fe,he.DW),ce=Math.max(ce,he.I)),pe++;var ve,Ae=0,be=0,xe=0;for(p=0;p<x.length;p++)de=x[p].text||"",ve={},ZC._cp_(u.label,ve),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.label)&&ZC._cp_(i,ve),null!==ZC._n_(x[p].style)&&null!==ZC._n_(i=x[p].style.label)&&ZC._cp_(i,ve),ve.text=de,ZC._todash_(ve),(ue=zingchart.getInstance(h,"textbox")).append(ve),ue.parse(),xe=Math.max(xe,ue.DW),Ae=Math.max(Ae,ue.I),be=Math.max(be,ue.F);if(v.plotarea)for(var ye=["margin","margin-top","margin-right","margin-bottom","margin-left"],me=0;me<ye.length;me++)"dynamic"===v.plotarea[ye[me]]&&(0===ue.AA?v.plotarea[ye[me]]=ce+fe+be-20:v.plotarea[ye[me]]=ce+fe+Ae-20);var Be,Fe,Ee=zingchart.getGraphInfo(h,_,Z),ze=Ee.plotarea.x+Ee.plotarea.width/2,Me=Ee.plotarea.y+Ee.plotarea.height/2,ke=Ee.graph.x+ze,Ve=Ee.graph.y+Me;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,Fe=b.AFA>1?Be-ZC._i_(b.AFA):ZC._i_((1-b.AFA)*Be),b.AFB<1&&(b.AFB=ZC._i_(b.AFB*Be)),p=0,g=M.length;p<g;p++)M[p].id&&0===M[p].id.indexOf("segment_")&&(M[p].x=ze,M[p].y=Me,M[p].size=Be,M[p].slice=Fe);for(p=0,g=T.length;p<g;p++)if(0===F||F>0&&-1===ZC.AV(B,p)){pe=0;var we=[],De={};ZC._cp_(u.tick,De),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tick)&&ZC._cp_(i,De),null!==ZC._n_(x[p].style)&&null!==ZC._n_(i=x[p].style.tick)&&ZC._cp_(i,De);var Ne=De.size||5;for(ge=ZC.BQ(1,Math.floor(10/oe)),G=30,k=T[p]["angle-start"];k<T[p]["angle-end"];k+=oe){var Ge=ZC.AO.BN(ke,Ve,Be,k+.1),Le=ZC.AO.BN(ke,Ve,Be+Ne,k+.1);we.push(Ge,Le,null),pe%ge==0&&(de=(Ce=pe*_e).toFixed(Ze),Ce>=1e3&&(de=Ce/1e3+"k"),Ce>=1e6&&(de=Ce/1e6+"M"),V=k,w="left",k>90&&k<270&&(V=k-180,w="right"),se={},ZC._cp_(u.item,se),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.item)&&ZC._cp_(i,se),null!==ZC._n_(x[p].style)&&null!==ZC._n_(i=x[p].style.item)&&ZC._cp_(i,se),G=se.width||ce,N=ZC._i_(se["offset-r"]||"0"),D=ZC.AO.BN(ze,Me,Be+Ne+N+G/2,k+.1),ZC._cp_({anchor:"c",flat:!0,x:ZC._i_(D[0]),y:ZC._i_(D[1]),width:G,angle:V,"text-align":w,text:de},se),("undefined"==typeof se.visible||ZC._b_(se.visible))&&I.push(se)),pe++}ZC._cp_({type:"line",id:"ticks"+p,points:we},De),("undefined"==typeof De.visible||ZC._b_(De.visible))&&M.push(De),V=k=(T[p]["angle-start"]+T[p]["angle-end"])/2,k<0&&(k+=360),k%=360,w="center",0===ue.AA?k>=0&&k<=180?V-=90:V+=90:k>=0&&k<=90||k>=270&&k<=360?V-=90:V+=90;var Oe={};ZC._cp_(u["value-box"],Oe),null!==ZC._n_(v.plot)&&null!==ZC._n_(i=v.plot["value-box"])&&ZC._cp_(i,Oe),null!==ZC._n_(i=x[p]["value-box"])&&ZC._cp_(i,Oe);var Pe=ZC.AO.BN(ke,Ve,(Be+Fe)/2,(T[p]["angle-start"]+T[p]["angle-end"])/2),He=V;null===ZC._n_(Oe.angle)&&null===ZC._n_(Oe["font-angle"])||(Oe["auto-align"]?null!==ZC._n_(Oe.angle)?He+=ZC._f_(Oe.angle):He+=ZC._f_(Oe["font-angle"]):He=null!==ZC._n_(Oe.angle)?ZC._f_(Oe.angle):ZC._f_(Oe["font-angle"])),ZC._cp_({id:"vbox_"+p,anchor:"c",angle:He,x:Pe[0],y:Pe[1],flat:!0},Oe),Oe.text=Oe.text||"%node-value",Oe.text=Oe.text.replace(/%plot-text/gi,x[p].text||"").replace(/%node-value/gi,T[p].total),("undefined"==typeof Oe.visible||ZC._b_(Oe.visible))&&I.push(Oe),ve={},ZC._cp_(u.label,ve),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.label)&&ZC._cp_(i,ve),null!==ZC._n_(x[p].style)&&null!==ZC._n_(i=x[p].style.label)&&ZC._cp_(i,ve),P=ve.width||Ae,H=ve.height||be,O=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)?V+=ZC._f_(ve.angle):V+=ZC._f_(ve["font-angle"]),0!==ue.AA&&(w=k>=0&&k<=90||k>=270&&k<=360?"left":"right")):V=null!==ZC._n_(ve.angle)?ZC._f_(ve.angle):ZC._f_(ve["font-angle"])),D=0===ue.AA?ZC.AO.BN(ze,Me,Be+Ne+N+G+O+H,k):ZC.AO.BN(ze,Me,Be+Ne+N+G+O+P/2,k),ZC._cp_({anchor:"c",flat:!0,x:ZC._i_(D[0]),y:ZC._i_(D[1]),width:P,angle:V,"font-angle":V,"text-align":w,text:x[p].text},ve),("undefined"==typeof ve.visible||ZC._b_(ve.visible))&&I.push(ve)}var Ie=Fe-b.AFB;for(p=0,g=T.length;p<g;p++)if(0===F||F>0&&-1===ZC.AV(B,p))for(s=0,d=T.length;s<g;s++)if(0===F||F>0&&-1===ZC.AV(B,s)){for(var Qe=0,Re=0,Te=0;Te<s;Te++)(0===F||F>0&&-1===ZC.AV(B,Te))&&("undefined"==typeof T[p].values[Te]&&(T[p].values[Te]=0),Qe+=T[p].values[Te]);for(Te=0;Te<p;Te++)(0===F||F>0&&-1===ZC.AV(B,Te))&&("undefined"==typeof T[s].values[Te]&&(T[s].values[Te]=0),Re+=T[s].values[Te]);var Ke=0;"undefined"!=typeof T[p].values[s]&&(Ke=T[p].values[s]);var Je=0;"undefined"!=typeof T[s].values[p]&&(Je=T[s].values[p]);var Ue=T[p]["angle-start"]+(T[p]["angle-end"]-T[p]["angle-start"])*Qe/T[p].total,Xe=Ue+(T[p]["angle-end"]-T[p]["angle-start"])*Ke/T[p].total,je=T[s]["angle-start"]+(T[s]["angle-end"]-T[s]["angle-start"])*Re/T[s].total,We=je+(T[s]["angle-end"]-T[s]["angle-start"])*Je/T[s].total;0===T[p].total&&(Ue=T[p]["angle-start"],Xe=T[p]["angle-end"]),0===T[s].total&&(je=T[s]["angle-start"],We=T[s]["angle-end"]);var Ye=ZC.AO.BN(ke,Ve,Ie,Ue),Se=ZC.AO.BN(ke,Ve,Ie,je);L={"background-color":"#fff",color:"#333","border-width":1,"border-color":u["border-color-1"],padding:10},null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.tooltip)&&ZC._cp_(i,L);var qe=x[p].text||"",$e=x[s].text||"",et={},tt=[];if(p===s?(L.text=qe+":"+T[p].values[s],tt=[[Ye[0],Ye[1]],[ke,Ve,Ie,Ue,Xe,0],[ke,Ve,Ye[0],Ye[1]]]):p<=s&&(L.text=qe+" -> "+$e+":"+T[p].values[s]+"<br>"+$e+" -> "+qe+":"+T[s].values[p],tt=[[Ye[0],Ye[1]],[ke,Ve,Ie,Ue,Xe,0],[ke,Ve,Se[0],Se[1]],[ke,Ve,Ie,je,We,0],[ke,Ve,Ye[0],Ye[1]]]),tt.length>0){var lt=Ke>=Je?p:s;ZC._cp_({"background-color":K[lt].A0+" "+K[lt].AE,alpha:.75,"border-width":1,"border-color":u["border-color-2"],tooltip:L},et),null!==ZC._n_(A.style)&&null!==ZC._n_(i=A.style.chord)&&ZC._cp_(i,et),null!==ZC._n_(x[p].style)&&null!==ZC._n_(i=x[p].style.chord)&&ZC._cp_(i,et),ZC._cp_({type:"poly",id:"chord_"+p+"_"+s,dynamic:!0,"fast-vector-path":!0,points:tt},et),b.fChordAlpha=et.alpha||.75,p!==s&&null!==ZC._n_(i=et.tooltip["text-chord"])&&(et.tooltip.text=i),et.tooltip.text=et.tooltip.text.replace(/%text-destination/gi,$e).replace(/%value-destination/gi,T[s].values[p]).replace(/%text-source/gi,qe).replace(/%value-source/gi,T[p].values[s]).replace(/%text/gi,qe).replace(/%value/gi,T[p].values[s]);var at=null;for(var $ in T[p])"data-"===$.substr(0,5)&&(at=new RegExp("%"+$+"-destination","g"),et.tooltip.text=et.tooltip.text.replace(at,T[p][$][s]||""));for(var $ in T[s])"data-"===$.substr(0,5)&&(at=new RegExp("%"+$+"-source","g"),et.tooltip.text=et.tooltip.text.replace(at,T[s][$][p]||""));at=new RegExp("%data-([a-zA-Z0-9]+)-(source|destination)","g"),et.tooltip.text=et.tooltip.text.replace(at,""),at=new RegExp("%data-([a-zA-Z0-9]+)","g"),et.tooltip.text=et.tooltip.text.replace(at,""),("undefined"==typeof et.visible||ZC._b_(et.visible))&&(0===Ke&&0===Je||M.push(et))}}}return _})}();