UNPKG

laue

Version:

Modern charts for Vue.js

3 lines (2 loc) 33.3 kB
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.Laue={})}(this,function(t){"use strict";function n(t){return"function"==typeof t}function i(t){return Array.isArray(t)}function e(t){return null===t||void 0===t}function r(t){return!isNaN(t)}function a(t,n){for(var i in n)t[i]=n[i];return t}function s(t){return!t.some(e)}function o(){}function u(t,n){var i;return void 0===n&&(n=20),function(){for(var e=arguments.length,r=Array(e);e--;)r[e]=arguments[e];clearTimeout(i),i=setTimeout.apply(void 0,[t,n].concat(r))}}var l=Array.prototype.slice;function h(t){return function(){return t}}function c(t,n){if((r=t.length)>1)for(var i,e,r,a=1,s=t[n[0]],o=s.length;a<r;++a)for(e=s,s=t[n[a]],i=0;i<o;++i)s[i][1]+=s[i][0]=isNaN(e[i][1])?e[i][0]:e[i][1]}function f(t){for(var n=t.length,i=new Array(n);--n>=0;)i[n]=n;return i}function d(t,n){return t[n]}function p(t,n){if((o=t.length)>1)for(var i,e,r,a,s,o,u=0,l=t[n[0]].length;u<l;++u)for(a=s=0,i=0;i<o;++i)(r=(e=t[n[i]][u])[1]-e[0])>=0?(e[0]=a,e[1]=a+=r):r<0?(e[1]=s,e[0]=s+=r):e[0]=a}var y={props:{data:{type:Array,default:function(){return[]}},height:{type:Number,default:300},width:{type:Number,default:600},autoresize:Boolean,padding:{default:8,type:[Number,Array]},stacked:Boolean,colors:{default:function(){return["#3fb1e3","#6be6c1","#626c91","#a0a7e6","#c4ebad","#96dee8"]},type:[Array,Function]},textColor:{type:String,default:"#999"}},computed:{offset:function(){for(var t=this.padding,e=this.space,r=[],a=0;a<4;a++){var s=i(t)?t[a]||0:t,o=e[a];r[a]=n(s)?s(o):o+s}return r},viewWidth:function(){var t=this.parentWidth,n=this.width;return e(t)?n:t},canvas:function(){var t=this.viewWidth,n=this.height,i=this.offset,e=i[3],r=i[0],a=n-i[2],s=t-i[1];return{x0:e,y0:r,width:s-e,height:a-r,x1:s,y1:a}},curData:function(){return function(){var t=h([]),n=f,i=c,e=d;function r(r){var a,s,o=t.apply(this,arguments),u=r.length,l=o.length,h=new Array(l);for(a=0;a<l;++a){for(var c,f=o[a],d=h[a]=new Array(u),p=0;p<u;++p)d[p]=c=[0,+e(r[p],f,p,r)],c.data=r[p];d.key=f}for(a=0,s=n(h);a<l;++a)h[s[a]].index=a;return i(h,s),h}return r.keys=function(n){return arguments.length?(t="function"==typeof n?n:h(l.call(n)),r):t},r.value=function(t){return arguments.length?(e="function"==typeof t?t:h(+t),r):e},r.order=function(t){return arguments.length?(n=null==t?f:"function"==typeof t?t:h(l.call(t)),r):n},r.offset=function(t){return arguments.length?(i=null==t?c:t,r):i},r}().keys(this.props).offset(this.stacked?p:o)(this.data)}},provide:function(){return{Plane:this}},methods:{genColor:function(t){var n=this.colors;return i(n)?n[t%n.length]:n(t)},resize:function(){var t=this.$el.getBoundingClientRect().width;this.parentWidth=t},addSpace:function(t){var n=this;void 0===t&&(t=[]),t.forEach(function(t,i){n.space[i]=Math.max(t,n.space[i]||0)})}},data:function(){return{space:[0,0,0,0],parentWidth:null,props:[],store:{}}},mounted:function(){this.autoresize&&(this.resize(),"undefined"!=typeof window&&window.addEventListener("resize",u(this.resize)))}},v=Math.sqrt(50),x=Math.sqrt(10),m=Math.sqrt(2);function g(t,n,i){var e;if(n<t&&(t=(e=[n,t])[0],n=e[1]),0===t&&0===n)return[0];for(var r=function(t,n,i){var e=Math.abs(n-t)/Math.max(0,i),r=Math.pow(10,Math.floor(Math.log(e)/Math.LN10)),a=e/r;return a>=v?r*=10:a>=x?r*=5:a>=m&&(r*=2),n<t?-r:r}(t,n,i),a=Math.floor(t/r)*r,s=[a],o=a;o<n;)o+=r,s.push(o);return Math.abs(t-s[1])<r&&(s.shift(),s[0]=t),Math.abs(n-s[s.length-2])<r&&(s.pop(),s[s.length-1]=n),s}function b(t,n,i){return Math[n].apply(Math,t.map(function(t){return Math[n].apply(Math,t.map(function(t){return t[i]}).filter(r))}))}var _={name:"LaCartesian",mixins:[y],props:{bound:{type:Array,default:function(){return[]}},narrow:[Boolean,Number,Function],distance:{default:0,type:Number}},computed:{high:function(){return this.getBound(this.bound[1],"max")},low:function(){return this.getBound(this.bound[0],"min")},len:function(){return this.data.length},tempXRatio:function(){var t=this.len;return t<=1?0:this.canvas.width/(t-1)},gap:function(){var t=this.narrow,i=this.tempXRatio;return n(t)?t(i):!0===t?i/2:Number(t)},xRatio:function(){return this.tempXRatio?this.tempXRatio-2*this.gap/(this.len-1):0},yRatio:function(){return this.canvas.height/(this.high-this.low||1)}},methods:{getBound:function(t,i){if("number"==typeof t)return t;var e="min"===i,r=b(this.curData,i,e?0:1);return e&&0===r&&(r=b(this.curData,"min",1)),n(t)?t(r):r}},render:function(t){var n=this,i=this.viewWidth,e=this.height,r=this.autoresize,a=this.$slots.default||[];this.snap={};var s=[],o=[],u=[],l=[],h=[];return a.forEach(function(t){var i=t.componentOptions;if(i){var e=i.Ctor.sealedOptions;if(e){var r=i.propsData,a=r.prop;switch(e.type){case"cartesian":a&&s.indexOf(a)<0&&s.push(a),t.index=o.length,o.push(t);break;case"object":n.addSpace(e.space),u.push(t);break;case"widget":l.push(t)}e.preload&&e.preload({data:r,parent:n,index:t.index})}}else h.push(t)}),this.props=s,t("div",{style:{position:"relative",width:r?"100%":i+"px"}},[t("svg",{attrs:{width:i,height:e,viewBox:"0 0 "+i+" "+e}},[h,o,u]),l])}},w={name:"LaPolar",mixins:[y],props:{fillContainer:Boolean},computed:{min:function(){return Math.min(this.viewWidth,this.height)}},render:function(t){var n=this.viewWidth,i=this.height,e=this.autoresize,r=this.$slots.default||[];this.snap={};var a=[],s=[],o=[],u=[];return r.forEach(function(t){var n=t.componentOptions;if(n){var i=n.Ctor.sealedOptions;if(i){var e=n.propsData.prop;switch(i.type){case"polar":e&&a.indexOf(e)<0&&a.push(e),t.index=s.length,s.push(t);break;case"widget":o.push(t)}}}else u.push(t)}),this.props=a,t("div",{style:{position:"relative",width:e?"100%":n+"px"}},[t("svg",{attrs:{width:this.fillContainer?"100%":n,height:this.fillContainer?"100%":i,viewBox:this.fillContainer?"0 0 "+this.min+" "+this.min:"0 0 "+n+" "+i,preserveAspectRatio:"xMinYMin"}},[u,s]),o])}},M={inject:["Plane"],computed:{store:function(){return this.Plane.store}}},A={props:{prop:String},mixins:[M],computed:{raws:function(){var t=this.prop,n=this.Plane;return t?n.data.map(function(n){return n[t]}):null},values:function(){var t=this.prop;return this.Plane.curData.filter(function(n){return n.key===t})[0]||[]}}},k={props:{animated:Boolean,animationDuration:{default:1,type:Number},animationEffect:{default:"ease",type:String},transition:String},computed:{trans:function(){return this.transition||(this.animated?"all "+this.animationDuration+"s "+this.animationEffect:"none")}}},C={mixins:[A,k],props:{points:Array,color:String,label:String,showValue:Boolean},computed:{id:function(){return this.$vnode.index},curColor:function(){return this.color||this.Plane.genColor(this.id)},actived:function(){var t=this.store.hidden;return!i(t)||t.indexOf(this.id)<0}},watch:{"store.activedIndex":function(t){var n=this.store;n.activedPoint=[].concat(n.activedPoint),this.$set(n.activedPoint,this.id,{color:this.curColor,value:this.raws[t],label:this.label})},curColor:{immediate:!0,handler:function(t){var n=this.store;n.colors=n.colors||{},this.$set(n.colors,this.id,t)}},label:{immediate:!0,handler:function(t){var n=this.store;n.labels=n.labels||{},this.$set(n.labels,this.id,t)}},props:{immediate:!0,handler:function(t){var n=this.store;n.props=n.props||{},e(this.id)||this.$set(n.props,this.id,t)}}}},S={mixins:[C],type:"cartesian",computed:{curPoints:function(){var t=this;if(this.points)return this.points;var n=this.Plane,i=n.gap,r=n.xRatio,a=n.yRatio,s=n.low,o=n.canvas,u=o.x0,l=o.y1;return this.values.map(function(n,o){var h;if(e(t.raws[o]))return[null];var c=n[0],f=n[1];c<0&&(f=(h=n)[0],c=h[1]),c=Math.max(s,c);var d=isNaN(f)?null:l-(f-s)*a,p=isNaN(c)?null:l-(c-s)*a;return[u+r*o+i,d,p]})},pointSlot:function(){var t=this,n=this.$scopedSlots.default,i=this.store.activedIndex;return n&&this.curPoints.map(function(e,r){return n({x:e[0],y:e[1],value:t.raws[r],index:r,actived:i===r,color:t.curColor,style:{transition:t.trans}})})}}},R=Math.PI,P=2*R,L=P-1e-6;function N(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function $(){return new N}function T(t){this._context=t}function I(t){return new T(t)}function B(t){return t[0]}function E(t){return t[1]}function X(){var t=B,n=E,i=h(!0),e=null,r=I,a=null;function s(s){var o,u,l,h=s.length,c=!1;for(null==e&&(a=r(l=$())),o=0;o<=h;++o)!(o<h&&i(u=s[o],o,s))===c&&((c=!c)?a.lineStart():a.lineEnd()),c&&a.point(+t(u,o,s),+n(u,o,s));if(l)return a=null,l+""||null}return s.x=function(n){return arguments.length?(t="function"==typeof n?n:h(+n),s):t},s.y=function(t){return arguments.length?(n="function"==typeof t?t:h(+t),s):n},s.defined=function(t){return arguments.length?(i="function"==typeof t?t:h(!!t),s):i},s.curve=function(t){return arguments.length?(r=t,null!=e&&(a=r(e)),s):r},s.context=function(t){return arguments.length?(null==t?e=a=null:a=r(e=t),s):e},s}function z(t,n,i){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-i),t._x2,t._y2)}function D(t,n){this._context=t,this._k=(1-n)/6}N.prototype=$.prototype={constructor:N,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,i,e){this._+="Q"+ +t+","+ +n+","+(this._x1=+i)+","+(this._y1=+e)},bezierCurveTo:function(t,n,i,e,r,a){this._+="C"+ +t+","+ +n+","+ +i+","+ +e+","+(this._x1=+r)+","+(this._y1=+a)},arcTo:function(t,n,i,e,r){t=+t,n=+n,i=+i,e=+e,r=+r;var a=this._x1,s=this._y1,o=i-t,u=e-n,l=a-t,h=s-n,c=l*l+h*h;if(r<0)throw new Error("negative radius: "+r);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(c>1e-6)if(Math.abs(h*o-u*l)>1e-6&&r){var f=i-a,d=e-s,p=o*o+u*u,y=f*f+d*d,v=Math.sqrt(p),x=Math.sqrt(c),m=r*Math.tan((R-Math.acos((p+c-y)/(2*v*x)))/2),g=m/x,b=m/v;Math.abs(g-1)>1e-6&&(this._+="L"+(t+g*l)+","+(n+g*h)),this._+="A"+r+","+r+",0,0,"+ +(h*f>l*d)+","+(this._x1=t+b*o)+","+(this._y1=n+b*u)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,i,e,r,a){t=+t,n=+n;var s=(i=+i)*Math.cos(e),o=i*Math.sin(e),u=t+s,l=n+o,h=1^a,c=a?e-r:r-e;if(i<0)throw new Error("negative radius: "+i);null===this._x1?this._+="M"+u+","+l:(Math.abs(this._x1-u)>1e-6||Math.abs(this._y1-l)>1e-6)&&(this._+="L"+u+","+l),i&&(c<0&&(c=c%P+P),c>L?this._+="A"+i+","+i+",0,1,"+h+","+(t-s)+","+(n-o)+"A"+i+","+i+",0,1,"+h+","+(this._x1=u)+","+(this._y1=l):c>1e-6&&(this._+="A"+i+","+i+",0,"+ +(c>=R)+","+h+","+(this._x1=t+i*Math.cos(r))+","+(this._y1=n+i*Math.sin(r))))},rect:function(t,n,i,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +i+"v"+ +e+"h"+-i+"Z"},toString:function(){return this._}},T.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}},D.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:z(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:z(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var O=function t(n){function i(t){return new D(t,n)}return i.tension=function(n){return t(+n)},i}(0),W={name:"ElTrans",functional:!0,props:["from","trans"],render:function(t,n){var i=n.children,e=n.props;return t("transition",{props:{appear:!0},on:{beforeAppear:function(t){for(var n in e.from){var i=e.from[n],r=t.getAttribute(n);t.setAttribute("data-"+n,r),t.setAttribute(n,i)}},appear:function(t){setTimeout(function(){for(var n in t.style.transition=e.trans,t.style.WebkitTransition=e.trans,t.style.msTransition=e.trans,t.style.MozTransition=e.trans,e.from){var i=t.getAttribute("data-"+n);t.setAttribute(n,i),t.removeAttribute("data-"+n)}})}}},i)}},Y={name:"LaMotionSpread",functional:!0,props:["axis","transition"],render:function(t,n){var i=n.children,e=n.props,r="la-spread-"+n.parent._uid,a=e.axis,s=e.transition;return t("g",[t("defs",[t("clipPath",{attrs:{id:r}},[t(W,{props:{from:{width:"x"===a?0:"100%",height:"y"===a?0:"100%"},trans:s}},[t("rect",{attrs:{x:0,y:0,width:"100%",height:"100%"}})])])]),t("g",{attrs:{"clip-path":"url(#"+r+")"}},i)])}},q={props:{dashed:[Boolean,String]},computed:{curDashed:function(){var t=this.dashed;return!0===t||""===t?3:!1===t?"none":t}}},F={name:"LaLine",mixins:[S,q],props:{curve:[Boolean,Function],dot:Boolean,width:{type:Number,default:1},hideLine:Boolean,continued:Boolean},computed:{draw:function(){var t=this.curve,i=this.continued,e=X().defined(s);return t&&e.curve(n(t)?t:O),function(t){return t=i?t.filter(s):t,e(t)}},valueSlot:function(){var t=this,n=this.$createElement;return this.showValue&&n("g",{attrs:{fill:this.curColor}},this.curPoints.map(function(i,e){return n("text",{attrs:{x:i[0],y:i[1],dy:"-0.31em","text-anchor":"middle"}},t.raws[e])}))}},render:function(t){var n=this,i=n.animated,e=n.width,r=n.curPoints,a=n.curColor,s=n.hideLine,o=n.trans,u=n.valueSlot,l=n.pointSlot,h=n.store;if(!n.actived)return null;var c=[!s&&t("path",{attrs:{stroke:a,fill:"none","stroke-width":e,d:this.draw(r)},style:{"stroke-dasharray":this.curDashed,transition:o}}),this.$slots.default,this.dot&&t("g",{attrs:{stroke:"#fff",fill:a}},r.map(function(n,i){return n[1]&&t("circle",{attrs:{cx:n[0],cy:n[1],r:(i===h.activedIndex?2:0)+(r=e,parseInt(r,10))+1},style:{transition:o}});var r})),u,l];return i?t(Y,{props:{axis:"x",transition:o}},c):t("g",c)}};var V={name:"LaArea",mixins:[F],props:{fillColor:String},computed:{draw:function(){var t=this.curve,i=this.continued,e=function(){var t=B,n=null,i=h(0),e=E,r=h(!0),a=null,s=I,o=null;function u(u){var l,h,c,f,d,p=u.length,y=!1,v=new Array(p),x=new Array(p);for(null==a&&(o=s(d=$())),l=0;l<=p;++l){if(!(l<p&&r(f=u[l],l,u))===y)if(y=!y)h=l,o.areaStart(),o.lineStart();else{for(o.lineEnd(),o.lineStart(),c=l-1;c>=h;--c)o.point(v[c],x[c]);o.lineEnd(),o.areaEnd()}y&&(v[l]=+t(f,l,u),x[l]=+i(f,l,u),o.point(n?+n(f,l,u):v[l],e?+e(f,l,u):x[l]))}if(d)return o=null,d+""||null}function l(){return X().defined(r).curve(s).context(a)}return u.x=function(i){return arguments.length?(t="function"==typeof i?i:h(+i),n=null,u):t},u.x0=function(n){return arguments.length?(t="function"==typeof n?n:h(+n),u):t},u.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:h(+t),u):n},u.y=function(t){return arguments.length?(i="function"==typeof t?t:h(+t),e=null,u):i},u.y0=function(t){return arguments.length?(i="function"==typeof t?t:h(+t),u):i},u.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:h(+t),u):e},u.lineX0=u.lineY0=function(){return l().x(t).y(i)},u.lineY1=function(){return l().x(t).y(e)},u.lineX1=function(){return l().x(n).y(i)},u.defined=function(t){return arguments.length?(r="function"==typeof t?t:h(!!t),u):r},u.curve=function(t){return arguments.length?(s=t,null!=a&&(o=s(a)),u):s},u.context=function(t){return arguments.length?(null==t?a=o=null:o=s(a=t),u):a},u}().y0(function(t){return t[2]}).defined(s);return t&&e.curve(n(t)?t:O),function(t){return t=i?t.filter(s):t,e(t)}},areaId:function(){return"la-area-"+this._uid+"-"+this.id},curFillColor:function(){return this.fillColor||"url(#"+this.areaId+")"}},render:function(t){var n=this.trans,i=this.curPoints,e=this.curColor,r=this.curFillColor;return this.actived?t("g",[!this.fillColor&&t("defs",[t("linearGradient",{domProps:{id:this.areaId}},[t("stop",{attrs:{"stop-color":e,"stop-opacity":.5}})])]),t(F,{props:a(a({},this.$props),{color:e,points:i,transition:n}),scopedSlots:this.$scopedSlots},[t("path",{attrs:{d:this.draw(i),fill:r},style:{transition:n}}),this.$slots.default])]):null}},j={name:"LaBar",mixins:[S],props:{width:{type:Number,default:20}},preload:function(t){var n=t.data,i=t.parent,e=t.index,r=i.snap,a=i.distance,s=n.width||20;r.barMap=[].concat(r.barMap,e),r.barAllWidth=r.barAllWidth||0,r.barOffset=[].concat(r.barOffset,r.barAllWidth),r.barAllWidth+=s+a},computed:{margin:function(){var t=this.id,n=this.width,i=this.Plane,e=i.snap,r=i.distance,a=i.stacked,s=e.barMap.indexOf(t);return a?-n/2:e.barOffset[s]-(e.barAllWidth-r)/2},valueSlot:function(){var t=this,n=this.$createElement;return this.showValue&&n("g",{attrs:{fill:"#fff"}},this.curPoints.map(function(i,e){return n("text",{attrs:{x:i[0]+t.margin+t.width/2,y:i[2]+(i[1]-i[2])/2,dy:"0.31em","text-anchor":"middle"}},t.raws[e])}))}},methods:{getRect:function(t){var n=t[2]-t[1];return this.$createElement("rect",{attrs:{x:t[0]+this.margin,y:n<0?t[2]:t[1],width:this.width,height:Math.abs(n)}})}},render:function(t){var n=this,i=this.curPoints,e=this.curColor,r=this.animated,a=this.trans,s=this.pointSlot,o=this.valueSlot;if(!this.actived)return null;var u=[];return u=r?i.map(function(i){return t(W,{props:{from:{height:0,y:n.Plane.canvas.y1},trans:a}},[n.getRect(i)])}):i.map(this.getRect),t("g",{attrs:{fill:e}},[].concat(u,o,s))}},G={type:"polar",mixins:[C]};function Z(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function Q(t){return t}var H=Math.abs,J=Math.atan2,K=Math.cos,U=Math.max,tt=Math.min,nt=Math.sin,it=Math.sqrt,et=1e-12,rt=Math.PI,at=rt/2,st=2*rt;function ot(t){return t>=1?at:t<=-1?-at:Math.asin(t)}function ut(t){return t.innerRadius}function lt(t){return t.outerRadius}function ht(t){return t.startAngle}function ct(t){return t.endAngle}function ft(t){return t&&t.padAngle}function dt(t,n,i,e,r,a,s){var o=t-i,u=n-e,l=(s?a:-a)/it(o*o+u*u),h=l*u,c=-l*o,f=t+h,d=n+c,p=i+h,y=e+c,v=(f+p)/2,x=(d+y)/2,m=p-f,g=y-d,b=m*m+g*g,_=r-a,w=f*y-p*d,M=(g<0?-1:1)*it(U(0,_*_*b-w*w)),A=(w*g-m*M)/b,k=(-w*m-g*M)/b,C=(w*g+m*M)/b,S=(-w*m+g*M)/b,R=A-v,P=k-x,L=C-v,N=S-x;return R*R+P*P>L*L+N*N&&(A=C,k=S),{cx:A,cy:k,x01:-h,y01:-c,x11:A*(r/_-1),y11:k*(r/_-1)}}function pt(){var t=ut,n=lt,i=h(0),e=null,r=ht,a=ct,s=ft,o=null;function u(){var u,l,h,c=+t.apply(this,arguments),f=+n.apply(this,arguments),d=r.apply(this,arguments)-at,p=a.apply(this,arguments)-at,y=H(p-d),v=p>d;if(o||(o=u=$()),f<c&&(l=f,f=c,c=l),f>et)if(y>st-et)o.moveTo(f*K(d),f*nt(d)),o.arc(0,0,f,d,p,!v),c>et&&(o.moveTo(c*K(p),c*nt(p)),o.arc(0,0,c,p,d,v));else{var x,m,g=d,b=p,_=d,w=p,M=y,A=y,k=s.apply(this,arguments)/2,C=k>et&&(e?+e.apply(this,arguments):it(c*c+f*f)),S=tt(H(f-c)/2,+i.apply(this,arguments)),R=S,P=S;if(C>et){var L=ot(C/c*nt(k)),N=ot(C/f*nt(k));(M-=2*L)>et?(_+=L*=v?1:-1,w-=L):(M=0,_=w=(d+p)/2),(A-=2*N)>et?(g+=N*=v?1:-1,b-=N):(A=0,g=b=(d+p)/2)}var T=f*K(g),I=f*nt(g),B=c*K(w),E=c*nt(w);if(S>et){var X=f*K(b),z=f*nt(b),D=c*K(_),O=c*nt(_);if(y<rt){var W=M>et?function(t,n,i,e,r,a,s,o){var u=i-t,l=e-n,h=s-r,c=o-a,f=(h*(n-a)-c*(t-r))/(c*u-h*l);return[t+f*u,n+f*l]}(T,I,D,O,X,z,B,E):[B,E],Y=T-W[0],q=I-W[1],F=X-W[0],V=z-W[1],j=1/nt(((h=(Y*F+q*V)/(it(Y*Y+q*q)*it(F*F+V*V)))>1?0:h<-1?rt:Math.acos(h))/2),G=it(W[0]*W[0]+W[1]*W[1]);R=tt(S,(c-G)/(j-1)),P=tt(S,(f-G)/(j+1))}}A>et?P>et?(x=dt(D,O,T,I,f,P,v),m=dt(X,z,B,E,f,P,v),o.moveTo(x.cx+x.x01,x.cy+x.y01),P<S?o.arc(x.cx,x.cy,P,J(x.y01,x.x01),J(m.y01,m.x01),!v):(o.arc(x.cx,x.cy,P,J(x.y01,x.x01),J(x.y11,x.x11),!v),o.arc(0,0,f,J(x.cy+x.y11,x.cx+x.x11),J(m.cy+m.y11,m.cx+m.x11),!v),o.arc(m.cx,m.cy,P,J(m.y11,m.x11),J(m.y01,m.x01),!v))):(o.moveTo(T,I),o.arc(0,0,f,g,b,!v)):o.moveTo(T,I),c>et&&M>et?R>et?(x=dt(B,E,X,z,c,-R,v),m=dt(T,I,D,O,c,-R,v),o.lineTo(x.cx+x.x01,x.cy+x.y01),R<S?o.arc(x.cx,x.cy,R,J(x.y01,x.x01),J(m.y01,m.x01),!v):(o.arc(x.cx,x.cy,R,J(x.y01,x.x01),J(x.y11,x.x11),!v),o.arc(0,0,c,J(x.cy+x.y11,x.cx+x.x11),J(m.cy+m.y11,m.cx+m.x11),v),o.arc(m.cx,m.cy,R,J(m.y11,m.x11),J(m.y01,m.x01),!v))):o.arc(0,0,c,w,_,v):o.lineTo(B,E)}else o.moveTo(0,0);if(o.closePath(),u)return o=null,u+""||null}return u.centroid=function(){var i=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,e=(+r.apply(this,arguments)+ +a.apply(this,arguments))/2-rt/2;return[K(e)*i,nt(e)*i]},u.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:h(+n),u):t},u.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:h(+t),u):n},u.cornerRadius=function(t){return arguments.length?(i="function"==typeof t?t:h(+t),u):i},u.padRadius=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:h(+t),u):e},u.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:h(+t),u):r},u.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:h(+t),u):a},u.padAngle=function(t){return arguments.length?(s="function"==typeof t?t:h(+t),u):s},u.context=function(t){return arguments.length?(o=null==t?null:t,u):o},u}var yt={name:"LaMotionCircle",functional:!0,props:["r","transition"],render:function(t,n){var i=n.children,e=n.props,r="la-circle-"+n.parent._uid,a=e.transition;return t("g",[t("defs",[t("clipPath",{attrs:{id:r}},[t(W,{props:{from:{r:0},trans:a}},[t("circle",{attrs:{r:1.5*e.r}})])])]),t("g",{attrs:{"clip-path":"url(#"+r+")"}},i)])}},vt={name:"LaPie",mixins:[G],props:{translate:{type:[String,Array],default:function(){return["50%","50%"]}},radius:{type:[Number,Array],default:function(){return[0,100]}},angles:{type:[Number,Array],default:function(){return[0,2*Math.PI]}},showLabel:Boolean,labelProp:{type:String,default:"label"}},computed:{arcs:function(){return function(){var t=Q,n=Z,i=null,e=h(0),r=h(st),a=h(0);function s(s){var o,u,l,h,c,f=s.length,d=0,p=new Array(f),y=new Array(f),v=+e.apply(this,arguments),x=Math.min(st,Math.max(-st,r.apply(this,arguments)-v)),m=Math.min(Math.abs(x)/f,a.apply(this,arguments)),g=m*(x<0?-1:1);for(o=0;o<f;++o)(c=y[p[o]=o]=+t(s[o],o,s))>0&&(d+=c);for(null!=n?p.sort(function(t,i){return n(y[t],y[i])}):null!=i&&p.sort(function(t,n){return i(s[t],s[n])}),o=0,l=d?(x-f*g)/d:0;o<f;++o,v=h)u=p[o],h=v+((c=y[u])>0?c*l:0)+g,y[u]={data:s[u],index:o,value:c,startAngle:v,endAngle:h,padAngle:m};return y}return s.value=function(n){return arguments.length?(t="function"==typeof n?n:h(+n),s):t},s.sortValues=function(t){return arguments.length?(n=t,i=null,s):n},s.sort=function(t){return arguments.length?(i=t,n=null,s):i},s.startAngle=function(t){return arguments.length?(e="function"==typeof t?t:h(+t),s):e},s.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:h(+t),s):r},s.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:h(+t),s):a},s}().startAngle(this.curAngles[0]).endAngle(this.curAngles[1]).sortValues(o)(this.raws)},curRadius:function(){var t=i(this.radius)?this.radius[0]:0,n=i(this.radius)?this.radius[1]:100;return this.min&&this.$parent.fillContainer&&(n=this.min/2,this.showLabel&&(n-=this.min/4)),[t,n]},curAngles:function(){var t=this.angles;return i(t)?t:[0,t]},draw:function(){return pt().innerRadius(this.curRadius[0]).outerRadius(this.curRadius[1])},drawText:function(){return pt().innerRadius(.7*(this.$parent.fillContainer?0:this.curRadius[1])).outerRadius(.7*(this.$parent.fillContainer?this.min:this.curRadius[1]))},drawTextLabels:function(){var t=this.$parent.fillContainer?this.radius[0]+this.min/5:.7*this.curRadius[1],n=this.$parent.fillContainer?this.radius[0]+this.min/5:.7*this.curRadius[1];return pt().innerRadius(t).outerRadius(n)},min:function(){return this.$parent.min},valueSlot:function(){var t=this;if(this.showValue){var n=this.$createElement;return this.arcs.map(function(i,e){var r=t.drawText.centroid(i);return n("text",{attrs:{x:r[0],y:r[1],fill:"#fff","text-anchor":"middle"}},t.raws[e])})}},labels:function(){var t=this.labelProp,n=this.Plane;return t?n.data.map(function(n){return n[t]}):null},labelSlot:function(){var t=this;if(this.showLabel){var n=this.$createElement;return this.arcs.map(function(i,e){var r=t.drawTextLabels.centroid(i);return n("text",{attrs:{x:.95*r[0]<<1,y:.95*r[1]<<1,fill:"#000","text-anchor":"middle"}},t.labels[e])})}}},render:function(t){var n=this,i=this.Plane.genColor,e=this.animated,r=this.arcs,a=this.draw,s=r.map(a).map(function(n,e){return t("path",{attrs:{d:n,fill:i(e),stroke:"#fff"}})}),o=this.$scopedSlots.default,u=o&&r.map(function(t,i){var e=n.drawText.centroid(t);return o({arc:t,index:i,x:e[0],y:e[1],style:{transition:n.trans}})}),l=[].concat(s,this.valueSlot,this.labelSlot,u),h={style:{transform:"translate("+this.translate+")"}};return t("g",h,e?[t(yt,{props:{transition:this.trans,r:this.curRadius[1]}},l)]:l)}},xt={mixins:[M],props:{color:String},type:"object",computed:{curColor:function(){return this.color||this.Plane.textColor}}},mt={props:{color:String,tickSize:{type:Number,default:5},fontSize:{type:Number,default:15},format:Function,gridline:Boolean,gridlineInterval:[Function,Number],interval:[Function,Number],ticks:Array,nbTicks:Number},mixins:[xt,A,q],computed:{isX:function(){return"x"===this.$options.axis},labels:function(){var t=this.raws,n=this.Plane,i=n.len;return t=this.isX?t||Array.apply(null,{length:i}).map(function(t,n){return n+1}):g(n.low,n.high,i)},gap:function(){return this.isX?this.Plane.gap:0},points:function(){var t,n=this.Plane,i=this.isX,e=this.labels,r=this.inverse,a=this.gap,s=n.canvas,o=s.x0,u=s.y0,l=s.y1,h=s.width,c=s.height;if(i){var f=n.xRatio,d=u+(r?0:c);t=e.map(function(t,n){return[o+f*n+a,d]})}else{var p=n.yRatio,y=n.low,v=o+(r?h:0);t=e.map(function(t){return[v,l-(t-y)*p]})}return t},curColor:function(){return this.color||this.Plane.textColor},handleInterval:function(){var t=this.interval;return"number"==typeof t?function(n){return n%t==0}:n(t)?t:void 0},handleGridlineInterval:function(){var t=this.gridlineInterval;return"number"==typeof t?function(n){return n%t==0}:n(t)?t:void 0}},watch:{"store.activedIndex":function(t){this.isX&&this.$set(this.store,"activedLabel",this.labels[t])}},render:function(t){var i=this,e=this.ticks,r=this.nbTicks,a=this.points,s=this.labels,o=this.tickSize,u=this.fontSize,l=this.curColor,h=this.isX,c=this.format,f=this.inverse,d=this.gap,p=this.Plane,y=this.store,v=a[0],x=a[a.length-1],m=this.$scopedSlots.default,g=(f?-1:1)*o,b=(h?1:0)*g,_=(h?0:1)*g,w=h?"middle":f?"start":"end",M=h?f?.71-1:.71:.355,A=1.5*(h?g:0),k=1.5*(h?0:g);if(e||r){var C=p.height-p.offset[2];r&&(e=function(t,n,i){for(var e=(n-t)/(i-1),r=[],a=0;a<i;a++)r.push(a*e);return r.push(n),r}(p.low,p.high,r)),e=e.map(function(i){return t("g",[o&&t("line",{attrs:{x1:0-_+p.offset[3],x2:6-_+p.offset[3],y1:C-i*p.yRatio,y2:C-i*p.yRatio-b,stroke:l}}),t("text",{attrs:{x:0-k+p.offset[3],y:p.height-p.offset[2]-i*p.yRatio-A,dy:M+"em",stroke:"none"}},m?m({value:i}):n(c)?c(i):i)])})}else e=s.map(function(e,r){var s=a[r];return!(i.handleInterval&&!i.handleInterval(r))&&t("g",[o&&t("line",{attrs:{x1:s[0]-_,x2:s[0],y1:s[1]+b,y2:s[1],stroke:l}}),t("text",{attrs:{x:s[0]-k,y:s[1]+A,dy:M+"em",stroke:"none"}},m?m({value:e}):n(c)?c(e):e)])}).filter(Boolean);return t("g",{attrs:{stroke:l}},[t("line",{attrs:{x2:x[0]+d,y2:x[1],x1:v[0]-d,y1:v[1]}}),[t("g",{attrs:{"text-anchor":w,"font-size":u,fill:l,stroke:"none"}},e)].concat(this.gridline&&a.reduce(function(n,e,r){return i.handleGridlineInterval&&!i.handleGridlineInterval(r)||n.push(t("line",{attrs:{x1:e[0],y1:e[1],x2:h?e[0]:p.canvas.x1,y2:h?p.canvas.y0:e[1]},style:{opacity:h&&y.activedIndex===r?1:.3,"stroke-dasharray":i.curDashed}})),n},[]))])}},gt={name:"LaXAxis",axis:"x",space:[0,20,24,20],mixins:[mt]},bt={name:"LaYAxis",axis:"y",space:[10,0,0,40],mixins:[mt]},_t={name:"LaXAxisInverse",space:[24,20,0,20],beforeCreate:function(){this.inverse=!0},mixins:[gt]},wt={name:"LaYAxisInverse",space:[10,40,0,0],beforeCreate:function(){this.inverse=!0},mixins:[bt]},Mt={name:"LaYMarker",mixins:[xt,q],props:{label:String,value:Number,placement:{type:String,default:"end"}},computed:{point:function(){var t=this.Plane,n=t.yRatio,i=t.low,e=t.canvas,r=e.x0,a=e.y1,s=e.x1,o=a-(this.value-i)*n;return{x1:r,y1:o,y2:o,x2:s}}},render:function(t){var n=this.point,i=this.curColor,e=this.curDashed,r=this.label,a=this.placement;return t("g",[t("line",{attrs:n,style:{stroke:i,"stroke-dasharray":e}}),r&&t("text",{attrs:{fill:i,x:"end"===a?n.x2:"start"===a?n.x1:(n.x2-n.x1)/2+n.x1,y:n.y1,dy:"-0.31em","text-anchor":a}},r)])}},At={name:"LaYRegion",mixins:[xt,q],props:{label:String,low:{type:Number,required:!0},high:{type:Number,required:!0},fillColor:String,placement:{type:String,default:"end"}},computed:{point:function(){var t=this.Plane,n=t.yRatio,i=t.low,e=t.canvas,r=e.x0,a=e.y1,s=e.width;return{x:r,y:a-(this.high-i)*n,height:(this.high-this.low)*n,width:s}},fillAttr:function(){var t=this.fillColor;return t?{fill:t,stroke:this.curColor}:{stroke:this.curColor,opacity:.3}}},render:function(t){var n=this.label,i=this.point,e=this.placement,r=this.fillAttr;if(!(this.high<this.low))return t("g",{attrs:{fill:this.curColor}},[t("rect",{attrs:a(r,i),style:{"stroke-dasharray":this.curDashed}}),n&&t("text",{attrs:{x:"end"===e?i.x+i.width:"start"===e?i.x:i.width/2+i.x,y:i.y,dy:"-0.31em","text-anchor":e}},n)])}},kt={type:"widget",mixins:[M]},Ct={name:"LaTooltip",mixins:[kt,k],props:{animationDuration:{default:.5,type:Number}},data:function(){return{left:0,top:0,show:!1}},methods:{handleMove:function(t){var n=t.x,i=t.y,e=this.Plane,r=e.$el.getBoundingClientRect(),a=this.$el.getBoundingClientRect(),s=i-r.y,o=n-r.x-this.offsetX,u=Math.round(o/e.xRatio),l=e.canvas.x1-a.width,h=e.canvas.y1-a.height;s>=e.canvas.y0&&s<=e.canvas.y1?u>-1&&u<e.len&&(this.left=Math.min(u*e.xRatio+this.offsetX+10,l),this.$set(this.store,"activedIndex",u),this.top=Math.min(s+10,h),this.show=!0):this.handleLeave()},handleLeave:function(){this.show=!1,this.$set(this.store,"activedIndex",null)}},computed:{offsetX:function(){var t=this.Plane;return t.canvas.x0+t.gap}},mounted:function(){var t=this,n=this.Plane.$el;n.addEventListener("mousemove",u(this.handleMove,10)),n.addEventListener("mouseleave",this.handleLeave),n.addEventListener("touchmove",function(n){var i=n.touches[0];t.handleMove({x:i.clientX,y:i.clientY})},{passive:!0})},render:function(t){var n=this.store,i=n.activedLabel,e=n.activedPoint;void 0===e&&(e=[]);var r=n.activedIndex,a=this.$scopedSlots.default,s=a?a({label:i,actived:e,index:r}):t("div",{style:{background:"#00000095",padding:"8px",color:"#fff",borderRadius:"4px"}},[t("div",{style:{marginBottom:".5em"}},i),e.map(function(n){return t("div",[t("span",{style:{backgroundColor:n.color,height:"10px",width:"10px",borderRadius:"50%",display:"inline-block",marginRight:"5px"}}),n.label&&t("span",{style:{marginRight:"5px"}},n.label+":"),t("span",n.value)])})]);return t("div",{class:"la-tooltip",style:{position:"absolute",top:0,transform:"translate("+this.left+"px, "+this.top+"px)",transition:this.trans,opacity:Number(this.show)}},[s])}},St={name:"LaLegend",mixins:[kt],props:{selectable:Boolean,placement:{type:String,default:"bottom"},color:String},preload:function(t){var n=t.data,i=t.parent,e=n.placement;void 0===e&&(e="bottom");var r=[0,0,0,0];switch(e.match(/^(\w+)-?/)[1]){case"bottom":r[2]=50;break;case"top":r[0]=50;break;case"left":r[3]=100;break;case"right":r[1]=100}i.addSpace(r)},computed:{curColor:function(){return this.color||this.Plane.textColor},position:function(){return this.placement.match(/^(\w+)(-(\w+))?$/)[1]},align:function(){return this.placement.match(/^(\w+)(-(\w+))?$/)[3]},pos:function(){var t=this.position,n=this.align,i={};if("top"===t||"bottom"===t){switch(n){case"start":i.left=0;break;case"end":i.right=0;break;default:i.left="50%",i.transform="translateX(-50%)"}"top"===t?i.top=0:i.bottom=0}else{switch(n){case"start":i.top=0;break;case"end":i.bottom=0;break;default:i.top="50%",i.transform="translateY(-50%)"}"left"===t?i.left=0:i.right=0}return i}},created:function(){this.$set(this.store,"hidden",[])},render:function(t){var n=this.curColor,i=this.pos,e=this.position,r=this.selectable,s=this.store,o=s.hidden,u=this.$scopedSlots.default;return t("div",{class:"la-legend",style:a({position:"absolute"},i)},Object.keys(s.props).map(function(i){return t("div",{style:{display:"left"===e||"right"===e?"block":"inline-block",marginRight:"10px",marginLeft:"5px",color:n,cursor:r?"pointer":"nromal"},on:{click:function(){if(r){i=Number(i);var t=o.indexOf(i);t<0?o.push(i):o.splice(t,1)}}}},u?u({color:s.colors[i],label:s.labels[i],prop:s.props[i]}):[t("span",{style:{backgroundColor:s.colors[i],height:"10px",width:"10px",borderRadius:"50%",display:"inline-block",marginRight:"5px"}}),t("span",{style:o.indexOf(Number(i))>-1?{textDecoration:"line-through"}:{}},s.labels[i])])}))}};function Rt(t){[_,w,F,V,j,vt,gt,bt,_t,wt,Ct,St,Mt,At].forEach(function(n){t.component(n.name,n)})}"undefined"!=typeof window&&void 0!==window.Vue&&window.Vue.use(Rt),t.Laue=Rt,t.Cartesian=_,t.Polar=w,t.Line=F,t.Area=V,t.Bar=j,t.Pie=vt,t.XAxis=gt,t.YAxis=bt,t.XAxisInverse=_t,t.YAxisInverse=wt,t.Tooltip=Ct,t.Legend=St,t.YMarker=Mt,t.YRegion=At,Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=laue.umd.js.map