Files
wakapi-readme-stats/node_modules/vega-wordcloud/build/vega-wordcloud.min.js
2020-07-28 00:48:25 +05:30

1 line
6.3 KiB
JavaScript

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("vega-canvas"),require("vega-dataflow"),require("vega-util"),require("vega-scale"),require("vega-statistics")):"function"==typeof define&&define.amd?define(["exports","vega-canvas","vega-dataflow","vega-util","vega-scale","vega-statistics"],e):e(((t=t||self).vega=t.vega||{},t.vega.transforms={}),t.vega,t.vega,t.vega,t.vega,t.vega)}(this,(function(t,e,n,r,a,i){"use strict";var o=Math.PI/180;function f(){var t,n,r,a,i,o,f,c=[256,256],g=y,h=[],m=Math.random,v={};function p(t,e,n){for(var r,a,i,o,f,s=e.x,l=e.y,y=Math.sqrt(c[0]*c[0]+c[1]*c[1]),x=g(c),d=m()<.5?1:-1,h=-d;(r=x(h+=d))&&(a=~~r[0],i=~~r[1],!(Math.min(Math.abs(a),Math.abs(i))>=y));)if(e.x=s+a,e.y=l+i,!(e.x+e.x0<0||e.y+e.y0<0||e.x+e.x1>c[0]||e.y+e.y1>c[1]||n&&u(e,t,c[0])||n&&(f=n,!((o=e).x+o.x1>f[0].x&&o.x+o.x0<f[1].x&&o.y+o.y1>f[0].y&&o.y+o.y0<f[1].y)))){for(var v,p=e.sprite,z=e.width>>5,M=c[0]>>5,b=e.x-(z<<4),w=127&b,S=32-w,q=e.y1-e.y0,T=(e.y+e.y0)*M+(b>>5),W=0;W<q;W++){v=0;for(var k=0;k<=z;k++)t[T+k]|=v<<S|(k<z?(v=p[W*z+k])>>>w:0);T+=M}return e.sprite=null,!0}return!1}return v.layout=function(){for(var u=function(t){t.width=t.height=1;var e=Math.sqrt(t.getContext("2d").getImageData(0,0,1,1).data.length>>2);t.width=2048/e,t.height=2048/e;var n=t.getContext("2d");return n.fillStyle=n.strokeStyle="red",n.textAlign="center",{context:n,ratio:e}}(e.canvas()),y=function(t){var e=[],n=-1;for(;++n<t;)e[n]=0;return e}((c[0]>>5)*c[1]),x=null,d=h.length,g=-1,v=[],z=h.map((function(e){return{text:t(e),font:n(e),style:a(e),weight:i(e),rotate:o(e),size:~~(r(e)+1e-14),padding:f(e),xoff:0,yoff:0,x1:0,y1:0,x0:0,y0:0,hasText:!1,sprite:null,datum:e}})).sort((function(t,e){return e.size-t.size}));++g<d;){var M=z[g];M.x=c[0]*(m()+.5)>>1,M.y=c[1]*(m()+.5)>>1,s(u,M,z,g),M.hasText&&p(y,M,x)&&(v.push(M),x?l(x,M):x=[{x:M.x+M.x0,y:M.y+M.y0},{x:M.x+M.x1,y:M.y+M.y1}],M.x-=c[0]>>1,M.y-=c[1]>>1)}return v},v.words=function(t){return arguments.length?(h=t,v):h},v.size=function(t){return arguments.length?(c=[+t[0],+t[1]],v):c},v.font=function(t){return arguments.length?(n=x(t),v):n},v.fontStyle=function(t){return arguments.length?(a=x(t),v):a},v.fontWeight=function(t){return arguments.length?(i=x(t),v):i},v.rotate=function(t){return arguments.length?(o=x(t),v):o},v.text=function(e){return arguments.length?(t=x(e),v):t},v.spiral=function(t){return arguments.length?(g=d[t]||t,v):g},v.fontSize=function(t){return arguments.length?(r=x(t),v):r},v.padding=function(t){return arguments.length?(f=x(t),v):f},v.random=function(t){return arguments.length?(m=t,v):m},v}function s(t,e,n,r){if(!e.sprite){var a=t.context,i=t.ratio;a.clearRect(0,0,2048/i,2048/i);var f,s,u,l,y,x=0,d=0,c=0,g=n.length;for(--r;++r<g;){if(e=n[r],a.save(),a.font=e.style+" "+e.weight+" "+~~((e.size+1)/i)+"px "+e.font,f=a.measureText(e.text+"m").width*i,u=e.size<<1,e.rotate){var h=Math.sin(e.rotate*o),m=Math.cos(e.rotate*o),v=f*m,p=f*h,z=u*m,M=u*h;f=Math.max(Math.abs(v+M),Math.abs(v-M))+31>>5<<5,u=~~Math.max(Math.abs(p+z),Math.abs(p-z))}else f=f+31>>5<<5;if(u>c&&(c=u),x+f>=2048&&(x=0,d+=c,c=0),d+u>=2048)break;a.translate((x+(f>>1))/i,(d+(u>>1))/i),e.rotate&&a.rotate(e.rotate*o),a.fillText(e.text,0,0),e.padding&&(a.lineWidth=2*e.padding,a.strokeText(e.text,0,0)),a.restore(),e.width=f,e.height=u,e.xoff=x,e.yoff=d,e.x1=f>>1,e.y1=u>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,x+=f}for(var b=a.getImageData(0,0,2048/i,2048/i).data,w=[];--r>=0;)if((e=n[r]).hasText){for(s=(f=e.width)>>5,u=e.y1-e.y0,l=0;l<u*s;l++)w[l]=0;if(null==(x=e.xoff))return;d=e.yoff;var S=0,q=-1;for(y=0;y<u;y++){for(l=0;l<f;l++){var T=s*y+(l>>5),W=b[2048*(d+y)+(x+l)<<2]?1<<31-l%32:0;w[T]|=W,S|=W}S?q=y:(e.y0++,u--,y--,d++)}e.y1=e.y0+q,e.sprite=w.slice(0,(e.y1-e.y0)*s)}}}function u(t,e,n){n>>=5;for(var r,a=t.sprite,i=t.width>>5,o=t.x-(i<<4),f=127&o,s=32-f,u=t.y1-t.y0,l=(t.y+t.y0)*n+(o>>5),y=0;y<u;y++){r=0;for(var x=0;x<=i;x++)if((r<<s|(x<i?(r=a[y*i+x])>>>f:0))&e[l+x])return!0;l+=n}return!1}function l(t,e){var n=t[0],r=t[1];e.x+e.x0<n.x&&(n.x=e.x+e.x0),e.y+e.y0<n.y&&(n.y=e.y+e.y0),e.x+e.x1>r.x&&(r.x=e.x+e.x1),e.y+e.y1>r.y&&(r.y=e.y+e.y1)}function y(t){var e=t[0]/t[1];return function(t){return[e*(t*=.1)*Math.cos(t),t*Math.sin(t)]}}function x(t){return"function"==typeof t?t:function(){return t}}var d={archimedean:y,rectangular:function(t){var e=4*t[0]/t[1],n=0,r=0;return function(t){var a=t<0?-1:1;switch(Math.sqrt(1+4*a*t)-a&3){case 0:n+=e;break;case 1:r+=4;break;case 2:n-=e;break;default:r-=4}return[n,r]}}},c=["x","y","font","fontSize","fontStyle","fontWeight","angle"],g=["text","font","rotate","fontSize","fontStyle","fontWeight"];function h(t){n.Transform.call(this,f(),t)}h.Definition={type:"Wordcloud",metadata:{modifies:!0},params:[{name:"size",type:"number",array:!0,length:2},{name:"font",type:"string",expr:!0,default:"sans-serif"},{name:"fontStyle",type:"string",expr:!0,default:"normal"},{name:"fontWeight",type:"string",expr:!0,default:"normal"},{name:"fontSize",type:"number",expr:!0,default:14},{name:"fontSizeRange",type:"number",array:"nullable",default:[10,50]},{name:"rotate",type:"number",expr:!0,default:0},{name:"text",type:"field"},{name:"spiral",type:"string",values:["archimedean","rectangular"]},{name:"padding",type:"number",expr:!0},{name:"as",type:"string",array:!0,length:7,default:c}]},r.inherits(h,n.Transform).transform=function(t,e){!t.size||t.size[0]&&t.size[1]||r.error("Wordcloud size dimensions must be non-zero.");var n=t.modified();if(n||e.changed(e.ADD_REM)||g.some((function(n){var a=t[n];return r.isFunction(a)&&e.modified(a.fields)}))){var o,f=e.materialize(e.SOURCE).source,s=this.value,u=t.as||c,l=t.fontSize||14;if(r.isFunction(l)?o=t.fontSizeRange:l=r.constant(l),o){var y=l,x=a.scale("sqrt")().domain(r.extent(f,y)).range(o);l=function(t){return x(y(t))}}f.forEach((function(t){t[u[0]]=NaN,t[u[1]]=NaN,t[u[3]]=0}));for(var d,h,m=s.words(f).text(t.text).size(t.size||[500,500]).padding(t.padding||1).spiral(t.spiral||"archimedean").rotate(t.rotate||0).font(t.font||"sans-serif").fontStyle(t.fontStyle||"normal").fontWeight(t.fontWeight||"normal").fontSize(l).random(i.random).layout(),v=s.size(),p=v[0]>>1,z=v[1]>>1,M=0,b=m.length;M<b;++M)(h=(d=m[M]).datum)[u[0]]=d.x+p,h[u[1]]=d.y+z,h[u[2]]=d.font,h[u[3]]=d.size,h[u[4]]=d.style,h[u[5]]=d.weight,h[u[6]]=d.rotate;return e.reflow(n).modifies(u)}},t.wordcloud=h,Object.defineProperty(t,"__esModule",{value:!0})}));