Socket
Socket
Sign inDemoInstall

vega-scenegraph

Package Overview
Dependencies
Maintainers
2
Versions
110
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vega-scenegraph - npm Package Compare versions

Comparing version 2.4.2 to 2.5.0

src/util/events.js

2

build/vega-scenegraph.min.js

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("vega-util"),require("vega-canvas"),require("vega-loader"),require("d3-shape"),require("d3-path")):"function"==typeof define&&define.amd?define(["exports","vega-util","vega-canvas","vega-loader","d3-shape","d3-path"],e):e(t.vega=t.vega||{},t.vega,t.vega,t.vega,t.d3,t.d3)}(this,function(t,e,n,i,r,o){"use strict";function s(t){this.clear(),t&&this.union(t)}var a=s.prototype;a.clone=function(){return new s(this)},a.clear=function(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},a.empty=function(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},a.set=function(t,e,n,i){return n<t?(this.x2=t,this.x1=n):(this.x1=t,this.x2=n),i<e?(this.y2=e,this.y1=i):(this.y1=e,this.y2=i),this},a.add=function(t,e){return t<this.x1&&(this.x1=t),e<this.y1&&(this.y1=e),t>this.x2&&(this.x2=t),e>this.y2&&(this.y2=e),this},a.expand=function(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},a.round=function(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},a.translate=function(t,e){return this.x1+=t,this.x2+=t,this.y1+=e,this.y2+=e,this},a.rotate=function(t,e,n){var i=Math.cos(t),r=Math.sin(t),o=e-e*i+n*r,s=n-e*r-n*i,a=this.x1,u=this.x2,l=this.y1,h=this.y2;return this.clear().add(i*a-r*l+o,r*a+i*l+s).add(i*a-r*h+o,r*a+i*h+s).add(i*u-r*l+o,r*u+i*l+s).add(i*u-r*h+o,r*u+i*h+s)},a.union=function(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},a.intersect=function(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},a.encloses=function(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},a.alignsWith=function(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},a.intersects=function(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},a.contains=function(t,e){return!(t<this.x1||t>this.x2||e<this.y1||e>this.y2)},a.width=function(){return this.x2-this.x1},a.height=function(){return this.y2-this.y1};var u=0;function l(t){this.mark=t,this.bounds=this.bounds||new s}function h(t){l.call(this,t),this.items=this.items||[]}function c(t){this._pending=0,this._loader=t||i.loader()}e.inherits(h,l);var f=c.prototype;function d(t){t._pending+=1}function v(t){t._pending-=1}f.pending=function(){return this._pending},f.sanitizeURL=function(t){var e=this;return d(e),e._loader.sanitize(t,{context:"href"}).then(function(t){return v(e),t}).catch(function(){return v(e),null})},f.loadImage=function(t){var e=this,i=n.image();return d(e),e._loader.sanitize(t,{context:"image"}).then(function(t){var n=t.href;if(!n||!i)throw{url:n};var r=new i;return r.onload=function(){v(e),r.loaded=!0},r.onerror=function(){v(e),r.loaded=!1},r.src=n,r}).catch(function(t){return v(e),{loaded:!1,width:0,height:0,src:t&&t.url||""}})},f.ready=function(){var t=this;return new Promise(function(e){!function n(i){t.pending()?setTimeout(function(){n(!0)},10):e(i)}(!1)})};var g={basis:{curve:r.curveBasis},"basis-closed":{curve:r.curveBasisClosed},"basis-open":{curve:r.curveBasisOpen},bundle:{curve:r.curveBundle,tension:"beta",value:.85},cardinal:{curve:r.curveCardinal,tension:"tension",value:0},"cardinal-open":{curve:r.curveCardinalOpen,tension:"tension",value:0},"cardinal-closed":{curve:r.curveCardinalClosed,tension:"tension",value:0},"catmull-rom":{curve:r.curveCatmullRom,tension:"alpha",value:.5},"catmull-rom-closed":{curve:r.curveCatmullRomClosed,tension:"alpha",value:.5},"catmull-rom-open":{curve:r.curveCatmullRomOpen,tension:"alpha",value:.5},linear:{curve:r.curveLinear},"linear-closed":{curve:r.curveLinearClosed},monotone:{horizontal:r.curveMonotoneY,vertical:r.curveMonotoneX},natural:{curve:r.curveNatural},step:{curve:r.curveStep},"step-after":{curve:r.curveStepAfter},"step-before":{curve:r.curveStepBefore}};function p(t,e,n){var i=g.hasOwnProperty(t)&&g[t],r=null;return i&&(r=i.curve||i[e||"vertical"],i.tension&&null!=n&&(r=r[i.tension](n))),r}var y={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},_=[/([MLHVCSQTAZmlhvcsqtaz])/g,/###/,/(\d)([-+])/g,/\s|,|###/],m=function(t){var e,n,i,r,o,s,a,u,l,h,c,f=[];for(u=0,h=(e=t.slice().replace(_[0],"###$1").split(_[1]).slice(1)).length;u<h;++u){for(i=(n=e[u]).slice(1).trim().replace(_[2],"$1###$2").split(_[3]),r=[s=n.charAt(0)],l=0,c=i.length;l<c;++l)(o=+i[l])===o&&r.push(o);if(a=y[s.toLowerCase()],r.length-1>a)for(l=1,c=r.length;l<c;l+=a)f.push([s].concat(r.slice(l,l+a)));else f.push(r)}return f},x={},b={},k=[].join;function w(t){var e=k.call(t);if(b[e])return b[e];var n=t[0],i=t[1],r=t[2],o=t[3],s=t[4],a=t[5],u=t[6],l=t[7],h=l*s,c=-u*a,f=u*s,d=l*a,v=Math.cos(r),g=Math.sin(r),p=Math.cos(o),y=Math.sin(o),_=.5*(o-r),m=Math.sin(.5*_),x=8/3*m*m/Math.sin(_),w=n+v-x*g,M=i+g+x*v,T=n+p,A=i+y,C=T+x*y,z=A-x*p;return b[e]=[h*w+c*M,f*w+d*M,h*C+c*z,f*C+d*z,h*T+c*A,f*T+d*A]}var M=["l",0,0,0,0,0,0,0];function T(t,e){var n=M[0]=t[0];if("a"===n||"A"===n)M[1]=e*t[1],M[2]=e*t[2],M[6]=e*t[6],M[7]=e*t[7];else for(var i=1,r=t.length;i<r;++i)M[i]=e*t[i];return M}var A=function(t,e,n,i,r){var o,s,a,u,l,h=null,c=0,f=0,d=0,v=0;null==n&&(n=0),null==i&&(i=0),null==r&&(r=1),t.beginPath&&t.beginPath();for(var g=0,p=e.length;g<p;++g){switch(o=e[g],1!==r&&(o=T(o,r)),o[0]){case"l":c+=o[1],f+=o[2],t.lineTo(c+n,f+i);break;case"L":c=o[1],f=o[2],t.lineTo(c+n,f+i);break;case"h":c+=o[1],t.lineTo(c+n,f+i);break;case"H":c=o[1],t.lineTo(c+n,f+i);break;case"v":f+=o[1],t.lineTo(c+n,f+i);break;case"V":f=o[1],t.lineTo(c+n,f+i);break;case"m":c+=o[1],f+=o[2],t.moveTo(c+n,f+i);break;case"M":c=o[1],f=o[2],t.moveTo(c+n,f+i);break;case"c":s=c+o[5],a=f+o[6],d=c+o[3],v=f+o[4],t.bezierCurveTo(c+o[1]+n,f+o[2]+i,d+n,v+i,s+n,a+i),c=s,f=a;break;case"C":c=o[5],f=o[6],d=o[3],v=o[4],t.bezierCurveTo(o[1]+n,o[2]+i,d+n,v+i,c+n,f+i);break;case"s":s=c+o[3],a=f+o[4],d=2*c-d,v=2*f-v,t.bezierCurveTo(d+n,v+i,c+o[1]+n,f+o[2]+i,s+n,a+i),d=c+o[1],v=f+o[2],c=s,f=a;break;case"S":s=o[3],a=o[4],d=2*c-d,v=2*f-v,t.bezierCurveTo(d+n,v+i,o[1]+n,o[2]+i,s+n,a+i),c=s,f=a,d=o[1],v=o[2];break;case"q":s=c+o[3],a=f+o[4],d=c+o[1],v=f+o[2],t.quadraticCurveTo(d+n,v+i,s+n,a+i),c=s,f=a;break;case"Q":s=o[3],a=o[4],t.quadraticCurveTo(o[1]+n,o[2]+i,s+n,a+i),c=s,f=a,d=o[1],v=o[2];break;case"t":s=c+o[1],a=f+o[2],null===h[0].match(/[QqTt]/)?(d=c,v=f):"t"===h[0]?(d=2*c-u,v=2*f-l):"q"===h[0]&&(d=2*c-d,v=2*f-v),u=d,l=v,t.quadraticCurveTo(d+n,v+i,s+n,a+i),f=a,d=(c=s)+o[1],v=f+o[2];break;case"T":s=o[1],a=o[2],d=2*c-d,v=2*f-v,t.quadraticCurveTo(d+n,v+i,s+n,a+i),c=s,f=a;break;case"a":C(t,c+n,f+i,[o[1],o[2],o[3],o[4],o[5],o[6]+c+n,o[7]+f+i]),c+=o[6],f+=o[7];break;case"A":C(t,c+n,f+i,[o[1],o[2],o[3],o[4],o[5],o[6]+n,o[7]+i]),c=o[6],f=o[7];break;case"z":case"Z":t.closePath()}h=o}};function C(t,e,n,i){for(var r=function(t,e,n,i,r,o,s,a,u){var l=k.call(arguments);if(x[l])return x[l];var h=s*(Math.PI/180),c=Math.sin(h),f=Math.cos(h),d=f*(a-t)*.5+c*(u-e)*.5,v=f*(u-e)*.5-c*(a-t)*.5,g=d*d/((n=Math.abs(n))*n)+v*v/((i=Math.abs(i))*i);g>1&&(n*=g=Math.sqrt(g),i*=g);var p=f/n,y=c/n,_=-c/i,m=f/i,b=p*a+y*u,w=_*a+m*u,M=p*t+y*e,T=_*t+m*e,A=1/((M-b)*(M-b)+(T-w)*(T-w))-.25;A<0&&(A=0);var C=Math.sqrt(A);o==r&&(C=-C);var z=.5*(b+M)-C*(T-w),P=.5*(w+T)+C*(M-b),S=Math.atan2(w-P,b-z),L=Math.atan2(T-P,M-z)-S;L<0&&1===o?L+=2*Math.PI:L>0&&0===o&&(L-=2*Math.PI);for(var I=Math.ceil(Math.abs(L/(.5*Math.PI+.001))),R=[],q=0;q<I;++q){var N=S+q*L/I,O=S+(q+1)*L/I;R[q]=[z,P,N,O,n,i,c,f]}return x[l]=R}(i[5],i[6],i[0],i[1],i[3],i[4],i[2],e,n),o=0;o<r.length;++o){var s=w(r[o]);t.bezierCurveTo(s[0],s[1],s[2],s[3],s[4],s[5])}}var z=2*Math.PI,P=Math.sqrt(3)/2,S={circle:{draw:function(t,e){var n=Math.sqrt(e)/2;t.moveTo(n,0),t.arc(0,0,n,0,z)}},cross:{draw:function(t,e){var n=Math.sqrt(e)/2,i=n/2.5;t.moveTo(-n,-i),t.lineTo(-n,i),t.lineTo(-i,i),t.lineTo(-i,n),t.lineTo(i,n),t.lineTo(i,i),t.lineTo(n,i),t.lineTo(n,-i),t.lineTo(i,-i),t.lineTo(i,-n),t.lineTo(-i,-n),t.lineTo(-i,-i),t.closePath()}},diamond:{draw:function(t,e){var n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.closePath()}},square:{draw:function(t,e){var n=Math.sqrt(e),i=-n/2;t.rect(i,i,n,n)}},"triangle-up":{draw:function(t,e){var n=Math.sqrt(e)/2,i=P*n;t.moveTo(0,-i),t.lineTo(-n,i),t.lineTo(n,i),t.closePath()}},"triangle-down":{draw:function(t,e){var n=Math.sqrt(e)/2,i=P*n;t.moveTo(0,i),t.lineTo(-n,-i),t.lineTo(n,-i),t.closePath()}},"triangle-right":{draw:function(t,e){var n=Math.sqrt(e)/2,i=P*n;t.moveTo(i,0),t.lineTo(-i,-n),t.lineTo(-i,n),t.closePath()}},"triangle-left":{draw:function(t,e){var n=Math.sqrt(e)/2,i=P*n;t.moveTo(-i,0),t.lineTo(i,-n),t.lineTo(i,n),t.closePath()}}};function L(t){return S.hasOwnProperty(t)?S[t]:function(t){if(!I.hasOwnProperty(t)){var e=m(t);I[t]={draw:function(t,n){A(t,e,0,0,Math.sqrt(n)/2)}}}return I[t]}(t)}var I={};function R(t){return t.x}function q(t){return t.y}function N(t){return t.width}function O(t){return t.height}function E(t){return function(){return t}}var D=function(){var t=R,e=q,n=N,i=O,r=E(0),s=null;function a(a,u,l){var h,c=null!=u?u:+t.call(this,a),f=null!=l?l:+e.call(this,a),d=+n.call(this,a),v=+i.call(this,a),g=+r.call(this,a);if(s||(s=h=o.path()),g<=0)s.rect(c,f,d,v);else{var p=c+d,y=f+v;s.moveTo(c+g,f),s.lineTo(p-g,f),s.quadraticCurveTo(p,f,p,f+g),s.lineTo(p,y-g),s.quadraticCurveTo(p,y,p-g,y),s.lineTo(c+g,y),s.quadraticCurveTo(c,y,c,y-g),s.lineTo(c,f+g),s.quadraticCurveTo(c,f,c+g,f),s.closePath()}if(h)return s=null,h+""||null}return a.x=function(e){return arguments.length?(t="function"==typeof e?e:E(+e),a):t},a.y=function(t){return arguments.length?(e="function"==typeof t?t:E(+t),a):e},a.width=function(t){return arguments.length?(n="function"==typeof t?t:E(+t),a):n},a.height=function(t){return arguments.length?(i="function"==typeof t?t:E(+t),a):i},a.cornerRadius=function(t){return arguments.length?(r="function"==typeof t?t:E(+t),a):r},a.context=function(t){return arguments.length?(s=null==t?null:t,a):s},a},V=Math.PI,H=function(){var t,e,n,i,r,s,a,u,l=null;function h(t,e,n){var i=n/2;if(r){var o=a-e,h=t-s;if(o||h){var c=Math.sqrt(o*o+h*h),f=(o/=c)*u,d=(h/=c)*u,v=Math.atan2(h,o);l.moveTo(s-f,a-d),l.lineTo(t-o*i,e-h*i),l.arc(t,e,i,v-V,v),l.lineTo(s+f,a+d),l.arc(s,a,u,v,v+V)}else l.arc(t,e,i,0,2*V);l.closePath()}else r=1;s=t,a=e,u=i}function c(s){var a,u,c,f=s.length,d=!1;for(null==l&&(l=c=o.path()),a=0;a<=f;++a)!(a<f&&i(u=s[a],a,s))===d&&(d=!d)&&(r=0),d&&h(+t(u,a,s),+e(u,a,s),+n(u,a,s));if(c)return l=null,c+""||null}return c.x=function(e){return arguments.length?(t=e,c):t},c.y=function(t){return arguments.length?(e=t,c):e},c.size=function(t){return arguments.length?(n=t,c):n},c.defined=function(t){return arguments.length?(i=t,c):i},c.context=function(t){return arguments.length?(l=null==t?null:t,c):l},c};function G(t){return t.x||0}function W(t){return t.y||0}function j(t){return t.cornerRadius||0}function B(t){return!(!1===t.defined)}var U=r.arc().startAngle(function(t){return t.startAngle||0}).endAngle(function(t){return t.endAngle||0}).padAngle(function(t){return t.padAngle||0}).innerRadius(function(t){return t.innerRadius||0}).outerRadius(function(t){return t.outerRadius||0}).cornerRadius(j),X=r.area().x(G).y1(W).y0(function(t){return(t.y||0)+(t.height||0)}).defined(B),J=r.area().y(W).x1(G).x0(function(t){return(t.x||0)+(t.width||0)}).defined(B),F=r.line().x(G).y(W).defined(B),Q=D().x(G).y(W).width(function(t){return t.width||0}).height(function(t){return t.height||0}).cornerRadius(j),Y=r.symbol().type(function(t){return L(t.shape||"circle")}).size(function(t){return null==t.size?64:t.size}),Z=H().x(G).y(W).defined(B).size(function(t){return t.size||1});function $(t,e,n,i){return Q.context(t)(e,n,i)}var K,tt=function(t,e){return e.stroke&&0!==e.opacity&&0!==e.strokeOpacity&&t.expand(null!=e.strokeWidth?+e.strokeWidth:1),t},et=2*Math.PI,nt=et/4,it=et-1e-8;function rt(t){return K=t,rt}function ot(){}function st(t,e){K.add(t,e)}rt.beginPath=ot,rt.closePath=ot,rt.moveTo=st,rt.lineTo=st,rt.rect=function(t,e,n,i){st(t,e),st(t+n,e+i)},rt.quadraticCurveTo=function(t,e,n,i){st(t,e),st(n,i)},rt.bezierCurveTo=function(t,e,n,i,r,o){st(t,e),st(n,i),st(r,o)},rt.arc=function(t,e,n,i,r,o){if(Math.abs(r-i)>it)return st(t-n,e-n),void st(t+n,e+n);var s,a,u,l,h=1/0,c=-1/0,f=1/0,d=-1/0;function v(t){u=n*Math.cos(t),l=n*Math.sin(t),u<h&&(h=u),u>c&&(c=u),l<f&&(f=l),l>d&&(d=l)}if(v(i),v(r),r!==i)if((i%=et)<0&&(i+=et),(r%=et)<0&&(r+=et),r<i&&(o=!o,s=i,i=r,r=s),o)for(r-=et,s=i-i%nt,a=0;a<4&&s>r;++a,s-=nt)v(s);else for(s=i-i%nt+nt,a=0;a<4&&s<r;++a,s+=nt)v(s);st(t+h,e+f),st(t+c,e+d)};var at=function(t,e,n){return n.id?function(t,e,n){for(var i=n.width(),r=n.height(),o=n.x1+e.x1*i,s=n.y1+e.y1*r,a=n.x1+e.x2*i,u=n.y1+e.y2*r,l=e.stops,h=0,c=l.length,f=t.createLinearGradient(o,s,a,u);h<c;++h)f.addColorStop(l[h].offset,l[h].color);return f}(t,n,e.bounds):n},ut=function(t,e,n){return(n*=null==e.fillOpacity?1:e.fillOpacity)>0&&(t.globalAlpha=n,t.fillStyle=at(t,e,e.fill),!0)},lt=[],ht=function(t,e,n){var i=null!=(i=e.strokeWidth)?i:1;return!(i<=0)&&((n*=null==e.strokeOpacity?1:e.strokeOpacity)>0&&(t.globalAlpha=n,t.strokeStyle=at(t,e,e.stroke),t.lineWidth=i,t.lineCap=e.strokeCap||"butt",t.lineJoin=e.strokeJoin||"miter",t.miterLimit=e.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(e.strokeDash||lt),t.lineDashOffset=e.strokeDashOffset||0),!0))};function ct(t,e){return t.zindex-e.zindex||t.index-e.index}function ft(t){if(!t.zdirty)return t.zitems;var e,n,i,r=t.items,o=[];for(n=0,i=r.length;n<i;++n)(e=r[n]).index=n,e.zindex&&o.push(e);return t.zdirty=!1,t.zitems=o.sort(ct)}function dt(t,e){var n,i,r=t.items;if(r&&r.length){var o=ft(t);if(o&&o.length){for(n=0,i=r.length;n<i;++n)r[n].zindex||e(r[n]);r=o}for(n=0,i=r.length;n<i;++n)e(r[n])}}function vt(t,e){var n,i,r=t.items;if(!r||!r.length)return null;var o=ft(t);for(o&&o.length&&(r=o),i=r.length;--i>=0;)if(n=e(r[i]))return n;if(r===o)for(i=(r=t.items).length;--i>=0;)if(!r[i].zindex&&(n=e(r[i])))return n;return null}function gt(t){return function(e,n,i){dt(n,function(n){i&&!i.intersects(n.bounds)||pt(t,e,n,n)})}}function pt(t,e,n,i){var r=null==n.opacity?1:n.opacity;0!==r&&(t(e,i)||(n.fill&&ut(e,n,r)&&e.fill(),n.stroke&&ht(e,n,r)&&e.stroke()))}var yt=function(){return!0};function _t(t){return t||(t=yt),function(e,n,i,r,o,s){return i*=e.pixelRatio,r*=e.pixelRatio,vt(n,function(n){var a=n.bounds;if((!a||a.contains(o,s))&&a)return t(e,n,i,r,o,s)?n:void 0})}}function mt(t,e){return function(n,i,r,o){var s,a,u=Array.isArray(i)?i[0]:i,l=null==e?u.fill:e,h=u.stroke&&n.isPointInStroke;return h&&(s=u.strokeWidth,a=u.strokeCap,n.lineWidth=null!=s?s:1,n.lineCap=null!=a?a:"butt"),!t(n,i)&&(l&&n.isPointInPath(r,o)||h&&n.isPointInStroke(r,o))}}function xt(t){return _t(mt(t))}var bt=function(t,e){return"translate("+t+","+e+")"},kt=function(t){return bt(t.x||0,t.y||0)},wt=function(t,e){function n(t,n){var i=n.x||0,r=n.y||0;t.translate(i,r),t.beginPath(),e(t,n),t.translate(-i,-r)}return{type:t,tag:"path",nested:!1,attr:function(t,n){t("transform",kt(n)),t("d",e(null,n))},bound:function(t,n){return e(rt(t),n),tt(t,n).translate(n.x||0,n.y||0)},draw:gt(n),pick:xt(n)}},Mt=wt("arc",function(t,e){return U.context(t)(e)}),Tt=function(t,e){function n(t,n){t.beginPath(),e(t,n)}var i,r=mt(n);return{type:t,tag:"path",nested:!0,attr:function(t,n){var i=n.mark.items;i.length&&t("d",e(null,i))},bound:function(t,n){var i=n.items;return 0===i.length?t:(e(rt(t),i),tt(t,i[0]))},draw:(i=n,function(t,e,n){!e.items.length||n&&!n.intersects(e.bounds)||pt(i,t,e.items[0],e.items)}),pick:function(t,e,n,i,o,s){var a=e.items,u=e.bounds;return!a||!a.length||u&&!u.contains(o,s)?null:(n*=t.pixelRatio,i*=t.pixelRatio,r(t,a,n,i)?a[0]:null)}}},At=Tt("area",function(t,e){var n=e[0],i=n.interpolate||"linear";return("horizontal"===n.orient?J:X).curve(p(i,n.orient,n.tension)).context(t)(e)}),Ct=1;var zt=function(t,n,i){var r=n.clip,o=t._defs,s=n.clip_id||(n.clip_id="clip"+Ct++),a=o.clipping[s]||(o.clipping[s]={id:s});return e.isFunction(r)?a.path=r(null):(a.width=i.width||0,a.height=i.height||0),"url(#"+s+")"},Pt=.5;function St(t,e){var n=e.stroke?Pt:0;t.beginPath(),$(t,e,n,n)}var Lt=mt(St);var It={type:"group",tag:"g",nested:!1,attr:function(t,e){t("transform",kt(e))},bound:function(t,e){if(!e.clip&&e.items)for(var n=e.items,i=0,r=n.length;i<r;++i)t.union(n[i].bounds);return(e.clip||e.width||e.height)&&tt(t.add(0,0).add(e.width||0,e.height||0),e),t.translate(e.x||0,e.y||0)},draw:function(t,e,n){var i=this;dt(e,function(e){var r,o=e.x||0,s=e.y||0,a=e.width||0,u=e.height||0;t.save(),t.translate(o,s),(e.stroke||e.fill)&&(r=null==e.opacity?1:e.opacity)>0&&(St(t,e),e.fill&&ut(t,e,r)&&t.fill(),e.stroke&&ht(t,e,r)&&t.stroke()),e.clip&&(t.beginPath(),t.rect(0,0,a,u),t.clip()),n&&n.translate(-o,-s),dt(e,function(e){i.draw(t,e,n)}),n&&n.translate(o,s),t.restore()})},pick:function(t,e,n,i,r,o){if(e.bounds&&!e.bounds.contains(r,o)||!e.items)return null;var s=this,a=n*t.pixelRatio,u=i*t.pixelRatio;return vt(e,function(l){var h,c,f,d;if(!(d=l.bounds)||d.contains(r,o))return c=l.x||0,f=l.y||0,t.save(),t.translate(c,f),c=r-c,f=o-f,!(h=vt(l,function(t){return r=c,o=f,(!1!==(e=t).interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(r,o)?s.pick(t,n,i,c,f):null;var e,r,o}))&&!1!==e.interactive&&(l.fill||l.stroke)&&Lt(t,l,a,u)&&(h=l),t.restore(),h||null})},background:function(t,e){var n=e.stroke?Pt:0;t("class","background"),t("d",$(null,e,n,n))},foreground:function(t,e,n){t("clip-path",e.clip?zt(n,e,e):null)}};function Rt(t,e){var n=t.image;return n&&n.url===t.url||(n={loaded:!1,width:0,height:0},e.loadImage(t.url).then(function(e){t.image=e,t.image.url=t.url})),n}function qt(t,e){return"center"===t?e/2:"right"===t?e:0}function Nt(t,e){return"middle"===t?e/2:"bottom"===t?e:0}var Ot={type:"image",tag:"image",nested:!1,attr:function(t,e,n){var i=Rt(e,n),r=e.x||0,o=e.y||0,s=(null!=e.width?e.width:i.width)||0,a=(null!=e.height?e.height:i.height)||0,u=!1===e.aspect?"none":"xMidYMid";r-=qt(e.align,s),o-=Nt(e.baseline,a),t("href",i.src||"","http://www.w3.org/1999/xlink","xlink:href"),t("transform",bt(r,o)),t("width",s),t("height",a),t("preserveAspectRatio",u)},bound:function(t,e){var n=e.image,i=e.x||0,r=e.y||0,o=(null!=e.width?e.width:n&&n.width)||0,s=(null!=e.height?e.height:n&&n.height)||0;return i-=qt(e.align,o),r-=Nt(e.baseline,s),t.set(i,r,i+o,r+s)},draw:function(t,e,n){var i=this;dt(e,function(e){if(!n||n.intersects(e.bounds)){var r,o,s,a,u=Rt(e,i),l=e.x||0,h=e.y||0,c=(null!=e.width?e.width:u.width)||0,f=(null!=e.height?e.height:u.height)||0;l-=qt(e.align,c),h-=Nt(e.baseline,f),!1!==e.aspect&&(o=u.width/u.height,s=e.width/e.height,o==o&&s==s&&o!==s&&(s<o?(h+=(f-(a=c/o))/2,f=a):(l+=(c-(a=f*o))/2,c=a))),u.loaded&&(t.globalAlpha=null!=(r=e.opacity)?r:1,t.drawImage(u,l,h,c,f))}})},pick:_t(),get:Rt,xOffset:qt,yOffset:Nt},Et=Tt("line",function(t,e){var n=e[0],i=n.interpolate||"linear";return F.curve(p(i,n.orient,n.tension)).context(t)(e)});function Dt(t,e){var n=e.path;if(null==n)return!0;var i=e.pathCache;i&&i.path===n||((e.pathCache=i=m(n)).path=n),A(t,i,e.x,e.y)}var Vt={type:"path",tag:"path",nested:!1,attr:function(t,e){t("transform",kt(e)),t("d",e.path)},bound:function(t,e){return Dt(rt(t),e)?t.set(0,0,0,0):tt(t,e)},draw:gt(Dt),pick:xt(Dt)};function Ht(t,e){t.beginPath(),$(t,e)}var Gt={type:"rect",tag:"path",nested:!1,attr:function(t,e){t("d",$(null,e))},bound:function(t,e){var n,i;return tt(t.set(n=e.x||0,i=e.y||0,n+e.width||0,i+e.height||0),e)},draw:gt(Ht),pick:xt(Ht)};function Wt(t,e,n){var i,r,o,s;return!(!e.stroke||!ht(t,e,n))&&(i=e.x||0,r=e.y||0,o=null!=e.x2?e.x2:i,s=null!=e.y2?e.y2:r,t.beginPath(),t.moveTo(i,r),t.lineTo(o,s),!0)}var jt,Bt,Ut={type:"rule",tag:"line",nested:!1,attr:function(t,e){t("transform",kt(e)),t("x2",null!=e.x2?e.x2-(e.x||0):0),t("y2",null!=e.y2?e.y2-(e.y||0):0)},bound:function(t,e){var n,i;return tt(t.set(n=e.x||0,i=e.y||0,null!=e.x2?e.x2:n,null!=e.y2?e.y2:i),e)},draw:function(t,e,n){dt(e,function(e){if(!n||n.intersects(e.bounds)){var i=null==e.opacity?1:e.opacity;i&&Wt(t,e,i)&&t.stroke()}})},pick:_t(function(t,e,n,i){return!!t.isPointInStroke&&Wt(t,e,1)&&t.isPointInStroke(n,i)})},Xt=wt("shape",function(t,e){return(e.mark.shape||e.shape).context(t)(e)}),Jt=wt("symbol",function(t,e){return Y.context(t)(e)}),Ft={height:Kt,measureWidth:Zt,estimateWidth:Qt,width:Qt,canvas:te};function Qt(t){return Bt=Kt(t),Yt(ee(t))}function Yt(t){return~~(.8*t.length*Bt)}function Zt(t){return jt.font=ne(t),$t(ee(t))}function $t(t){return jt.measureText(t).width}function Kt(t){return null!=t.fontSize?t.fontSize:11}function te(t){jt=t&&(jt=n.canvas(1,1))?jt.getContext("2d"):null,Ft.width=jt?Zt:Qt}function ee(t){var e=t.text;return null==e?"":t.limit>0?function(t){var e,n=+t.limit,i=t.text+"";jt?(jt.font=ne(t),e=$t):(Bt=Kt(t),e=Yt);if(e(i)<n)return i;var r,o=t.ellipsis||"…",s="rtl"===t.dir,a=0,u=i.length;{if(n-=e(o),s){for(;a<u;)r=a+u>>>1,e(i.slice(r))>n?a=r+1:u=r;return o+i.slice(a)}for(;a<u;)r=1+(a+u>>>1),e(i.slice(0,r))<n?a=r:u=r-1;return i.slice(0,a)+o}}(t):e+""}function ne(t,e){var n=t.font;return e&&n&&(n=String(n).replace(/"/g,"'")),(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+Kt(t)+"px "+(n||"sans-serif")}function ie(t){var e=t.baseline,n=Kt(t);return Math.round("top"===e?.79*n:"middle"===e?.3*n:"bottom"===e?-.21*n:0)}te(!0);var re={left:"start",center:"middle",right:"end"},oe=new s;function se(t,e,n){var i,r,o=Ft.height(e),s=e.align,a=e.radius||0,u=e.x||0,l=e.y||0,h=e.dx||0,c=(e.dy||0)+ie(e)-Math.round(.8*o);return a&&(r=(e.theta||0)-Math.PI/2,u+=a*Math.cos(r),l+=a*Math.sin(r)),i=Ft.width(e),"center"===s?h-=i/2:"right"===s&&(h-=i),t.set(h+=u,c+=l,h+i,c+o),e.angle&&!n&&t.rotate(e.angle*Math.PI/180,u,l),t.expand(n||!i?0:1)}var ae={arc:Mt,area:At,group:It,image:Ot,line:Et,path:Vt,rect:Gt,rule:Ut,shape:Xt,symbol:Jt,text:{type:"text",tag:"text",nested:!1,attr:function(t,e){var n,i=e.dx||0,r=(e.dy||0)+ie(e),o=e.x||0,s=e.y||0,a=e.angle||0,u=e.radius||0;u&&(n=(e.theta||0)-Math.PI/2,o+=u*Math.cos(n),s+=u*Math.sin(n)),t("text-anchor",re[e.align]||"start"),a?(n=bt(o,s)+" rotate("+a+")",(i||r)&&(n+=" "+bt(i,r))):n=bt(o+i,s+r),t("transform",n)},bound:se,draw:function(t,e,n){dt(e,function(e){var i,r,o,s,a,u;n&&!n.intersects(e.bounds)||(u=ee(e))&&0!==(i=null==e.opacity?1:e.opacity)&&(t.font=ne(e),t.textAlign=e.align||"left",r=e.x||0,o=e.y||0,(s=e.radius)&&(a=(e.theta||0)-Math.PI/2,r+=s*Math.cos(a),o+=s*Math.sin(a)),e.angle&&(t.save(),t.translate(r,o),t.rotate(e.angle*Math.PI/180),r=o=0),r+=e.dx||0,o+=(e.dy||0)+ie(e),e.fill&&ut(t,e,i)&&t.fillText(u,r,o),e.stroke&&ht(t,e,i)&&t.strokeText(u,r,o),e.angle&&t.restore())})},pick:_t(function(t,e,n,i,r,o){if(e.fontSize<=0)return!1;if(!e.angle)return!0;var s=se(oe,e,!0),a=-e.angle*Math.PI/180,u=Math.cos(a),l=Math.sin(a),h=e.x,c=e.y,f=u*r-l*o+(h-h*u+c*l),d=l*r+u*o+(c-h*l-c*u);return s.contains(f,d)})},trail:Tt("trail",function(t,e){return Z.context(t)(e)})},ue=function(t,e,n){var i=ae[t.mark.marktype],r=e||i.bound;return i.nested&&(t=t.mark),r(t.bounds||(t.bounds=new s),t,n)},le={mark:null},he=function(t,e,n){var i,r,o,a,u=ae[t.marktype],l=u.bound,h=t.items,c=h&&h.length;if(u.nested)return c?o=h[0]:(le.mark=t,o=le),a=ue(o,l,n),e=e&&e.union(a)||a;if(e=e||t.bounds&&t.bounds.clear()||new s,c)for(i=0,r=h.length;i<r;++i)e.union(ue(h[i],l,n));return t.bounds=e},ce=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","interpolate","tension","orient","defined","url","path","x2","y2","size","shape","text","angle","theta","radius","dx","dy","font","fontSize","fontWeight","fontStyle","fontVariant"];function fe(t,e){return JSON.stringify(t,ce,e)}function de(t){return function t(e){var n,i,r,o=e.marktype,s=e.items;if(s)for(i=0,r=s.length;i<r;++i)n=o?"mark":"group",s[i][n]=e,s[i].zindex&&(s[i][n].zdirty=!0),"group"===(o||n)&&t(s[i]);o&&he(e);return e}("string"==typeof t?JSON.parse(t):t)}function ve(t){arguments.length?this.root=de(t):(this.root=pe({marktype:"group",name:"root",role:"frame"}),this.root.items=[new h(this.root)])}var ge=ve.prototype;function pe(t,e){return{bounds:new s,clip:!!t.clip,group:e,interactive:!1!==t.interactive,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0}}function ye(t,e,n){return!t&&"undefined"!=typeof document&&document.createElement&&(t=document),t?n?t.createElementNS(n,e):t.createElement(e):null}function _e(t,e){e=e.toLowerCase();for(var n=t.childNodes,i=0,r=n.length;i<r;++i)if(n[i].tagName.toLowerCase()===e)return n[i]}function me(t,e,n,i){var r,o=t.childNodes[e];return o&&o.tagName.toLowerCase()===n.toLowerCase()||(r=o||null,o=ye(t.ownerDocument,n,i),t.insertBefore(o,r)),o}function xe(t,e){for(var n=t.childNodes,i=n.length;i>e;)t.removeChild(n[--i]);return t}function be(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function ke(t,e){this._active=null,this._handlers={},this._loader=t||i.loader(),this._tooltip=e||we}function we(t,e,n,i){t.element().setAttribute("title",i||"")}ge.toJSON=function(t){return fe(this.root,t||0)},ge.mark=function(t,e,n){var i=pe(t,e=e||this.root.items[0]);return e.items[n]=i,i.zindex&&(i.group.zdirty=!0),i};var Me=ke.prototype;function Te(t){this._el=null,this._bgcolor=null,this._loader=new c(t)}Me.initialize=function(t,e,n){return this._el=t,this._obj=n||null,this.origin(e)},Me.element=function(){return this._el},Me.origin=function(t){return this._origin=t||[0,0],this},Me.scene=function(t){return arguments.length?(this._scene=t,this):this._scene},Me.on=function(){},Me.off=function(){},Me._handlerIndex=function(t,e,n){for(var i=t?t.length:0;--i>=0;)if(t[i].type===e&&!n||t[i].handler===n)return i;return-1},Me.handlers=function(){var t,e=this._handlers,n=[];for(t in e)n.push.apply(n,e[t]);return n},Me.eventName=function(t){var e=t.indexOf(".");return e<0?t:t.slice(0,e)},Me.handleHref=function(t,e,n){this._loader.sanitize(n,{context:"href"}).then(function(e){var n=new MouseEvent(t.type,t),i=ye(null,"a");for(var r in e)i.setAttribute(r,e[r]);i.dispatchEvent(n)}).catch(function(){})},Me.handleTooltip=function(t,e,n){e&&null!=e.tooltip&&this._tooltip.call(this._obj,this,t,e,n?e.tooltip:null)};var Ae=Te.prototype;Ae.initialize=function(t,e,n,i,r){return this._el=t,this.resize(e,n,i,r)},Ae.element=function(){return this._el},Ae.scene=function(){return this._el&&this._el.firstChild},Ae.background=function(t){return 0===arguments.length?this._bgcolor:(this._bgcolor=t,this)},Ae.resize=function(t,e,n,i){return this._width=t,this._height=e,this._origin=n||[0,0],this._scale=i||1,this},Ae.dirty=function(){},Ae.render=function(t){var e=this;return e._call=function(){e._render(t)},e._call(),e._call=null,e},Ae._render=function(){},Ae.renderAsync=function(t){var e=this.render(t);return this._ready?this._ready.then(function(){return e}):Promise.resolve(e)},Ae._load=function(t,e){var n=this,i=n._loader[t](e);if(!n._ready){var r=n._call;n._ready=n._loader.ready().then(function(t){t&&r(),n._ready=null})}return i},Ae.sanitizeURL=function(t){return this._load("sanitizeURL",t)},Ae.loadImage=function(t){return this._load("loadImage",t)};var Ce=function(t,e){var n=e.getBoundingClientRect();return[t.clientX-n.left-(e.clientLeft||0),t.clientY-n.top-(e.clientTop||0)]};function ze(t,e){ke.call(this,t,e),this._down=null,this._touch=null,this._first=!0}var Pe=e.inherits(ze,ke);function Se(t,e,n){return function(i){var r=this._active,o=this.pickEvent(i);o===r?this.fire(t,i):(r&&r.exit||this.fire(n,i),this._active=o,this.fire(e,i),this.fire(t,i))}}function Le(t){return function(e){this.fire(t,e),this._active=null}}Pe.initialize=function(t,e,n){var i=this._canvas=t&&_e(t,"canvas");if(i){var r=this;this.events.forEach(function(t){i.addEventListener(t,function(e){Pe[t]?Pe[t].call(r,e):r.fire(t,e)})})}return ke.prototype.initialize.call(this,t,e,n)},Pe.canvas=function(){return this._canvas},Pe.context=function(){return this._canvas.getContext("2d")},Pe.events=["keydown","keypress","keyup","dragenter","dragleave","dragover","mousedown","mouseup","mousemove","mouseout","mouseover","click","dblclick","wheel","mousewheel","touchstart","touchmove","touchend"],Pe.DOMMouseScroll=function(t){this.fire("mousewheel",t)},Pe.mousemove=Se("mousemove","mouseover","mouseout"),Pe.dragover=Se("dragover","dragenter","dragleave"),Pe.mouseout=Le("mouseout"),Pe.dragleave=Le("dragleave"),Pe.mousedown=function(t){this._down=this._active,this.fire("mousedown",t)},Pe.click=function(t){this._down===this._active&&(this.fire("click",t),this._down=null)},Pe.touchstart=function(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire("touchstart",t,!0)},Pe.touchmove=function(t){this.fire("touchmove",t,!0)},Pe.touchend=function(t){this.fire("touchend",t,!0),this._touch=null},Pe.fire=function(t,e,n){var i,r,o=n?this._touch:this._active,s=this._handlers[t];if(e.vegaType=t,"click"===t&&o&&o.href?this.handleHref(e,o,o.href):"mouseover"!==t&&"mouseout"!==t||this.handleTooltip(e,o,"mouseover"===t),s)for(i=0,r=s.length;i<r;++i)s[i].handler.call(this._obj,e,o)},Pe.on=function(t,e){var n=this.eventName(t),i=this._handlers;return this._handlerIndex(i[n],t,e)<0&&(i[n]||(i[n]=[])).push({type:t,handler:e}),this},Pe.off=function(t,e){var n=this.eventName(t),i=this._handlers[n],r=this._handlerIndex(i,t,e);return r>=0&&i.splice(r,1),this},Pe.pickEvent=function(t){var e=Ce(t,this._canvas),n=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-n[0],e[1]-n[1])},Pe.pick=function(t,e,n,i,r){var o=this.context();return ae[t.marktype].pick.call(this,o,t,e,n,i,r)};var Ie="undefined"!=typeof window&&window.devicePixelRatio||1;function Re(t){Te.call(this,t),this._redraw=!1,this._dirty=new s}var qe=e.inherits(Re,Te),Ne=Te.prototype,Oe=new s;function Ee(t,e){ke.call(this,t,e);var n=this;n._hrefHandler=Ve(n,function(t,e){e&&e.href&&n.handleHref(t,e,e.href)}),n._tooltipHandler=Ve(n,function(t,e){n.handleTooltip(t,e,"mouseover"===t.type)})}qe.initialize=function(t,e,i,r,o){return this._canvas=n.canvas(1,1),t&&(xe(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),Ne.initialize.call(this,t,e,i,r,o)},qe.resize=function(t,e,n,i){var r,o,s,a,u,l,h,c;return Ne.resize.call(this,t,e,n,i),r=this._canvas,o=this._width,s=this._height,a=this._origin,u=this._scale,l="undefined"!=typeof HTMLElement&&r instanceof HTMLElement&&null!=r.parentNode,h=r.getContext("2d"),c=l?Ie:u,r.width=o*c,r.height=s*c,l&&1!==c&&(r.style.width=o+"px",r.style.height=s+"px"),h.pixelRatio=c,h.setTransform(c,0,0,c,c*a[0],c*a[1]),this._redraw=!0,this},qe.canvas=function(){return this._canvas},qe.context=function(){return this._canvas?this._canvas.getContext("2d"):null},qe.dirty=function(t){var e=function(t,e){if(null==e)return t;for(var n=Oe.clear().union(t);null!=e;e=e.mark.group)n.translate(e.x||0,e.y||0);return n}(t.bounds,t.mark.group);this._dirty.union(e)},qe._render=function(t){var e,n,i,r=this.context(),o=this._origin,s=this._width,a=this._height,u=this._dirty;return r.save(),this._redraw||u.empty()?(this._redraw=!1,u=null):(e=r,i=o,(n=u).expand(1).round(),n.translate(-i[0]%1,-i[1]%1),e.beginPath(),e.rect(n.x1,n.y1,n.width(),n.height()),e.clip(),u=n),this.clear(-o[0],-o[1],s,a),this.draw(r,t,u),r.restore(),this._dirty.clear(),this},qe.draw=function(t,n,i){var r=ae[n.marktype];n.clip&&function(t,n){var i=n.clip;if(t.save(),t.beginPath(),e.isFunction(i))i(t);else{var r=n.group;t.rect(0,0,r.width||0,r.height||0)}t.clip()}(t,n),r.draw.call(this,t,n,i),n.clip&&t.restore()},qe.clear=function(t,e,n,i){var r=this.context();r.clearRect(t,e,n,i),null!=this._bgcolor&&(r.fillStyle=this._bgcolor,r.fillRect(t,e,n,i))};var De=e.inherits(Ee,ke);function Ve(t,e){return function(n){var i=n.target.__data__;n.vegaType=n.type,i=Array.isArray(i)?i[0]:i,e.call(t._obj,n,i)}}function He(t,e,n){var i,r,o="<"+t;if(e)for(i in e)null!=(r=e[i])&&(o+=" "+i+'="'+r+'"');return n&&(o+=" "+n),o+">"}function Ge(t){return"</"+t+">"}De.initialize=function(t,e,n){var i=this._svg;return i&&(i.removeEventListener("click",this._hrefHandler),i.removeEventListener("mouseover",this._tooltipHandler),i.removeEventListener("mouseout",this._tooltipHandler)),this._svg=i=t&&_e(t,"svg"),i&&(i.addEventListener("click",this._hrefHandler),i.addEventListener("mouseover",this._tooltipHandler),i.addEventListener("mouseout",this._tooltipHandler)),ke.prototype.initialize.call(this,t,e,n)},De.svg=function(){return this._svg},De.on=function(t,e){var n=this.eventName(t),i=this._handlers;if(this._handlerIndex(i[n],t,e)<0){var r={type:t,handler:e,listener:Ve(this,e)};(i[n]||(i[n]=[])).push(r),this._svg&&this._svg.addEventListener(n,r.listener)}return this},De.off=function(t,e){var n=this.eventName(t),i=this._handlers[n],r=this._handlerIndex(i,t,e);return r>=0&&(this._svg&&this._svg.removeEventListener(n,i[r].listener),i.splice(r,1)),this};var We={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},je={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},Be=Object.keys(je),Ue=We.xmlns;function Xe(t){Te.call(this,t),this._dirtyID=1,this._dirty=[],this._svg=null,this._root=null,this._defs=null}var Je=e.inherits(Xe,Te),Fe=Te.prototype;function Qe(t,e,n){var i,r,o;for((t=me(t,n,"linearGradient",Ue)).setAttribute("id",e.id),t.setAttribute("x1",e.x1),t.setAttribute("x2",e.x2),t.setAttribute("y1",e.y1),t.setAttribute("y2",e.y2),i=0,r=e.stops.length;i<r;++i)(o=me(t,i,"stop",Ue)).setAttribute("offset",e.stops[i].offset),o.setAttribute("stop-color",e.stops[i].color);xe(t,i)}function Ye(t,e,n){var i;(t=me(t,n,"clipPath",Ue)).setAttribute("id",e.id),e.path?(i=me(t,0,"path",Ue)).setAttribute("d",e.path):((i=me(t,0,"rect",Ue)).setAttribute("x",0),i.setAttribute("y",0),i.setAttribute("width",e.width),i.setAttribute("height",e.height))}function Ze(t,e){for(;t&&t.dirty!==e;t=t.mark.group){if(t.dirty=e,!t.mark||t.mark.dirty===e)return;t.mark.dirty=e}}function $e(t,e,n,i,r){var o,s,a,u=t._svg;if(!u&&(u=ye(o=e.ownerDocument,i,Ue),t._svg=u,t.mark&&(u.__data__=t,u.__values__={fill:"default"},"g"===i))){var l=ye(o,"path",Ue);l.setAttribute("class","background"),u.appendChild(l),l.__data__=t;var h=ye(o,"g",Ue);u.appendChild(h),h.__data__=t}return(u.ownerSVGElement!==r||(a=(s=t).mark||s.group)&&a.items.length>1&&u.previousSibling!==n)&&e.insertBefore(u,n?n.nextSibling:e.firstChild),u}Je.initialize=function(t,e,n,i){return t&&(this._svg=me(t,0,"svg",Ue),this._svg.setAttribute("class","marks"),xe(t,1),this._root=me(this._svg,0,"g",Ue),xe(this._svg,1)),this._defs={gradient:{},clipping:{}},this.background(this._bgcolor),Fe.initialize.call(this,t,e,n,i)},Je.background=function(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),Fe.background.apply(this,arguments)},Je.resize=function(t,e,n,i){return Fe.resize.call(this,t,e,n,i),this._svg&&(this._svg.setAttribute("width",this._width*this._scale),this._svg.setAttribute("height",this._height*this._scale),this._svg.setAttribute("viewBox","0 0 "+this._width+" "+this._height),this._root.setAttribute("transform","translate("+this._origin+")")),this._dirty=[],this},Je.svg=function(){if(!this._svg)return null;var t={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var e in We)t[e]=We[e];var n=this._bgcolor?He("rect",{width:this._width,height:this._height,style:"fill: "+this._bgcolor+";"})+Ge("rect"):"";return He("svg",t)+n+this._svg.innerHTML+Ge("svg")},Je._render=function(t){return this._dirtyCheck()&&(this._dirtyAll&&this._resetDefs(),this.draw(this._root,t),xe(this._root,1)),this.updateDefs(),this._dirty=[],++this._dirtyID,this},Je.updateDefs=function(){var t,e=this._svg,n=this._defs,i=n.el,r=0;for(t in n.gradient)i||(n.el=i=me(e,0,"defs",Ue)),Qe(i,n.gradient[t],r++);for(t in n.clipping)i||(n.el=i=me(e,0,"defs",Ue)),Ye(i,n.clipping[t],r++);i&&(0===r?(e.removeChild(i),n.el=null):xe(i,r))},Je._resetDefs=function(){var t=this._defs;t.gradient={},t.clipping={}},Je.dirty=function(t){t.dirty!==this._dirtyID&&(t.dirty=this._dirtyID,this._dirty.push(t))},Je.isDirty=function(t){return this._dirtyAll||!t._svg||t.dirty===this._dirtyID},Je._dirtyCheck=function(){this._dirtyAll=!0;var t=this._dirty;if(!t.length)return!0;var e,n,i,r,o,s,a,u=++this._dirtyID;for(o=0,s=t.length;o<s;++o)(n=(e=t[o]).mark).marktype!==i&&(i=n.marktype,r=ae[i]),n.zdirty&&n.dirty!==u&&(this._dirtyAll=!1,Ze(e,u),n.items.forEach(function(t){t.dirty=u})),n.zdirty||(e.exit?(r.nested&&n.items.length?(a=n.items[0])._svg&&this._update(r,a._svg,a):e._svg&&(a=e._svg.parentNode)&&a.removeChild(e._svg),e._svg=null):(e=r.nested?n.items[0]:e)._update!==u&&(e._svg&&e._svg.ownerSVGElement?this._update(r,e._svg,e):(this._dirtyAll=!1,Ze(e,u)),e._update=u));return!this._dirtyAll},Je.draw=function(t,e,n){if(!this.isDirty(e))return e._svg;var i,r=this,o=this._svg,s=ae[e.marktype],a=!1===e.interactive?"none":null,u="g"===s.tag,l=null,h=0;function c(t){var e=r.isDirty(t),n=$e(t,i,l,s.tag,o);e&&(r._update(s,n,t),u&&function(t,e,n){e=e.lastChild;var i,r=0;dt(n,function(n){i=t.draw(e,n,i),++r}),xe(e,1+r)}(r,n,t)),l=n,++h}return(i=$e(e,t,n,"g",o)).setAttribute("class",be(e)),u||i.style.setProperty("pointer-events",a),e.clip?i.setAttribute("clip-path",zt(r,e,e.group)):i.removeAttribute("clip-path"),s.nested?e.items.length&&c(e.items[0]):dt(e,c),xe(i,h),i};var Ke=null,tn=null,en={group:function(t,e,n){tn=e.__values__,Ke=e.childNodes[1],t.foreground(nn,n,this),Ke=e.childNodes[0],t.background(nn,n,this);var i=!1===n.mark.interactive?"none":null;i!==tn.events&&(Ke.style.setProperty("pointer-events",i),tn.events=i)},text:function(t,e,n){var i=ee(n);i!==tn.text&&(e.textContent=i,tn.text=i),(i=ne(n))!==tn.font&&(e.style.setProperty("font",i),tn.font=i)}};function nn(t,e,n){e!==tn[t]&&(null!=e?n?Ke.setAttributeNS(n,t,e):Ke.setAttribute(t,e):n?Ke.removeAttributeNS(n,t):Ke.removeAttribute(t),tn[t]=e)}function rn(t){Te.call(this,t),this._text={head:"",bg:"",root:"",foot:"",defs:"",body:""},this._defs={gradient:{},clipping:{}}}Je._update=function(t,e,n){Ke=e,tn=e.__values__,t.attr(nn,n,this);var i=en[t.type];i&&i.call(this,t,e,n),this.style(Ke,n)},Je.style=function(t,e){var n,i,r,o,s,a;if(null!=e)for(n=0,i=Be.length;n<i;++n)(s=e[r=Be[n]])!==tn[r]&&(o=je[r],null==s?"fill"===o?t.style.setProperty(o,"none"):t.style.removeProperty(o):(s.id&&(this._defs.gradient[s.id]=s,s="url("+(a=void 0,"undefined"==typeof window?"":(a=window.location).hash?a.href.slice(0,-a.hash.length):a.href)+"#"+s.id+")"),t.style.setProperty(o,s+"")),tn[r]=s)};var on,sn=e.inherits(rn,Te),an=Te.prototype;function un(t,e,n,i){on[i||t]=e}function ln(t,e,n,i){if(null==t)return"";var r,o,s,a,u,l="";for("bgrect"===n&&!1===e.interactive&&(l+="pointer-events: none; "),"text"===n&&(l+="font: "+ne(t)+"; "),r=0,o=Be.length;r<o;++r)s=Be[r],a=je[s],null==(u=t[s])?"fill"===a&&(l+="fill: none; "):"transparent"!==u||"fill"!==a&&"stroke"!==a?(u.id&&(i.gradient[u.id]=u,u="url(#"+u.id+")"),l+=a+": "+u+"; "):l+=a+": none; ";return l?'style="'+l.trim()+'"':null}sn.resize=function(t,e,n,i){an.resize.call(this,t,e,n,i);var r=this._origin,o=this._text,s={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var a in We)s[a]=We[a];o.head=He("svg",s);var u=this._bgcolor;return"transparent"!==u&&"none"!==u||(u=null),o.bg=u?He("rect",{width:this._width,height:this._height,style:"fill: "+u+";"})+Ge("rect"):"",o.root=He("g",{transform:"translate("+r+")"}),o.foot=Ge("g")+Ge("svg"),this},sn.background=function(){var t=an.background.apply(this,arguments);return arguments.length&&this._text.head&&this.resize(this._width,this._height,this._origin,this._scale),t},sn.svg=function(){var t=this._text;return t.head+t.bg+t.defs+t.root+t.body+t.foot},sn._render=function(t){return this._text.body=this.mark(t),this._text.defs=this.buildDefs(),this},sn.buildDefs=function(){var t,e,n,i,r=this._defs,o="";for(e in r.gradient){for(i=(n=r.gradient[e]).stops,o+=He("linearGradient",{id:e,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2}),t=0;t<i.length;++t)o+=He("stop",{offset:i[t].offset,"stop-color":i[t].color})+Ge("stop");o+=Ge("linearGradient")}for(e in r.clipping)n=r.clipping[e],o+=He("clipPath",{id:e}),n.path?o+=He("path",{d:n.path})+Ge("path"):o+=He("rect",{x:0,y:0,width:n.width,height:n.height})+Ge("rect"),o+=Ge("clipPath");return o.length>0?He("defs")+o+Ge("defs"):""},sn.attributes=function(t,e){return on={},t(un,e,this),on},sn.href=function(t){var e,n=this,i=t.href;if(i){if(e=n._hrefs&&n._hrefs[i])return e;n.sanitizeURL(i).then(function(t){t["xlink:href"]=t.href,t.href=null,(n._hrefs||(n._hrefs={}))[i]=t})}return null},sn.mark=function(t){var e,n=this,i=ae[t.marktype],r=i.tag,o=this._defs,s="";function a(a){var u=n.href(a);u&&(s+=He("a",u)),e="g"!==r?ln(a,t,r,o):null,s+=He(r,n.attributes(i.attr,a),e),"text"===r?s+=ee(a).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):"g"===r&&(s+=He("path",n.attributes(i.background,a),ln(a,t,"bgrect",o))+Ge("path"),s+=He("g",n.attributes(i.foreground,a))+n.markGroup(a)+Ge("g")),s+=Ge(r),u&&(s+=Ge("a"))}return"g"!==r&&!1===t.interactive&&(e='style="pointer-events: none;"'),s+=He("g",{class:be(t),"clip-path":t.clip?zt(n,t,t.group):null},e),i.nested?t.items&&t.items.length&&a(t.items[0]):dt(t,a),s+Ge("g")},sn.markGroup=function(t){var e=this,n="";return dt(t,function(t){n+=e.mark(t)}),n};var hn={Canvas:"canvas",PNG:"png",SVG:"svg",None:"none"},cn={};cn.canvas=cn.png={renderer:Re,headless:Re,handler:ze},cn.svg={renderer:Xe,headless:rn,handler:Ee},cn.none={};var fn=new s,dn=1e-9;function vn(t,n,i){return t===n||("path"===i?gn(t,n):t instanceof Date&&n instanceof Date?+t==+n:e.isNumber(t)&&e.isNumber(n)?Math.abs(t-n)<=dn:t&&n&&(e.isObject(t)||e.isObject(n))?null!=t&&null!=n&&function(t,e){var n,i,r=Object.keys(t),o=Object.keys(e);if(r.length!==o.length)return!1;for(r.sort(),o.sort(),i=r.length-1;i>=0;i--)if(r[i]!=o[i])return!1;for(i=r.length-1;i>=0;i--)if(n=r[i],!vn(t[n],e[n],n))return!1;return typeof t==typeof e}(t,n):t==n)}function gn(t,e){return vn(m(t),m(e))}t.Bounds=s,t.Gradient=function(t,e){var n,i=[];return n={id:"gradient_"+u++,x1:t?t[0]:0,y1:t?t[1]:0,x2:e?e[0]:1,y2:e?e[1]:0,stops:i,stop:function(t,e){return i.push({offset:t,color:e}),n}}},t.GroupItem=h,t.ResourceLoader=c,t.Item=l,t.Scenegraph=ve,t.Handler=ke,t.Renderer=Te,t.CanvasHandler=ze,t.CanvasRenderer=Re,t.SVGHandler=Ee,t.SVGRenderer=Xe,t.SVGStringRenderer=rn,t.RenderType=hn,t.renderModule=function(t,e){return t=String(t||"").toLowerCase(),arguments.length>1?(cn[t]=e,this):cn[t]},t.Marks=ae,t.boundClip=function(t){var n=t.clip;if(e.isFunction(n))n(rt(fn.clear()));else{if(!n)return;fn.set(0,0,t.group.width,t.group.height)}t.bounds.intersect(fn)},t.boundContext=rt,t.boundStroke=tt,t.boundItem=ue,t.boundMark=he,t.pathCurves=p,t.pathSymbols=L,t.pathRectangle=D,t.pathTrail=H,t.pathParse=m,t.pathRender=A,t.point=Ce,t.domCreate=ye,t.domFind=_e,t.domChild=me,t.domClear=xe,t.openTag=He,t.closeTag=Ge,t.font=ne,t.textMetrics=Ft,t.resetSVGClipId=function(){Ct=1},t.sceneEqual=vn,t.pathEqual=gn,t.sceneToJSON=fe,t.sceneFromJSON=de,t.sceneZOrder=ft,t.sceneVisit=dt,t.scenePickVisit=vt,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("vega-util"),require("vega-canvas"),require("vega-loader"),require("d3-shape"),require("d3-path")):"function"==typeof define&&define.amd?define(["exports","vega-util","vega-canvas","vega-loader","d3-shape","d3-path"],e):e(t.vega={},t.vega,t.vega,t.vega,t.d3,t.d3)}(this,function(t,s,o,n,e,y){"use strict";function c(t){this.clear(),t&&this.union(t)}var i=c.prototype;i.clone=function(){return new c(this)},i.clear=function(){return this.x1=+Number.MAX_VALUE,this.y1=+Number.MAX_VALUE,this.x2=-Number.MAX_VALUE,this.y2=-Number.MAX_VALUE,this},i.empty=function(){return this.x1===+Number.MAX_VALUE&&this.y1===+Number.MAX_VALUE&&this.x2===-Number.MAX_VALUE&&this.y2===-Number.MAX_VALUE},i.set=function(t,e,n,i){return n<t?(this.x2=t,this.x1=n):(this.x1=t,this.x2=n),i<e?(this.y2=e,this.y1=i):(this.y1=e,this.y2=i),this},i.add=function(t,e){return t<this.x1&&(this.x1=t),e<this.y1&&(this.y1=e),t>this.x2&&(this.x2=t),e>this.y2&&(this.y2=e),this},i.expand=function(t){return this.x1-=t,this.y1-=t,this.x2+=t,this.y2+=t,this},i.round=function(){return this.x1=Math.floor(this.x1),this.y1=Math.floor(this.y1),this.x2=Math.ceil(this.x2),this.y2=Math.ceil(this.y2),this},i.translate=function(t,e){return this.x1+=t,this.x2+=t,this.y1+=e,this.y2+=e,this},i.rotate=function(t,e,n){var i=Math.cos(t),r=Math.sin(t),o=e-e*i+n*r,a=n-e*r-n*i,s=this.x1,u=this.x2,l=this.y1,h=this.y2;return this.clear().add(i*s-r*l+o,r*s+i*l+a).add(i*s-r*h+o,r*s+i*h+a).add(i*u-r*l+o,r*u+i*l+a).add(i*u-r*h+o,r*u+i*h+a)},i.union=function(t){return t.x1<this.x1&&(this.x1=t.x1),t.y1<this.y1&&(this.y1=t.y1),t.x2>this.x2&&(this.x2=t.x2),t.y2>this.y2&&(this.y2=t.y2),this},i.intersect=function(t){return t.x1>this.x1&&(this.x1=t.x1),t.y1>this.y1&&(this.y1=t.y1),t.x2<this.x2&&(this.x2=t.x2),t.y2<this.y2&&(this.y2=t.y2),this},i.encloses=function(t){return t&&this.x1<=t.x1&&this.x2>=t.x2&&this.y1<=t.y1&&this.y2>=t.y2},i.alignsWith=function(t){return t&&(this.x1==t.x1||this.x2==t.x2||this.y1==t.y1||this.y2==t.y2)},i.intersects=function(t){return t&&!(this.x2<t.x1||this.x1>t.x2||this.y2<t.y1||this.y1>t.y2)},i.contains=function(t,e){return!(t<this.x1||t>this.x2||e<this.y1||e>this.y2)},i.width=function(){return this.x2-this.x1},i.height=function(){return this.y2-this.y1};var r=0;function a(t){this.mark=t,this.bounds=this.bounds||new c}function u(t){a.call(this,t),this.items=this.items||[]}function l(t){this._pending=0,this._loader=t||n.loader()}s.inherits(u,a);var h=l.prototype;function f(t){t._pending+=1}function d(t){t._pending-=1}h.pending=function(){return this._pending},h.sanitizeURL=function(t){var e=this;return f(e),e._loader.sanitize(t,{context:"href"}).then(function(t){return d(e),t}).catch(function(){return d(e),null})},h.loadImage=function(t){var i=this,r=o.image();return f(i),i._loader.sanitize(t,{context:"image"}).then(function(t){var e=t.href;if(!e||!r)throw{url:e};var n=new r;return n.onload=function(){d(i),n.loaded=!0},n.onerror=function(){d(i),n.loaded=!1},n.src=e,n}).catch(function(t){return d(i),{loaded:!1,width:0,height:0,src:t&&t.url||""}})},h.ready=function(){var i=this;return new Promise(function(n){!function t(e){i.pending()?setTimeout(function(){t(!0)},10):n(e)}(!1)})};var v={basis:{curve:e.curveBasis},"basis-closed":{curve:e.curveBasisClosed},"basis-open":{curve:e.curveBasisOpen},bundle:{curve:e.curveBundle,tension:"beta",value:.85},cardinal:{curve:e.curveCardinal,tension:"tension",value:0},"cardinal-open":{curve:e.curveCardinalOpen,tension:"tension",value:0},"cardinal-closed":{curve:e.curveCardinalClosed,tension:"tension",value:0},"catmull-rom":{curve:e.curveCatmullRom,tension:"alpha",value:.5},"catmull-rom-closed":{curve:e.curveCatmullRomClosed,tension:"alpha",value:.5},"catmull-rom-open":{curve:e.curveCatmullRomOpen,tension:"alpha",value:.5},linear:{curve:e.curveLinear},"linear-closed":{curve:e.curveLinearClosed},monotone:{horizontal:e.curveMonotoneY,vertical:e.curveMonotoneX},natural:{curve:e.curveNatural},step:{curve:e.curveStep},"step-after":{curve:e.curveStepAfter},"step-before":{curve:e.curveStepBefore}};function g(t,e,n){var i=v.hasOwnProperty(t)&&v[t],r=null;return i&&(r=i.curve||i[e||"vertical"],i.tension&&null!=n&&(r=r[i.tension](n))),r}var p={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},_=[/([MLHVCSQTAZmlhvcsqtaz])/g,/###/,/(\d)([-+])/g,/\s|,|###/];function m(t){var e,n,i,r,o,a,s,u,l,h,c,f=[];for(u=0,h=(e=t.slice().replace(_[0],"###$1").split(_[1]).slice(1)).length;u<h;++u){for(i=(n=e[u]).slice(1).trim().replace(_[2],"$1###$2").split(_[3]),r=[a=n.charAt(0)],l=0,c=i.length;l<c;++l)(o=+i[l])===o&&r.push(o);if(s=p[a.toLowerCase()],r.length-1>s)for(l=1,c=r.length;l<c;l+=s)f.push([a].concat(r.slice(l,l+s)));else f.push(r)}return f}var N={},C={},O=[].join;function x(t){var e=O.call(t);if(C[e])return C[e];var n=t[0],i=t[1],r=t[2],o=t[3],a=t[4],s=t[5],u=t[6],l=t[7],h=l*a,c=-u*s,f=u*a,d=l*s,v=Math.cos(r),g=Math.sin(r),p=Math.cos(o),y=Math.sin(o),_=.5*(o-r),m=Math.sin(.5*_),x=8/3*m*m/Math.sin(_),b=n+v-x*g,k=i+g+x*v,w=n+p,M=i+y,T=w+x*y,A=M-x*p;return C[e]=[h*b+c*k,f*b+d*k,h*T+c*A,f*T+d*A,h*w+c*M,f*w+d*M]}var b=["l",0,0,0,0,0,0,0];function k(t,e){var n=b[0]=t[0];if("a"===n||"A"===n)b[1]=e*t[1],b[2]=e*t[2],b[6]=e*t[6],b[7]=e*t[7];else for(var i=1,r=t.length;i<r;++i)b[i]=e*t[i];return b}function w(t,e,n,i,r){var o,a,s,u,l,h=null,c=0,f=0,d=0,v=0;null==n&&(n=0),null==i&&(i=0),null==r&&(r=1),t.beginPath&&t.beginPath();for(var g=0,p=e.length;g<p;++g){switch(o=e[g],1!==r&&(o=k(o,r)),o[0]){case"l":c+=o[1],f+=o[2],t.lineTo(c+n,f+i);break;case"L":c=o[1],f=o[2],t.lineTo(c+n,f+i);break;case"h":c+=o[1],t.lineTo(c+n,f+i);break;case"H":c=o[1],t.lineTo(c+n,f+i);break;case"v":f+=o[1],t.lineTo(c+n,f+i);break;case"V":f=o[1],t.lineTo(c+n,f+i);break;case"m":c+=o[1],f+=o[2],t.moveTo(c+n,f+i);break;case"M":c=o[1],f=o[2],t.moveTo(c+n,f+i);break;case"c":a=c+o[5],s=f+o[6],d=c+o[3],v=f+o[4],t.bezierCurveTo(c+o[1]+n,f+o[2]+i,d+n,v+i,a+n,s+i),c=a,f=s;break;case"C":c=o[5],f=o[6],d=o[3],v=o[4],t.bezierCurveTo(o[1]+n,o[2]+i,d+n,v+i,c+n,f+i);break;case"s":a=c+o[3],s=f+o[4],d=2*c-d,v=2*f-v,t.bezierCurveTo(d+n,v+i,c+o[1]+n,f+o[2]+i,a+n,s+i),d=c+o[1],v=f+o[2],c=a,f=s;break;case"S":a=o[3],s=o[4],d=2*c-d,v=2*f-v,t.bezierCurveTo(d+n,v+i,o[1]+n,o[2]+i,a+n,s+i),c=a,f=s,d=o[1],v=o[2];break;case"q":a=c+o[3],s=f+o[4],d=c+o[1],v=f+o[2],t.quadraticCurveTo(d+n,v+i,a+n,s+i),c=a,f=s;break;case"Q":a=o[3],s=o[4],t.quadraticCurveTo(o[1]+n,o[2]+i,a+n,s+i),c=a,f=s,d=o[1],v=o[2];break;case"t":a=c+o[1],s=f+o[2],null===h[0].match(/[QqTt]/)?(d=c,v=f):"t"===h[0]?(d=2*c-u,v=2*f-l):"q"===h[0]&&(d=2*c-d,v=2*f-v),u=d,l=v,t.quadraticCurveTo(d+n,v+i,a+n,s+i),f=s,d=(c=a)+o[1],v=f+o[2];break;case"T":a=o[1],s=o[2],d=2*c-d,v=2*f-v,t.quadraticCurveTo(d+n,v+i,a+n,s+i),c=a,f=s;break;case"a":M(t,c+n,f+i,[o[1],o[2],o[3],o[4],o[5],o[6]+c+n,o[7]+f+i]),c+=o[6],f+=o[7];break;case"A":M(t,c+n,f+i,[o[1],o[2],o[3],o[4],o[5],o[6]+n,o[7]+i]),c=o[6],f=o[7];break;case"z":case"Z":t.closePath()}h=o}}function M(t,e,n,i){for(var r=function(t,e,n,i,r,o,a,s,u){var l=O.call(arguments);if(N[l])return N[l];var h=a*(Math.PI/180),c=Math.sin(h),f=Math.cos(h),d=f*(s-t)*.5+c*(u-e)*.5,v=f*(u-e)*.5-c*(s-t)*.5,g=d*d/((n=Math.abs(n))*n)+v*v/((i=Math.abs(i))*i);1<g&&(n*=g=Math.sqrt(g),i*=g);var p=f/n,y=c/n,_=-c/i,m=f/i,x=p*s+y*u,b=_*s+m*u,k=p*t+y*e,w=_*t+m*e,M=1/((k-x)*(k-x)+(w-b)*(w-b))-.25;M<0&&(M=0);var T=Math.sqrt(M);o==r&&(T=-T);var A=.5*(x+k)-T*(w-b),C=.5*(b+w)+T*(k-x),z=Math.atan2(b-C,x-A),P=Math.atan2(w-C,k-A)-z;P<0&&1===o?P+=2*Math.PI:0<P&&0===o&&(P-=2*Math.PI);for(var S=Math.ceil(Math.abs(P/(.5*Math.PI+.001))),L=[],R=0;R<S;++R){var I=z+R*P/S,q=z+(R+1)*P/S;L[R]=[A,C,I,q,n,i,c,f]}return N[l]=L}(i[5],i[6],i[0],i[1],i[3],i[4],i[2],e,n),o=0;o<r.length;++o){var a=x(r[o]);t.bezierCurveTo(a[0],a[1],a[2],a[3],a[4],a[5])}}var T=2*Math.PI,A=Math.sqrt(3)/2,z={circle:{draw:function(t,e){var n=Math.sqrt(e)/2;t.moveTo(n,0),t.arc(0,0,n,0,T)}},cross:{draw:function(t,e){var n=Math.sqrt(e)/2,i=n/2.5;t.moveTo(-n,-i),t.lineTo(-n,i),t.lineTo(-i,i),t.lineTo(-i,n),t.lineTo(i,n),t.lineTo(i,i),t.lineTo(n,i),t.lineTo(n,-i),t.lineTo(i,-i),t.lineTo(i,-n),t.lineTo(-i,-n),t.lineTo(-i,-i),t.closePath()}},diamond:{draw:function(t,e){var n=Math.sqrt(e)/2;t.moveTo(-n,0),t.lineTo(0,-n),t.lineTo(n,0),t.lineTo(0,n),t.closePath()}},square:{draw:function(t,e){var n=Math.sqrt(e),i=-n/2;t.rect(i,i,n,n)}},"triangle-up":{draw:function(t,e){var n=Math.sqrt(e)/2,i=A*n;t.moveTo(0,-i),t.lineTo(-n,i),t.lineTo(n,i),t.closePath()}},"triangle-down":{draw:function(t,e){var n=Math.sqrt(e)/2,i=A*n;t.moveTo(0,i),t.lineTo(-n,-i),t.lineTo(n,-i),t.closePath()}},"triangle-right":{draw:function(t,e){var n=Math.sqrt(e)/2,i=A*n;t.moveTo(i,0),t.lineTo(-i,-n),t.lineTo(-i,n),t.closePath()}},"triangle-left":{draw:function(t,e){var n=Math.sqrt(e)/2,i=A*n;t.moveTo(-i,0),t.lineTo(i,-n),t.lineTo(i,n),t.closePath()}}};function P(t){return z.hasOwnProperty(t)?z[t]:function(t){if(!S.hasOwnProperty(t)){var n=m(t);S[t]={draw:function(t,e){w(t,n,0,0,Math.sqrt(e)/2)}}}return S[t]}(t)}var S={};function L(t){return t.x}function R(t){return t.y}function I(t){return t.width}function q(t){return t.height}function E(t){return function(){return t}}function D(){var c=L,f=R,d=I,v=q,g=E(0),p=null;function e(t,e,n){var i,r=null!=e?e:+c.call(this,t),o=null!=n?n:+f.call(this,t),a=+d.call(this,t),s=+v.call(this,t),u=+g.call(this,t);if(p||(p=i=y.path()),u<=0)p.rect(r,o,a,s);else{var l=r+a,h=o+s;p.moveTo(r+u,o),p.lineTo(l-u,o),p.quadraticCurveTo(l,o,l,o+u),p.lineTo(l,h-u),p.quadraticCurveTo(l,h,l-u,h),p.lineTo(r+u,h),p.quadraticCurveTo(r,h,r,h-u),p.lineTo(r,o+u),p.quadraticCurveTo(r,o,r+u,o),p.closePath()}if(i)return p=null,i+""||null}return e.x=function(t){return arguments.length?(c="function"==typeof t?t:E(+t),e):c},e.y=function(t){return arguments.length?(f="function"==typeof t?t:E(+t),e):f},e.width=function(t){return arguments.length?(d="function"==typeof t?t:E(+t),e):d},e.height=function(t){return arguments.length?(v="function"==typeof t?t:E(+t),e):v},e.cornerRadius=function(t){return arguments.length?(g="function"==typeof t?t:E(+t),e):g},e.context=function(t){return arguments.length?(p=null==t?null:t,e):p},e}var V=Math.PI;function H(){var a,s,u,l,h,c,f,d,v=null;function g(t,e,n){var i=n/2;if(h){var r=f-e,o=t-c;if(r||o){var a=Math.sqrt(r*r+o*o),s=(r/=a)*d,u=(o/=a)*d,l=Math.atan2(o,r);v.moveTo(c-s,f-u),v.lineTo(t-r*i,e-o*i),v.arc(t,e,i,l-V,l),v.lineTo(c+s,f+u),v.arc(c,f,d,l,l+V)}else v.arc(t,e,i,0,2*V);v.closePath()}else h=1;c=t,f=e,d=i}function e(t){var e,n,i,r=t.length,o=!1;for(null==v&&(v=i=y.path()),e=0;e<=r;++e)!(e<r&&l(n=t[e],e,t))===o&&(o=!o)&&(h=0),o&&g(+a(n,e,t),+s(n,e,t),+u(n,e,t));if(i)return v=null,i+""||null}return e.x=function(t){return arguments.length?(a=t,e):a},e.y=function(t){return arguments.length?(s=t,e):s},e.size=function(t){return arguments.length?(u=t,e):u},e.defined=function(t){return arguments.length?(l=t,e):l},e.context=function(t){return arguments.length?(v=null==t?null:t,e):v},e}function G(t){return t.x||0}function W(t){return t.y||0}function B(t){return t.cornerRadius||0}function j(t){return!(!1===t.defined)}var U=e.arc().startAngle(function(t){return t.startAngle||0}).endAngle(function(t){return t.endAngle||0}).padAngle(function(t){return t.padAngle||0}).innerRadius(function(t){return t.innerRadius||0}).outerRadius(function(t){return t.outerRadius||0}).cornerRadius(B),X=e.area().x(G).y1(W).y0(function(t){return(t.y||0)+(t.height||0)}).defined(j),J=e.area().y(W).x1(G).x0(function(t){return(t.x||0)+(t.width||0)}).defined(j),F=e.line().x(G).y(W).defined(j),Q=D().x(G).y(W).width(function(t){return t.width||0}).height(function(t){return t.height||0}).cornerRadius(B),Y=e.symbol().type(function(t){return P(t.shape||"circle")}).size(function(t){return null==t.size?64:t.size}),Z=H().x(G).y(W).defined(j).size(function(t){return t.size||1});function $(t,e,n,i){return Q.context(t)(e,n,i)}function K(t,e){return e.stroke&&0!==e.opacity&&0!==e.strokeOpacity&&t.expand(null!=e.strokeWidth?+e.strokeWidth:1),t}var tt,et=2*Math.PI,nt=et/4,it=et-1e-8;function rt(t){return tt=t,rt}function ot(){}function at(t,e){tt.add(t,e)}function st(t,e,n){return n.id?function(t,e,n){for(var i=n.width(),r=n.height(),o=n.x1+e.x1*i,a=n.y1+e.y1*r,s=n.x1+e.x2*i,u=n.y1+e.y2*r,l=e.stops,h=0,c=l.length,f=t.createLinearGradient(o,a,s,u);h<c;++h)f.addColorStop(l[h].offset,l[h].color);return f}(t,n,e.bounds):n}function ut(t,e,n){return 0<(n*=null==e.fillOpacity?1:e.fillOpacity)&&(t.globalAlpha=n,t.fillStyle=st(t,e,e.fill),!0)}rt.beginPath=ot,rt.closePath=ot,rt.moveTo=at,rt.lineTo=at,rt.rect=function(t,e,n,i){at(t,e),at(t+n,e+i)},rt.quadraticCurveTo=function(t,e,n,i){at(t,e),at(n,i)},rt.bezierCurveTo=function(t,e,n,i,r,o){at(t,e),at(n,i),at(r,o)},rt.arc=function(t,e,n,i,r,o){if(Math.abs(r-i)>it)return at(t-n,e-n),void at(t+n,e+n);var a,s,u,l,h=1/0,c=-1/0,f=1/0,d=-1/0;function v(t){u=n*Math.cos(t),l=n*Math.sin(t),u<h&&(h=u),c<u&&(c=u),l<f&&(f=l),d<l&&(d=l)}if(v(i),v(r),r!==i)if((i%=et)<0&&(i+=et),(r%=et)<0&&(r+=et),r<i&&(o=!o,a=i,i=r,r=a),o)for(r-=et,a=i-i%nt,s=0;s<4&&r<a;++s,a-=nt)v(a);else for(a=i-i%nt+nt,s=0;s<4&&a<r;++s,a+=nt)v(a);at(t+h,e+f),at(t+c,e+d)};var lt=[];function ht(t,e,n){var i=null!=(i=e.strokeWidth)?i:1;return!(i<=0)&&(0<(n*=null==e.strokeOpacity?1:e.strokeOpacity)&&(t.globalAlpha=n,t.strokeStyle=st(t,e,e.stroke),t.lineWidth=i,t.lineCap=e.strokeCap||"butt",t.lineJoin=e.strokeJoin||"miter",t.miterLimit=e.strokeMiterLimit||10,t.setLineDash&&(t.setLineDash(e.strokeDash||lt),t.lineDashOffset=e.strokeDashOffset||0),!0))}function ct(t,e){return t.zindex-e.zindex||t.index-e.index}function ft(t){if(!t.zdirty)return t.zitems;var e,n,i,r=t.items,o=[];for(n=0,i=r.length;n<i;++n)(e=r[n]).index=n,e.zindex&&o.push(e);return t.zdirty=!1,t.zitems=o.sort(ct)}function dt(t,e){var n,i,r=t.items;if(r&&r.length){var o=ft(t);if(o&&o.length){for(n=0,i=r.length;n<i;++n)r[n].zindex||e(r[n]);r=o}for(n=0,i=r.length;n<i;++n)e(r[n])}}function vt(t,e){var n,i,r=t.items;if(!r||!r.length)return null;var o=ft(t);for(o&&o.length&&(r=o),i=r.length;0<=--i;)if(n=e(r[i]))return n;if(r===o)for(i=(r=t.items).length;0<=--i;)if(!r[i].zindex&&(n=e(r[i])))return n;return null}function gt(i){return function(e,t,n){dt(t,function(t){n&&!n.intersects(t.bounds)||pt(i,e,t,t)})}}function pt(t,e,n,i){var r=null==n.opacity?1:n.opacity;0!==r&&(t(e,i)||(n.fill&&ut(e,n,r)&&e.fill(),n.stroke&&ht(e,n,r)&&e.stroke()))}var yt=function(){return!0};function _t(s){return s||(s=yt),function(n,t,i,r,o,a){return i*=n.pixelRatio,r*=n.pixelRatio,vt(t,function(t){var e=t.bounds;if((!e||e.contains(o,a))&&e)return s(n,t,i,r,o,a)?t:void 0})}}function mt(l,h){return function(t,e,n,i){var r,o,a=Array.isArray(e)?e[0]:e,s=null==h?a.fill:h,u=a.stroke&&t.isPointInStroke;return u&&(r=a.strokeWidth,o=a.strokeCap,t.lineWidth=null!=r?r:1,t.lineCap=null!=o?o:"butt"),!l(t,e)&&(s&&t.isPointInPath(n,i)||u&&t.isPointInStroke(n,i))}}function xt(t){return _t(mt(t))}function bt(t,e){return"translate("+t+","+e+")"}function kt(t){return bt(t.x||0,t.y||0)}function wt(t,r){function e(t,e){var n=e.x||0,i=e.y||0;t.translate(n,i),t.beginPath(),r(t,e),t.translate(-n,-i)}return{type:t,tag:"path",nested:!1,attr:function(t,e){t("transform",kt(e)),t("d",r(null,e))},bound:function(t,e){return r(rt(t),e),K(t,e).translate(e.x||0,e.y||0)},draw:gt(e),pick:xt(e)}}var Mt=wt("arc",function(t,e){return U.context(t)(e)});function Tt(t,i,e){function n(t,e){t.beginPath(),i(t,e)}var r,u=mt(n);return{type:t,tag:"path",nested:!0,attr:function(t,e){var n=e.mark.items;n.length&&t("d",i(null,n))},bound:function(t,e){var n=e.items;return 0===n.length?t:(i(rt(t),n),K(t,n[0]))},draw:(r=n,function(t,e,n){!e.items.length||n&&!n.intersects(e.bounds)||pt(r,t,e.items[0],e.items)}),pick:function(t,e,n,i,r,o){var a=e.items,s=e.bounds;return!a||!a.length||s&&!s.contains(r,o)?null:(n*=t.pixelRatio,i*=t.pixelRatio,u(t,a,n,i)?a[0]:null)},tip:e}}var At=Tt("area",function(t,e){var n=e[0],i=n.interpolate||"linear";return("horizontal"===n.orient?J:X).curve(g(i,n.orient,n.tension)).context(t)(e)},function(t,e){var n="horizontal"===t[0].orient?e[1]:e[0],i="horizontal"===t[0].orient?"y":"x",r=0,o=t.length;if(1===o)return t[0];for(;r<o;){var a=r+o>>>1;t[a][i]<n?r=a+1:o=a}return r=Math.max(0,r-1),o=Math.min(t.length-1,o),n-t[r][i]<t[o][i]-n?t[r]:t[o]}),Ct=1;function zt(t,e,n){var i=e.clip,r=t._defs,o=e.clip_id||(e.clip_id="clip"+Ct++),a=r.clipping[o]||(r.clipping[o]={id:o});return s.isFunction(i)?a.path=i(null):(a.width=n.width||0,a.height=n.height||0),"url(#"+o+")"}var Pt=.5;function St(t,e){var n=e.stroke?Pt:0;t.beginPath(),$(t,e,n,n)}var Lt=mt(St);var Rt={type:"group",tag:"g",nested:!1,attr:function(t,e){t("transform",kt(e))},bound:function(t,e){if(!e.clip&&e.items)for(var n=e.items,i=0,r=n.length;i<r;++i)t.union(n[i].bounds);return(e.clip||e.width||e.height)&&K(t.add(0,0).add(e.width||0,e.height||0),e),t.translate(e.x||0,e.y||0)},draw:function(a,t,s){var u=this;dt(t,function(t){var e,n=t.x||0,i=t.y||0,r=t.width||0,o=t.height||0;a.save(),a.translate(n,i),(t.stroke||t.fill)&&0<(e=null==t.opacity?1:t.opacity)&&(St(a,t),t.fill&&ut(a,t,e)&&a.fill(),t.stroke&&ht(a,t,e)&&a.stroke()),t.clip&&(a.beginPath(),a.rect(0,0,r,o),a.clip()),s&&s.translate(-n,-i),dt(t,function(t){u.draw(a,t,s)}),s&&s.translate(n,i),a.restore()})},pick:function(i,a,s,u,l,h){if(a.bounds&&!a.bounds.contains(l,h)||!a.items)return null;var c=this,f=s*i.pixelRatio,d=u*i.pixelRatio;return vt(a,function(t){var e,r,o,n;if(!(n=t.bounds)||n.contains(l,h))return r=t.x||0,o=t.y||0,i.save(),i.translate(r,o),r=l-r,o=h-o,!(e=vt(t,function(t){return n=r,i=o,(!1!==(e=t).interactive||"group"===e.marktype)&&e.bounds&&e.bounds.contains(n,i)?c.pick(t,s,u,r,o):null;var e,n,i}))&&!1!==a.interactive&&(t.fill||t.stroke)&&Lt(i,t,f,d)&&(e=t),i.restore(),e||null})},background:function(t,e){var n=e.stroke?Pt:0;t("class","background"),t("d",$(null,e,n,n))},foreground:function(t,e,n){t("clip-path",e.clip?zt(n,e,e):null)}};function It(e,t){var n=e.image;return n&&n.url===e.url||(n={loaded:!1,width:0,height:0},t.loadImage(e.url).then(function(t){e.image=t,e.image.url=e.url})),n}function qt(t,e){return"center"===t?e/2:"right"===t?e:0}function Nt(t,e){return"middle"===t?e/2:"bottom"===t?e:0}var Ot={type:"image",tag:"image",nested:!1,attr:function(t,e,n){var i=It(e,n),r=e.x||0,o=e.y||0,a=(null!=e.width?e.width:i.width)||0,s=(null!=e.height?e.height:i.height)||0,u=!1===e.aspect?"none":"xMidYMid";r-=qt(e.align,a),o-=Nt(e.baseline,s),t("href",i.src||"","http://www.w3.org/1999/xlink","xlink:href"),t("transform",bt(r,o)),t("width",a),t("height",s),t("preserveAspectRatio",u)},bound:function(t,e){var n=e.image,i=e.x||0,r=e.y||0,o=(null!=e.width?e.width:n&&n.width)||0,a=(null!=e.height?e.height:n&&n.height)||0;return i-=qt(e.align,o),r-=Nt(e.baseline,a),t.set(i,r,i+o,r+a)},draw:function(h,t,c){var f=this;dt(t,function(t){if(!c||c.intersects(t.bounds)){var e,n,i,r,o=It(t,f),a=t.x||0,s=t.y||0,u=(null!=t.width?t.width:o.width)||0,l=(null!=t.height?t.height:o.height)||0;a-=qt(t.align,u),s-=Nt(t.baseline,l),!1!==t.aspect&&(n=o.width/o.height,i=t.width/t.height,n==n&&i==i&&n!==i&&(i<n?(s+=(l-(r=u/n))/2,l=r):(a+=(u-(r=l*n))/2,u=r))),o.loaded&&(h.globalAlpha=null!=(e=t.opacity)?e:1,h.drawImage(o,a,s,u,l))}})},pick:_t(),get:It,xOffset:qt,yOffset:Nt},Et=Tt("line",function(t,e){var n=e[0],i=n.interpolate||"linear";return F.curve(g(i,n.orient,n.tension)).context(t)(e)},function(t,e){for(var n,i,r=Math.pow(t[0].strokeWidth||1,2),o=t.length;0<=--o;)if(!1!==t[o].defined&&(n=t[o].x-e[0])*n+(i=t[o].y-e[1])*i<r)return t[o];return null});function Dt(t,e){var n=e.path;if(null==n)return!0;var i=e.pathCache;i&&i.path===n||((e.pathCache=i=m(n)).path=n),w(t,i,e.x,e.y)}var Vt={type:"path",tag:"path",nested:!1,attr:function(t,e){t("transform",kt(e)),t("d",e.path)},bound:function(t,e){return Dt(rt(t),e)?t.set(0,0,0,0):K(t,e)},draw:gt(Dt),pick:xt(Dt)};function Ht(t,e){t.beginPath(),$(t,e)}var Gt={type:"rect",tag:"path",nested:!1,attr:function(t,e){t("d",$(null,e))},bound:function(t,e){var n,i;return K(t.set(n=e.x||0,i=e.y||0,n+e.width||0,i+e.height||0),e)},draw:gt(Ht),pick:xt(Ht)};function Wt(t,e,n){var i,r,o,a;return!(!e.stroke||!ht(t,e,n))&&(i=e.x||0,r=e.y||0,o=null!=e.x2?e.x2:i,a=null!=e.y2?e.y2:r,t.beginPath(),t.moveTo(i,r),t.lineTo(o,a),!0)}var Bt,jt,Ut={type:"rule",tag:"line",nested:!1,attr:function(t,e){t("transform",kt(e)),t("x2",null!=e.x2?e.x2-(e.x||0):0),t("y2",null!=e.y2?e.y2-(e.y||0):0)},bound:function(t,e){var n,i;return K(t.set(n=e.x||0,i=e.y||0,null!=e.x2?e.x2:n,null!=e.y2?e.y2:i),e)},draw:function(n,t,i){dt(t,function(t){if(!i||i.intersects(t.bounds)){var e=null==t.opacity?1:t.opacity;e&&Wt(n,t,e)&&n.stroke()}})},pick:_t(function(t,e,n,i){return!!t.isPointInStroke&&Wt(t,e,1)&&t.isPointInStroke(n,i)})},Xt=wt("shape",function(t,e){return(e.mark.shape||e.shape).context(t)(e)}),Jt=wt("symbol",function(t,e){return Y.context(t)(e)}),Ft={height:Kt,measureWidth:Zt,estimateWidth:Qt,width:Qt,canvas:te};function Qt(t){return jt=Kt(t),Yt(ee(t))}function Yt(t){return~~(.8*t.length*jt)}function Zt(t){return Bt.font=ne(t),$t(ee(t))}function $t(t){return Bt.measureText(t).width}function Kt(t){return null!=t.fontSize?t.fontSize:11}function te(t){Bt=t&&(Bt=o.canvas(1,1))?Bt.getContext("2d"):null,Ft.width=Bt?Zt:Qt}function ee(t){var e=t.text;return null==e?"":0<t.limit?function(t){var e,n=+t.limit,i=t.text+"";Bt?(Bt.font=ne(t),e=$t):(jt=Kt(t),e=Yt);if(e(i)<n)return i;var r,o=t.ellipsis||"…",a="rtl"===t.dir,s=0,u=i.length;{if(n-=e(o),a){for(;s<u;)r=s+u>>>1,e(i.slice(r))>n?s=r+1:u=r;return o+i.slice(s)}for(;s<u;)r=1+(s+u>>>1),e(i.slice(0,r))<n?s=r:u=r-1;return i.slice(0,s)+o}}(t):e+""}function ne(t,e){var n=t.font;return e&&n&&(n=String(n).replace(/"/g,"'")),(t.fontStyle?t.fontStyle+" ":"")+(t.fontVariant?t.fontVariant+" ":"")+(t.fontWeight?t.fontWeight+" ":"")+Kt(t)+"px "+(n||"sans-serif")}function ie(t){var e=t.baseline,n=Kt(t);return Math.round("top"===e?.79*n:"middle"===e?.3*n:"bottom"===e?-.21*n:0)}te(!0);var re={left:"start",center:"middle",right:"end"},oe=new c;function ae(t,e,n){var i,r,o=Ft.height(e),a=e.align,s=e.radius||0,u=e.x||0,l=e.y||0,h=e.dx||0,c=(e.dy||0)+ie(e)-Math.round(.8*o);return s&&(r=(e.theta||0)-Math.PI/2,u+=s*Math.cos(r),l+=s*Math.sin(r)),i=Ft.width(e),"center"===a?h-=i/2:"right"===a&&(h-=i),t.set(h+=u,c+=l,h+i,c+o),e.angle&&!n&&t.rotate(e.angle*Math.PI/180,u,l),t.expand(n||!i?0:1)}var se={arc:Mt,area:At,group:Rt,image:Ot,line:Et,path:Vt,rect:Gt,rule:Ut,shape:Xt,symbol:Jt,text:{type:"text",tag:"text",nested:!1,attr:function(t,e){var n,i=e.dx||0,r=(e.dy||0)+ie(e),o=e.x||0,a=e.y||0,s=e.angle||0,u=e.radius||0;u&&(n=(e.theta||0)-Math.PI/2,o+=u*Math.cos(n),a+=u*Math.sin(n)),t("text-anchor",re[e.align]||"start"),s?(n=bt(o,a)+" rotate("+s+")",(i||r)&&(n+=" "+bt(i,r))):n=bt(o+i,a+r),t("transform",n)},bound:ae,draw:function(s,t,u){dt(t,function(t){var e,n,i,r,o,a;u&&!u.intersects(t.bounds)||(a=ee(t))&&0!==(e=null==t.opacity?1:t.opacity)&&(s.font=ne(t),s.textAlign=t.align||"left",n=t.x||0,i=t.y||0,(r=t.radius)&&(o=(t.theta||0)-Math.PI/2,n+=r*Math.cos(o),i+=r*Math.sin(o)),t.angle&&(s.save(),s.translate(n,i),s.rotate(t.angle*Math.PI/180),n=i=0),n+=t.dx||0,i+=(t.dy||0)+ie(t),t.fill&&ut(s,t,e)&&s.fillText(a,n,i),t.stroke&&ht(s,t,e)&&s.strokeText(a,n,i),t.angle&&s.restore())})},pick:_t(function(t,e,n,i,r,o){if(e.fontSize<=0)return!1;if(!e.angle)return!0;var a=ae(oe,e,!0),s=-e.angle*Math.PI/180,u=Math.cos(s),l=Math.sin(s),h=e.x,c=e.y,f=u*r-l*o+(h-h*u+c*l),d=l*r+u*o+(c-h*l-c*u);return a.contains(f,d)})},trail:Tt("trail",function(t,e){return Z.context(t)(e)},function(t,e){for(var n,i,r=t.length;0<=--r;)if(!1!==t[r].defined&&(n=t[r].x-e[0])*n+(i=t[r].y-e[1])*i<(n=t[r].size||1)*n)return t[r];return null})};function ue(t,e,n){var i=se[t.mark.marktype],r=e||i.bound;return i.nested&&(t=t.mark),r(t.bounds||(t.bounds=new c),t,n)}var le={mark:null};function he(t,e,n){var i,r,o,a,s=se[t.marktype],u=s.bound,l=t.items,h=l&&l.length;if(s.nested)return h?o=l[0]:(le.mark=t,o=le),a=ue(o,u,n),e=e&&e.union(a)||a;if(e=e||t.bounds&&t.bounds.clear()||new c,h)for(i=0,r=l.length;i<r;++i)e.union(ue(l[i],u,n));return t.bounds=e}var ce=["marktype","name","role","interactive","clip","items","zindex","x","y","width","height","align","baseline","fill","fillOpacity","opacity","stroke","strokeOpacity","strokeWidth","strokeCap","strokeDash","strokeDashOffset","startAngle","endAngle","innerRadius","outerRadius","cornerRadius","padAngle","interpolate","tension","orient","defined","url","path","x2","y2","size","shape","text","angle","theta","radius","dx","dy","font","fontSize","fontWeight","fontStyle","fontVariant"];function fe(t,e){return JSON.stringify(t,ce,e)}function de(t){return function t(e){var n,i,r,o=e.marktype,a=e.items;if(a)for(i=0,r=a.length;i<r;++i)n=o?"mark":"group",a[i][n]=e,a[i].zindex&&(a[i][n].zdirty=!0),"group"===(o||n)&&t(a[i]);o&&he(e);return e}("string"==typeof t?JSON.parse(t):t)}function ve(t){arguments.length?this.root=de(t):(this.root=pe({marktype:"group",name:"root",role:"frame"}),this.root.items=[new u(this.root)])}var ge=ve.prototype;function pe(t,e){return{bounds:new c,clip:!!t.clip,group:e,interactive:!1!==t.interactive,items:[],marktype:t.marktype,name:t.name||void 0,role:t.role||void 0,zindex:t.zindex||0}}function ye(t,e,n){return!t&&"undefined"!=typeof document&&document.createElement&&(t=document),t?n?t.createElementNS(n,e):t.createElement(e):null}function _e(t,e){e=e.toLowerCase();for(var n=t.childNodes,i=0,r=n.length;i<r;++i)if(n[i].tagName.toLowerCase()===e)return n[i]}function me(t,e,n,i){var r,o=t.childNodes[e];return o&&o.tagName.toLowerCase()===n.toLowerCase()||(r=o||null,o=ye(t.ownerDocument,n,i),t.insertBefore(o,r)),o}function xe(t,e){for(var n=t.childNodes,i=n.length;e<i;)t.removeChild(n[--i]);return t}function be(t){return"mark-"+t.marktype+(t.role?" role-"+t.role:"")+(t.name?" "+t.name:"")}function ke(t,e){var n=e.getBoundingClientRect();return[t.clientX-n.left-(e.clientLeft||0),t.clientY-n.top-(e.clientTop||0)]}function we(t,e){this._active=null,this._handlers={},this._loader=t||n.loader(),this._tooltip=e||Me}function Me(t,e,n,i){t.element().setAttribute("title",i||"")}ge.toJSON=function(t){return fe(this.root,t||0)},ge.mark=function(t,e,n){var i=pe(t,e=e||this.root.items[0]);return(e.items[n]=i).zindex&&(i.group.zdirty=!0),i};var Te=we.prototype;function Ae(t){this._el=null,this._bgcolor=null,this._loader=new l(t)}Te.initialize=function(t,e,n){return this._el=t,this._obj=n||null,this.origin(e)},Te.element=function(){return this._el},Te.canvas=function(){return this._el&&this._el.firstChild},Te.origin=function(t){return arguments.length?(this._origin=t||[0,0],this):this._origin.slice()},Te.scene=function(t){return arguments.length?(this._scene=t,this):this._scene},Te.on=function(){},Te.off=function(){},Te._handlerIndex=function(t,e,n){for(var i=t?t.length:0;0<=--i;)if(t[i].type===e&&!n||t[i].handler===n)return i;return-1},Te.handlers=function(){var t,e=this._handlers,n=[];for(t in e)n.push.apply(n,e[t]);return n},Te.eventName=function(t){var e=t.indexOf(".");return e<0?t:t.slice(0,e)},Te.handleHref=function(r,t,e){this._loader.sanitize(e,{context:"href"}).then(function(t){var e=new MouseEvent(r.type,r),n=ye(null,"a");for(var i in t)n.setAttribute(i,t[i]);n.dispatchEvent(e)}).catch(function(){})},Te.handleTooltip=function(t,e,n){if(e&&null!=e.tooltip){e=function(t,e,n,i){var r,o,a=t&&t.mark;if(a&&(r=se[a.marktype]).tip){for((o=ke(e,n))[0]-=i[0],o[1]-=i[1];t=t.mark.group;)o[0]-=t.x||0,o[1]-=t.y||0;t=r.tip(a.items,o)}return t}(e,t,this.canvas(),this._origin);var i=n&&e&&e.tooltip||null;this._tooltip.call(this._obj,this,t,e,i)}},Te.getItemBoundingClientRect=function(t){if(e=this.canvas()){for(var e,n=e.getBoundingClientRect(),i=this._origin,r=t.bounds,o=r.x1+i[0]+n.left,a=r.y1+i[1]+n.top,s=r.width(),u=r.height();t.mark&&(t=t.mark.group);)o+=t.x||0,a+=t.y||0;return{x:o,y:a,width:s,height:u,left:o,top:a,right:o+s,bottom:a+u}}};var Ce=Ae.prototype;Ce.initialize=function(t,e,n,i,r){return this._el=t,this.resize(e,n,i,r)},Ce.element=function(){return this._el},Ce.canvas=function(){return this._el&&this._el.firstChild},Ce.background=function(t){return 0===arguments.length?this._bgcolor:(this._bgcolor=t,this)},Ce.resize=function(t,e,n,i){return this._width=t,this._height=e,this._origin=n||[0,0],this._scale=i||1,this},Ce.dirty=function(){},Ce.render=function(t){var e=this;return e._call=function(){e._render(t)},e._call(),e._call=null,e},Ce._render=function(){},Ce.renderAsync=function(t){var e=this.render(t);return this._ready?this._ready.then(function(){return e}):Promise.resolve(e)},Ce._load=function(t,e){var n=this,i=n._loader[t](e);if(!n._ready){var r=n._call;n._ready=n._loader.ready().then(function(t){t&&r(),n._ready=null})}return i},Ce.sanitizeURL=function(t){return this._load("sanitizeURL",t)},Ce.loadImage=function(t){return this._load("loadImage",t)};var ze="mousemove",Pe="mouseout",Se="click";function Le(t,e){we.call(this,t,e),this._down=null,this._touch=null,this._first=!0}var Re=s.inherits(Le,we);function Ie(i,r,o){return function(t){var e=this._active,n=this.pickEvent(t);n===e||(e&&e.exit||this.fire(o,t),this._active=n,this.fire(r,t)),this.fire(i,t)}}function qe(e){return function(t){this.fire(e,t),this._active=null}}Re.initialize=function(t,e,n){var i=this._canvas=t&&_e(t,"canvas");if(i){var r=this;this.events.forEach(function(e){i.addEventListener(e,function(t){Re[e]?Re[e].call(r,t):r.fire(e,t)})})}return we.prototype.initialize.call(this,t,e,n)},Re.canvas=function(){return this._canvas},Re.context=function(){return this._canvas.getContext("2d")},Re.events=["keydown","keypress","keyup","dragenter","dragleave","dragover","mousedown","mouseup","mousemove","mouseout","mouseover","click","dblclick","wheel","mousewheel","touchstart","touchmove","touchend"],Re.DOMMouseScroll=function(t){this.fire("mousewheel",t)},Re.mousemove=Ie("mousemove","mouseover","mouseout"),Re.dragover=Ie("dragover","dragenter","dragleave"),Re.mouseout=qe("mouseout"),Re.dragleave=qe("dragleave"),Re.mousedown=function(t){this._down=this._active,this.fire("mousedown",t)},Re.click=function(t){this._down===this._active&&(this.fire("click",t),this._down=null)},Re.touchstart=function(t){this._touch=this.pickEvent(t.changedTouches[0]),this._first&&(this._active=this._touch,this._first=!1),this.fire("touchstart",t,!0)},Re.touchmove=function(t){this.fire("touchmove",t,!0)},Re.touchend=function(t){this.fire("touchend",t,!0),this._touch=null},Re.fire=function(t,e,n){var i,r,o=n?this._touch:this._active,a=this._handlers[t];if((e.vegaType=t)===Se&&o&&o.href?this.handleHref(e,o,o.href):t!==ze&&t!==Pe||this.handleTooltip(e,o,t!==Pe),a)for(i=0,r=a.length;i<r;++i)a[i].handler.call(this._obj,e,o)},Re.on=function(t,e){var n=this.eventName(t),i=this._handlers;return this._handlerIndex(i[n],t,e)<0&&(i[n]||(i[n]=[])).push({type:t,handler:e}),this},Re.off=function(t,e){var n=this.eventName(t),i=this._handlers[n],r=this._handlerIndex(i,t,e);return 0<=r&&i.splice(r,1),this},Re.pickEvent=function(t){var e=ke(t,this._canvas),n=this._origin;return this.pick(this._scene,e[0],e[1],e[0]-n[0],e[1]-n[1])},Re.pick=function(t,e,n,i,r){var o=this.context();return se[t.marktype].pick.call(this,o,t,e,n,i,r)};var Ne="undefined"!=typeof window&&window.devicePixelRatio||1;function Oe(t){Ae.call(this,t),this._redraw=!1,this._dirty=new c}var Ee=s.inherits(Oe,Ae),De=Ae.prototype,Ve=new c;function He(t,e){we.call(this,t,e);var n=this;n._hrefHandler=We(n,function(t,e){e&&e.href&&n.handleHref(t,e,e.href)}),n._tooltipHandler=We(n,function(t,e){n.handleTooltip(t,e,t.type!==Pe)})}Ee.initialize=function(t,e,n,i,r){return this._canvas=o.canvas(1,1),t&&(xe(t,0).appendChild(this._canvas),this._canvas.setAttribute("class","marks")),De.initialize.call(this,t,e,n,i,r)},Ee.resize=function(t,e,n,i){var r,o,a,s,u,l,h,c;return De.resize.call(this,t,e,n,i),r=this._canvas,o=this._width,a=this._height,s=this._origin,u=this._scale,l="undefined"!=typeof HTMLElement&&r instanceof HTMLElement&&null!=r.parentNode,h=r.getContext("2d"),c=l?Ne:u,r.width=o*c,r.height=a*c,l&&1!==c&&(r.style.width=o+"px",r.style.height=a+"px"),h.pixelRatio=c,h.setTransform(c,0,0,c,c*s[0],c*s[1]),this._redraw=!0,this},Ee.canvas=function(){return this._canvas},Ee.context=function(){return this._canvas?this._canvas.getContext("2d"):null},Ee.dirty=function(t){var e=function(t,e){if(null==e)return t;for(var n=Ve.clear().union(t);null!=e;e=e.mark.group)n.translate(e.x||0,e.y||0);return n}(t.bounds,t.mark.group);this._dirty.union(e)},Ee._render=function(t){var e,n,i,r=this.context(),o=this._origin,a=this._width,s=this._height,u=this._dirty;return r.save(),this._redraw||u.empty()?(this._redraw=!1,u=null):(e=r,i=o,(n=u).expand(1).round(),n.translate(-i[0]%1,-i[1]%1),e.beginPath(),e.rect(n.x1,n.y1,n.width(),n.height()),e.clip(),u=n),this.clear(-o[0],-o[1],a,s),this.draw(r,t,u),r.restore(),this._dirty.clear(),this},Ee.draw=function(t,e,n){var i=se[e.marktype];e.clip&&function(t,e){var n=e.clip;if(t.save(),t.beginPath(),s.isFunction(n))n(t);else{var i=e.group;t.rect(0,0,i.width||0,i.height||0)}t.clip()}(t,e),i.draw.call(this,t,e,n),e.clip&&t.restore()},Ee.clear=function(t,e,n,i){var r=this.context();r.clearRect(t,e,n,i),null!=this._bgcolor&&(r.fillStyle=this._bgcolor,r.fillRect(t,e,n,i))};var Ge=s.inherits(He,we);function We(n,i){return function(t){var e=t.target.__data__;t.vegaType=t.type,e=Array.isArray(e)?e[0]:e,i.call(n._obj,t,e)}}function Be(t,e,n){var i,r,o="<"+t;if(e)for(i in e)null!=(r=e[i])&&(o+=" "+i+'="'+r+'"');return n&&(o+=" "+n),o+">"}function je(t){return"</"+t+">"}Ge.initialize=function(t,e,n){var i=this._svg;return i&&(i.removeEventListener(Se,this._hrefHandler),i.removeEventListener(ze,this._tooltipHandler),i.removeEventListener(Pe,this._tooltipHandler)),this._svg=i=t&&_e(t,"svg"),i&&(i.addEventListener(Se,this._hrefHandler),i.addEventListener(ze,this._tooltipHandler),i.addEventListener(Pe,this._tooltipHandler)),we.prototype.initialize.call(this,t,e,n)},Ge.canvas=function(){return this._svg},Ge.on=function(t,e){var n=this.eventName(t),i=this._handlers;if(this._handlerIndex(i[n],t,e)<0){var r={type:t,handler:e,listener:We(this,e)};(i[n]||(i[n]=[])).push(r),this._svg&&this._svg.addEventListener(n,r.listener)}return this},Ge.off=function(t,e){var n=this.eventName(t),i=this._handlers[n],r=this._handlerIndex(i,t,e);return 0<=r&&(this._svg&&this._svg.removeEventListener(n,i[r].listener),i.splice(r,1)),this};var Ue={version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},Xe={fill:"fill",fillOpacity:"fill-opacity",stroke:"stroke",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",strokeCap:"stroke-linecap",strokeJoin:"stroke-linejoin",strokeDash:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeMiterLimit:"stroke-miterlimit",opacity:"opacity"},Je=Object.keys(Xe),Fe=Ue.xmlns;function Qe(t){Ae.call(this,t),this._dirtyID=1,this._dirty=[],this._svg=null,this._root=null,this._defs=null}var Ye=s.inherits(Qe,Ae),Ze=Ae.prototype;function $e(t,e,n){var i,r,o;for((t=me(t,n,"linearGradient",Fe)).setAttribute("id",e.id),t.setAttribute("x1",e.x1),t.setAttribute("x2",e.x2),t.setAttribute("y1",e.y1),t.setAttribute("y2",e.y2),i=0,r=e.stops.length;i<r;++i)(o=me(t,i,"stop",Fe)).setAttribute("offset",e.stops[i].offset),o.setAttribute("stop-color",e.stops[i].color);xe(t,i)}function Ke(t,e,n){var i;(t=me(t,n,"clipPath",Fe)).setAttribute("id",e.id),e.path?(i=me(t,0,"path",Fe)).setAttribute("d",e.path):((i=me(t,0,"rect",Fe)).setAttribute("x",0),i.setAttribute("y",0),i.setAttribute("width",e.width),i.setAttribute("height",e.height))}function tn(t,e){for(;t&&t.dirty!==e;t=t.mark.group){if(t.dirty=e,!t.mark||t.mark.dirty===e)return;t.mark.dirty=e}}function en(t,e,n,i,r){var o,a,s,u=t._svg;if(!u&&(u=ye(o=e.ownerDocument,i,Fe),t._svg=u,t.mark&&(u.__data__=t,u.__values__={fill:"default"},"g"===i))){var l=ye(o,"path",Fe);l.setAttribute("class","background"),u.appendChild(l),l.__data__=t;var h=ye(o,"g",Fe);u.appendChild(h),h.__data__=t}return(u.ownerSVGElement!==r||(s=(a=t).mark||a.group)&&1<s.items.length&&u.previousSibling!==n)&&e.insertBefore(u,n?n.nextSibling:e.firstChild),u}Ye.initialize=function(t,e,n,i){return t&&(this._svg=me(t,0,"svg",Fe),this._svg.setAttribute("class","marks"),xe(t,1),this._root=me(this._svg,0,"g",Fe),xe(this._svg,1)),this._defs={gradient:{},clipping:{}},this.background(this._bgcolor),Ze.initialize.call(this,t,e,n,i)},Ye.background=function(t){return arguments.length&&this._svg&&this._svg.style.setProperty("background-color",t),Ze.background.apply(this,arguments)},Ye.resize=function(t,e,n,i){return Ze.resize.call(this,t,e,n,i),this._svg&&(this._svg.setAttribute("width",this._width*this._scale),this._svg.setAttribute("height",this._height*this._scale),this._svg.setAttribute("viewBox","0 0 "+this._width+" "+this._height),this._root.setAttribute("transform","translate("+this._origin+")")),this._dirty=[],this},Ye.canvas=function(){return this._svg},Ye.svg=function(){if(!this._svg)return null;var t={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var e in Ue)t[e]=Ue[e];var n=this._bgcolor?Be("rect",{width:this._width,height:this._height,style:"fill: "+this._bgcolor+";"})+je("rect"):"";return Be("svg",t)+n+this._svg.innerHTML+je("svg")},Ye._render=function(t){return this._dirtyCheck()&&(this._dirtyAll&&this._resetDefs(),this.draw(this._root,t),xe(this._root,1)),this.updateDefs(),this._dirty=[],++this._dirtyID,this},Ye.updateDefs=function(){var t,e=this._svg,n=this._defs,i=n.el,r=0;for(t in n.gradient)i||(n.el=i=me(e,0,"defs",Fe)),$e(i,n.gradient[t],r++);for(t in n.clipping)i||(n.el=i=me(e,0,"defs",Fe)),Ke(i,n.clipping[t],r++);i&&(0===r?(e.removeChild(i),n.el=null):xe(i,r))},Ye._resetDefs=function(){var t=this._defs;t.gradient={},t.clipping={}},Ye.dirty=function(t){t.dirty!==this._dirtyID&&(t.dirty=this._dirtyID,this._dirty.push(t))},Ye.isDirty=function(t){return this._dirtyAll||!t._svg||t.dirty===this._dirtyID},Ye._dirtyCheck=function(){this._dirtyAll=!0;var t=this._dirty;if(!t.length)return!0;var e,n,i,r,o,a,s,u=++this._dirtyID;for(o=0,a=t.length;o<a;++o)(n=(e=t[o]).mark).marktype!==i&&(i=n.marktype,r=se[i]),n.zdirty&&n.dirty!==u&&(this._dirtyAll=!1,tn(e,u),n.items.forEach(function(t){t.dirty=u})),n.zdirty||(e.exit?(r.nested&&n.items.length?(s=n.items[0])._svg&&this._update(r,s._svg,s):e._svg&&(s=e._svg.parentNode)&&s.removeChild(e._svg),e._svg=null):(e=r.nested?n.items[0]:e)._update!==u&&(e._svg&&e._svg.ownerSVGElement?this._update(r,e._svg,e):(this._dirtyAll=!1,tn(e,u)),e._update=u));return!this._dirtyAll},Ye.draw=function(t,e,n){if(!this.isDirty(e))return e._svg;var i,r=this,o=this._svg,a=se[e.marktype],s=!1===e.interactive?"none":null,u="g"===a.tag,l=null,h=0;function c(t){var e=r.isDirty(t),n=en(t,i,l,a.tag,o);e&&(r._update(a,n,t),u&&function(e,n,t){n=n.lastChild;var i,r=0;dt(t,function(t){i=e.draw(n,t,i),++r}),xe(n,1+r)}(r,n,t)),l=n,++h}return(i=en(e,t,n,"g",o)).setAttribute("class",be(e)),u||i.style.setProperty("pointer-events",s),e.clip?i.setAttribute("clip-path",zt(r,e,e.group)):i.removeAttribute("clip-path"),a.nested?e.items.length&&c(e.items[0]):dt(e,c),xe(i,h),i};var nn=null,rn=null,on={group:function(t,e,n){rn=e.__values__,nn=e.childNodes[1],t.foreground(an,n,this),nn=e.childNodes[0],t.background(an,n,this);var i=!1===n.mark.interactive?"none":null;i!==rn.events&&(nn.style.setProperty("pointer-events",i),rn.events=i)},text:function(t,e,n){var i=ee(n);i!==rn.text&&(e.textContent=i,rn.text=i),(i=ne(n))!==rn.font&&(e.style.setProperty("font",i),rn.font=i)}};function an(t,e,n){e!==rn[t]&&(null!=e?n?nn.setAttributeNS(n,t,e):nn.setAttribute(t,e):n?nn.removeAttributeNS(n,t):nn.removeAttribute(t),rn[t]=e)}function sn(t){Ae.call(this,t),this._text={head:"",bg:"",root:"",foot:"",defs:"",body:""},this._defs={gradient:{},clipping:{}}}Ye._update=function(t,e,n){rn=(nn=e).__values__,t.attr(an,n,this);var i=on[t.type];i&&i.call(this,t,e,n),this.style(nn,n)},Ye.style=function(t,e){var n,i,r,o,a,s;if(null!=e)for(n=0,i=Je.length;n<i;++n)(a=e[r=Je[n]])!==rn[r]&&(o=Xe[r],null==a?"fill"===o?t.style.setProperty(o,"none"):t.style.removeProperty(o):(a.id&&(this._defs.gradient[a.id]=a,a="url("+(s=void 0,"undefined"==typeof window?"":(s=window.location).hash?s.href.slice(0,-s.hash.length):s.href)+"#"+a.id+")"),t.style.setProperty(o,a+"")),rn[r]=a)};var un,ln=s.inherits(sn,Ae),hn=Ae.prototype;function cn(t,e,n,i){un[i||t]=e}function fn(t,e,n,i){if(null==t)return"";var r,o,a,s,u,l="";for("bgrect"===n&&!1===e.interactive&&(l+="pointer-events: none; "),"text"===n&&(l+="font: "+ne(t)+"; "),r=0,o=Je.length;r<o;++r)a=Je[r],s=Xe[a],null==(u=t[a])?"fill"===s&&(l+="fill: none; "):"transparent"!==u||"fill"!==s&&"stroke"!==s?(u.id&&(u="url(#"+(i.gradient[u.id]=u).id+")"),l+=s+": "+u+"; "):l+=s+": none; ";return l?'style="'+l.trim()+'"':null}ln.resize=function(t,e,n,i){hn.resize.call(this,t,e,n,i);var r=this._origin,o=this._text,a={class:"marks",width:this._width*this._scale,height:this._height*this._scale,viewBox:"0 0 "+this._width+" "+this._height};for(var s in Ue)a[s]=Ue[s];o.head=Be("svg",a);var u=this._bgcolor;return"transparent"!==u&&"none"!==u||(u=null),o.bg=u?Be("rect",{width:this._width,height:this._height,style:"fill: "+u+";"})+je("rect"):"",o.root=Be("g",{transform:"translate("+r+")"}),o.foot=je("g")+je("svg"),this},ln.background=function(){var t=hn.background.apply(this,arguments);return arguments.length&&this._text.head&&this.resize(this._width,this._height,this._origin,this._scale),t},ln.svg=function(){var t=this._text;return t.head+t.bg+t.defs+t.root+t.body+t.foot},ln._render=function(t){return this._text.body=this.mark(t),this._text.defs=this.buildDefs(),this},ln.buildDefs=function(){var t,e,n,i,r=this._defs,o="";for(e in r.gradient){for(i=(n=r.gradient[e]).stops,o+=Be("linearGradient",{id:e,x1:n.x1,x2:n.x2,y1:n.y1,y2:n.y2}),t=0;t<i.length;++t)o+=Be("stop",{offset:i[t].offset,"stop-color":i[t].color})+je("stop");o+=je("linearGradient")}for(e in r.clipping)n=r.clipping[e],o+=Be("clipPath",{id:e}),n.path?o+=Be("path",{d:n.path})+je("path"):o+=Be("rect",{x:0,y:0,width:n.width,height:n.height})+je("rect"),o+=je("clipPath");return 0<o.length?Be("defs")+o+je("defs"):""},ln.attributes=function(t,e){return un={},t(cn,e,this),un},ln.href=function(t){var e,n=this,i=t.href;if(i){if(e=n._hrefs&&n._hrefs[i])return e;n.sanitizeURL(i).then(function(t){t["xlink:href"]=t.href,t.href=null,(n._hrefs||(n._hrefs={}))[i]=t})}return null},ln.mark=function(n){var i,r=this,o=se[n.marktype],a=o.tag,s=this._defs,u="";function t(t){var e=r.href(t);e&&(u+=Be("a",e)),i="g"!==a?fn(t,n,a,s):null,u+=Be(a,r.attributes(o.attr,t),i),"text"===a?u+=ee(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):"g"===a&&(u+=Be("path",r.attributes(o.background,t),fn(t,n,"bgrect",s))+je("path"),u+=Be("g",r.attributes(o.foreground,t))+r.markGroup(t)+je("g")),u+=je(a),e&&(u+=je("a"))}return"g"!==a&&!1===n.interactive&&(i='style="pointer-events: none;"'),u+=Be("g",{class:be(n),"clip-path":n.clip?zt(r,n,n.group):null},i),o.nested?n.items&&n.items.length&&t(n.items[0]):dt(n,t),u+je("g")},ln.markGroup=function(t){var e=this,n="";return dt(t,function(t){n+=e.mark(t)}),n};var dn={Canvas:"canvas",PNG:"png",SVG:"svg",None:"none"},vn={};vn.canvas=vn.png={renderer:Oe,headless:Oe,handler:Le},vn.svg={renderer:Qe,headless:sn,handler:He},vn.none={};var gn=new c;var pn=1e-9;function yn(t,e,n){return t===e||("path"===n?_n(t,e):t instanceof Date&&e instanceof Date?+t==+e:s.isNumber(t)&&s.isNumber(e)?Math.abs(t-e)<=pn:t&&e&&(s.isObject(t)||s.isObject(e))?null!=t&&null!=e&&function(t,e){var n,i,r=Object.keys(t),o=Object.keys(e);if(r.length!==o.length)return!1;for(r.sort(),o.sort(),i=r.length-1;0<=i;i--)if(r[i]!=o[i])return!1;for(i=r.length-1;0<=i;i--)if(n=r[i],!yn(t[n],e[n],n))return!1;return typeof t==typeof e}(t,e):t==e)}function _n(t,e){return yn(m(t),m(e))}t.Bounds=c,t.Gradient=function(t,e){var n,i=[];return n={id:"gradient_"+r++,x1:t?t[0]:0,y1:t?t[1]:0,x2:e?e[0]:1,y2:e?e[1]:0,stops:i,stop:function(t,e){return i.push({offset:t,color:e}),n}}},t.GroupItem=u,t.ResourceLoader=l,t.Item=a,t.Scenegraph=ve,t.Handler=we,t.Renderer=Ae,t.CanvasHandler=Le,t.CanvasRenderer=Oe,t.SVGHandler=He,t.SVGRenderer=Qe,t.SVGStringRenderer=sn,t.RenderType=dn,t.renderModule=function(t,e){return t=String(t||"").toLowerCase(),1<arguments.length?(vn[t]=e,this):vn[t]},t.Marks=se,t.boundClip=function(t){var e=t.clip;if(s.isFunction(e))e(rt(gn.clear()));else{if(!e)return;gn.set(0,0,t.group.width,t.group.height)}t.bounds.intersect(gn)},t.boundContext=rt,t.boundStroke=K,t.boundItem=ue,t.boundMark=he,t.pathCurves=g,t.pathSymbols=P,t.pathRectangle=D,t.pathTrail=H,t.pathParse=m,t.pathRender=w,t.point=ke,t.domCreate=ye,t.domFind=_e,t.domChild=me,t.domClear=xe,t.openTag=Be,t.closeTag=je,t.font=ne,t.textMetrics=Ft,t.resetSVGClipId=function(){Ct=1},t.sceneEqual=yn,t.pathEqual=_n,t.sceneToJSON=fe,t.sceneFromJSON=de,t.sceneZOrder=ft,t.sceneVisit=dt,t.scenePickVisit=vt,Object.defineProperty(t,"__esModule",{value:!0})});
{
"name": "vega-scenegraph",
"version": "2.4.2",
"version": "2.5.0",
"description": "Vega scenegraph and renderers.",

@@ -35,13 +35,13 @@ "license": "BSD-3-Clause",

"dependencies": {
"d3-path": "1",
"d3-shape": "1",
"vega-canvas": "1",
"vega-loader": "2",
"vega-util": "^1.7"
"d3-path": "^1.0.5",
"d3-shape": "^1.2.0",
"vega-canvas": "^1.0.1",
"vega-loader": "^2.1.0",
"vega-util": "^1.7.0"
},
"devDependencies": {
"canvas": "^1.6",
"canvas": "^1.6.10",
"eslint": "4",
"jsdom": "11",
"rollup": "0.43",
"rollup": "0.58.2",
"tape": "4",

@@ -48,0 +48,0 @@ "tv4": "1",

import Handler from './Handler';
import Marks from './marks/index';
import {Events, HrefEvent, TooltipShowEvent, TooltipHideEvent} from './util/events';
import point from './util/point';

@@ -35,2 +36,3 @@ import {domFind} from './util/dom';

// return the backing canvas instance
prototype.canvas = function() {

@@ -46,22 +48,3 @@ return this._canvas;

// supported events
prototype.events = [
'keydown',
'keypress',
'keyup',
'dragenter',
'dragleave',
'dragover',
'mousedown',
'mouseup',
'mousemove',
'mouseout',
'mouseover',
'click',
'dblclick',
'wheel',
'mousewheel',
'touchstart',
'touchmove',
'touchend'
];
prototype.events = Events;

@@ -149,6 +132,6 @@ // to keep old versions of firefox happy

// handle hyperlinks and tooltips first
if (type === 'click' && a && a.href) {
if (type === HrefEvent && a && a.href) {
this.handleHref(evt, a, a.href);
} else if ((type === 'mouseover' || type === 'mouseout')) {
this.handleTooltip(evt, a, type === 'mouseover');
} else if (type === TooltipShowEvent || type === TooltipHideEvent) {
this.handleTooltip(evt, a, type !== TooltipHideEvent);
}

@@ -155,0 +138,0 @@

import {domCreate} from './util/dom';
import resolveItem from './util/resolveItem';
import {loader} from 'vega-loader';
/**
* Create a new Handler instance.
* @param {object} [customLoader] - Optional loader instance for
* href URL sanitization. If not specified, a standard loader
* instance will be generated.
* @param {function} [customTooltip] - Optional tooltip handler
* function for custom tooltip display.
* @constructor
*/
export default function Handler(customLoader, customTooltip) {

@@ -11,2 +21,4 @@ this._active = null;

// The default tooltip display handler.
// Sets the HTML title attribute on the visualization container.
function defaultTooltip(handler, event, item, value) {

@@ -18,2 +30,11 @@ handler.element().setAttribute('title', value || '');

/**
* Initialize a new Handler instance.
* @param {DOMElement} el - The containing DOM element for the display.
* @param {Array<number>} origin - The origin of the display, in pixels.
* The coordinate system will be translated to this point.
* @param {object} [obj] - Optional context object that should serve as
* the "this" context for event callbacks.
* @return {Handler} - This handler instance.
*/
prototype.initialize = function(el, origin, obj) {

@@ -25,2 +46,6 @@ this._el = el;

/**
* Returns the parent container element for a visualization.
* @return {DOMElement} - The containing DOM element.
*/
prototype.element = function() {

@@ -30,7 +55,26 @@ return this._el;

/**
* Returns the scene element (e.g., canvas or SVG) of the visualization
* Subclasses must override if the first child is not the scene element.
* @return {DOMElement} - The scene (e.g., canvas or SVG) element.
*/
prototype.canvas = function() {
return this._el && this._el.firstChild;
};
/**
* Get / set the origin coordinates of the visualization.
*/
prototype.origin = function(origin) {
this._origin = origin || [0, 0];
return this;
if (arguments.length) {
this._origin = origin || [0, 0];
return this;
} else {
return this._origin.slice();
}
};
/**
* Get / set the scenegraph root.
*/
prototype.scene = function(scene) {

@@ -42,12 +86,19 @@ if (!arguments.length) return this._scene;

// add an event handler
// subclasses should override
/**
* Add an event handler. Subclasses should override this method.
*/
prototype.on = function(/*type, handler*/) {};
// remove an event handler
// subclasses should override
/**
* Remove an event handler. Subclasses should override this method.
*/
prototype.off = function(/*type, handler*/) {};
// utility method for finding array index of registered handler
// returns -1 if handler is not registered
/**
* Utility method for finding the array index of an event handler.
* @param {Array} h - An array of registered event handlers.
* @param {string} type - The event type.
* @param {function} handler - The event handler instance to find.
* @return {number} - The handler's array index or -1 if not registered.
*/
prototype._handlerIndex = function(h, type, handler) {

@@ -62,3 +113,6 @@ for (var i = h ? h.length : 0; --i>=0;) {

// return an array with all registered event handlers
/**
* Returns an array with all registered event handlers.
* @return {Array} - A new array containing all registered event handlers.
*/
prototype.handlers = function() {

@@ -70,2 +124,8 @@ var h = this._handlers, a = [], k;

/**
* Parses an event name string to return the specific event type.
* For example, given "click.foo" returns "click"
* @param {string} name - The input event type string.
* @return {string} - A string with the event type only.
*/
prototype.eventName = function(name) {

@@ -76,2 +136,8 @@ var i = name.indexOf('.');

/**
* Handle hyperlink navigation in response to an item.href value.
* @param {Event} event - The event triggering hyperlink navigation.
* @param {Item} item - The scenegraph item.
* @param {string} href - The URL to navigate to.
*/
prototype.handleHref = function(event, item, href) {

@@ -89,7 +155,53 @@ this._loader

/**
* Handle tooltip display in response to an item.tooltip value.
* @param {Event} event - The event triggering tooltip display.
* @param {Item} item - The scenegraph item.
* @param {boolean} show - A boolean flag indicating whether
* to show or hide a tooltip for the given item.
*/
prototype.handleTooltip = function(event, item, show) {
if (item && item.tooltip != null) {
this._tooltip.call(this._obj, this, event, item,
show ? item.tooltip : null);
item = resolveItem(item, event, this.canvas(), this._origin);
var value = (show && item && item.tooltip) || null;
this._tooltip.call(this._obj, this, event, item, value);
}
};
/**
* Returns the size of a scenegraph item and its position relative
* to the viewport.
* @param {Item} item - The scenegraph item.
* @return {object} - A bounding box object (compatible with the
* DOMRect type) consisting of x, y, width, heigh, top, left,
* right, and bottom properties.
*/
prototype.getItemBoundingClientRect = function(item) {
if (!(el = this.canvas())) return;
var el, rect = el.getBoundingClientRect(),
origin = this._origin,
itemBounds = item.bounds,
x = itemBounds.x1 + origin[0] + rect.left,
y = itemBounds.y1 + origin[1] + rect.top,
w = itemBounds.width(),
h = itemBounds.height();
// translate coordinate for each parent group
while (item.mark && (item = item.mark.group)) {
x += item.x || 0;
y += item.y || 0;
}
// return DOMRect-compatible bounding box
return {
x: x,
y: y,
width: w,
height: h,
left: x,
top: y,
right: x + w,
bottom: y + h
};
};
import {area} from '../path/shapes';
import {pickArea} from '../util/pickPath';
import markMultiItemPath from './markMultiItemPath';
export default markMultiItemPath('area', area);
export default markMultiItemPath('area', area, pickArea);
import {line} from '../path/shapes';
import {pickLine} from '../util/pickPath';
import markMultiItemPath from './markMultiItemPath';
export default markMultiItemPath('line', line);
export default markMultiItemPath('line', line, pickLine);

@@ -6,3 +6,3 @@ import boundStroke from '../bound/boundStroke';

export default function(type, shape) {
export default function(type, shape, tip) {

@@ -51,3 +51,4 @@ function attr(emit, item) {

draw: drawOne(draw),
pick: pick
pick: pick,
tip: tip
};

@@ -54,0 +55,0 @@

import {trail} from '../path/shapes';
import {pickTrail} from '../util/pickPath';
import markMultiItemPath from './markMultiItemPath';
export default markMultiItemPath('trail', trail);
export default markMultiItemPath('trail', trail, pickTrail);

@@ -27,3 +27,3 @@ import ResourceLoader from './ResourceLoader';

* the width and height to determine the final pixel size.
* @return {Renderer} - This renderer instance;
* @return {Renderer} - This renderer instance.
*/

@@ -48,3 +48,3 @@ prototype.initialize = function(el, width, height, origin, scaleFactor) {

*/
prototype.scene = function() {
prototype.canvas = function() {
return this._el && this._el.firstChild;

@@ -51,0 +51,0 @@ };

import Handler from './Handler';
import {domFind} from './util/dom';
import {HrefEvent, TooltipShowEvent, TooltipHideEvent} from './util/events';
import {inherits} from 'vega-util';

@@ -12,3 +13,3 @@

h._tooltipHandler = listener(h, function(evt, item) {
h.handleTooltip(evt, item, evt.type === 'mouseover');
h.handleTooltip(evt, item, evt.type !== TooltipHideEvent);
});

@@ -22,11 +23,11 @@ }

if (svg) {
svg.removeEventListener('click', this._hrefHandler);
svg.removeEventListener('mouseover', this._tooltipHandler);
svg.removeEventListener('mouseout', this._tooltipHandler);
svg.removeEventListener(HrefEvent, this._hrefHandler);
svg.removeEventListener(TooltipShowEvent, this._tooltipHandler);
svg.removeEventListener(TooltipHideEvent, this._tooltipHandler);
}
this._svg = svg = el && domFind(el, 'svg');
if (svg) {
svg.addEventListener('click', this._hrefHandler);
svg.addEventListener('mouseover', this._tooltipHandler);
svg.addEventListener('mouseout', this._tooltipHandler);
svg.addEventListener(HrefEvent, this._hrefHandler);
svg.addEventListener(TooltipShowEvent, this._tooltipHandler);
svg.addEventListener(TooltipHideEvent, this._tooltipHandler);
}

@@ -36,3 +37,3 @@ return Handler.prototype.initialize.call(this, el, origin, obj);

prototype.svg = function() {
prototype.canvas = function() {
return this._svg;

@@ -39,0 +40,0 @@ };

@@ -70,2 +70,6 @@ import Renderer from './Renderer';

prototype.canvas = function() {
return this._svg;
};
prototype.svg = function() {

@@ -72,0 +76,0 @@ if (!this._svg) return null;

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc