zingchart
Version:
Our JavaScript charting library is a commercial product. But the full branded version is free to try, forever.
8 lines (7 loc) • 6.83 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("wordcloud"),function(){var t;ZC.AFW=((t=function(){this.AFD=9,this.AFE=99,this.AFF=2,this.EJ=100,this.AFG=15,this.AFH=5,this.ZJ=!1,this.DR="word",this.AC5=[],this.AK="",this.aWords=[],this.oWordsMap=null,this.CW="spiral",this.AF9="palette",this.C2="#000",this.bNormalize=!1,this.AGQ=function(){for(var t=(16777215*Math.random()+1<<0).toString(16);t.length<6;)t="0"+t;return"#"+t},this.KA=function(){var t,e,a={};if(""!==this.AK){if("word"===this.DR)t=this.AK.replace(/[\:\;\,\.\{\}\[\]\(\)\?\!\/\=\+\-]/g," ").split(" ");else if("character"===this.DR)for(this.AFF=0,t=[],e=0;e<this.AK.length;e++)" "!==this.AK[e]&&t.push(this.AK[e]);for(e=0;e<t.length;e++){var l=this.bNormalize?t[e].toLowerCase():t[e];if(t[e].length>=this.AFF&&-1===ZC.AV(this.AC5,t[e]))if(this.bNormalize){var o=!1;for(var r in a)r.toLowerCase()===l&&(o=!0,a[r]++);o||(a[t[e]]=1)}else null===ZC._n_(a[t[e]])&&(a[t[e]]=0),a[t[e]]++}}if(this.aWords.length>0)for(this.oWordsMap={},e=0;e<this.aWords.length;e++){var i=this.aWords[e];null!==ZC._n_(i.text)&&(this.oWordsMap[i.text]=i,a[i.text]=i.count||0)}return a},this.intersectRect=function(t,e){return!(e.iX>t.iX+t.I||e.iX+e.I<t.iX||e.iY>t.iY+t.F||e.iY+e.F<t.iY)}}).getDefaults=function(e){var a={};return ZC._cp_(t.B6,a),t.NT[e]&&ZC._cp_(t.NT[e],a),a},t.B6={palette:["#6a921f","#007fa3","#a62b02","#b79007","#563d02","#0b32a0"]},t.NT={light:{palette:["#7CA82B","#29A2CC","#D31E1E","#EF8535","#A14BC9","#A05F18","#265E96","#6B7075"]},dark:{palette:["#7CA82B","#29A2CC","#D31E1E","#EF8535","#A14BC9","#A05F18","#265E96","#6B7075"]}},t),zingchart.bind(null,"dataparse",function(t,e){for(var a,l,o,r,i,n=zingchart.getLoader(t.id),s=0,h=e.graphset.length;s<h;s++)if(e.graphset[s].type&&"wordcloud"===e.graphset[s].type){var p=e.graphset[s].type,C=e.graphset[s],_=ZC.AFW.getDefaults(t.theme),A={};for(C.options&&(A=C.options[p]||C.options),ZC._todash_(A,!0,["words"]),C.labels=C.labels||[],r=C.labels.length-1;r>=0;r--)(C.labels[r]["data-word-cloud"]||C.labels[r].dataWordCloud)&&C.labels.splice(r,1);C.plotarea=C.plotarea||{},null===ZC._n_(C.plotarea.margin)&&(C.plotarea.margin=5);var f=new ZC.AFW;null!==ZC._n_(a=A.text)&&(f.AK=a),null!==ZC._n_(a=A.words)&&(f.aWords=a),null!==ZC._n_(a=A.aspect)&&(f.CW=a),null!==ZC._n_(a=A.ignore)&&(f.AC5=a),null!==ZC._n_(a=A.token)&&(f.DR=a),null!==ZC._n_(a=A["min-length"])&&(f.AFF=ZC._i_(a)),null!==ZC._n_(a=A["min-font-size"])&&(f.AFD=ZC._i_(a)),null!==ZC._n_(a=A["max-font-size"])&&(f.AFE=ZC._i_(a)),null!==ZC._n_(a=A["max-items"])&&(f.EJ=ZC._i_(a)),null!==ZC._n_(a=A["color-type"])&&(f.AF9=a),null!==ZC._n_(a=A.color)&&(f.C2=ZC.AO.GD(a)),null!==ZC._n_(a=A.palette)?f.BP=a:f.BP=_.palette,null!==ZC._n_(a=A["step-angle"])&&(f.AFG=ZC._i_(a)),null!==ZC._n_(a=A["step-radius"])&&(f.AFH=ZC._i_(a)),null!==ZC._n_(a=A.rotate)&&(f.ZJ=ZC._b_(a)),null!==ZC._n_(a=A.normalize)&&(f.bNormalize=ZC._b_(a));var u={};null!==ZC._n_(a=A.style)&&ZC._cp_(a,u);var F=zingchart.getInstance(n,"textbox");F.append(u),F.parse(),f.AFD=ZC.BR(4,f.AFD),f.AFE=ZC.BR(4,f.AFE),f.AFD>=f.AFE&&(f.AFE=f.AFD+2);var Z=zingchart.getGraphInfo(n,e,s),c=[],d=Z.plotarea.x+Z.plotarea.width/2,g=Z.plotarea.y+Z.plotarea.height/2,W=1;"spiral"===f.CW?W=f.ZJ?.65:.55:"flow-top"!==f.CW&&"flow-center"!==f.CW||(f.ZJ=!1,W=.75);var w=Z.plotarea.width*Z.plotarea.height*W,E=f.KA(),v=[],b=-Number.MAX_VALUE,x=Number.MAX_VALUE;for(var D in E)v.push({text:D,count:E[D],hits:E[D]});for(v.sort(function(t,e){return t.count<e.count?1:t.count>e.count?-1:0}),-1!==f.EJ&&v.splice(f.EJ,v.length-f.EJ),l=0;l<v.length;l++)b=ZC.BR(v[l].count,b),x=ZC.CY(v[l].count,x);for(l=0;l<v.length;l++)v[l].count=b===x?50:10+90*(v[l].count-x)/(b-x);var m=function(t){for(l=0;l<v.length;l++)v[l].fontSize=Math.max(f.AFD,ZC._i_(f.AFD+v[l].count/100*(f.AFE-f.AFD))-t),v[l].width=ZC.Q.A48(n.K,v[l].text,F.GJ,v[l].fontSize,F.sFontWeight,F.FL)+F.EN+F.FM,v[l].height=1.1*v[l].fontSize+F.FH+F.FR};m(0);for(var y=!1;!y;){y=!0;var z=0;for(l=0;l<v.length;l++)z+=v[l].width*v[l].height;z>w&&(y=!1,f.AFE--,f.AFE<=f.AFD+4&&f.AFD--,m(0),(f.AFD<5||f.AFE<5)&&(y=!0))}null===ZC._n_(A["step-radius"])&&(f.AFH=(f.AFE-f.AFD+.25*f.AFD*f.AFF+1)/10);for(var B=!0,M=-1;B&&M<f.AFE-f.AFD;){c=[],C.labels=[],m(M+=1),B=!1;var J,K=0,R=0,G=f.AFE/2,N=f.AFE/2,X=[];for(l=0,o=v.length;l<o;l++){var k=!0,I=d,Y=g,L=f.C2;switch(f.AF9){case"random":L=f.AGQ();break;case"palette":L=f.BP[l%f.BP.length]}var H=f.ZJ?l%4==0||l%4==3?0:90:0,S=!1,P=v[l].text,Q={padding:0,dataWordCloud:!0};ZC._cp_(u,Q),ZC._cp_({angle:H,"font-size":Math.max(f.AFD,v[l].fontSize-M),text:P,color:L},Q),null!==ZC._n_(A.style)&&null!==ZC._n_(a=A.style["hover-state"])&&(Q["hover-state"]={},ZC._cp_(a,Q["hover-state"]));var T=P;Q.tooltip={visible:!1,"background-color":"#fff",color:"#333","border-width":1,"border-color":"#999",padding:10,text:T},null!==ZC._n_(A.style)&&null!==ZC._n_(a=A.style.tooltip)&&ZC._cp_(a,Q.tooltip),Q.tooltip.text=Q.tooltip.text.replace("%text",P).replace("%hits",v[l].hits),f.oWordsMap&&null!==ZC._n_(f.oWordsMap[P])&&(ZC._cp_(f.oWordsMap[P],Q),ZC._cp_(f.oWordsMap[P].style,Q));var V=0,U=0,O=0,j=f.AFD/2;for("flow-top"===f.CW?O=1:"flow-center"===f.CW&&(O=l%2==0?1:-1),X[l]=0;k&&!B;){var q=v[l].width,$=v[l].height;if("spiral"===f.CW?(I=d+(0===l?0:G)*ZC.EF(K)-q/2,Y=g+(0===l?0:N)*ZC.EL(K)-$/2):"flow-center"===f.CW?(I=0===l?d-q/2:Z.plotarea.x+V,Y=g-$/2+U):"flow-top"===f.CW&&(I=0===l?d-q/2:Z.plotarea.x+V,Y=Z.plotarea.y+U),90===H&&"flow-top"===f.CW&&(Y=ZC.BR(Y,Z.plotarea.y+$)),Q.x=ZC._i_(I),Q.y=ZC._i_(Y),k=!1,90===H){var tt=q;I=ZC._i_(I+q/2-$/2),Y=ZC._i_(Y+$/2-q/2),q=$,$=tt}if(I<Z.plotarea.x||I+q>Z.plotarea.x+Z.plotarea.width||Y<Z.plotarea.y||Y+$>Z.plotarea.y+Z.plotarea.height)if("spiral"===f.CW){if(!(X[l]<200)){S=!0,B=!0;break}X[l]++,k=!0}else if("flow-top"===f.CW||"flow-center"===f.CW){if(I+q>Z.plotarea.x+Z.plotarea.width&&(k=!0,V=-j,U+=O*j),Y+$>Z.plotarea.y+Z.plotarea.height){S=!0;break}if(Y<Z.plotarea.y){S=!0;break}}if(J={iX:I,iY:Y,I:q,F:$,DI:Math.max(v[l].fontSize-M,f.AFD),AK:v[l].text,GJ:F.GJ},!k)for(r=0,i=c.length;r<i;r++)if(f.intersectRect(c[r],J)){V+=c[r].I,k=!0;break}"spiral"===f.CW?k?(K+=f.AFG)>R+360&&(G+=f.AFH,N+=f.AFH*(Z.plotarea.height/Z.plotarea.width),K=R=5*l%360):(G=N=f.AFE/2,K=R=5*l%360):"flow-top"!==f.CW&&"flow-center"!==f.CW||k&&(V+=j)}S||J.iX<Z.plotarea.x||J.iX+J.I>Z.plotarea.x+Z.plotarea.width||J.iY<Z.plotarea.y||J.iY+J.F>Z.plotarea.y+Z.plotarea.height||(c.push(J),C.labels.push(Q))}"flow-top"!==f.CW&&"flow-center"!==f.CW||v.length>c.length&&(B=!0)}}return e})}();