UNPKG

vislite

Version:

灵活、快速、简单的数据可视化交互式跨端前端库

5 lines 9.66 kB
/*! * SVG of VISLite JavaScript Library v1.3.0 * git+https://github.com/oi-contrib/VISLite.git */ var t=function(e,i){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},t(e,i)};"function"==typeof SuppressedError&&SuppressedError;var e=["href","title","show","type","role","actuate"],i=function(t,e){o(t,"stroke-dasharray",e.lineDash.join(",")),o(t,"stroke-width",e.lineWidth+""),o(t,"stroke-linecap",e.lineCap+""),o(t,"stroke-linejoin",e.lineJoin+"")};function n(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}var r=function(t,i,n){e.indexOf(i)>-1?t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:"+i,n+""):t.setAttribute(i,n+"")},o=r;function s(t,e){i(t,e),r(t,"stroke",e.strokeStyle),r(t,"fill",e.fillStyle)}function u(t,e){r(t,"fill",e.fillStyle)}function h(t,e){i(t,e),r(t,"stroke",e.strokeStyle),r(t,"fill","none")}var a=function(t,e,i,n,r){var o=Math.cos(i),s=Math.sin(i);return[+((n-t)*o-(r-e)*s+t).toFixed(7),+((n-t)*s+(r-e)*o+e).toFixed(7)]};var _=function(t){var e=t.getElementsByTagName("defs");if(e.length<=0){var i=n("defs");return t.appendChild(i),i}return e[0]},l=function(t,e,i,n,r){if("text"!==t.nodeName.toLowerCase())throw new Error("Need a <text> !");o(t,"dy",{top:.5*e.fontSize,middle:0,bottom:.5*-e.fontSize}[e.textBaseline]),function(t,e){for(var i in e)t.style[i]=e[i]}(t,{"text-anchor":{left:"start",right:"end",center:"middle"}[e.textAlign],"dominant-baseline":"central","font-size":e.fontSize+"px","font-family":e.fontFamily}),o(t,"x",i),o(t,"y",n),"number"==typeof r&&o(t,"transform","rotate("+(r%=360)+","+i+","+n+")")},c=function(t,e,i,n){if("circle"!==t.nodeName.toLowerCase())throw new Error("Need a <circle> !");o(t,"cx",e),o(t,"cy",i),o(t,"r",n)},f=function(t,e){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");o(t,"d",e)},p=function(t,e,i,n,r,s){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");var u=[];if(Array.isArray(e.rectRadius)&&e.rectRadius.length>0)for(var h=0;h<4;h++)u.push.apply(u,e.rectRadius);s<0&&(n-=s*=-1),r<0&&(i-=r*=-1);var a="";u.length>=4?(a="M"+(i+u[0])+" "+n,a+="L"+(i+r-u[1])+" "+n,a+="A"+u[1]+" "+u[1]+" 0 0 1 "+(i+r)+" "+(n+u[1]),a+="L"+(i+r)+" "+(n+s-u[2]),a+="A"+u[2]+" "+u[2]+" 0 0 1 "+(i+r-u[2])+" "+(n+s),a+="L"+(i+u[3])+" "+(n+s),a+="A"+u[3]+" "+u[3]+" 0 0 1 "+i+" "+(n+s-u[3]),a+="L"+i+" "+(n+u[0]),a+="A"+u[0]+" "+u[0]+" 0 0 1 "+(i+u[0])+" "+n):(a="M"+i+" "+n,a+="L"+(i+r)+" "+n,a+="L"+(i+r)+" "+(n+s),a+="L"+i+" "+(n+s),a+="Z"),o(t,"d",a)},d=function(t,e,i,n,r,s,u,h){if("path"!==t.nodeName.toLowerCase())throw new Error("Need a <path> !");if(u=u/180*Math.PI,h=h/180*Math.PI,u%=2*Math.PI,r>s){var _=r;r=s,s=_}h>=1.999999*Math.PI||h<=1.999999*-Math.PI?h=1.999999*Math.PI:h%=2*Math.PI,function(t,e,i,n,r,o,s){e<0&&(t+=e,e*=-1);var u,h=[];u=a(0,0,t,r,0),h[0]=u[0],h[1]=u[1],u=a(0,0,e,u[0],u[1]),h[2]=u[0],h[3]=u[1],u=a(0,0,t,o,0),h[4]=u[0],h[5]=u[1],u=a(0,0,e,u[0],u[1]),h[6]=u[0],h[7]=u[1],s(t,t+e,h[0]+i,h[1]+n,h[4]+i,h[5]+n,h[2]+i,h[3]+n,h[6]+i,h[7]+n,.5*(o-r))}(u,h,i,n,r,s,(function(i,n,u,h,a,_,l,c,f,p,d){var y=n-i>Math.PI?1:0,E="M"+u+" "+h;d<0&&(d=-d),E+="A"+r+" "+r+" 0 "+y+" 1 "+l+" "+c,"round"==e.arcEndCap?E+="A"+d+" "+d+" 0 1 0 "+f+" "+p:"-round"==e.arcEndCap?E+="A"+d+" "+d+" 0 1 1 "+f+" "+p:E+="L"+f+" "+p,E+="A"+s+" "+s+" 0 "+y+" 0 "+a+" "+_,"round"==e.arcStartCap?E+="A"+d+" "+d+" 0 1 0 "+u+" "+h:"-round"==e.arcStartCap?E+="A"+d+" "+d+" 0 1 1 "+u+" "+h:E+="L"+u+" "+h,"butt"==e.arcStartCap&&(E+="Z"),o(t,"d",E)}))};function y(t,e,i,n,r){var o=Math.cos(i),s=Math.sin(i);return[(n-t)*o-(r-e)*s+t,(n-t)*s+(r-e)*o+e]}var E=function(t,e){var i={value:function(){return"url(#"+e+")"},setColor:function(e,r){var s=n("stop");return t.appendChild(s),o(s,"offset",100*e+"%"),o(s,"style","stop-color:"+r+";"),i}};return i};var g=function(){function t(t){this.name="SVG",this.__config={fillStyle:"#000",strokeStyle:"#000",textAlign:"left",textBaseline:"middle",fontSize:16,fontFamily:"sans-serif",arcStartCap:"butt",arcEndCap:"butt",lineDash:[],lineWidth:1,lineCap:"butt",lineJoin:"miter",rectRadius:[]},this.__path="",this.__currentPosition=[],this.__svg=t}return t.prototype.config=function(t){if("object"!=typeof t)return this.__config[t];for(var e in t)this.__config[e]=t[e];return this},t.prototype.reset=function(){return this.config({fillStyle:"#000",strokeStyle:"#000",textAlign:"left",textBaseline:"middle",fontSize:16,fontFamily:"sans-serif",arcStartCap:"butt",arcEndCap:"butt",lineDash:[],lineWidth:1,lineCap:"butt",lineJoin:"miter",rectRadius:[]}),this},t.prototype.useEl=function(t){return this.__useEl=t,this},t.prototype.getEl=function(){return this.__useEl},t.prototype.appendEl=function(t,e){return e=e||this.__svg,"string"==typeof t&&(t=n(t)),e.appendChild(t),this.__useEl=t,this},t.prototype.appendBoard=function(t,e){var i=t;if("string"==typeof t&&(i={text:"text",path:"path",arc:"path",circle:"circle",rect:"rect"}[t]||""),""==i)throw new Error("Unsupported drawing method:"+t);return this.appendEl(i,e)},t.prototype.remove=function(){if(!this.__useEl)throw new Error("Currently, no node can be deleted.");return this.__useEl.parentNode.removeChild(this.__useEl),this},t.prototype.attr=function(t){if(!this.__useEl)throw new Error("Currently, no node can be modified or viewed.");if("object"!=typeof t)return function(t,i){return e.indexOf(i)>-1&&(i="xlink:"+i),t.getAttribute(i)}(this.__useEl,t);for(var i in t)o(this.__useEl,i,t[i]);return this},t.prototype.fillText=function(t,e,i,n){return void 0===n&&(n=0),l(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,u(this.__useEl,this.__config),this},t.prototype.strokeText=function(t,e,i,n){return void 0===n&&(n=0),l(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,h(this.__useEl,this.__config),this},t.prototype.fullText=function(t,e,i,n){return void 0===n&&(n=0),l(this.__useEl,this.__config,e,i,n),this.__useEl.textContent=t,s(this.__useEl,this.__config),this},t.prototype.fillArc=function(t,e,i,n,r,o){return d(this.__useEl,this.__config,t,e,i,n,r,o),u(this.__useEl,this.__config),this},t.prototype.strokeArc=function(t,e,i,n,r,o){return d(this.__useEl,this.__config,t,e,i,n,r,o),h(this.__useEl,this.__config),this},t.prototype.fullArc=function(t,e,i,n,r,o){return d(this.__useEl,this.__config,t,e,i,n,r,o),s(this.__useEl,this.__config),this},t.prototype.fillCircle=function(t,e,i){return c(this.__useEl,t,e,i),u(this.__useEl,this.__config),this},t.prototype.strokeCircle=function(t,e,i){return c(this.__useEl,t,e,i),h(this.__useEl,this.__config),this},t.prototype.fullCircle=function(t,e,i){return c(this.__useEl,t,e,i),s(this.__useEl,this.__config),this},t.prototype.fillRect=function(t,e,i,n){return p(this.__useEl,this.__config,t,e,i,n),u(this.__useEl,this.__config),this},t.prototype.strokeRect=function(t,e,i,n){return p(this.__useEl,this.__config,t,e,i,n),h(this.__useEl,this.__config),this},t.prototype.fullRect=function(t,e,i,n){return p(this.__useEl,this.__config,t,e,i,n),s(this.__useEl,this.__config),this},t.prototype.beginPath=function(){return this.__currentPosition=[],this.__path="",this},t.prototype.closePath=function(){return this.__path+="Z",this},t.prototype.moveTo=function(t,e){return this.__currentPosition=[t,e],this.__path+="M"+t+" "+e,this},t.prototype.lineTo=function(t,e){return this.__currentPosition=[t,e],this.__path+=(""==this.__path?"M":"L")+t+" "+e,this},t.prototype.fill=function(){return f(this.__useEl,this.__path),u(this.__useEl,this.__config),this},t.prototype.stroke=function(){return f(this.__useEl,this.__path),h(this.__useEl,this.__config),this},t.prototype.full=function(){return f(this.__useEl,this.__path),s(this.__useEl,this.__config),this},t.prototype.arc=function(t,e,i,n,r){var o=y(t,e,n/180*Math.PI,t+i,e),s=y(t,e,(n+r)/180*Math.PI,t+i,e);return""==this.__path?this.__path+="M"+o[0]+","+o[1]:o[0]==this.__currentPosition[0]&&o[1]==this.__currentPosition[1]||(this.__path+="L"+o[0]+","+o[1]),this.__path+="A"+i+","+i+" 0 "+(r>180||r<-180?1:0)+","+(r>0?1:0)+" "+s[0]+","+s[1],this},t.prototype.quadraticCurveTo=function(t,e,i,n){return this.__path+="Q"+t+" "+e+","+i+" "+n,this},t.prototype.bezierCurveTo=function(t,e,i,n,r,o){return this.__path+="C"+t+" "+e+","+i+" "+n+","+r+" "+o,this},t.prototype.bind=function(t,e){return this.__useEl.addEventListener(t,(function(t){e.call(this,t,this)}),!1),this},t.prototype.createLinearGradient=function(t,e,i,r){return function(t,e,i,r,s){var u=_(t),h="vislite-lg-"+(new Date).valueOf()+"-"+Math.random(),a=n("linearGradient");return u.appendChild(a),o(a,"id",h),o(a,"x1",e+"%"),o(a,"y1",i+"%"),o(a,"x2",r+"%"),o(a,"y2",s+"%"),E(a,h)}(this.__svg,t,e,i,r)},t.prototype.createRadialGradient=function(t,e,i){return function(t,e,i,r){var s=_(t),u="vislite-rg-"+(new Date).valueOf()+"-"+Math.random(),h=n("radialGradient");return s.appendChild(h),o(h,"id",u),o(h,"cx",e+"%"),o(h,"cy",i+"%"),o(h,"r",r+"%"),E(h,u)}(this.__svg,t,e,i)},t}(),v=function(e){function i(t){if(!t)throw new Error("VISLite SVG:The mount point requires an HTMLElement type but encountered null.");var i=t.clientWidth,n=t.clientHeight,r=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.appendChild(r),r.setAttribute("width",i+""),r.setAttribute("height",n+""),r.setAttribute("viewBox","0 0 "+i+" "+n),e.call(this,r)||this}return function(e,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}(i,e),i}(g);export{v as default};