!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).vegaLite={})}(this,(function(e){"use strict";var t="4.7.0";function n(e,t,n){return e.fields=t||[],e.fname=n,e}function i(e){throw Error(e)}function r(e){var t,n,r,o=[],a=null,s=0,u=e.length,c="";function l(){o.push(c+e.substring(t,n)),c="",t=n+1}for(e+="",t=n=0;nt&&l(),s=t=n+1):"]"===r&&(s||i("Access path missing open bracket: "+e),s>0&&l(),s=0,t=n+1):n>t?l():t=n+1}return s&&i("Access path missing closing bracket: "+e),a&&i("Access path missing closing quote: "+e),n>t&&(n++,l()),o}var o=Array.isArray;function a(e){return e===Object(e)}function s(e){return"string"==typeof e}function u(e){return o(e)?"["+e.map(u)+"]":a(e)||s(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e}var c=[],l=(function(e,t){var i=r(e),o="return _["+i.map(u).join("][")+"];";n(Function("_",o),[e=1===i.length?i[0]:e],t||e)}("id"),n((function(e){return e}),c,"identity"));n((function(){return 0}),c,"zero"),n((function(){return 1}),c,"one"),n((function(){return!0}),c,"true"),n((function(){return!1}),c,"false");function f(e,t,n){var i=[t].concat([].slice.call(n));console[e].apply(console,i)}function d(...e){return e.reduce((e,t)=>{for(var n in t)if("signals"===n)e.signals=p(e.signals,t.signals);else{var i="legend"===n?{layout:1}:"style"===n||null;g(e,n,t[n],i)}return e},{})}function g(e,t,n,i){var r,s;if(a(n)&&!o(n))for(r in s=a(e[t])?e[t]:e[t]={},n)i&&(!0===i||i[r])?g(s,r,n[r]):s[r]=n[r];else e[t]=n}function p(e,t){if(null==e)return t;const n={},i=[];function r(e){n[e.name]||(n[e.name]=1,i.push(e))}return t.forEach(r),e.forEach(r),i}function h(e){return null!=e?o(e)?e:[e]:[]}const m=Object.prototype.hasOwnProperty;function b(e,t){return m.call(e,t)}function v(e){return"boolean"==typeof e}function y(e){return"number"==typeof e}function x(e){for(var t={},n=0,i=e.length;nt&&c(),a=t=n+1):"]"===i&&(a||F("Access path missing open bracket: "+e),a>0&&c(),a=0,t=n+1):n>t?c():t=n+1}return a&&F("Access path missing closing bracket: "+e),o&&F("Access path missing closing quote: "+e),n>t&&(n++,c()),r}(e),i="return _["+n.map(j).join("][")+"];";C(Function("_",i),[e=1===n.length?n[0]:e],t||e)})("id"),C((function(e){return e}),k,"identity"),C((function(){return 0}),k,"zero"),C((function(){return 1}),k,"one"),C((function(){return!0}),k,"true"),C((function(){return!1}),k,"false");const E=Object.prototype.hasOwnProperty;function S(e,t){return et?1:e>=t?0:NaN}function $(e){var t;return 1===e.length&&(t=e,e=function(e,n){return S(t(e),n)}),{left:function(t,n,i,r){for(null==i&&(i=0),null==r&&(r=t.length);i>>1;e(t[o],n)<0?i=o+1:r=o}return i},right:function(t,n,i,r){for(null==i&&(i=0),null==r&&(r=t.length);i>>1;e(t[o],n)>0?r=o:i=o+1}return i}}}var N=$(S).right;var M=Math.sqrt(50),B=Math.sqrt(10),_=Math.sqrt(2);function T(e,t,n){var i,r,o,a,s=-1;if(n=+n,(e=+e)===(t=+t)&&n>0)return[e];if((i=t0)for(e=Math.ceil(e/a),t=Math.floor(t/a),o=new Array(r=Math.ceil(t-e+1));++s=0?(o>=M?10:o>=B?5:o>=_?2:1)*Math.pow(10,r):-Math.pow(10,-r)/(o>=M?10:o>=B?5:o>=_?2:1)}function U(e,t,n){var i=Math.abs(t-e)/Math.max(0,n),r=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),o=i/r;return o>=M?r*=10:o>=B?r*=5:o>=_&&(r*=2),t=t)&&(n=t);else{let i=-1;for(let r of e)null!=(r=t(r,++i,e))&&(n=r)&&(n=r)}return n}function L(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let i=-1;for(let r of e)null!=(r=t(r,++i,e))&&(n>r||void 0===n&&r>=r)&&(n=r)}return n}function R(e,t,n){const i=e[t];e[t]=e[n],e[n]=i}function q(e,t,n){if(i=(e=Float64Array.from(function*(e,t){if(void 0===t)for(let t of e)null!=t&&(t=+t)>=t&&(yield t);else{let n=-1;for(let i of e)null!=(i=t(i,++n,e))&&(i=+i)>=i&&(yield i)}}(e,n))).length){if((t=+t)<=0||i<2)return L(e);if(t>=1)return P(e);var i,r=(i-1)*t,o=Math.floor(r),a=P(function e(t,n,i=0,r=t.length-1,o=S){for(;r>i;){if(r-i>600){const a=r-i+1,s=n-i+1,u=Math.log(a),c=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*c*(a-c)/a)*(s-a/2<0?-1:1);e(t,n,Math.max(i,Math.floor(n-s*c/a+l)),Math.min(r,Math.floor(n+(a-s)*c/a+l)),o)}const a=t[n];let s=i,u=r;for(R(t,i,n),o(t[r],a)>0&&R(t,i,r);s0;)--u}0===o(t[i],a)?R(t,i,u):(++u,R(t,u,r)),u<=n&&(i=u+1),n<=u&&(r=u-1)}return t}(e,o).subarray(0,o+1));return a+(L(e.subarray(o+1))-a)*(r-o)}}function I(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function W(e,t){switch(arguments.length){case 0:break;case 1:"function"==typeof e?this.interpolator(e):this.range(e);break;default:this.domain(e),"function"==typeof t?this.interpolator(t):this.range(t)}return this}const H=Symbol("implicit");function G(){var e=new Map,t=[],n=[],i=H;function r(r){var o=r+"",a=e.get(o);if(!a){if(i!==H)return i;e.set(o,a=t.push(r))}return n[(a-1)%n.length]}return r.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new Map;for(const i of n){const n=i+"";e.has(n)||e.set(n,t.push(i))}return r},r.range=function(e){return arguments.length?(n=Array.from(e),r):n.slice()},r.unknown=function(e){return arguments.length?(i=e,r):i},r.copy=function(){return G(t,n).unknown(i)},I.apply(r,arguments),r}function Y(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function V(e,t){var n=Object.create(e.prototype);for(var i in t)n[i]=t[i];return n}function X(){}var J="\\s*([+-]?\\d+)\\s*",Q="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Z="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",K=/^#([0-9a-f]{3,8})$/,ee=new RegExp("^rgb\\("+[J,J,J]+"\\)$"),te=new RegExp("^rgb\\("+[Z,Z,Z]+"\\)$"),ne=new RegExp("^rgba\\("+[J,J,J,Q]+"\\)$"),ie=new RegExp("^rgba\\("+[Z,Z,Z,Q]+"\\)$"),re=new RegExp("^hsl\\("+[Q,Z,Z]+"\\)$"),oe=new RegExp("^hsla\\("+[Q,Z,Z,Q]+"\\)$"),ae={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function se(){return this.rgb().formatHex()}function ue(){return this.rgb().formatRgb()}function ce(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=K.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?le(t):3===n?new pe(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?new pe(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?new pe(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=ee.exec(e))?new pe(t[1],t[2],t[3],1):(t=te.exec(e))?new pe(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=ne.exec(e))?fe(t[1],t[2],t[3],t[4]):(t=ie.exec(e))?fe(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=re.exec(e))?ve(t[1],t[2]/100,t[3]/100,1):(t=oe.exec(e))?ve(t[1],t[2]/100,t[3]/100,t[4]):ae.hasOwnProperty(e)?le(ae[e]):"transparent"===e?new pe(NaN,NaN,NaN,0):null}function le(e){return new pe(e>>16&255,e>>8&255,255&e,1)}function fe(e,t,n,i){return i<=0&&(e=t=n=NaN),new pe(e,t,n,i)}function de(e){return e instanceof X||(e=ce(e)),e?new pe((e=e.rgb()).r,e.g,e.b,e.opacity):new pe}function ge(e,t,n,i){return 1===arguments.length?de(e):new pe(e,t,n,null==i?1:i)}function pe(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}function he(){return"#"+be(this.r)+be(this.g)+be(this.b)}function me(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===e?")":", "+e+")")}function be(e){return((e=Math.max(0,Math.min(255,Math.round(e)||0)))<16?"0":"")+e.toString(16)}function ve(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new we(e,t,n,i)}function ye(e){if(e instanceof we)return new we(e.h,e.s,e.l,e.opacity);if(e instanceof X||(e=ce(e)),!e)return new we;if(e instanceof we)return e;var t=(e=e.rgb()).r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),o=Math.max(t,n,i),a=NaN,s=o-r,u=(o+r)/2;return s?(a=t===o?(n-i)/s+6*(n0&&u<1?0:a,new we(a,s,u,e.opacity)}function xe(e,t,n,i){return 1===arguments.length?ye(e):new we(e,t,n,null==i?1:i)}function we(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}function Ae(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}Y(X,ce,{copy:function(e){return Object.assign(new this.constructor,this,e)},displayable:function(){return this.rgb().displayable()},hex:se,formatHex:se,formatHsl:function(){return ye(this).formatHsl()},formatRgb:ue,toString:ue}),Y(pe,ge,V(X,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new pe(this.r*e,this.g*e,this.b*e,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:he,formatHex:he,formatRgb:me,toString:me})),Y(we,xe,V(X,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new we(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new we(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new pe(Ae(e>=240?e-240:e+120,r,i),Ae(e,r,i),Ae(e<120?e+240:e-120,r,i),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var e=this.opacity;return(1===(e=isNaN(e)?1:Math.max(0,Math.min(1,e)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===e?")":", "+e+")")}}));var Oe=Math.PI/180,Ce=180/Math.PI,Fe=6/29,De=3*Fe*Fe;function je(e){if(e instanceof Ee)return new Ee(e.l,e.a,e.b,e.opacity);if(e instanceof Te)return ze(e);e instanceof pe||(e=de(e));var t,n,i=Me(e.r),r=Me(e.g),o=Me(e.b),a=Se((.2225045*i+.7168786*r+.0606169*o)/1);return i===r&&r===o?t=n=a:(t=Se((.4360747*i+.3850649*r+.1430804*o)/.96422),n=Se((.0139322*i+.0971045*r+.7141733*o)/.82521)),new Ee(116*a-16,500*(t-a),200*(a-n),e.opacity)}function ke(e,t,n,i){return 1===arguments.length?je(e):new Ee(e,t,n,null==i?1:i)}function Ee(e,t,n,i){this.l=+e,this.a=+t,this.b=+n,this.opacity=+i}function Se(e){return e>.008856451679035631?Math.pow(e,1/3):e/De+4/29}function $e(e){return e>Fe?e*e*e:De*(e-4/29)}function Ne(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Me(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Be(e){if(e instanceof Te)return new Te(e.h,e.c,e.l,e.opacity);if(e instanceof Ee||(e=je(e)),0===e.a&&0===e.b)return new Te(NaN,0=1?(n=1,t-1):Math.floor(n*t),r=e[i],o=e[i+1],a=i>0?e[i-1]:2*r-o,s=i180||n<-180?n-360*Math.round(n/360):n):Ze(isNaN(e)?t:e)}function tt(e){return 1==(e=+e)?nt:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}(t,n,e):Ze(isNaN(t)?n:t)}}function nt(e,t){var n=t-e;return n?Ke(e,n):Ze(isNaN(e)?t:e)}Y(Ve,Ye,V(X,{brighter:function(e){return e=null==e?1/.7:Math.pow(1/.7,e),new Ve(this.h,this.s,this.l*e,this.opacity)},darker:function(e){return e=null==e?.7:Math.pow(.7,e),new Ve(this.h,this.s,this.l*e,this.opacity)},rgb:function(){var e=isNaN(this.h)?0:(this.h+120)*Oe,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),i=Math.cos(e),r=Math.sin(e);return new pe(255*(t+n*(Ue*i+Pe*r)),255*(t+n*(Le*i+Re*r)),255*(t+n*(qe*i)),this.opacity)}}));var it=function e(t){var n=tt(t);function i(e,t){var i=n((e=ge(e)).r,(t=ge(t)).r),r=n(e.g,t.g),o=n(e.b,t.b),a=nt(e.opacity,t.opacity);return function(t){return e.r=i(t),e.g=r(t),e.b=o(t),e.opacity=a(t),e+""}}return i.gamma=e,i}(1);function rt(e){return function(t){var n,i,r=t.length,o=new Array(r),a=new Array(r),s=new Array(r);for(n=0;no&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,u.push({i:a,x:ft(n,i)})),o=pt.lastIndex;return o180?t+=360:t-e>180&&(e+=360),o.push({i:n.push(r(n)+"rotate(",null,i)-2,x:ft(e,t)})):t&&n.push(r(n)+"rotate("+t+i)}(o.rotate,a.rotate,s,u),function(e,t,n,o){e!==t?o.push({i:n.push(r(n)+"skewX(",null,i)-2,x:ft(e,t)}):t&&n.push(r(n)+"skewX("+t+i)}(o.skewX,a.skewX,s,u),function(e,t,n,i,o,a){if(e!==n||t!==i){var s=o.push(r(o)+"scale(",null,",",null,")");a.push({i:s-4,x:ft(e,n)},{i:s-2,x:ft(t,i)})}else 1===n&&1===i||o.push(r(o)+"scale("+n+","+i+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,u),o=a=null,function(e){for(var t,n=-1,i=u.length;++nt&&(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),i=u>2?Gt:Ht,r=o=null,f}function f(t){return isNaN(t=+t)?n:(r||(r=i(a.map(e),s,u)))(e(c(t)))}return f.invert=function(n){return c(t((o||(o=i(s,a.map(e),ft)))(n)))},f.domain=function(e){return arguments.length?(a=Array.from(e,Rt),l()):a.slice()},f.range=function(e){return arguments.length?(s=Array.from(e),l()):s.slice()},f.rangeRound=function(e){return s=Array.from(e),u=bt,l()},f.clamp=function(e){return arguments.length?(c=!!e||It,l()):c!==It},f.interpolate=function(e){return arguments.length?(u=e,l()):u},f.unknown=function(e){return arguments.length?(n=e,f):n},function(n,i){return e=n,t=i,l()}}function Xt(){return Vt()(It,It)}function Jt(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,i=e.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+e.slice(n+1)]}function Qt(e){return(e=Jt(Math.abs(e)))?e[1]:NaN}var Zt,Kt=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function en(e){if(!(t=Kt.exec(e)))throw new Error("invalid format: "+e);var t;return new tn({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function tn(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function nn(e,t){var n=Jt(e,t);if(!n)return e+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}en.prototype=tn.prototype,tn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var rn={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.round(e).toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return nn(100*e,t)},r:nn,s:function(e,t){var n=Jt(e,t);if(!n)return e+"";var i=n[0],r=n[1],o=r-(Zt=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,a=i.length;return o===a?i:o>a?i+new Array(o-a+1).join("0"):o>0?i.slice(0,o)+"."+i.slice(o):"0."+new Array(1-o).join("0")+Jt(e,Math.max(0,t+o-1))[0]},X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function on(e){return e}var an,sn,un,cn=Array.prototype.map,ln=["y","z","a","f","p","n","ยต","m","","k","M","G","T","P","E","Z","Y"];function fn(e){var t,n,i=void 0===e.grouping||void 0===e.thousands?on:(t=cn.call(e.grouping,Number),n=e.thousands+"",function(e,i){for(var r=e.length,o=[],a=0,s=t[0],u=0;r>0&&s>0&&(u+s+1>i&&(s=Math.max(1,i-u)),o.push(e.substring(r-=s,r+s)),!((u+=s+1)>i));)s=t[a=(a+1)%t.length];return o.reverse().join(n)}),r=void 0===e.currency?"":e.currency[0]+"",o=void 0===e.currency?"":e.currency[1]+"",a=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?on:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(cn.call(e.numerals,String)),u=void 0===e.percent?"%":e.percent+"",c=void 0===e.minus?"-":e.minus+"",l=void 0===e.nan?"NaN":e.nan+"";function f(e){var t=(e=en(e)).fill,n=e.align,f=e.sign,d=e.symbol,g=e.zero,p=e.width,h=e.comma,m=e.precision,b=e.trim,v=e.type;"n"===v?(h=!0,v="g"):rn[v]||(void 0===m&&(m=12),b=!0,v="g"),(g||"0"===t&&"="===n)&&(g=!0,t="0",n="=");var y="$"===d?r:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",x="$"===d?o:/[%p]/.test(v)?u:"",w=rn[v],A=/[defgprs%]/.test(v);function O(e){var r,o,u,d=y,O=x;if("c"===v)O=w(e)+O,e="";else{var C=(e=+e)<0;if(e=isNaN(e)?l:w(Math.abs(e),m),b&&(e=function(e){e:for(var t,n=e.length,i=1,r=-1;i0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),C&&0==+e&&(C=!1),d=(C?"("===f?f:c:"-"===f||"("===f?"":f)+d,O=("s"===v?ln[8+Zt/3]:"")+O+(C&&"("===f?")":""),A)for(r=-1,o=e.length;++r(u=e.charCodeAt(r))||u>57){O=(46===u?a+e.slice(r+1):e.slice(r))+O,e=e.slice(0,r);break}}h&&!g&&(e=i(e,1/0));var F=d.length+e.length+O.length,D=F>1)+d+e+O+D.slice(F);break;default:e=D+d+e+O}return s(e)}return m=void 0===m?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),O.toString=function(){return e+""},O}return{format:f,formatPrefix:function(e,t){var n=f(((e=en(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor(Qt(t)/3))),r=Math.pow(10,-i),o=ln[8+i/3];return function(e){return n(r*e)+o}}}}function dn(e,t,n,i){var r,o=U(e,t,n);switch((i=en(null==i?",f":i)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=i.precision||isNaN(r=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Qt(t)/3)))-Qt(Math.abs(e)))}(o,a))||(i.precision=r),un(i,a);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(r=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Qt(t)-Qt(e))+1}(o,Math.max(Math.abs(e),Math.abs(t))))||(i.precision=r-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(r=function(e){return Math.max(0,-Qt(Math.abs(e)))}(o))||(i.precision=r-2*("%"===i.type))}return sn(i)}function gn(e){var t=e.domain;return e.ticks=function(e){var n=t();return T(n[0],n[n.length-1],null==e?10:e)},e.tickFormat=function(e,n){var i=t();return dn(i[0],i[i.length-1],null==e?10:e,n)},e.nice=function(n){null==n&&(n=10);var i,r=t(),o=0,a=r.length-1,s=r[o],u=r[a];return u0?i=z(s=Math.floor(s/i)*i,u=Math.ceil(u/i)*i,n):i<0&&(i=z(s=Math.ceil(s*i)/i,u=Math.floor(u*i)/i,n)),i>0?(r[o]=Math.floor(s/i)*i,r[a]=Math.ceil(u/i)*i,t(r)):i<0&&(r[o]=Math.ceil(s*i)/i,r[a]=Math.floor(u*i)/i,t(r)),e},e}function pn(e,t){var n,i=0,r=(e=e.slice()).length-1,o=e[i],a=e[r];return a0){for(;d<=g;++d)for(l=1,c=n(d);lu)break;h.push(f)}}else for(;d<=g;++d)for(l=o-1,c=n(d);l>=1;--l)if(!((f=c*l)u)break;h.push(f)}2*h.length0))return s;do{s.push(a=new Date(+n)),t(n,o),e(n)}while(a=t)for(;e(t),!n(t);)t.setTime(t-1)}),(function(e,i){if(e>=e)if(i<0)for(;++i<=0;)for(;t(e,-1),!n(e););else for(;--i>=0;)for(;t(e,1),!n(e););}))},n&&(r.count=function(t,i){return Sn.setTime(+t),$n.setTime(+i),e(Sn),e($n),Math.floor(n(Sn,$n))},r.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?r.filter(i?function(t){return i(t)%e==0}:function(t){return r.count(0,t)%e==0}):r:null}),r}var Mn=Nn((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));Mn.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?Nn((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,n){t.setTime(+t+n*e)}),(function(t,n){return(n-t)/e})):Mn:null};var Bn=Nn((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+1e3*t)}),(function(e,t){return(t-e)/1e3}),(function(e){return e.getUTCSeconds()})),_n=Nn((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds())}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getMinutes()})),Tn=Nn((function(e){e.setTime(e-e.getMilliseconds()-1e3*e.getSeconds()-6e4*e.getMinutes())}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getHours()})),zn=Nn((function(e){e.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5}),(function(e){return e.getDate()-1}));function Un(e){return Nn((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/6048e5}))}var Pn=Un(0),Ln=Un(1),Rn=(Un(2),Un(3),Un(4)),qn=(Un(5),Un(6),Nn((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()}))),In=Nn((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));In.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Nn((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,n){t.setFullYear(t.getFullYear()+n*e)})):null};var Wn=Nn((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+6e4*t)}),(function(e,t){return(t-e)/6e4}),(function(e){return e.getUTCMinutes()})),Hn=Nn((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+36e5*t)}),(function(e,t){return(t-e)/36e5}),(function(e){return e.getUTCHours()})),Gn=Nn((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/864e5}),(function(e){return e.getUTCDate()-1}));function Yn(e){return Nn((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/6048e5}))}var Vn=Yn(0),Xn=Yn(1),Jn=(Yn(2),Yn(3),Yn(4)),Qn=(Yn(5),Yn(6),Nn((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()}))),Zn=Nn((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));function Kn(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function ei(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function ti(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}Zn.every=function(e){return isFinite(e=Math.floor(e))&&e>0?Nn((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null};var ni,ii,ri,oi={"-":"",_:" ",0:"0"},ai=/^\s*\d+/,si=/^%/,ui=/[\\^$*+?|[\]().{}]/g;function ci(e,t,n){var i=e<0?"-":"",r=(i?-e:e)+"",o=r.length;return i+(o68?1900:2e3),n+i[0].length):-1}function xi(e,t,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return i?(e.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function wi(e,t,n){var i=ai.exec(t.slice(n,n+1));return i?(e.q=3*i[0]-3,n+i[0].length):-1}function Ai(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.m=i[0]-1,n+i[0].length):-1}function Oi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.d=+i[0],n+i[0].length):-1}function Ci(e,t,n){var i=ai.exec(t.slice(n,n+3));return i?(e.m=0,e.d=+i[0],n+i[0].length):-1}function Fi(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.H=+i[0],n+i[0].length):-1}function Di(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.M=+i[0],n+i[0].length):-1}function ji(e,t,n){var i=ai.exec(t.slice(n,n+2));return i?(e.S=+i[0],n+i[0].length):-1}function ki(e,t,n){var i=ai.exec(t.slice(n,n+3));return i?(e.L=+i[0],n+i[0].length):-1}function Ei(e,t,n){var i=ai.exec(t.slice(n,n+6));return i?(e.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function Si(e,t,n){var i=si.exec(t.slice(n,n+1));return i?n+i[0].length:-1}function $i(e,t,n){var i=ai.exec(t.slice(n));return i?(e.Q=+i[0],n+i[0].length):-1}function Ni(e,t,n){var i=ai.exec(t.slice(n));return i?(e.s=+i[0],n+i[0].length):-1}function Mi(e,t){return ci(e.getDate(),t,2)}function Bi(e,t){return ci(e.getHours(),t,2)}function _i(e,t){return ci(e.getHours()%12||12,t,2)}function Ti(e,t){return ci(1+zn.count(In(e),e),t,3)}function zi(e,t){return ci(e.getMilliseconds(),t,3)}function Ui(e,t){return zi(e,t)+"000"}function Pi(e,t){return ci(e.getMonth()+1,t,2)}function Li(e,t){return ci(e.getMinutes(),t,2)}function Ri(e,t){return ci(e.getSeconds(),t,2)}function qi(e){var t=e.getDay();return 0===t?7:t}function Ii(e,t){return ci(Pn.count(In(e)-1,e),t,2)}function Wi(e,t){var n=e.getDay();return e=n>=4||0===n?Rn(e):Rn.ceil(e),ci(Rn.count(In(e),e)+(4===In(e).getDay()),t,2)}function Hi(e){return e.getDay()}function Gi(e,t){return ci(Ln.count(In(e)-1,e),t,2)}function Yi(e,t){return ci(e.getFullYear()%100,t,2)}function Vi(e,t){return ci(e.getFullYear()%1e4,t,4)}function Xi(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ci(t/60|0,"0",2)+ci(t%60,"0",2)}function Ji(e,t){return ci(e.getUTCDate(),t,2)}function Qi(e,t){return ci(e.getUTCHours(),t,2)}function Zi(e,t){return ci(e.getUTCHours()%12||12,t,2)}function Ki(e,t){return ci(1+Gn.count(Zn(e),e),t,3)}function er(e,t){return ci(e.getUTCMilliseconds(),t,3)}function tr(e,t){return er(e,t)+"000"}function nr(e,t){return ci(e.getUTCMonth()+1,t,2)}function ir(e,t){return ci(e.getUTCMinutes(),t,2)}function rr(e,t){return ci(e.getUTCSeconds(),t,2)}function or(e){var t=e.getUTCDay();return 0===t?7:t}function ar(e,t){return ci(Vn.count(Zn(e)-1,e),t,2)}function sr(e,t){var n=e.getUTCDay();return e=n>=4||0===n?Jn(e):Jn.ceil(e),ci(Jn.count(Zn(e),e)+(4===Zn(e).getUTCDay()),t,2)}function ur(e){return e.getUTCDay()}function cr(e,t){return ci(Xn.count(Zn(e)-1,e),t,2)}function lr(e,t){return ci(e.getUTCFullYear()%100,t,2)}function fr(e,t){return ci(e.getUTCFullYear()%1e4,t,4)}function dr(){return"+0000"}function gr(){return"%"}function pr(e){return+e}function hr(e){return Math.floor(+e/1e3)}!function(e){ni=function(e){var t=e.dateTime,n=e.date,i=e.time,r=e.periods,o=e.days,a=e.shortDays,s=e.months,u=e.shortMonths,c=fi(r),l=di(r),f=fi(o),d=di(o),g=fi(a),p=di(a),h=fi(s),m=di(s),b=fi(u),v=di(u),y={a:function(e){return a[e.getDay()]},A:function(e){return o[e.getDay()]},b:function(e){return u[e.getMonth()]},B:function(e){return s[e.getMonth()]},c:null,d:Mi,e:Mi,f:Ui,H:Bi,I:_i,j:Ti,L:zi,m:Pi,M:Li,p:function(e){return r[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:pr,s:hr,S:Ri,u:qi,U:Ii,V:Wi,w:Hi,W:Gi,x:null,X:null,y:Yi,Y:Vi,Z:Xi,"%":gr},x={a:function(e){return a[e.getUTCDay()]},A:function(e){return o[e.getUTCDay()]},b:function(e){return u[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:Ji,e:Ji,f:tr,H:Qi,I:Zi,j:Ki,L:er,m:nr,M:ir,p:function(e){return r[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:pr,s:hr,S:rr,u:or,U:ar,V:sr,w:ur,W:cr,x:null,X:null,y:lr,Y:fr,Z:dr,"%":gr},w={a:function(e,t,n){var i=g.exec(t.slice(n));return i?(e.w=p[i[0].toLowerCase()],n+i[0].length):-1},A:function(e,t,n){var i=f.exec(t.slice(n));return i?(e.w=d[i[0].toLowerCase()],n+i[0].length):-1},b:function(e,t,n){var i=b.exec(t.slice(n));return i?(e.m=v[i[0].toLowerCase()],n+i[0].length):-1},B:function(e,t,n){var i=h.exec(t.slice(n));return i?(e.m=m[i[0].toLowerCase()],n+i[0].length):-1},c:function(e,n,i){return C(e,t,n,i)},d:Oi,e:Oi,f:Ei,H:Fi,I:Fi,j:Ci,L:ki,m:Ai,M:Di,p:function(e,t,n){var i=c.exec(t.slice(n));return i?(e.p=l[i[0].toLowerCase()],n+i[0].length):-1},q:wi,Q:$i,s:Ni,S:ji,u:pi,U:hi,V:mi,w:gi,W:bi,x:function(e,t,i){return C(e,n,t,i)},X:function(e,t,n){return C(e,i,t,n)},y:yi,Y:vi,Z:xi,"%":Si};function A(e,t){return function(n){var i,r,o,a=[],s=-1,u=0,c=e.length;for(n instanceof Date||(n=new Date(+n));++s53)return null;"w"in o||(o.w=1),"Z"in o?(r=(i=ei(ti(o.y,0,1))).getUTCDay(),i=r>4||0===r?Xn.ceil(i):Xn(i),i=Gn.offset(i,7*(o.V-1)),o.y=i.getUTCFullYear(),o.m=i.getUTCMonth(),o.d=i.getUTCDate()+(o.w+6)%7):(r=(i=Kn(ti(o.y,0,1))).getDay(),i=r>4||0===r?Ln.ceil(i):Ln(i),i=zn.offset(i,7*(o.V-1)),o.y=i.getFullYear(),o.m=i.getMonth(),o.d=i.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),r="Z"in o?ei(ti(o.y,0,1)).getUTCDay():Kn(ti(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(r+5)%7:o.w+7*o.U-(r+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,ei(o)):Kn(o)}}function C(e,t,n,i){for(var r,o,a=0,s=t.length,u=n.length;a=u)return-1;if(37===(r=t.charCodeAt(a++))){if(r=t.charAt(a++),!(o=w[r in oi?t.charAt(a++):r])||(i=o(e,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}return(y.x=A(n,y),y.X=A(i,y),y.c=A(t,y),x.x=A(n,x),x.X=A(i,x),x.c=A(t,x),{format:function(e){var t=A(e+="",y);return t.toString=function(){return e},t},parse:function(e){var t=O(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=A(e+="",x);return t.toString=function(){return e},t},utcParse:function(e){var t=O(e+="",!0);return t.toString=function(){return e},t}})}(e),ii=ni.format,ni.parse,ri=ni.utcFormat,ni.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function mr(e){return new Date(e)}function br(e){return e instanceof Date?+e:+new Date(+e)}function vr(e,t,n,i,r,o,a,s,u){var c=Xt(),l=c.invert,f=c.domain,d=u(".%L"),g=u(":%S"),p=u("%I:%M"),h=u("%I %p"),m=u("%a %d"),b=u("%b %d"),v=u("%B"),y=u("%Y"),x=[[a,1,1e3],[a,5,5e3],[a,15,15e3],[a,30,3e4],[o,1,6e4],[o,5,3e5],[o,15,9e5],[o,30,18e5],[r,1,36e5],[r,3,108e5],[r,6,216e5],[r,12,432e5],[i,1,864e5],[i,2,1728e5],[n,1,6048e5],[t,1,2592e6],[t,3,7776e6],[e,1,31536e6]];function w(s){return(a(s)0?i:1:0}(n,s,u);e=(d-f)/(g||1),a&&(e=Math.floor(e)),f+=(d-f-e*(n-s))*c,t=e*(1-s),a&&(f=Math.round(f),t=Math.round(t));var p=function(e,t,n){e=+e,t=+t,n=(r=arguments.length)<2?(t=e,e=0,1):r<3?1:+n;for(var i=-1,r=0|Math.max(0,Math.ceil((t-e)/n)),o=new Array(r);++io[1-l])))return n=Math.max(0,N(f,u)-1),a=u===c?n:N(f,c)-1,u-f[n]>t+1e-10&&++n,l&&(s=n,n=d-a,a=d-s),n>a?void 0:i().slice(n,a+1)}},n.invert=function(e){var t=n.invertRange([e,e]);return t?t[0]:t},n.copy=function(){return Fr().domain(i()).range(o).round(a).paddingInner(s).paddingOuter(u).align(c)},l()}var Dr=Array.prototype.map;function jr(e){return Dr.call(e,(function(e){return+e}))}var kr=Array.prototype.slice;const Er={};function Sr(e,t,n){const i=function(){var n=t();return n.invertRange||(n.invertRange=n.invert?function(e){return function(t){var n,i=t[0],r=t[1];return r=s&&a[r]<=u&&(c<0&&(c=r),n=r);if(!(c<0))return s=e.invertExtent(a[c]),u=e.invertExtent(a[n]),[void 0===s[0]?s[1]:s[0],void 0===u[1]?u[0]:u[1]]}}(n):void 0),n.type=e,n};var r;return i.metadata=function(e){for(var t={},n=0,i=e.length;n1?(Er[e]=Sr(e,t,n),this):Nr(e)?Er[e]:void 0}function Nr(e){return function(e,t){return E.call(e,t)}(Er,e)}function Mr(e,t,n){return Pt(function(e,t){var n=Lt[function(e){return"interpolate"+e.toLowerCase().split("-").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join("")}(e)];return null!=t&&n&&n.gamma?n.gamma(t):n}(t||"rgb",n),e)}$r("identity",(function e(t){var n;function i(e){return isNaN(e=+e)?n:e}return i.invert=i,i.domain=i.range=function(e){return arguments.length?(t=Array.from(e,Rt),i):t.slice()},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return e(t).unknown(n)},t=arguments.length?Array.from(t,Rt):[0,1],gn(i)})),$r("linear",(function e(){var t=Xt();return t.copy=function(){return Yt(t,e())},I.apply(t,arguments),gn(t)}),O),$r(A,(function e(){var t=wn(Vt()).domain([1,10]);return t.copy=function(){return Yt(t,e()).base(t.base())},I.apply(t,arguments),t}),[O,A]),$r("pow",En,O),$r("sqrt",(function(){return En.apply(null,arguments).exponent(.5)}),O),$r("symlog",(function e(){var t=Cn(Vt());return t.copy=function(){return Yt(t,e()).constant(t.constant())},I.apply(t,arguments)}),O),$r("time",(function(){return I.apply(vr(In,qn,Pn,zn,Tn,_n,Bn,Mn,ii).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}),[O,"temporal"]),$r("utc",(function(){return I.apply(vr(Zn,Qn,Vn,Gn,Hn,Wn,Bn,Mn,ri).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}),[O,"temporal"]),$r("sequential",wr,[O,"interpolating"]),$r("sequential-linear",wr,[O,"interpolating"]),$r("sequential-log",(function e(){var t=wn(yr()).domain([1,10]);return t.copy=function(){return xr(t,e()).base(t.base())},W.apply(t,arguments)}),[O,"interpolating",A]),$r("sequential-pow",Ar,[O,"interpolating"]),$r("sequential-sqrt",(function(){return Ar.apply(null,arguments).exponent(.5)}),[O,"interpolating"]),$r("sequential-symlog",(function e(){var t=Cn(yr());return t.copy=function(){return xr(t,e()).constant(t.constant())},W.apply(t,arguments)}),[O,"interpolating"]),$r("diverging-linear",(function e(){var t=gn(Or()(It));return t.copy=function(){return xr(t,e())},W.apply(t,arguments)}),[O,"interpolating"]),$r("diverging-log",(function e(){var t=wn(Or()).domain([.1,1,10]);return t.copy=function(){return xr(t,e()).base(t.base())},W.apply(t,arguments)}),[O,"interpolating",A]),$r("diverging-pow",Cr,[O,"interpolating"]),$r("diverging-sqrt",(function(){return Cr.apply(null,arguments).exponent(.5)}),[O,"interpolating"]),$r("diverging-symlog",(function e(){var t=Cn(Or());return t.copy=function(){return xr(t,e()).constant(t.constant())},W.apply(t,arguments)}),[O,"interpolating"]),$r("quantile",(function e(){var t,n=[],i=[],r=[];function o(){var e=0,t=Math.max(1,i.length);for(r=new Array(t-1);++e0?r[t-1]:n[0],t=r?[o[r-1],i]:[o[t-1],o[t]]},s.unknown=function(e){return arguments.length?(t=e,s):s},s.thresholds=function(){return o.slice()},s.copy=function(){return e().domain([n,i]).range(a).unknown(t)},I.apply(gn(s),arguments)}),"discretizing"),$r("threshold",(function e(){var t,n=[.5],i=[0,1],r=1;function o(e){return e<=e?i[N(n,e,0,r)]:t}return o.domain=function(e){return arguments.length?(n=Array.from(e),r=Math.min(n.length,i.length-1),o):n.slice()},o.range=function(e){return arguments.length?(i=Array.from(e),r=Math.min(n.length,i.length-1),o):i.slice()},o.invertExtent=function(e){var t=i.indexOf(e);return[n[t-1],n[t]]},o.unknown=function(e){return arguments.length?(t=e,o):t},o.copy=function(){return e().domain(n).range(i).unknown(t)},I.apply(o,arguments)}),"discretizing"),$r("bin-ordinal",(function e(){var t=[],n=[];function i(e){return null==e||e!=e?void 0:n[(N(t,e)-1)%n.length]}return i.domain=function(e){return arguments.length?(t=jr(e),i):t.slice()},i.range=function(e){return arguments.length?(n=kr.call(e),i):n.slice()},i.tickFormat=function(e,n){return dn(t[0],function(e){return e[e.length-1]}(t),null==e?10:e,n)},i.copy=function(){return e().domain(i.domain()).range(i.range())},i}),["discrete","discretizing"]),$r("ordinal",G,"discrete"),$r("band",Fr,"discrete"),$r("point",(function(){return function e(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,t.copy=function(){return e(n())},t}(Fr().paddingInner(1))}),"discrete");function Br(e){for(var t=e.length/6|0,n=new Array(t),i=0;i1?(Tr[e]=t,this):Tr[e]}_r({category10:"1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf",category20:"1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5",category20b:"393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6",category20c:"3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9",tableau10:"4c78a8f58518e4575672b7b254a24beeca3bb279a2ff9da69d755dbab0ac",tableau20:"4c78a89ecae9f58518ffbf7954a24b88d27ab79a20f2cf5b43989483bcb6e45756ff9d9879706ebab0acd67195fcbfd2b279a2d6a5c99e765fd8b5a5",accent:"7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666",dark2:"1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666",paired:"a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928",pastel1:"fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2",pastel2:"b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc",set1:"e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999",set2:"66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3",set3:"8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"},Br),_r({blues:"cfe1f2bed8eca8cee58fc1de74b2d75ba3cf4592c63181bd206fb2125ca40a4a90",greens:"d3eecdc0e6baabdda594d3917bc77d60ba6c46ab5e329a512089430e7735036429",greys:"e2e2e2d4d4d4c4c4c4b1b1b19d9d9d8888887575756262624d4d4d3535351e1e1e",oranges:"fdd8b3fdc998fdb87bfda55efc9244f87f2cf06b18e4580bd14904b93d029f3303",purples:"e2e1efd4d4e8c4c5e0b4b3d6a3a0cc928ec3827cb97566ae684ea25c3696501f8c",reds:"fdc9b4fcb49afc9e80fc8767fa7051f6573fec3f2fdc2a25c81b1db21218970b13",blueGreen:"d5efedc1e8e0a7ddd18bd2be70c6a958ba9144ad77319c5d2089460e7736036429",bluePurple:"ccddecbad0e4a8c2dd9ab0d4919cc98d85be8b6db28a55a6873c99822287730f71",greenBlue:"d3eecec5e8c3b1e1bb9bd8bb82cec269c2ca51b2cd3c9fc7288abd1675b10b60a1",orangeRed:"fddcaffdcf9bfdc18afdad77fb9562f67d53ee6545e24932d32d1ebf130da70403",purpleBlue:"dbdaebc8cee4b1c3de97b7d87bacd15b9fc93a90c01e7fb70b70ab056199045281",purpleBlueGreen:"dbd8eac8cee4b0c3de93b7d872acd1549fc83892bb1c88a3097f8702736b016353",purpleRed:"dcc9e2d3b3d7ce9eccd186c0da6bb2e14da0e23189d91e6fc61159ab07498f023a",redPurple:"fccfccfcbec0faa9b8f98faff571a5ec539ddb3695c41b8aa908808d0179700174",yellowGreen:"e4f4acd1eca0b9e2949ed68880c97c62bb6e47aa5e3297502083440e723b036034",yellowOrangeBrown:"feeaa1fedd84fecc63feb746fca031f68921eb7215db5e0bc54c05ab3d038f3204",yellowOrangeRed:"fee087fed16ffebd59fea849fd903efc7335f9522bee3423de1b20ca0b22af0225",blueOrange:"134b852f78b35da2cb9dcae1d2e5eff2f0ebfce0bafbbf74e8932fc5690d994a07",brownBlueGreen:"704108a0651ac79548e3c78af3e6c6eef1eac9e9e48ed1c74da79e187a72025147",purpleGreen:"5b1667834792a67fb6c9aed3e6d6e8eff0efd9efd5aedda971bb75368e490e5e29",purpleOrange:"4114696647968f83b7b9b4d6dadbebf3eeeafce0bafbbf74e8932fc5690d994a07",redBlue:"8c0d25bf363adf745ef4ae91fbdbc9f2efeed2e5ef9dcae15da2cb2f78b3134b85",redGrey:"8c0d25bf363adf745ef4ae91fcdccbfaf4f1e2e2e2c0c0c0969696646464343434",yellowGreenBlue:"eff9bddbf1b4bde5b594d5b969c5be45b4c22c9ec02182b82163aa23479c1c3185",redYellowBlue:"a50026d4322cf16e43fcac64fedd90faf8c1dcf1ecabd6e875abd04a74b4313695",redYellowGreen:"a50026d4322cf16e43fcac63fedd8df9f7aed7ee8ea4d86e64bc6122964f006837",pinkYellowGreen:"8e0152c0267edd72adf0b3d6faddedf5f3efe1f2cab6de8780bb474f9125276419",spectral:"9e0142d13c4bf0704afcac63fedd8dfbf8b0e0f3a1a9dda269bda94288b55e4fa2",viridis:"440154470e61481a6c482575472f7d443a834144873d4e8a39568c35608d31688e2d708e2a788e27818e23888e21918d1f988b1fa08822a8842ab07f35b77943bf7154c56866cc5d7ad1518fd744a5db36bcdf27d2e21be9e51afde725",magma:"0000040404130b0924150e3720114b2c11603b0f704a107957157e651a80721f817f24828c29819a2e80a8327db6377ac43c75d1426fde4968e95462f1605df76f5cfa7f5efc8f65fe9f6dfeaf78febf84fece91fddea0fcedaffcfdbf",inferno:"0000040403130c0826170c3b240c4f330a5f420a68500d6c5d126e6b176e781c6d86216b932667a12b62ae305cbb3755c73e4cd24644dd513ae65c30ed6925f3771af8850ffb9506fca50afcb519fac62df6d645f2e661f3f484fcffa4",plasma:"0d088723069033059742039d5002a25d01a66a00a87801a88405a7900da49c179ea72198b12a90ba3488c33d80cb4779d35171da5a69e16462e76e5bed7953f2834cf68f44fa9a3dfca636fdb32ffec029fcce25f9dc24f5ea27f0f921",rainbow:"6e40aa883eb1a43db3bf3cafd83fa4ee4395fe4b83ff576eff6659ff7847ff8c38f3a130e2b72fcfcc36bee044aff05b8ff4576ff65b52f6673af27828ea8d1ddfa319d0b81cbecb23abd82f96e03d82e14c6edb5a5dd0664dbf6e40aa",sinebow:"ff4040fc582af47218e78d0bd5a703bfbf00a7d5038de70b72f41858fc2a40ff402afc5818f4720be78d03d5a700bfbf03a7d50b8de71872f42a58fc4040ff582afc7218f48d0be7a703d5bf00bfd503a7e70b8df41872fc2a58ff4040",browns:"eedbbdecca96e9b97ae4a865dc9856d18954c7784cc0673fb85536ad44339f3632",tealBlues:"bce4d89dd3d181c3cb65b3c245a2b9368fae347da0306a932c5985",teals:"bbdfdfa2d4d58ac9c975bcbb61b0af4da5a43799982b8b8c1e7f7f127273006667",warmGreys:"dcd4d0cec5c1c0b8b4b3aaa7a59c9998908c8b827f7e7673726866665c5a59504e",goldGreen:"f4d166d5ca60b6c35c98bb597cb25760a6564b9c533f8f4f33834a257740146c36",goldOrange:"f4d166f8be5cf8aa4cf5983bf3852aef701be2621fd65322c54923b142239e3a26",goldRed:"f4d166f6be59f9aa51fc964ef6834bee734ae56249db5247cf4244c43141b71d3e",lightGreyRed:"efe9e6e1dad7d5cbc8c8bdb9bbaea9cd967ddc7b43e15f19df4011dc000b",lightGreyTeal:"e4eaead6dcddc8ced2b7c2c7a6b4bc64b0bf22a6c32295c11f85be1876bc",lightMulti:"e0f1f2c4e9d0b0de9fd0e181f6e072f6c053f3993ef77440ef4a3c",lightOrange:"f2e7daf7d5baf9c499fab184fa9c73f68967ef7860e8645bde515bd43d5b",lightTealBlue:"e3e9e0c0dccf9aceca7abfc859afc0389fb9328dad2f7ca0276b95255988",darkBlue:"3232322d46681a5c930074af008cbf05a7ce25c0dd38daed50f3faffffff",darkGold:"3c3c3c584b37725e348c7631ae8b2bcfa424ecc31ef9de30fff184ffffff",darkGreen:"3a3a3a215748006f4d048942489e4276b340a6c63dd2d836ffeb2cffffaa",darkMulti:"3737371f5287197d8c29a86995ce3fffe800ffffff",darkRed:"3434347036339e3c38cc4037e75d1eec8620eeab29f0ce32ffeb2c"},e=>Mr(Br(e))),Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function e(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,(function(n,i){return Array.isArray(i)?n.push.apply(n,e.call(i,t-1)):n.push(i),n}),[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(e){return Array.prototype.map.apply(this,arguments).flat()},writable:!0});var Ur=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=function(){function e(e,t){return null!=t&&e instanceof t}var t,n,i;try{t=Map}catch(e){t=function(){}}try{n=Set}catch(e){n=function(){}}try{i=Promise}catch(e){i=function(){}}function r(o,s,u,c,l){"object"==typeof s&&(u=s.depth,c=s.prototype,l=s.includeNonEnumerable,s=s.circular);var f=[],d=[],g="undefined"!=typeof Buffer;return void 0===s&&(s=!0),void 0===u&&(u=1/0),function o(u,p){if(null===u)return null;if(0===p)return u;var h,m;if("object"!=typeof u)return u;if(e(u,t))h=new t;else if(e(u,n))h=new n;else if(e(u,i))h=new i((function(e,t){u.then((function(t){e(o(t,p-1))}),(function(e){t(o(e,p-1))}))}));else if(r.__isArray(u))h=[];else if(r.__isRegExp(u))h=new RegExp(u.source,a(u)),u.lastIndex&&(h.lastIndex=u.lastIndex);else if(r.__isDate(u))h=new Date(u.getTime());else{if(g&&Buffer.isBuffer(u))return h=Buffer.allocUnsafe?Buffer.allocUnsafe(u.length):new Buffer(u.length),u.copy(h),h;e(u,Error)?h=Object.create(u):void 0===c?(m=Object.getPrototypeOf(u),h=Object.create(m)):(h=Object.create(c),m=c)}if(s){var b=f.indexOf(u);if(-1!=b)return d[b];f.push(u),d.push(h)}for(var v in e(u,t)&&u.forEach((function(e,t){var n=o(t,p-1),i=o(e,p-1);h.set(n,i)})),e(u,n)&&u.forEach((function(e){var t=o(e,p-1);h.add(t)})),u){var y;m&&(y=Object.getOwnPropertyDescriptor(m,v)),y&&null==y.set||(h[v]=o(u[v],p-1))}if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(u);for(v=0;vIr(e,t))}:Lr(e)?{or:e.or.map(e=>Ir(e,t))}:t(e)}const Wr=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var i,r,o;if(Array.isArray(t)){if((i=t.length)!=n.length)return!1;for(r=i;0!=r--;)if(!e(t[r],n[r]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((i=(o=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(r=i;0!=r--;)if(!Object.prototype.hasOwnProperty.call(n,o[r]))return!1;for(r=i;0!=r--;){var a=o[r];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n},Hr=Ur;function Gr(e,t){const n={};for(const i of t)b(e,i)&&(n[i]=e[i]);return n}function Yr(e,t){const n=Object.assign({},e);for(const e of t)delete n[e];return n}Set.prototype.toJSON=function(){return`Set(${[...this].map(e=>Pr(e)).join(",")})`};const Vr=Pr;function Xr(e){if(y(e))return e;const t=s(e)?e:Pr(e);if(t.length<250)return t;let n=0;for(let e=0;e-1}function Zr(e,t){let n=0;for(const[i,r]of e.entries())if(t(r,i,n++))return!0;return!1}function Kr(e,t){let n=0;for(const[i,r]of e.entries())if(!t(r,i,n++))return!1;return!0}function eo(e,t){for(const n of Object.keys(t))g(e,n,t[n],!0)}function to(e,t){const n=[],i={};let r;for(const o of e)r=t(o),r in i||(i[r]=1,n.push(o));return n}function no(e,t){for(const n of e)if(t.has(n))return!0;return!1}function io(e){const t=new Set;for(const n of e){const e=r(n).map((e,t)=>0===t?e:`[${e}]`);e.map((t,n)=>e.slice(0,n+1).join("")).forEach(e=>t.add(e))}return t}function ro(e,t){return void 0===e||void 0===t||no(io(e),io(t))}const oo=Object.keys,ao=Object.values;function so(e){return!0===e||!1===e}function uo(e){const t=e.replace(/\W/g,"_");return(e.match(/^\d+/)?"_":"")+t}function co(e,t){return qr(e)?"!("+co(e.not,t)+")":Rr(e)?"("+e.and.map(e=>co(e,t)).join(") && (")+")":Lr(e)?"("+e.or.map(e=>co(e,t)).join(") || (")+")":t(e)}function lo(e,t){if(0===t.length)return!0;const n=t.shift();return lo(e[n],t)&&delete e[n],0===oo(e).length}function fo(e){return e.charAt(0).toUpperCase()+e.substr(1)}function go(e){return e.replace(/(\[|\]|\.|'|")/g,"\\$1")}function po(e,t="datum"){const n=r(e),i=[];for(let e=1;e<=n.length;e++){const r=`[${n.slice(0,e).map(u).join("][")}]`;i.push(`${t}${r}`)}return i.join(" && ")}function ho(e){return`${r(e).map(go).join("\\.")}`}function mo(e,t,n){return e.replace(new RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),n)}function bo(e){return e?r(e).length:0}function vo(...e){for(const t of e)if(void 0!==t)return t}let yo=42;function xo(e){return(e%360+360)%360}function wo(e){return!!y(e)||!isNaN(e)&&!isNaN(parseFloat(e))}const Ao={domainColor:{part:"domain",vgProp:"stroke"},labelAlign:{part:"labels",vgProp:"align"},labelBaseline:{part:"labels",vgProp:"baseline"},labelColor:{part:"labels",vgProp:"fill"},labelFont:{part:"labels",vgProp:"font"},labelFontSize:{part:"labels",vgProp:"fontSize"},labelFontStyle:{part:"labels",vgProp:"fontStyle"},labelFontWeight:{part:"labels",vgProp:"fontWeight"},labelOpacity:{part:"labels",vgProp:"opacity"},labelOffset:null,labelPadding:null,gridColor:{part:"grid",vgProp:"stroke"},gridDash:{part:"grid",vgProp:"strokeDash"},gridDashOffset:{part:"grid",vgProp:"strokeDash"},gridOpacity:{part:"grid",vgProp:"opacity"},gridWidth:{part:"grid",vgProp:"strokeWidth"},tickColor:{part:"ticks",vgProp:"stroke"},tickDash:{part:"ticks",vgProp:"strokeDash"},tickDashOffset:{part:"ticks",vgProp:"strokeDash"},tickOpacity:{part:"ticks",vgProp:"opacity"},tickSize:null,tickWidth:{part:"ticks",vgProp:"strokeWidth"},titleColor:{part:"title",vgProp:"fill"},title:null};function Oo(e){return e&&e.condition}const Co=["domain","grid","labels","ticks","title"],Fo={grid:"grid",gridColor:"grid",gridDash:"grid",gridDashOffset:"grid",gridOpacity:"grid",gridScale:"grid",gridWidth:"grid",orient:"main",bandPosition:"both",domain:"main",domainColor:"main",domainDash:"main",domainDashOffset:"main",domainOpacity:"main",domainWidth:"main",format:"main",formatType:"main",labelAlign:"main",labelAngle:"main",labelBaseline:"main",labelBound:"main",labelColor:"main",labelFlush:"main",labelFlushOffset:"main",labelFont:"main",labelFontSize:"main",labelFontStyle:"main",labelFontWeight:"main",labelLimit:"main",labelLineHeight:"main",labelOpacity:"main",labelOffset:"main",labelOverlap:"main",labelPadding:"main",labels:"main",labelSeparation:"main",maxExtent:"main",minExtent:"main",offset:"both",position:"main",tickColor:"main",tickDash:"main",tickDashOffset:"main",tickMinStep:"main",tickOffset:"both",tickOpacity:"main",tickRound:"both",ticks:"main",tickSize:"main",tickWidth:"both",title:"main",titleAlign:"main",titleAnchor:"main",titleAngle:"main",titleBaseline:"main",titleColor:"main",titleFont:"main",titleFontSize:"main",titleFontStyle:"main",titleFontWeight:"main",titleLimit:"main",titleLineHeight:"main",titleOpacity:"main",titlePadding:"main",titleX:"main",titleY:"main",encode:"both",scale:"both",tickBand:"both",tickCount:"both",tickExtra:"both",translate:"both",values:"both",zindex:"both"},Do={orient:1,bandPosition:1,domain:1,domainColor:1,domainDash:1,domainDashOffset:1,domainOpacity:1,domainWidth:1,format:1,formatType:1,grid:1,gridColor:1,gridDash:1,gridDashOffset:1,gridOpacity:1,gridWidth:1,labelAlign:1,labelAngle:1,labelBaseline:1,labelBound:1,labelColor:1,labelFlush:1,labelFlushOffset:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelLineHeight:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labels:1,labelSeparation:1,maxExtent:1,minExtent:1,offset:1,position:1,tickBand:1,tickColor:1,tickCount:1,tickDash:1,tickDashOffset:1,tickExtra:1,tickMinStep:1,tickOffset:1,tickOpacity:1,tickRound:1,ticks:1,tickSize:1,tickWidth:1,title:1,titleAlign:1,titleAnchor:1,titleAngle:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titlePadding:1,titleX:1,titleY:1,values:1,translate:1,zindex:1},jo=Object.assign(Object.assign({},Do),{style:1,labelExpr:1,encoding:1});function ko(e){return!!jo[e]}function Eo(e){return Qr(["line","area","trail"],e)}function So(e){return Qr(["rect","bar","image"],e)}const $o=oo({area:1,bar:1,image:1,line:1,point:1,text:1,tick:1,trail:1,rect:1,geoshape:1,rule:1,circle:1,square:1});function No(e){return e.type}x($o);const Mo=["stroke","strokeWidth","strokeDash","strokeDashOffset","strokeOpacity","strokeJoin","strokeMiterLimit","fill","fillOpacity"],Bo=["filled","color","tooltip","invalid","timeUnitBandPosition","timeUnitBand"],_o={horizontal:["cornerRadiusTopRight","cornerRadiusBottomRight"],vertical:["cornerRadiusTopLeft","cornerRadiusTopRight"]},To={binSpacing:1,continuousBandSize:5,timeUnitBandPosition:.5},zo={binSpacing:0,continuousBandSize:5,timeUnitBandPosition:.5};function Uo(e){return!!e.mark}class Po{constructor(e,t){this.name=e,this.run=t}hasMatchingType(e){return!!Uo(e)&&(No(t=e.mark)?t.type:t)===this.name;var t}}const Lo={argmax:1,argmin:1,average:1,count:1,distinct:1,product:1,max:1,mean:1,median:1,min:1,missing:1,q1:1,q3:1,ci0:1,ci1:1,stderr:1,stdev:1,stdevp:1,sum:1,valid:1,values:1,variance:1,variancep:1},Ro={count:1,min:1,max:1};function qo(e){return!!e&&!!e.argmin}function Io(e){return!!e&&!!e.argmax}function Wo(e){return s(e)&&!!Lo[e]}const Ho=["count","valid","missing","distinct"];function Go(e){return s(e)&&Qr(Ho,e)}const Yo=["count","sum","distinct","valid","missing"],Vo=x(["mean","average","median","q1","q3","min","max"]),Xo="row",Jo="x",Qo="y",Zo="x2",Ko="y2",ea="color",ta="fill",na="stroke",ia="shape",ra="size",oa="opacity",aa="fillOpacity",sa="strokeOpacity",ua="strokeWidth",ca="strokeDash";const la={longitude:1,longitude2:1,latitude:1,latitude2:1};const fa=oo(la),da=Object.assign(Object.assign(Object.assign({},{x:1,y:1,x2:1,y2:1}),la),{color:1,fill:1,stroke:1,opacity:1,fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeDash:1,size:1,shape:1,order:1,text:1,detail:1,key:1,tooltip:1,href:1,url:1});function ga(e){return"color"===e||"fill"===e||"stroke"===e}const pa={row:1,column:1,facet:1},ha=oo(pa),ma=Object.assign(Object.assign({},da),pa),ba=oo(ma),va=w(ma,["order","detail","tooltip"]),ya=w(va,["row","column","facet"]);function xa(e){return!!ma[e]}const wa=["x2","y2","latitude2","longitude2"];function Aa(e){return Oa(e)!==e}function Oa(e){switch(e){case"x2":return"x";case"y2":return"y";case"latitude2":return"latitude";case"longitude2":return"longitude"}return e}function Ca(e){switch(e){case"x":return"x2";case"y":return"y2";case"latitude":return"latitude2";case"longitude":return"longitude2"}}const Fa=w(da,["x","y","x2","y2","latitude","longitude","latitude2","longitude2"]),Da=oo(Fa),ja={x:1,y:1},ka=oo(ja);function Ea(e){return"x"===e?"width":"height"}function Sa(e){return"width"===e?"x":"y"}const $a=w(Fa,["text","tooltip","href","url","detail","key","order"]),Na=oo($a);const Ma=Object.assign(Object.assign({},ja),$a),Ba=oo(Ma);function _a(e){return!!Ma[e]}function Ta(e,t){return function(e){switch(e){case ea:case ta:case na:case"detail":case"key":case"tooltip":case"href":case"order":case oa:case aa:case sa:case ua:case"facet":case Xo:case"column":return za;case Jo:case Qo:case"latitude":case"longitude":return Ua;case Zo:case Ko:case"latitude2":case"longitude2":return{area:"always",bar:"always",image:"always",rect:"always",rule:"always",circle:"binned",point:"binned",square:"binned",tick:"binned",line:"binned",trail:"binned"};case ra:return{point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",text:"always",line:"always",trail:"always"};case ca:return{line:"always",point:"always",tick:"always",rule:"always",circle:"always",square:"always",bar:"always",geoshape:"always"};case ia:return{point:"always",geoshape:"always"};case"text":return{text:"always"};case"url":return{image:"always"}}}(e)[t]}const za={area:"always",bar:"always",circle:"always",geoshape:"always",image:"always",line:"always",rule:"always",point:"always",rect:"always",square:"always",trail:"always",text:"always",tick:"always"},Ua=w(za,["geoshape"]);function Pa(e){switch(e){case Jo:case Qo:case ra:case ua:case oa:case aa:case sa:case Zo:case Ko:return;case"facet":case Xo:case"column":case ia:case ca:case"text":case"tooltip":case"href":case"url":return"discrete";case ea:case ta:case na:return"flexible";case"latitude":case"longitude":case"latitude2":case"longitude2":case"detail":case"key":case"order":return}}function La(e){const{anchor:t,frame:n,offset:i,orient:r,color:o,subtitleColor:a,subtitleFont:s,subtitleFontSize:u,subtitleFontStyle:c,subtitleFontWeight:l,subtitleLineHeight:f,subtitlePadding:d}=e,g=w(e,["anchor","frame","offset","orient","color","subtitleColor","subtitleFont","subtitleFontSize","subtitleFontStyle","subtitleFontWeight","subtitleLineHeight","subtitlePadding"]);return{mark:Object.assign(Object.assign({},g),o?{fill:o}:{}),nonMark:Object.assign(Object.assign(Object.assign(Object.assign({},t?{anchor:t}:{}),n?{frame:n}:{}),i?{offset:i}:{}),r?{orient:r}:{}),subtitle:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},a?{subtitleColor:a}:{}),s?{subtitleFont:s}:{}),u?{subtitleFontSize:u}:{}),c?{subtitleFontStyle:c}:{}),l?{subtitleFontWeight:l}:{}),f?{subtitleLineHeight:f}:{}),d?{subtitlePadding:d}:{})}}function Ra(e){return s(e)||o(e)&&s(e[0])}function qa(e){return e&&!!e.signal}function Ia(e){return!!e.step}function Wa(e){return!o(e)&&("field"in e&&"data"in e)}const Ha=oo({blend:1,opacity:1,fill:1,fillOpacity:1,stroke:1,strokeCap:1,strokeWidth:1,strokeOpacity:1,strokeDash:1,strokeDashOffset:1,strokeJoin:1,strokeOffset:1,strokeMiterLimit:1,size:1,shape:1,interpolate:1,tension:1,orient:1,align:1,baseline:1,text:1,dir:1,dx:1,dy:1,ellipsis:1,limit:1,radius:1,theta:1,angle:1,font:1,fontSize:1,fontWeight:1,fontStyle:1,lineBreak:1,lineHeight:1,cursor:1,href:1,tooltip:1,cornerRadius:1,cornerRadiusTopLeft:1,cornerRadiusTopRight:1,cornerRadiusBottomLeft:1,cornerRadiusBottomRight:1,aspect:1,width:1,height:1}),Ga=["cornerRadius","cornerRadiusTopLeft","cornerRadiusTopRight","cornerRadiusBottomLeft","cornerRadiusBottomRight"];function Ya(e){return qa(e)?e:{value:e}}function Va(e){var t;return[].concat(e.type,null!==(t=e.style)&&void 0!==t?t:[])}function Xa(e,t,n){return vo(t[e],Ja(e,t,n))}function Ja(e,t,n,{vgChannel:i}={}){return vo(i?Qa(e,t,n.style):void 0,Qa(e,t,n.style),i?n[t.type][i]:void 0,n[t.type][e],i?n.mark[i]:n.mark[e])}function Qa(e,t,n){return Za(e,Va(t),n)}function Za(e,t,n){let i;t=h(t);for(const r of t){const t=n[r];t&&void 0!==t[e]&&(i=t[e])}return i}function Ka(e,t){return h(e).reduce((e,n)=>{var i;return e.field.push(Ru(n,t)),e.order.push(null!==(i=n.sort)&&void 0!==i?i:"ascending"),e},{field:[],order:[]})}function es(e,t){const n=[...e];return t.forEach(e=>{for(const t of n)if(Wr(t,e))return;n.push(e)}),n}function ts(e,t){return Wr(e,t)||!t?e:e?[...h(e),...h(t)].join(", "):t}function ns(e,t){const n=e.value,i=t.value;if(null==n||null===i)return{explicit:e.explicit,value:null};if(Ra(n)&&Ra(i))return{explicit:e.explicit,value:ts(n,i)};if(!Ra(n)&&!Ra(i))return{explicit:e.explicit,value:es(n,i)};throw new Error("It should never reach here")}const is=Object.freeze({__proto__:null,invalidSpec:function(e){return`Invalid specification ${JSON.stringify(e)}. Make sure the specification includes at least one of the following properties: "mark", "layer", "facet", "hconcat", "vconcat", "concat", or "repeat".`},FIT_NON_SINGLE:'Autosize "fit" only works for single views and layered views.',containerSizeNonSingle:function(e){return`${"width"==e?"Width":"Height"} "container" only works for single views and layered views.`},containerSizeNotCompatibleWithAutosize:function(e){return`${"width"==e?"Width":"Height"} "container" only works well with autosize "fit" or "fit-x".`},droppingFit:function(e){return e?`Dropping "fit-${e}" because spec has discrete ${Ea(e)}.`:'Dropping "fit" because spec has discrete size.'},cannotProjectOnChannelWithoutField:function(e){return`Cannot project a selection on encoding channel "${e}", which has no field.`},cannotProjectAggregate:function(e,t){return`Cannot project a selection on encoding channel "${e}" as it uses an aggregate function ("${t}").`},nearestNotSupportForContinuous:function(e){return`The "nearest" transform is not supported for ${e} marks.`},selectionNotSupported:function(e){return`Selection not supported for ${e} yet.`},selectionNotFound:function(e){return`Cannot find a selection named "${e}".`},SCALE_BINDINGS_CONTINUOUS:"Scale bindings are currently only supported for scales with unbinned, continuous domains.",LEGEND_BINDINGS_PROJECT_LENGTH:"Legend bindings are only supported for selections over an individual field or encoding channel.",noSameUnitLookup:function(e){return`Cannot define and lookup the "${e}" selection in the same view. `+"Try moving the lookup into a second, layered view?"},noSuchRepeatedValue:function(e){return`Unknown repeated value "${e}".`},columnsNotSupportByRowCol:function(e){return`The "columns" property cannot be used when "${e}" has nested row/column.`},CONCAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in concatenated views yet (https://github.com/vega/vega-lite/issues/2415).",REPEAT_CANNOT_SHARE_AXIS:"Axes cannot be shared in repeated views yet (https://github.com/vega/vega-lite/issues/2415).",unrecognizedParse:function(e){return`Unrecognized parse "${e}".`},differentParse:function(e,t,n){return`An ancestor parsed field "${e}" as ${n} but a child wants to parse the field as ${t}.`},invalidTransformIgnored:function(e){return`Ignoring an invalid transform: ${Vr(e)}.`},NO_FIELDS_NEEDS_AS:'If "from.fields" is not specified, "as" has to be a string that specifies the key to be used for the data from the secondary source.',encodingOverridden:function(e){return`Layer's shared ${e.join(",")} channel ${1===e.length?"is":"are"} overriden.`},projectionOverridden:function(e){const{parentProjection:t,projection:n}=e;return`Layer's shared projection ${Vr(t)} is overridden by a child projection ${Vr(n)}.`},primitiveChannelDef:function(e,t,n){return`Channel ${e} is a ${t}. Converted to {value: ${Vr(n)}}.`},invalidFieldType:function(e){return`Invalid field type "${e}".`},invalidFieldTypeForCountAggregate:function(e,t){return`Invalid field type "${e}" for aggregate: "${t}", using "quantitative" instead.`},invalidAggregate:function(e){return`Invalid aggregation operator "${e}".`},missingFieldType:function(e,t){return`Missing type for channel "${e}", using "${t}" instead.`},droppingColor:function(e,t){const{fill:n,stroke:i}=t;return`Dropping color ${e} as the plot also has ${n&&i?"fill and stroke":n?"fill":"stroke"}.`},emptyFieldDef:function(e,t){return`Dropping ${Vr(e)} from channel "${t}" since it does not contain any data field, value, or signal.`},latLongDeprecated:function(e,t,n){return`${e}-encoding with type ${t} is deprecated. Replacing with ${n}-encoding.`},LINE_WITH_VARYING_SIZE:"Line marks cannot encode size with a non-groupby field. You may want to use trail marks instead.",incompatibleChannel:function(e,t,n){return`${e} dropped as it is incompatible with "${t}"${n?` when ${n}`:""}.`},invalidEncodingChannel:function(e){return`${e}-encoding is dropped as ${e} is not a valid encoding channel.`},facetChannelShouldBeDiscrete:function(e){return`${e} encoding should be discrete (ordinal / nominal / binned).`},facetChannelDropped:function(e){return`Facet encoding dropped as ${e.join(" and ")} ${e.length>1?"are":"is"} also specified.`},discreteChannelCannotEncode:function(e,t){return`Using discrete channel "${e}" to encode "${t}" field can be misleading as it does not encode ${"ordinal"===t?"order":"magnitude"}.`},lineWithRange:function(e,t){return`Line mark is for continuous lines and thus cannot be used with ${e&&t?"x2 and y2":e?"x2":"y2"}. We will use the rule mark (line segments) instead.`},orientOverridden:function(e,t){return`Specified orient "${e}" overridden with "${t}".`},CANNOT_UNION_CUSTOM_DOMAIN_WITH_FIELD_DOMAIN:"Custom domain scale cannot be unioned with default field-based domain.",RANGE_STEP_DEPRECATED:'Scale\'s "rangeStep" is deprecated and will be removed in Vega-Lite 5.0. Please use "width"/"height": {"step": ...} instead. See https://vega.github.io/vega-lite/docs/size.html.',cannotUseScalePropertyWithNonColor:function(e){return`Cannot use the scale property "${e}" with non-color channel.`},unaggregateDomainHasNoEffectForRawField:function(e){return`Using unaggregated domain with raw field has no effect (${Vr(e)}).`},unaggregateDomainWithNonSharedDomainOp:function(e){return`Unaggregated domain not applicable for "${e}" since it produces values outside the origin domain of the source data.`},unaggregatedDomainWithLogScale:function(e){return`Unaggregated domain is currently unsupported for log scale (${Vr(e)}).`},cannotApplySizeToNonOrientedMark:function(e){return`Cannot apply size to non-oriented mark "${e}".`},scaleTypeNotWorkWithChannel:function(e,t,n){return`Channel "${e}" does not work with "${t}" scale. We are using "${n}" scale instead.`},scaleTypeNotWorkWithFieldDef:function(e,t){return`FieldDef does not work with "${e}" scale. We are using "${t}" scale instead.`},scalePropertyNotWorkWithScaleType:function(e,t,n){return`${n}-scale's "${t}" is dropped as it does not work with ${e} scale.`},scaleTypeNotWorkWithMark:function(e,t){return`Scale type "${t}" does not work with mark "${e}".`},stepDropped:function(e){return`The step for "${e}" is dropped because the ${"width"===e?"x":"y"} is continuous.`},mergeConflictingProperty:function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Vr(n)} and ${Vr(i)}). Using ${Vr(n)}.`},mergeConflictingDomainProperty:function(e,t,n,i){return`Conflicting ${t.toString()} property "${e.toString()}" (${Vr(n)} and ${Vr(i)}). Using the union of the two domains.`},independentScaleMeansIndependentGuide:function(e){return`Setting the scale to be independent for "${e}" means we also have to set the guide (axis or legend) to be independent.`},domainSortDropped:function(e){return`Dropping sort property ${Vr(e)} as unioned domains only support boolean or op "count", "min", and "max".`},UNABLE_TO_MERGE_DOMAINS:"Unable to merge domains.",MORE_THAN_ONE_SORT:"Domains that should be unioned has conflicting sort properties. Sort will be set to true.",INVALID_CHANNEL_FOR_AXIS:"Invalid channel for axis.",cannotStackRangedMark:function(e){return`Cannot stack "${e}" if there is already "${e}2".`},cannotStackNonLinearScale:function(e){return`Cannot stack non-linear scale (${e}).`},stackNonSummativeAggregate:function(e){return`Stacking is applied even though the aggregate function is non-summative ("${e}").`},invalidTimeUnit:function(e,t){return`Invalid ${e}: ${Vr(t)}.`},dayReplacedWithDate:function(e){return`Time unit "${e}" is not supported. We are replacing it with ${mo(e,"day","date")}.`},droppedDay:function(e){return`Dropping day from datetime ${Vr(e)} as day cannot be combined with other units.`},errorBarCenterAndExtentAreNotNeeded:function(e,t){return`${t?"extent ":""}${t&&e?"and ":""}${e?"center ":""}${t&&e?"are ":"is "}not needed when data are aggregated.`},errorBarCenterIsUsedWithWrongExtent:function(e,t,n){return`${e} is not usually used with ${t} for ${n}.`},errorBarContinuousAxisHasCustomizedAggregate:function(e,t){return`Continuous axis should not have customized aggregation function ${e}; ${t} already agregates the axis.`},errorBarCenterIsNotNeeded:function(e,t){return`Center is not needed to be specified in ${t} when extent is ${e}.`},errorBand1DNotSupport:function(e){return`1D error band does not support ${e}.`},channelRequiredForBinned:function(e){return`Channel ${e} is required for "binned" bin.`},domainRequiredForThresholdScale:function(e){return`Domain for ${e} is required for threshold scale.`}}),rs=function(e,t){var n=e||0;return{level:function(e){return arguments.length?(n=+e,this):n},error:function(){return n>=1&&f(t||"error","ERROR",arguments),this},warn:function(){return n>=2&&f(t||"warn","WARN",arguments),this},info:function(){return n>=3&&f(t||"log","INFO",arguments),this},debug:function(){return n>=4&&f(t||"log","DEBUG",arguments),this}}}(2);let os=rs;function as(...e){os.warn(...e)}function ss(e){return!!(e&&(e.year||e.quarter||e.month||e.date||e.day||e.hours||e.minutes||e.seconds||e.milliseconds))}const us=["january","february","march","april","may","june","july","august","september","october","november","december"],cs=us.map(e=>e.substr(0,3)),ls=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],fs=ls.map(e=>e.substr(0,3));function ds(e,t){const n=[];if(t&&void 0!==e.day&&oo(e).length>1&&(as(is.droppedDay(e)),delete(e=Hr(e)).day),void 0!==e.year?n.push(e.year):void 0!==e.day?n.push(2006):n.push(0),void 0!==e.month){const i=t?function(e){if(wo(e)&&(e=+e),y(e))return e-1;{const t=e.toLowerCase(),n=us.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=cs.indexOf(i);if(-1!==r)return r;throw new Error(is.invalidTimeUnit("month",e))}}(e.month):e.month;n.push(i)}else if(void 0!==e.quarter){const i=t?function(e){if(wo(e)&&(e=+e),y(e))return e>4&&as(is.invalidTimeUnit("quarter",e)),e-1;throw new Error(is.invalidTimeUnit("quarter",e))}(e.quarter):e.quarter;n.push(y(i)?3*i:i+"*3")}else n.push(0);if(void 0!==e.date)n.push(e.date);else if(void 0!==e.day){const i=t?function(e){if(wo(e)&&(e=+e),y(e))return e%7;{const t=e.toLowerCase(),n=ls.indexOf(t);if(-1!==n)return n;const i=t.substr(0,3),r=fs.indexOf(i);if(-1!==r)return r;throw new Error(is.invalidTimeUnit("day",e))}}(e.day):e.day;n.push(y(i)?i+1:i+"+1")}else n.push(1);for(const t of["hours","minutes","seconds","milliseconds"]){const i=e[t];n.push(void 0===i?0:i)}return n}function gs(e){const t=ds(e,!0).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}var ps;!function(e){e.YEAR="year",e.MONTH="month",e.DAY="day",e.DATE="date",e.HOURS="hours",e.MINUTES="minutes",e.SECONDS="seconds",e.MILLISECONDS="milliseconds",e.YEARMONTH="yearmonth",e.YEARMONTHDATE="yearmonthdate",e.YEARMONTHDATEHOURS="yearmonthdatehours",e.YEARMONTHDATEHOURSMINUTES="yearmonthdatehoursminutes",e.YEARMONTHDATEHOURSMINUTESSECONDS="yearmonthdatehoursminutesseconds",e.MONTHDATE="monthdate",e.MONTHDATEHOURS="monthdatehours",e.HOURSMINUTES="hoursminutes",e.HOURSMINUTESSECONDS="hoursminutesseconds",e.MINUTESSECONDS="minutesseconds",e.SECONDSMILLISECONDS="secondsmilliseconds",e.QUARTER="quarter",e.YEARQUARTER="yearquarter",e.QUARTERMONTH="quartermonth",e.YEARQUARTERMONTH="yearquartermonth",e.UTCYEAR="utcyear",e.UTCMONTH="utcmonth",e.UTCDAY="utcday",e.UTCDATE="utcdate",e.UTCHOURS="utchours",e.UTCMINUTES="utcminutes",e.UTCSECONDS="utcseconds",e.UTCMILLISECONDS="utcmilliseconds",e.UTCYEARMONTH="utcyearmonth",e.UTCYEARMONTHDATE="utcyearmonthdate",e.UTCYEARMONTHDATEHOURS="utcyearmonthdatehours",e.UTCYEARMONTHDATEHOURSMINUTES="utcyearmonthdatehoursminutes",e.UTCYEARMONTHDATEHOURSMINUTESSECONDS="utcyearmonthdatehoursminutesseconds",e.UTCMONTHDATE="utcmonthdate",e.UTCMONTHDATEHOURS="utcmonthdatehours",e.UTCHOURSMINUTES="utchoursminutes",e.UTCHOURSMINUTESSECONDS="utchoursminutesseconds",e.UTCMINUTESSECONDS="utcminutesseconds",e.UTCSECONDSMILLISECONDS="utcsecondsmilliseconds",e.UTCQUARTER="utcquarter",e.UTCYEARQUARTER="utcyearquarter",e.UTCQUARTERMONTH="utcquartermonth",e.UTCYEARQUARTERMONTH="utcyearquartermonth"}(ps||(ps={}));const hs={year:1,quarter:1,month:1,day:1,date:1,hours:1,minutes:1,seconds:1,milliseconds:1},ms=oo(hs);const bs={utcyear:1,utcquarter:1,utcmonth:1,utcday:1,utcdate:1,utchours:1,utcminutes:1,utcseconds:1,utcmilliseconds:1},vs={utcyearquarter:1,utcyearquartermonth:1,utcyearmonth:1,utcyearmonthdate:1,utcyearmonthdatehours:1,utcyearmonthdatehoursminutes:1,utcyearmonthdatehoursminutesseconds:1,utcquartermonth:1,utcmonthdate:1,utcmonthdatehours:1,utchoursminutes:1,utchoursminutesseconds:1,utcminutesseconds:1,utcsecondsmilliseconds:1},ys=Object.assign(Object.assign({},bs),vs);function xs(e){return!!ys[e]}Object.assign(Object.assign(Object.assign(Object.assign({},hs),bs),{yearquarter:1,yearquartermonth:1,yearmonth:1,yearmonthdate:1,yearmonthdatehours:1,yearmonthdatehoursminutes:1,yearmonthdatehoursminutesseconds:1,quartermonth:1,monthdate:1,monthdatehours:1,hoursminutes:1,hoursminutesseconds:1,minutesseconds:1,secondsmilliseconds:1}),vs);const ws={"year-month":"%b %Y ","year-month-date":"%b %d, %Y "};function As(e){return ms.reduce((t,n)=>Os(e,n)?[...t,n]:t,[])}function Os(e,t){const n=e.indexOf(t);return n>-1&&(t!==ps.SECONDS||0===n||"i"!==e.charAt(n-1))}function Cs(e,t,{end:n}={end:!1}){const i=po(t),r=xs(e)?"utc":"";let o;const a=ms.reduce((t,n)=>{var a;return Os(e,n)&&(t[n]=(a=n)===ps.QUARTER?`(${r}quarter(${i})-1)`:`${r}${a}(${i})`,o=n),t},{});return n&&(a[o]+="+1"),function(e){const t=ds(e,!1).join(", ");return e.utc?`utc(${t})`:`datetime(${t})`}(a)}function Fs(e,t,n){if(!e)return;const i=function(e){if(!e)return;const t=As(e);return`timeUnitSpecifier(${Pr(t)}, ${Pr(ws)})`}(e);return n||xs(e)?`utcFormat(${t}, ${i})`:`timeFormat(${t}, ${i})`}function Ds(e){if(!e)return;let t;return s(e)?t={unit:js(e)}:a(e)&&(t=Object.assign(Object.assign({},e),e.unit?{unit:js(e.unit)}:{})),xs(t.unit)&&(t.utc=!0,t.unit=t.unit.substr(3)),t}function js(e){return"day"!==e&&e.indexOf("day")>=0?(as(is.dayReplacedWithDate(e)),mo(e,"day","date")):e}function ks(e){return e&&!!e.field&&void 0!==e.equal}function Es(e){return e&&!!e.field&&void 0!==e.lt}function Ss(e){return e&&!!e.field&&void 0!==e.lte}function $s(e){return e&&!!e.field&&void 0!==e.gt}function Ns(e){return e&&!!e.field&&void 0!==e.gte}function Ms(e){if(e&&e.field){if(o(e.range)&&2===e.range.length)return!0;if(qa(e.range))return!0}return!1}function Bs(e){return e&&!!e.field&&(o(e.oneOf)||o(e.in))}function _s(e){return Bs(e)||ks(e)||Ms(e)||Es(e)||$s(e)||Ss(e)||Ns(e)}function Ts(e,t){return oc(e,{timeUnit:t,time:!0})}function zs(e,t=!0){var n;const{field:i}=e,r=null===(n=Ds(e.timeUnit))||void 0===n?void 0:n.unit,o=r?"time("+Cs(r,i)+")":Ru(e,{expr:"datum"});if(ks(e))return o+"==="+Ts(e.equal,r);if(Es(e)){return`${o}<${Ts(e.lt,r)}`}if($s(e)){return`${o}>${Ts(e.gt,r)}`}if(Ss(e)){return`${o}<=${Ts(e.lte,r)}`}if(Ns(e)){return`${o}>=${Ts(e.gte,r)}`}if(Bs(e))return`indexof([${function(e,t){return e.map(e=>Ts(e,t))}(e.oneOf,r).join(",")}], ${o}) !== -1`;if(function(e){return e&&!!e.field&&void 0!==e.valid}(e))return Us(o,e.valid);if(Ms(e)){const{range:n}=e,i=qa(n)?{signal:`${n.signal}[0]`}:n[0],a=qa(n)?{signal:`${n.signal}[1]`}:n[1];if(null!==i&&null!==a&&t)return"inrange("+o+", ["+Ts(i,r)+", "+Ts(a,r)+"])";const s=[];return null!==i&&s.push(`${o} >= ${Ts(i,r)}`),null!==a&&s.push(`${o} <= ${Ts(a,r)}`),s.length>0?s.join(" && "):"true"}throw new Error(`Invalid field predicate: ${JSON.stringify(e)}`)}function Us(e,t=!0){return t?`isValid(${e}) && isFinite(+${e})`:`!isValid(${e}) || !isFinite(+${e})`}function Ps(e){var t;return _s(e)&&e.timeUnit?Object.assign(Object.assign({},e),{timeUnit:null===(t=Ds(e.timeUnit))||void 0===t?void 0:t.unit}):e}const Ls={quantitative:1,ordinal:1,temporal:1,nominal:1,geojson:1};var Rs;!function(e){e.LINEAR="linear",e.LOG="log",e.POW="pow",e.SQRT="sqrt",e.SYMLOG="symlog",e.IDENTITY="identity",e.SEQUENTIAL="sequential",e.TIME="time",e.UTC="utc",e.QUANTILE="quantile",e.QUANTIZE="quantize",e.THRESHOLD="threshold",e.BIN_ORDINAL="bin-ordinal",e.ORDINAL="ordinal",e.POINT="point",e.BAND="band"}(Rs||(Rs={}));const qs={linear:"numeric",log:"numeric",pow:"numeric",sqrt:"numeric",symlog:"numeric",identity:"numeric",sequential:"numeric",time:"time",utc:"time",ordinal:"ordinal","bin-ordinal":"bin-ordinal",point:"ordinal-position",band:"ordinal-position",quantile:"discretizing",quantize:"discretizing",threshold:"discretizing"},Is=oo(qs);function Ws(e,t){const n=qs[e],i=qs[t];return n===i||"ordinal-position"===n&&"time"===i||"ordinal-position"===i&&"time"===n}const Hs={linear:0,log:1,pow:1,sqrt:1,symlog:1,identity:1,sequential:1,time:0,utc:0,point:10,band:11,ordinal:0,"bin-ordinal":0,quantile:0,quantize:0,threshold:0};function Gs(e){return Hs[e]}const Ys=["linear","log","pow","sqrt","symlog","time","utc"],Vs=x(Ys),Xs=x(["linear","log","pow","sqrt","symlog"]);function Js(e){return e in Xs}const Qs=x(["quantile","quantize","threshold"]),Zs=x(Ys.concat(["quantile","quantize","threshold","sequential","identity"])),Ks=x(["ordinal","bin-ordinal","point","band"]);function eu(e){return e in Ks}function tu(e){return e in Zs}function nu(e){return e in Vs}function iu(e){return e in Qs}function ru(e){return null==e?void 0:e.selection}const ou=w({type:1,domain:1,domainMid:1,align:1,range:1,scheme:1,bins:1,reverse:1,round:1,clamp:1,nice:1,base:1,exponent:1,constant:1,interpolate:1,zero:1,padding:1,paddingInner:1,paddingOuter:1},["type","domain","range","scheme"]),au=oo(ou);!function(){var e;const t={};for(const n of ba)for(const i of oo(Ls))for(const r of Is){const o=fu(n,i);lu(n,r)&&cu(r,i)&&(t[o]=null!==(e=t[o])&&void 0!==e?e:[],t[o].push(r))}}();function su(e,t){switch(t){case"type":case"domain":case"reverse":case"range":return!0;case"scheme":case"interpolate":return!Qr(["point","band","identity"],e);case"bins":return!Qr(["point","band","identity","ordinal"],e);case"round":return nu(e)||"band"===e||"point"===e;case"padding":return nu(e)||Qr(["point","band"],e);case"paddingOuter":case"align":return Qr(["point","band"],e);case"paddingInner":return"band"===e;case"domainMid":case"clamp":return nu(e);case"nice":return nu(e)||"quantize"===e||"threshold"===e;case"exponent":return"pow"===e;case"base":return"log"===e;case"constant":return"symlog"===e;case"zero":return tu(e)&&!Qr(["log","time","utc","threshold","quantile"],e)}}function uu(e,t){switch(t){case"interpolate":case"scheme":case"domainMid":return ga(e)?void 0:is.cannotUseScalePropertyWithNonColor(e);case"align":case"type":case"bins":case"domain":case"range":case"base":case"exponent":case"constant":case"nice":case"padding":case"paddingInner":case"paddingOuter":case"reverse":case"round":case"clamp":case"zero":return}}function cu(e,t){return Qr(["ordinal","nominal"],t)?void 0===e||eu(e):"temporal"===t?Qr([Rs.TIME,Rs.UTC,void 0],e):"quantitative"!==t||Qr([Rs.LOG,Rs.POW,Rs.SQRT,Rs.SYMLOG,Rs.QUANTILE,Rs.QUANTIZE,Rs.THRESHOLD,Rs.LINEAR,void 0],e)}function lu(e,t){switch(e){case Jo:case Qo:return nu(t)||Qr(["band","point"],t);case ra:case ua:case oa:case aa:case sa:return nu(t)||iu(t)||Qr(["band","point","ordinal"],t);case ea:case ta:case na:return"band"!==t;case ca:return"ordinal"===t||iu(t);case ia:return"ordinal"===t}return!1}function fu(e,t){return e+"_"+t}let du=new Set;function gu(e){return e&&"number"!==e&&"time"!==e&&du.has(e)}function pu({formatType:e,field:t,format:n}){return`${e}(${t}, ${JSON.stringify(n)})`}function hu({fieldDef:e,format:t,formatType:n,expr:i,config:r,field:o,omitNumberFormatAndEmptyTimeFormat:a,omitTimeFormatConfig:u,isUTCScale:c}){var l;o=null!=o?o:Ru(e,{expr:i}),c=null!=c?c:Uu(e)&&e.scale&&e.scale.type===Rs.UTC;const f=u?null:r.timeFormat;if(gu(n))return{signal:pu({formatType:n,format:t,field:o})};if(n&&(n=void 0),ic(e)){const n=function(e,t,n,i,r,o=!1){return!t||n?(n=s(n)?n:i)||o?`${r?"utc":"time"}Format(${e}, '${n}')`:void 0:Fs(t,e,r)}(o,null===(l=Ds(e.timeUnit))||void 0===l?void 0:l.unit,t,f,c,!a);return n?{signal:n}:void 0}if(!a){if(t=mu(e,t,r),cc(e.bin)){return{signal:yu(o,Ru(e,{expr:i,binSuffix:"end"}),t,n,r)}}return"quantitative"===e.type||t?{signal:`${bu(Ru(e,{expr:i,binSuffix:"range"}),t)}`}:{signal:`''+${Ru(e,{expr:i})}`}}}function mu(e,t,n){return s(t)?t:"quantitative"===e.type?n.numberFormat:void 0}function bu(e,t){return`format(${e}, "${t||""}")`}function vu(e,t,n,i){var r;return gu(n)?pu({formatType:n,field:e,format:t}):bu(e,null!==(r=s(t)?t:void 0)&&void 0!==r?r:i.numberFormat)}function yu(e,t,n,i,r){const o=vu(e,n,i,r),a=vu(t,n,i,r);return`${Us(e,!1)} ? "null" : ${o} + " โ€“ " + ${a}`}const xu="min",wu={x:1,y:1,color:1,fill:1,stroke:1,strokeWidth:1,size:1,shape:1,fillOpacity:1,strokeOpacity:1,opacity:1,text:1};function Au(e){return!!wu[e]}function Ou(e){return!!e&&!!e.encoding}function Cu(e){return!(!e||"count"!==e.op&&!e.field)}function Fu(e){return!!e&&o(e)}function Du(e){return!!e.row||!!e.column}function ju(e){return void 0!==e.facet}function ku(e){const{field:t,timeUnit:n,bin:i,aggregate:r}=e;return Object.assign(Object.assign(Object.assign(Object.assign({},n?{timeUnit:n}:{}),i?{bin:i}:{}),r?{aggregate:r}:{}),{field:t})}function Eu(e){return _u(e)&&!!e.sort}function Su(e,t,n,i,r,{isMidPoint:o}={}){const{timeUnit:a,bin:s}=t;if(Qr(["x","y"],e)){if(Pu(t)&&void 0!==t.band)return t.band;if(a&&!n)return o?Ja("timeUnitBandPosition",i,r):So(i.type)?Ja("timeUnitBand",i,r):0;if(cc(s))return So(i.type)&&!o?1:.5}}function $u(e,t,n,i,r){return!!(cc(t.bin)||t.timeUnit&&_u(t)&&"temporal"===t.type)&&!!Su(e,t,n,i,r)}function Nu(e){return!!e&&!!e.condition}function Mu(e){return!!e&&!!e.condition&&!o(e.condition)&&Bu(e.condition)}function Bu(e){return!(!e||!e.field&&"count"!==e.aggregate)}function _u(e){return!!e&&(!!e.field&&!!e.type||"count"===e.aggregate)}function Tu(e){return Bu(e)&&s(e.field)}function zu(e){return e&&"value"in e&&void 0!==e.value}function Uu(e){return!(!e||!e.scale&&!e.sort)}function Pu(e){return!(!e||!e.axis&&!e.stack&&!e.impute&&void 0===e.band)}function Lu(e){return!!e&&!!e.format}function Ru(e,t={}){var n,i,o;let a=e.field;const s=t.prefix;let c=t.suffix,l="";if(function(e){return"count"===e.aggregate}(e))a=function(e){return function(e){return 0===e.indexOf("__")}(e)?e:`__${e}`}("count");else{let r;if(!t.nofn)if(function(e){return!!e.op}(e))r=e.op;else{const{bin:s,aggregate:u,timeUnit:f}=e;cc(s)?(r=uc(s),c=(null!==(n=t.binSuffix)&&void 0!==n?n:"")+(null!==(i=t.suffix)&&void 0!==i?i:"")):u?Io(u)?(l=`.${a}`,a=`argmax_${u.argmax}`):qo(u)?(l=`.${a}`,a=`argmin_${u.argmin}`):r=String(u):f&&(r=function(e){const t=Ds(e),{utc:n}=t,i=w(t,["utc"]);return i.unit?(n?"utc":"")+oo(i).map(e=>uo(`${"unit"===e?"":`_${e}_`}${i[e]}`)).join(""):(n?"utc":"")+"timeunit"+oo(i).map(e=>uo(`_${e}_${i[e]}`)).join("")}(f),c=(!Qr(["range","mid"],t.binSuffix)&&t.binSuffix||"")+(null!==(o=t.suffix)&&void 0!==o?o:""))}r&&(a=a?`${r}_${a}`:r)}return c&&(a=`${a}_${c}`),s&&(a=`${s}_${a}`),t.forAs?a:t.expr?function(e,t="datum"){return`${t}[${u(r(e).join("."))}]`}(a,t.expr)+l:ho(a)+l}function qu(e){switch(e.type){case"nominal":case"ordinal":case"geojson":return!0;case"quantitative":return!!e.bin;case"temporal":return!1}throw new Error(is.invalidFieldType(e.type))}function Iu(e){return!qu(e)}const Wu=(e,t)=>{switch(t.fieldTitle){case"plain":return e.field;case"functional":return function(e){const{aggregate:t,bin:n,timeUnit:i,field:r}=e;if(Io(t))return`${r} for argmax(${t.argmax})`;if(qo(t))return`${r} for argmin(${t.argmin})`;const o=Ds(i),a=t||(null==o?void 0:o.unit)||(null==o?void 0:o.maxbins)&&"timeunit"||cc(n)&&"bin";return a?a.toUpperCase()+"("+r+")":r}(e);default:return function(e,t){var n;const{field:i,bin:r,timeUnit:o,aggregate:a}=e;if("count"===a)return t.countTitle;if(cc(r))return`${i} (binned)`;if(o){const e=null===(n=Ds(o))||void 0===n?void 0:n.unit;if(e)return`${i} (${As(e).join("-")})`}else if(a)return Io(a)?`${i} for max ${a.argmax}`:qo(a)?`${i} for min ${a.argmin}`:`${fo(a)} of ${i}`;return i}(e,t)}};let Hu=Wu;function Gu(e){Hu=e}function Yu(e,t,{allowDisabling:n,includeDefault:i=!0}){var r,o;const a=(null!==(r=Vu(e))&&void 0!==r?r:{}).title,s=i?Xu(e,t):void 0;return n?vo(a,e.title,s):null!==(o=null!=a?a:e.title)&&void 0!==o?o:s}function Vu(e){return Pu(e)&&e.axis?e.axis:(t=e)&&t.legend&&e.legend?e.legend:function(e){return!!e&&!!e.header}(e)&&e.header?e.header:void 0;var t}function Xu(e,t){return Hu(e,t)}function Ju(e){var t;if(Lu(e)){const{format:t,formatType:n}=e;return{format:t,formatType:n}}{const n=null!==(t=Vu(e))&&void 0!==t?t:{},{format:i,formatType:r}=n;return{format:i,formatType:r}}}function Qu(e){return Bu(e)?e:Mu(e)?e.condition:void 0}function Zu(e){return Bu(e)?e:Mu(e)?e.condition:void 0}function Ku(e,t){if(s(e)||y(e)||v(e)){const n=s(e)?"string":y(e)?"number":"boolean";return as(is.primitiveChannelDef(t,n,e)),{value:e}}return Bu(e)?ec(e,t):Mu(e)?Object.assign(Object.assign({},e),{condition:ec(e.condition,t)}):e}function ec(e,t){const{aggregate:n,timeUnit:i,bin:r,field:o}=e,a=Object.assign({},e);if(!n||Wo(n)||Io(n)||qo(n)||(as(is.invalidAggregate(n)),delete a.aggregate),i&&(a.timeUnit=Ds(i)),o&&(a.field=`${o}`),cc(r)&&(a.bin=tc(r,t)),lc(r)&&!Qr(ka,t)&&as(`Channel ${t} should not be used with "binned" bin.`),_u(a)){const{type:e}=a,t=function(e){if(e)switch(e=e.toLowerCase()){case"q":case"quantitative":return"quantitative";case"t":case"temporal":return"temporal";case"o":case"ordinal":return"ordinal";case"n":case"nominal":return"nominal";case"geojson":return"geojson"}}(e);e!==t&&(a.type=t),"quantitative"!==e&&Go(n)&&(as(is.invalidFieldTypeForCountAggregate(e,n)),a.type="quantitative")}else if(!Aa(t)){const e=function(e,t){if(e.timeUnit)return"temporal";if(cc(e.bin))return"quantitative";switch(Pa(t)){case"continuous":return"quantitative";case"discrete":case"flexible":return"nominal";default:return"quantitative"}}(a,t);as(is.missingFieldType(t,e)),a.type=e}if(_u(a)){const{compatible:e,warning:n}=function(e,t){const n=e.type;if("geojson"===n&&"shape"!==t)return{compatible:!1,warning:`Channel ${t} should not be used with a geojson data.`};switch(t){case"row":case"column":case"facet":return Iu(e)?{compatible:!1,warning:is.facetChannelShouldBeDiscrete(t)}:nc;case"x":case"y":case"color":case"fill":case"stroke":case"text":case"detail":case"key":case"tooltip":case"href":case"url":return nc;case"longitude":case"longitude2":case"latitude":case"latitude2":return"quantitative"!==n?{compatible:!1,warning:`Channel ${t} should be used with a quantitative field only, not ${e.type} field.`}:nc;case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeWidth":case"size":case"x2":case"y2":return"nominal"!==n||e.sort?nc:{compatible:!1,warning:`Channel ${t} should not be used with an unsorted discrete field.`};case"strokeDash":return Qr(["ordinal","nominal"],e.type)?nc:{compatible:!1,warning:"StrokeDash channel should be used with only discrete data."};case"shape":return Qr(["ordinal","nominal","geojson"],e.type)?nc:{compatible:!1,warning:"Shape channel should be used with only either discrete or geojson data."};case"order":return"nominal"!==e.type||"sort"in e?nc:{compatible:!1,warning:"Channel order is inappropriate for nominal field, which has no inherent order."}}}(a,t);e||as(n)}if(Eu(a)&&s(a.sort)){const{sort:e}=a;if(Au(e))return Object.assign(Object.assign({},a),{sort:{encoding:e}});const t=e.substr(1);if("-"===e.charAt(0)&&Au(t))return Object.assign(Object.assign({},a),{sort:{encoding:t,order:"descending"}})}return a}function tc(e,t){return v(e)?{maxbins:gc(t)}:"binned"===e?{binned:!0}:e.maxbins||e.step?e:Object.assign(Object.assign({},e),{maxbins:gc(t)})}const nc={compatible:!0};function ic(e){const t=Vu(e),n=t&&t.formatType||Lu(e)&&e.formatType;return"time"===n||!n&&function(e){return"temporal"===e.type||!!e.timeUnit}(e)}function rc(e){const t=Vu(e),n=t&&t.formatType||Lu(e)&&e.formatType;return n&&gu(n)}function oc(e,{timeUnit:t,type:n,time:i,undefinedIfExprNotRequired:r}){var o;const a=null===(o=Ds(t))||void 0===o?void 0:o.unit;let u;if(qa(e)){const t=e.signal;if(i&&!a&&"temporal"!==n)return i?`isDate(${t}) ? time(${t}) : ${t}`:t;u=t}else ss(e)?u=gs(e):(s(e)||y(e))&&(a||"temporal"===n)&&(u=function(e){return!!hs[e]}(a)?gs({[a]:e}):`datetime(${JSON.stringify(e)})`);return u?i?`time(${u})`:u:r?void 0:JSON.stringify(e)}function ac(e,t){var n;const{type:i}=e,r=null===(n=Ds(e.timeUnit))||void 0===n?void 0:n.unit;return t.map(e=>{const t=oc(e,{timeUnit:r,type:i,undefinedIfExprNotRequired:!0});return void 0!==t?{signal:t}:e})}function sc(e,t){return cc(e.bin)?_a(t)&&Qr(["ordinal","nominal"],e.type):(console.warn("Only call this method for binned field defs."),!1)}function uc(e){return v(e)&&(e=tc(e,void 0)),"bin"+oo(e).map(t=>dc(e[t])?uo(`_${t}_${Object.entries(e[t])}`):uo(`_${t}_${e[t]}`)).join("")}function cc(e){return!0===e||fc(e)&&!e.binned}function lc(e){return"binned"===e||fc(e)&&!0===e.binned}function fc(e){return a(e)}function dc(e){return null==e?void 0:e.selection}function gc(e){switch(e){case Xo:case"column":case ra:case ea:case ta:case na:case ua:case oa:case aa:case sa:case ia:return 6;case ca:return 4;default:return 10}}function pc(e,t){const n=e&&e[t];return!!n&&(o(n)?Zr(n,e=>!!e.field):Bu(n)||Mu(n))}function hc(e){return Zr(ba,t=>{if(pc(e,t)){const n=e[t];if(o(n))return Zr(n,e=>!!e.aggregate);{const e=Qu(n);return e&&!!e.aggregate}}return!1})}function mc(e,t){const n=[],i=[],r=[],o=[],a={};return yc(e,(s,u)=>{if(Bu(s)){const{field:c,aggregate:l,bin:f,timeUnit:d}=s,g=w(s,["field","aggregate","bin","timeUnit"]);if(l||d||f){const e=Vu(s),p=e&&e.title;let h=Ru(s,{forAs:!0});const m=Object.assign(Object.assign(Object.assign({},p?[]:{title:Yu(s,t,{allowDisabling:!0})}),g),{field:h}),b="x"===u||"y"===u;if(l){let e;if(Io(l)?(e="argmax",h=Ru({op:"argmax",field:l.argmax},{forAs:!0}),m.field=`${h}.${c}`):qo(l)?(e="argmin",h=Ru({op:"argmin",field:l.argmin},{forAs:!0}),m.field=`${h}.${c}`):"boxplot"!==l&&"errorbar"!==l&&"errorband"!==l&&(e=l),e){const t={op:e,as:h};c&&(t.field=c),o.push(t)}}else if(n.push(h),_u(s)&&cc(f)){if(i.push({bin:f,field:c,as:h}),n.push(Ru(s,{binSuffix:"end"})),sc(s,u)&&n.push(Ru(s,{binSuffix:"range"})),b){const e={field:h+"_end"};a[u+"2"]=e}m.bin="binned",Aa(u)||(m.type="quantitative")}else if(d){r.push({timeUnit:d,field:c,as:h});const e=_u(s)&&"temporal"!==s.type&&"time";e&&("text"===u||"tooltip"===u?m.formatType=e:!function(e){return!!Fa[e]}(u)?b&&(m.axis=Object.assign({formatType:e},m.axis)):m.legend=Object.assign({formatType:e},m.legend))}a[u]=m}else n.push(c),a[u]=e[u]}else a[u]=e[u]}),{bins:i,timeUnits:r,aggregate:o,groupby:n,encoding:a}}function bc(e,t){const n=t.type;return oo(e).reduce((i,r)=>{if(!xa(r))return as(is.invalidEncodingChannel(r)),i;if(!function(e,t,n){const i=Ta(t,n);if(!i)return!1;if("binned"===i){const n=e["x2"===t?"x":"y"];return!!(Bu(n)&&Bu(e[t])&&lc(n.bin))}return!0}(e,r,n))return as(is.incompatibleChannel(r,n)),i;if("size"===r&&"line"===n){const t=Zu(e[r]);if(null==t?void 0:t.aggregate)return as(is.LINE_WITH_VARYING_SIZE),i}if("color"===r&&(t.filled?"fill"in e:"stroke"in e))return as(is.droppingColor("encoding",{fill:"fill"in e,stroke:"stroke"in e})),i;const a=e[r];if("detail"===r||"order"===r&&!o(a)&&!zu(a)||"tooltip"===r&&o(a))a&&(i[r]=h(a).reduce((e,t)=>(Bu(t)?e.push(ec(t,r)):as(is.emptyFieldDef(t,r)),e),[]));else{if("tooltip"===r&&null===a)i[r]=null;else if(!(Bu(a)||zu(a)||Nu(a)||qa(a)))return as(is.emptyFieldDef(a,r)),i;i[r]=Ku(a,r)}return i},{})}function vc(e){const t=[];for(const n of oo(e))if(pc(e,n)){const i=h(e[n]);for(const e of i)Bu(e)?t.push(e):Mu(e)&&t.push(e.condition)}return t}function yc(e,t,n){if(e)for(const i of oo(e)){const r=e[i];if(o(r))for(const e of r)t.call(n,e,i);else t.call(n,r,i)}}function xc(e,t,n,i){return e?oo(e).reduce((n,r)=>{const a=e[r];return o(a)?a.reduce((e,n)=>t.call(i,e,n,r),n):t.call(i,n,a,r)},n):n}function wc(e,t){return oo(t).reduce((n,i)=>{switch(i){case"x":case"y":case"href":case"url":case"x2":case"y2":case"latitude":case"longitude":case"latitude2":case"longitude2":case"text":case"shape":case"tooltip":return n;case"order":if("line"===e||"trail"===e)return n;case"detail":case"key":{const e=t[i];return(o(e)||Bu(e))&&h(e).forEach(e=>{e.aggregate||n.push(Ru(e,{}))}),n}case"size":if("trail"===e)return n;case"color":case"fill":case"stroke":case"opacity":case"fillOpacity":case"strokeOpacity":case"strokeDash":case"strokeWidth":{const e=Zu(t[i]);return e&&!e.aggregate&&n.push(Ru(e,{})),n}}},[])}function Ac(e,t,n,i=!0){if("tooltip"in n)return{tooltip:n.tooltip};return{tooltip:[...e.map(({fieldPrefix:e,titlePrefix:n})=>{const r=i?` of ${t.field}`:"";return{field:e+t.field,type:t.type,title:qa(n)?{signal:n+`"${escape(r)}"`}:n+r}}),...vc(n)]}}function Oc(e){const{axis:t,title:n,field:i}=e;return t&&void 0!==t.title?void 0:vo(n,i)}function Cc(e,t,n,i,r){const{scale:o,axis:a}=n;return({partName:u,mark:c,positionPrefix:l,endPositionPrefix:f,extraEncoding:d={}})=>{const g=Oc(n);return Fc(e,u,r,{mark:c,encoding:Object.assign(Object.assign(Object.assign({[t]:Object.assign(Object.assign(Object.assign({field:l+"_"+n.field,type:n.type},void 0!==g?{title:g}:{}),void 0!==o?{scale:o}:{}),void 0!==a?{axis:a}:{})},s(f)?{[t+"2"]:{field:f+"_"+n.field}}:{}),i),d)})}}function Fc(e,t,n,i){const{clip:r,color:o,opacity:a}=e,s=e.type;return e[t]||void 0===e[t]&&n[t]?[Object.assign(Object.assign({},i),{mark:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n[t]),r?{clip:r}:{}),o?{color:o}:{}),a?{opacity:a}:{}),No(i.mark)?i.mark:{type:i.mark}),{style:`${s}-${t}`}),v(e[t])?{}:e[t])})]:[]}function Dc(e,t,n){const{encoding:i}=e,r="vertical"===t?"y":"x",o=i[r],a=i[r+"2"],s=i[r+"Error"],u=i[r+"Error2"];return{continuousAxisChannelDef:jc(o,n),continuousAxisChannelDef2:jc(a,n),continuousAxisChannelDefError:jc(s,n),continuousAxisChannelDefError2:jc(u,n),continuousAxis:r}}function jc(e,t){if(e&&e.aggregate){const{aggregate:n}=e,i=w(e,["aggregate"]);return n!==t&&as(is.errorBarContinuousAxisHasCustomizedAggregate(n,t)),i}return e}function kc(e,t){const{mark:n,encoding:i}=e;if(Bu(i.x)&&Iu(i.x)){if(Bu(i.y)&&Iu(i.y)){if(void 0===i.x.aggregate&&i.y.aggregate===t)return"vertical";if(void 0===i.y.aggregate&&i.x.aggregate===t)return"horizontal";if(i.x.aggregate===t&&i.y.aggregate===t)throw new Error("Both x and y cannot have aggregate");return No(n)&&n.orient?n.orient:"vertical"}return"horizontal"}if(Bu(i.y)&&Iu(i.y))return"vertical";throw new Error("Need a valid continuous axis for "+t+"s")}const Ec=oo({box:1,median:1,outliers:1,rule:1,ticks:1}),Sc=new Po("boxplot",Nc);function $c(e){return y(e)?"tukey":e}function Nc(e,{config:t}){var n,i;const{mark:r,encoding:s,selection:u,projection:c}=e,l=w(e,["mark","encoding","selection","projection"]),f=No(r)?r:{type:r};u&&as(is.selectionNotSupported("boxplot"));const d=null!==(n=f.extent)&&void 0!==n?n:t.boxplot.extent,g=vo(f.size,t.boxplot.size),p=$c(d),{transform:h,continuousAxisChannelDef:m,continuousAxis:b,groupby:v,aggregate:y,encodingWithoutContinuousAxis:x,ticksOrient:A,boxOrient:O,customTooltipWithoutAggregatedField:C}=function(e,t,n){const i=kc(e,"boxplot"),{continuousAxisChannelDef:r,continuousAxis:a}=Dc(e,i,"boxplot"),s=r.field,u=$c(t),c=[...Mc(s),{op:"median",field:s,as:"mid_box_"+s},{op:"min",field:s,as:("min-max"===u?"lower_whisker_":"min_")+s},{op:"max",field:s,as:("min-max"===u?"upper_whisker_":"max_")+s}],l="min-max"===u||"tukey"===u?[]:[{calculate:`datum["upper_box_${s}"] - datum["lower_box_${s}"]`,as:"iqr_"+s},{calculate:`min(datum["upper_box_${s}"] + datum["iqr_${s}"] * ${t}, datum["max_${s}"])`,as:"upper_whisker_"+s},{calculate:`max(datum["lower_box_${s}"] - datum["iqr_${s}"] * ${t}, datum["min_${s}"])`,as:"lower_whisker_"+s}],f=e.encoding,d=a,g=(f[d],w(f,["symbol"==typeof d?d:d+""])),{customTooltipWithoutAggregatedField:p,filteredEncoding:h}=function(e){const{tooltip:t}=e,n=w(e,["tooltip"]);if(!t)return{filteredEncoding:e};let i,r;return o(t)?(t.forEach(e=>{e.aggregate?(i||(i=[]),i.push(e)):(r||(r=[]),r.push(e))}),i&&(n.tooltip=i)):t.aggregate?n.tooltip=t:r=t,o(r)&&1===r.length&&(r=r[0]),{customTooltipWithoutAggregatedField:r,filteredEncoding:n}}(g),{bins:m,timeUnits:b,aggregate:v,groupby:y,encoding:x}=mc(h,n),A="vertical"===i?"horizontal":"vertical",O=i;return{transform:[...m,...b,{aggregate:[...v,...c],groupby:y},...l],groupby:y,aggregate:v,continuousAxisChannelDef:r,continuousAxis:a,encodingWithoutContinuousAxis:x,ticksOrient:A,boxOrient:O,customTooltipWithoutAggregatedField:p}}(e,d,t),{color:F,size:D}=x,j=w(x,["color","size"]),k=e=>Cc(f,b,m,e,t.boxplot),E=k(j),S=k(x),$=k(Object.assign(Object.assign({},j),D?{size:D}:{})),N=Ac([{fieldPrefix:"min-max"===p?"upper_whisker_":"max_",titlePrefix:"Max"},{fieldPrefix:"upper_box_",titlePrefix:"Q3"},{fieldPrefix:"mid_box_",titlePrefix:"Median"},{fieldPrefix:"lower_box_",titlePrefix:"Q1"},{fieldPrefix:"min-max"===p?"lower_whisker_":"min_",titlePrefix:"Min"}],m,x),M={type:"tick",color:"black",opacity:1,orient:A,invalid:null},B="min-max"===p?N:Ac([{fieldPrefix:"upper_whisker_",titlePrefix:"Upper Whisker"},{fieldPrefix:"lower_whisker_",titlePrefix:"Lower Whisker"}],m,x),_=[...E({partName:"rule",mark:{type:"rule",invalid:null},positionPrefix:"lower_whisker",endPositionPrefix:"lower_box",extraEncoding:B}),...E({partName:"rule",mark:{type:"rule",invalid:null},positionPrefix:"upper_box",endPositionPrefix:"upper_whisker",extraEncoding:B}),...E({partName:"ticks",mark:M,positionPrefix:"lower_whisker",extraEncoding:B}),...E({partName:"ticks",mark:M,positionPrefix:"upper_whisker",extraEncoding:B})],T=[..."tukey"!==p?_:[],...S({partName:"box",mark:Object.assign(Object.assign({type:"bar"},g?{size:g}:{}),{orient:O,invalid:null}),positionPrefix:"lower_box",endPositionPrefix:"upper_box",extraEncoding:N}),...$({partName:"median",mark:Object.assign(Object.assign(Object.assign({type:"tick",invalid:null},a(t.boxplot.median)&&t.boxplot.median.color?{color:t.boxplot.median.color}:{}),g?{size:g}:{}),{orient:A}),positionPrefix:"mid_box",extraEncoding:N})];let z;if("min-max"!==p){const e=`datum["lower_box_${m.field}"]`,n=`datum["upper_box_${m.field}"]`,i=`(${n} - ${e})`,r=`${e} - ${d} * ${i}`,o=`${n} + ${d} * ${i}`,a=`datum["${m.field}"]`,s={joinaggregate:Mc(m.field),groupby:v};let u=void 0;"tukey"===p&&(u={transform:[{filter:`(${r} <= ${a}) && (${a} <= ${o})`},{aggregate:[{op:"min",field:m.field,as:"lower_whisker_"+m.field},{op:"max",field:m.field,as:"upper_whisker_"+m.field},{op:"min",field:"lower_box_"+m.field,as:"lower_box_"+m.field},{op:"max",field:"upper_box_"+m.field,as:"upper_box_"+m.field},...y],groupby:v}],layer:_});const c=w(j,["tooltip"]),{scale:l,axis:g}=m,h=Oc(m),x=Fc(f,"outliers",t.boxplot,{transform:[{filter:`(${a} < ${r}) || (${a} > ${o})`}],mark:"point",encoding:Object.assign(Object.assign({[b]:Object.assign(Object.assign(Object.assign({field:m.field,type:m.type},void 0!==h?{title:h}:{}),void 0!==l?{scale:l}:{}),void 0!==g?{axis:g}:{})},c),C?{tooltip:C}:{})})[0];x&&u?z={transform:[s],layer:[x,u]}:x?(z=x,z.transform.unshift(s)):u&&(z=u,z.transform.unshift(s))}return z?Object.assign(Object.assign({},l),{layer:[z,{transform:h,layer:T}]}):Object.assign(Object.assign({},l),{transform:(null!==(i=l.transform)&&void 0!==i?i:[]).concat(h),layer:T})}function Mc(e){return[{op:"q1",field:e,as:"lower_box_"+e},{op:"q3",field:e,as:"upper_box_"+e}]}const Bc=oo({ticks:1,rule:1}),_c=new Po("errorbar",Tc);function Tc(e,{config:t}){const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,ticksOrient:a,markDef:s,outerSpec:u,tooltipEncoding:c}=Uc(e,"errorbar",t),l=Cc(s,r,i,o,t.errorbar),f={type:"tick",orient:a},d=[...l({partName:"ticks",mark:f,positionPrefix:"lower",extraEncoding:c}),...l({partName:"ticks",mark:f,positionPrefix:"upper",extraEncoding:c}),...l({partName:"rule",mark:"rule",positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:c})];return Object.assign(Object.assign(Object.assign({},u),{transform:n}),d.length>1?{layer:d}:Object.assign({},d[0]))}function zc(e,t){const{encoding:n}=e;if(function(e){return(Bu(e.x)||Bu(e.y))&&!Bu(e.x2)&&!Bu(e.y2)&&!Bu(e.xError)&&!Bu(e.xError2)&&!Bu(e.yError)&&!Bu(e.yError2)}(n))return{orient:kc(e,t),inputType:"raw"};const i=function(e){return Bu(e.x2)||Bu(e.y2)}(n),r=function(e){return Bu(e.xError)||Bu(e.xError2)||Bu(e.yError)||Bu(e.yError2)}(n),o=n.x,a=n.y;if(i){if(r)throw new Error(`${t} cannot be both type aggregated-upper-lower and aggregated-error`);const e=n.x2,i=n.y2;if(Bu(e)&&Bu(i))throw new Error(`${t} cannot have both x2 and y2`);if(Bu(e)){if(Bu(o)&&Iu(o))return{orient:"horizontal",inputType:"aggregated-upper-lower"};throw new Error(`Both x and x2 have to be quantitative in ${t}`)}if(Bu(i)){if(Bu(a)&&Iu(a))return{orient:"vertical",inputType:"aggregated-upper-lower"};throw new Error(`Both y and y2 have to be quantitative in ${t}`)}throw new Error("No ranged axis")}{const e=n.xError,i=n.xError2,r=n.yError,s=n.yError2;if(Bu(i)&&!Bu(e))throw new Error(`${t} cannot have xError2 without xError`);if(Bu(s)&&!Bu(r))throw new Error(`${t} cannot have yError2 without yError`);if(Bu(e)&&Bu(r))throw new Error(`${t} cannot have both xError and yError with both are quantiative`);if(Bu(e)){if(Bu(o)&&Iu(o))return{orient:"horizontal",inputType:"aggregated-error"};throw new Error("All x, xError, and xError2 (if exist) have to be quantitative")}if(Bu(r)){if(Bu(a)&&Iu(a))return{orient:"vertical",inputType:"aggregated-error"};throw new Error("All y, yError, and yError2 (if exist) have to be quantitative")}throw new Error("No ranged axis")}}function Uc(e,t,n){var i;const{mark:r,encoding:o,selection:a,projection:s}=e,u=w(e,["mark","encoding","selection","projection"]),c=No(r)?r:{type:r};a&&as(is.selectionNotSupported(t));const{orient:l,inputType:f}=zc(e,t),{continuousAxisChannelDef:d,continuousAxisChannelDef2:g,continuousAxisChannelDefError:p,continuousAxisChannelDefError2:h,continuousAxis:m}=Dc(e,l,t),{errorBarSpecificAggregate:b,postAggregateCalculates:v,tooltipSummary:y,tooltipTitleWithFieldName:x}=function(e,t,n,i,r,o,a,s){let u=[],c=[];const l=t.field;let f,d=!1;if("raw"===o){const t=e.center?e.center:e.extent?"iqr"===e.extent?"median":"mean":s.errorbar.center,n=e.extent?e.extent:"mean"===t?"stderr":"iqr";if("median"===t!=("iqr"===n)&&as(is.errorBarCenterIsUsedWithWrongExtent(t,n,a)),"stderr"===n||"stdev"===n)u=[{op:n,field:l,as:"extent_"+l},{op:t,field:l,as:"center_"+l}],c=[{calculate:`datum["center_${l}"] + datum["extent_${l}"]`,as:"upper_"+l},{calculate:`datum["center_${l}"] - datum["extent_${l}"]`,as:"lower_"+l}],f=[{fieldPrefix:"center_",titlePrefix:fo(t)},{fieldPrefix:"upper_",titlePrefix:Pc(t,n,"+")},{fieldPrefix:"lower_",titlePrefix:Pc(t,n,"-")}],d=!0;else{let t,i,r;e.center&&e.extent&&as(is.errorBarCenterIsNotNeeded(e.extent,a)),"ci"===n?(t="mean",i="ci0",r="ci1"):(t="median",i="q1",r="q3"),u=[{op:i,field:l,as:"lower_"+l},{op:r,field:l,as:"upper_"+l},{op:t,field:l,as:"center_"+l}],f=[{fieldPrefix:"upper_",titlePrefix:Yu({field:l,aggregate:r,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"lower_",titlePrefix:Yu({field:l,aggregate:i,type:"quantitative"},s,{allowDisabling:!1})},{fieldPrefix:"center_",titlePrefix:Yu({field:l,aggregate:t,type:"quantitative"},s,{allowDisabling:!1})}]}}else{(e.center||e.extent)&&as(is.errorBarCenterAndExtentAreNotNeeded(e.center,e.extent)),"aggregated-upper-lower"===o?(f=[],c=[{calculate:`datum["${n.field}"]`,as:"upper_"+l},{calculate:`datum["${l}"]`,as:"lower_"+l}]):"aggregated-error"===o&&(f=[{fieldPrefix:"",titlePrefix:l}],c=[{calculate:`datum["${l}"] + datum["${i.field}"]`,as:"upper_"+l}],r?c.push({calculate:`datum["${l}"] + datum["${r.field}"]`,as:"lower_"+l}):c.push({calculate:`datum["${l}"] - datum["${i.field}"]`,as:"lower_"+l}));for(const e of c)f.push({fieldPrefix:e.as.substring(0,6),titlePrefix:mo(mo(e.calculate,'datum["',""),'"]',"")})}return{postAggregateCalculates:c,errorBarSpecificAggregate:u,tooltipSummary:f,tooltipTitleWithFieldName:d}}(c,d,g,p,h,f,t,n),A=o,O=m,C=(A[O],"x"===m?"x2":"y2"),F=(A[C],"x"===m?"xError":"yError"),D=(A[F],"x"===m?"xError2":"yError2"),j=(A[D],w(A,["symbol"==typeof O?O:O+"","symbol"==typeof C?C:C+"","symbol"==typeof F?F:F+"","symbol"==typeof D?D:D+""])),{bins:k,timeUnits:E,aggregate:S,groupby:$,encoding:N}=mc(j,n),M=[...S,...b],B="raw"!==f?[]:$,_=Ac(y,d,N,x);return{transform:[...null!==(i=u.transform)&&void 0!==i?i:[],...k,...E,...0===M.length?[]:[{aggregate:M,groupby:B}],...v],groupby:B,continuousAxisChannelDef:d,continuousAxis:m,encodingWithoutContinuousAxis:N,ticksOrient:"vertical"===l?"horizontal":"vertical",markDef:c,outerSpec:u,tooltipEncoding:_}}function Pc(e,t,n){return fo(e)+" "+n+" "+t}const Lc=oo({band:1,borders:1}),Rc=new Po("errorband",qc);function qc(e,{config:t}){const{transform:n,continuousAxisChannelDef:i,continuousAxis:r,encodingWithoutContinuousAxis:o,markDef:a,outerSpec:s,tooltipEncoding:u}=Uc(e,"errorband",t),c=a,l=Cc(c,r,i,o,t.errorband),f=void 0!==e.encoding.x&&void 0!==e.encoding.y;let d={type:f?"area":"rect"},g={type:f?"line":"rule"};const p=Object.assign(Object.assign({},c.interpolate?{interpolate:c.interpolate}:{}),c.tension&&c.interpolate?{tension:c.tension}:{});return f?(d=Object.assign(Object.assign({},d),p),g=Object.assign(Object.assign({},g),p)):c.interpolate?as(is.errorBand1DNotSupport("interpolate")):c.tension&&as(is.errorBand1DNotSupport("tension")),Object.assign(Object.assign({},s),{transform:n,layer:[...l({partName:"band",mark:d,positionPrefix:"lower",endPositionPrefix:"upper",extraEncoding:u}),...l({partName:"borders",mark:g,positionPrefix:"lower",extraEncoding:u}),...l({partName:"borders",mark:g,positionPrefix:"upper",extraEncoding:u})]})}const Ic={};function Wc(e,t,n){const i=new Po(e,t);Ic[e]={normalizer:i,parts:n}}Wc("boxplot",Nc,Ec),Wc("errorbar",Tc,Bc),Wc("errorband",qc,Lc);const Hc=["gradientHorizontalMaxLength","gradientHorizontalMinLength","gradientVerticalMaxLength","gradientVerticalMinLength","unselectedOpacity"],Gc=oo({size:1,shape:1,fill:1,stroke:1,strokeDash:1,strokeWidth:1,opacity:1}),Yc={fillColor:{part:"legend",vgProp:"fill"},gradientStrokeColor:{part:"gradient",vgProp:"stroke"},labelColor:{part:"labels",vgProp:"fill"},strokeColor:{part:"legend",vgProp:"stroke"},symbolFillColor:{part:"symbols",vgProp:"fill"},symbolStrokeColor:{part:"symbols",vgProp:"stroke"},titleColor:{part:"title",vgProp:"fill"}},Vc={single:{on:"click",fields:["_vgsid_"],resolve:"global",empty:"all",clear:"dblclick"},multi:{on:"click",fields:["_vgsid_"],toggle:"event.shiftKey",resolve:"global",empty:"all",clear:"dblclick"},interval:{on:"[mousedown, window:mouseup] > window:mousemove!",encodings:["x","y"],translate:"[mousedown, window:mouseup] > window:mousemove!",zoom:"wheel!",mark:{fill:"#333",fillOpacity:.125,stroke:"white"},resolve:"global",clear:"dblclick"}};function Xc(e){return!(!e||"legend"!==e&&!e.legend)}function Jc(e){return Xc(e)&&a(e)}function Qc(e){return void 0!==e.concat}function Zc(e){return void 0!==e.vconcat}function Kc(e){return void 0!==e.hconcat}function el(e){return void 0!==e.repeat}function tl(e){return a(e)&&void 0!==e.step}function nl(e){return e.view||e.width||e.height}const il=oo({align:1,bounds:1,center:1,columns:1,spacing:1});function rl(e,t){var n;return null!==(n=e[t])&&void 0!==n?n:e["width"===t?"continuousWidth":"continuousHeight"]}function ol(e,t){const n=al(e,t);return tl(n)?n.step:sl}function al(e,t){var n;return vo(null!==(n=e[t])&&void 0!==n?n:e["width"===t?"discreteWidth":"discreteHeight"],{step:e.step})}const sl=20,ul={background:"white",padding:5,timeFormat:"%b %d, %Y",countTitle:"Count of Records",view:{continuousWidth:200,continuousHeight:200,step:sl},mark:{color:"#4c78a8",invalid:"filter",timeUnitBand:1},area:{},bar:To,circle:{},geoshape:{},image:{},line:{},point:{},rect:zo,rule:{color:"black"},square:{},text:{color:"black"},tick:{thickness:1},trail:{},boxplot:{size:14,extent:1.5,box:{},median:{color:"white"},outliers:{},rule:{},ticks:null},errorbar:{center:"mean",rule:!0,ticks:!1},errorband:{band:{opacity:.3},borders:!1},scale:{pointPadding:.5,barBandPaddingInner:.1,rectBandPaddingInner:0,minBandSize:2,minFontSize:8,maxFontSize:40,minOpacity:.3,maxOpacity:.8,minSize:9,minStrokeWidth:1,maxStrokeWidth:4,quantileCount:4,quantizeCount:4},projection:{},axis:{},axisX:{},axisY:{},axisLeft:{},axisRight:{},axisTop:{},axisBottom:{},axisBand:{},legend:{gradientHorizontalMaxLength:200,gradientHorizontalMinLength:100,gradientVerticalMaxLength:200,gradientVerticalMinLength:64,unselectedOpacity:.35},header:{titlePadding:10,labelPadding:10},headerColumn:{},headerRow:{},headerFacet:{},selection:Vc,style:{},title:{},facet:{spacing:20},repeat:{spacing:20},concat:{spacing:20}},cl=zr("tableau10"),ll={text:11,guideLabel:10,guideTitle:11,groupTitle:13,groupSubtitle:12},fl={blue:cl[0],orange:cl[1],red:cl[2],teal:cl[3],green:cl[4],yellow:cl[5],purple:cl[6],pink:cl[7],brown:cl[8],gray0:"#000",gray1:"#111",gray2:"#222",gray3:"#333",gray4:"#444",gray5:"#555",gray6:"#666",gray7:"#777",gray8:"#888",gray9:"#999",gray10:"#aaa",gray11:"#bbb",gray12:"#ccc",gray13:"#ddd",gray14:"#eee",gray15:"#fff"};function dl(e={}){const{color:t,font:n,fontSize:i}=e,r=w(e,["color","font","fontSize"]);return d({},ul,n?function(e){return{text:{font:e},style:{"guide-label":{font:e},"guide-title":{font:e},"group-title":{font:e},"group-subtitle":{font:e}}}}(n):{},t?function(e={}){return{signals:[{name:"color",value:a(e)?Object.assign(Object.assign({},fl),e):fl}],mark:{color:{signal:"color.blue"}},rule:{color:{signal:"color.gray0"}},text:{color:{signal:"color.gray0"}},style:{"guide-label":{fill:{signal:"color.gray0"}},"guide-title":{fill:{signal:"color.gray0"}},"group-title":{fill:{signal:"color.gray0"}},"group-subtitle":{fill:{signal:"color.gray0"}},cell:{stroke:{signal:"color.gray8"}}},axis:{domainColor:{signal:"color.gray13"},gridColor:{signal:"color.gray8"},tickColor:{signal:"color.gray13"}},range:{category:[{signal:"color.blue"},{signal:"color.orange"},{signal:"color.red"},{signal:"color.teal"},{signal:"color.green"},{signal:"color.yellow"},{signal:"color.purple"},{signal:"color.pink"},{signal:"color.brown"},{signal:"color.grey8"}]}}}(t):{},i?function(e){return{signals:[{name:"fontSize",value:a(e)?Object.assign(Object.assign({},ll),e):ll}],text:{fontSize:{signal:"fontSize.text"}},style:{"guide-label":{fontSize:{signal:"fontSize.guideLabel"}},"guide-title":{fontSize:{signal:"fontSize.guideTitle"}},"group-title":{fontSize:{signal:"fontSize.groupTitle"}},"group-subtitle":{fontSize:{signal:"fontSize.groupSubtitle"}}}}}(i):{},r||{})}const gl=["view",...$o],pl=["color","fontSize","background","padding","facet","concat","repeat","numberFormat","timeFormat","countTitle","header","axisQuantitative","axisTemporal","scale","selection","overlay"],hl=Object.assign({view:["continuousWidth","continuousHeight","discreteWidth","discreteHeight","step"]},{area:["line","point"],bar:["binSpacing","continuousBandSize","discreteBandSize"],rect:["binSpacing","continuousBandSize","discreteBandSize"],line:["point"],tick:["bandSize","thickness"]});function ml(e){e=Hr(e);for(const t of pl)delete e[t];if(e.axis)for(const t in e.axis)Oo(e.axis[t])&&delete e.axis[t];if(e.legend)for(const t of Hc)delete e.legend[t];if(e.mark)for(const t of Bo)delete e.mark[t];for(const t of gl){for(const n of Bo)delete e[t][n];const n=hl[t];if(n)for(const i of n)delete e[t][i];bl(e,t)}for(const t of oo(Ic))delete e[t];!function(e){const{mark:t,subtitle:n}=La(e.title),i=Object.assign(Object.assign({},e.style["group-title"]),t);oo(i).length>0&&(e.style["group-title"]=i);oo(n).length>0?e.title=n:delete e.title}(e);for(const t in e)a(e[t])&&0===oo(e[t]).length&&delete e[t];return oo(e).length>0?e:void 0}function bl(e,t,n,i){const r=i?e[t][i]:e[t];"view"===t&&(n="cell");const o=Object.assign(Object.assign({},r),e.style[null!=n?n:t]);oo(o).length>0&&(e.style[null!=n?n:t]=o),i||delete e[t]}function vl(e){return void 0!==e.layer}class yl{map(e,t){return ju(e)?this.mapFacet(e,t):el(e)?this.mapRepeat(e,t):Kc(e)?this.mapHConcat(e,t):Zc(e)?this.mapVConcat(e,t):Qc(e)?this.mapConcat(e,t):this.mapLayerOrUnit(e,t)}mapLayerOrUnit(e,t){if(vl(e))return this.mapLayer(e,t);if(Uo(e))return this.mapUnit(e,t);throw new Error(is.invalidSpec(e))}mapLayer(e,t){return Object.assign(Object.assign({},e),{layer:e.layer.map(e=>this.mapLayerOrUnit(e,t))})}mapHConcat(e,t){return Object.assign(Object.assign({},e),{hconcat:e.hconcat.map(e=>this.map(e,t))})}mapVConcat(e,t){return Object.assign(Object.assign({},e),{vconcat:e.vconcat.map(e=>this.map(e,t))})}mapConcat(e,t){const{concat:n}=e,i=w(e,["concat"]);return Object.assign(Object.assign({},i),{concat:n.map(e=>this.map(e,t))})}mapFacet(e,t){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}mapRepeat(e,t){return Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}}const xl={zero:1,center:1,normalize:1};const wl=["bar","area","rule","point","circle","square","line","text","tick"],Al=["bar","area"];function Ol(e,t,n={}){const i=No(e)?e.type:e;if(!Qr(wl,i))return null;const r=function(e){const t=e.x,n=e.y;if(Bu(t)&&Bu(n))if("quantitative"===t.type&&"quantitative"===n.type){if(t.stack)return"x";if(n.stack)return"y";if(!!t.aggregate!=!!n.aggregate)return t.aggregate?"x":"y"}else{if("quantitative"===t.type)return"x";if("quantitative"===n.type)return"y"}else{if(Bu(t)&&"quantitative"===t.type)return"x";if(Bu(n)&&"quantitative"===n.type)return"y"}}(t);if(!r)return null;const o=t[r],a=Tu(o)?Ru(o,{}):void 0,s="x"===r?"y":"x",u=t[s],c=Tu(u)?Ru(u,{}):void 0,l=Da.reduce((e,n)=>{if("tooltip"!==n&&pc(t,n)){h(t[n]).forEach(t=>{const i=Zu(t);if(i.aggregate)return;const r=Tu(i)?Ru(i,{}):void 0;(!r||r!==c&&r!==a)&&e.push({channel:n,fieldDef:i})})}return e},[]);let f;if(void 0!==o.stack?f=v(o.stack)?o.stack?"zero":null:o.stack:l.length>0&&Qr(Al,i)&&(f="zero"),!f||!xl[f])return null;if(hc(t)&&0===l.length)return null;if(o.scale&&o.scale.type&&o.scale.type!==Rs.LINEAR){if(n.disallowNonLinearStack)return null;as(is.cannotStackNonLinearScale(o.scale.type))}return pc(t,r===Jo?Zo:Ko)?(void 0!==o.stack&&as(is.cannotStackRangedMark(r)),null):(o.aggregate&&!Qr(Yo,o.aggregate)&&as(is.stackNonSummativeAggregate(o.aggregate)),{groupbyChannel:u?s:void 0,groupbyField:c,fieldChannel:r,impute:null!==o.impute&&Eo(i),stackBy:l,offset:f})}function Cl(e){const t=w(e,["point","line"]);return oo(t).length>1?t:t.type}function Fl(e){for(const t of["line","area","rule","trail"])e[t]&&(e=Object.assign(Object.assign({},e),{[t]:Yr(e[t],["point","line"])}));return e}function Dl(e,t={},n){return"transparent"===e.point?{opacity:0}:e.point?a(e.point)?e.point:{}:void 0!==e.point?null:t.point||n.shape?a(t.point)?t.point:{}:void 0}function jl(e,t={}){return e.line?!0===e.line?{}:e.line:void 0!==e.line?null:t.line?!0===t.line?{}:t.line:void 0}class kl{constructor(){this.name="path-overlay"}hasMatchingType(e,t){if(Uo(e)){const{mark:n,encoding:i}=e,r=No(n)?n:{type:n};switch(r.type){case"line":case"rule":case"trail":return!!Dl(r,t[r.type],i);case"area":return!!Dl(r,t[r.type],i)||!!jl(r,t[r.type])}}return!1}run(e,t,n){const{config:i}=t,{selection:r,projection:o,encoding:a,mark:s}=e,u=w(e,["selection","projection","encoding","mark"]),c=No(s)?s:{type:s},l=Dl(c,i[c.type],a),f="area"===c.type&&jl(c,i[c.type]),d=[Object.assign(Object.assign({},r?{selection:r}:{}),{mark:Cl(Object.assign(Object.assign({},"area"===c.type&&void 0===c.opacity&&void 0===c.fillOpacity?{opacity:.7}:{}),c)),encoding:Yr(a,["shape"])})],g=Ol(c,a);let p=a;if(g){const{fieldChannel:e,offset:t}=g;p=Object.assign(Object.assign({},a),{[e]:Object.assign(Object.assign({},a[e]),t?{stack:t}:{})})}return f&&d.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"line"},Gr(c,["clip","interpolate","tension","tooltip"])),f),encoding:p})),l&&d.push(Object.assign(Object.assign({},o?{projection:o}:{}),{mark:Object.assign(Object.assign({type:"point",opacity:1,filled:!0},Gr(c,["clip","tooltip"])),l),encoding:p})),n(Object.assign(Object.assign({},u),{layer:d}),Object.assign(Object.assign({},t),{config:Fl(i)}))}}class El{constructor(){this.name="RangeStep"}hasMatchingType(e){var t;if(Uo(e)&&e.encoding)for(const n of ka){const i=e.encoding[n];if(i&&Bu(i)&&(null===(t=null==i?void 0:i.scale)||void 0===t?void 0:t.rangeStep))return!0}return!1}run(e){var t;const n={};let i=Object.assign({},e.encoding);for(const e of ka){const r=Ea(e),o=i[e];if(o&&Bu(o)&&(null===(t=null==o?void 0:o.scale)||void 0===t?void 0:t.rangeStep)){const{scale:t}=o,a=w(o,["scale"]),s=w(t,["rangeStep"]);n[r]={step:t.rangeStep},as(is.RANGE_STEP_DEPRECATED),i=Object.assign(Object.assign({},i),{[e]:Object.assign(Object.assign({},a),oo(s).length>0?{scale:s}:{})})}}return Object.assign(Object.assign(Object.assign({},n),e),{encoding:i})}}class Sl{constructor(){this.name="RuleForRangedLine"}hasMatchingType(e){if(Uo(e)){const{encoding:t,mark:n}=e;if("line"===n)for(const e of wa){const n=t[Oa(e)];if(t[e]&&Bu(n)&&!lc(n.bin))return!0}}return!1}run(e,t,n){const{encoding:i}=e;return as(is.lineWithRange(!!i.x2,!!i.y2)),n(Object.assign(Object.assign({},e),{mark:"rule"}),t)}}function $l(e){const{parentEncoding:t,encoding:n}=e;if(t&&n){const e=oo(t).reduce((e,t)=>(n[t]&&e.push(t),e),[]);e.length>0&&as(is.encodingOverridden(e))}const i=Object.assign(Object.assign({},null!=t?t:{}),null!=n?n:{});return oo(i).length>0?i:void 0}function Nl(e){const{parentProjection:t,projection:n}=e;return t&&n&&as(is.projectionOverridden({parentProjection:t,projection:n})),null!=n?n:t}function Ml(e,t){void 0===t&&(t=dl(e.config));const n=function(e,t={}){return Bl.map(e,{config:t})}(e,t),{width:i,height:r}=e,o=function(e,t,n){let{width:i,height:r}=t;const o=Uo(e)||vl(e),a={};o?"container"==i&&"container"==r?(a.type="fit",a.contains="padding"):"container"==i?(a.type="fit-x",a.contains="padding"):"container"==r&&(a.type="fit-y",a.contains="padding"):("container"==i&&(as(is.containerSizeNonSingle("width")),i=void 0),"container"==r&&(as(is.containerSizeNonSingle("height")),r=void 0));const s=Object.assign(Object.assign(Object.assign({type:"pad"},a),n?_l(n.autosize):{}),_l(e.autosize));"fit"!==s.type||o||(as(is.FIT_NON_SINGLE),s.type="pad");"container"==i&&"fit"!=s.type&&"fit-x"!=s.type&&as(is.containerSizeNotCompatibleWithAutosize("width"));"container"==r&&"fit"!=s.type&&"fit-y"!=s.type&&as(is.containerSizeNotCompatibleWithAutosize("height"));if(Wr(s,{type:"pad"}))return;return s}(n,{width:i,height:r,autosize:e.autosize},t);return Object.assign(Object.assign({},n),o?{autosize:o}:{})}const Bl=new class extends yl{constructor(){super(...arguments),this.nonFacetUnitNormalizers=[Sc,_c,Rc,new kl,new Sl,new El]}map(e,t){if(Uo(e)){const n=pc(e.encoding,Xo),i=pc(e.encoding,"column"),r=pc(e.encoding,"facet");if(n||i||r)return this.mapFacetedUnit(e,t)}return super.map(e,t)}mapUnit(e,t){const{parentEncoding:n,parentProjection:i}=t;if(n||i)return this.mapUnitWithParentEncodingOrProjection(e,t);const r=this.mapLayerOrUnit.bind(this);for(const n of this.nonFacetUnitNormalizers)if(n.hasMatchingType(e,t.config))return n.run(e,t,r);return e}mapRepeat(e,t){const{repeat:n}=e;return!o(n)&&e.columns&&(e=Yr(e,["columns"]),as(is.columnsNotSupportByRowCol("repeat"))),Object.assign(Object.assign({},e),{spec:this.map(e.spec,t)})}mapFacet(e,t){const{facet:n}=e;return Du(n)&&e.columns&&(e=Yr(e,["columns"]),as(is.columnsNotSupportByRowCol("facet"))),super.mapFacet(e,t)}mapUnitWithParentEncodingOrProjection(e,t){const{encoding:n,projection:i}=e,{parentEncoding:r,parentProjection:o,config:a}=t,s=Nl({parentProjection:o,projection:i}),u=$l({parentEncoding:r,encoding:n});return this.mapUnit(Object.assign(Object.assign(Object.assign({},e),s?{projection:s}:{}),u?{encoding:u}:{}),{config:a})}mapFacetedUnit(e,t){const n=e.encoding,{row:i,column:r,facet:o}=n,a=w(n,["row","column","facet"]),{mark:s,width:u,projection:c,height:l,view:f,selection:d,encoding:g}=e,p=w(e,["mark","width","projection","height","view","selection","encoding"]),{facetMapping:h,layout:m}=this.getFacetMappingAndLayout({row:i,column:r,facet:o});return this.mapFacet(Object.assign(Object.assign(Object.assign({},p),m),{facet:h,spec:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},u?{width:u}:{}),l?{height:l}:{}),f?{view:f}:{}),c?{projection:c}:{}),{mark:s,encoding:a}),d?{selection:d}:{})}),t)}getFacetMappingAndLayout(e){var t;const{row:n,column:i,facet:r}=e;if(n||i){r&&as(is.facetChannelDropped([...n?[Xo]:[],...i?["column"]:[]]));const o={},a={};for(const n of[Xo,"column"]){const i=e[n];if(i){const e=w(i,["align","center","spacing","columns"]);o[n]=e;for(const e of["align","center","spacing"])void 0!==i[e]&&(a[e]=null!==(t=a[e])&&void 0!==t?t:{},a[e][n]=i[e])}}return{facetMapping:o,layout:a}}{const{align:e,center:t,spacing:n,columns:i}=r;return{facetMapping:w(r,["align","center","spacing","columns"]),layout:Object.assign(Object.assign(Object.assign(Object.assign({},e?{align:e}:{}),t?{center:t}:{}),n?{spacing:n}:{}),i?{columns:i}:{})}}}mapLayer(e,t){var{parentEncoding:n,parentProjection:i}=t,r=w(t,["parentEncoding","parentProjection"]);const{encoding:o,projection:a}=e,s=w(e,["encoding","projection"]),u=Object.assign(Object.assign({},r),{parentEncoding:$l({parentEncoding:n,encoding:o}),parentProjection:Nl({parentProjection:i,projection:a})});return super.mapLayer(s,u)}};function _l(e){return s(e)?{type:e}:null!=e?e:{}}const Tl=["background","padding"];function zl(e){return Tl.reduce((t,n)=>(e&&void 0!==e[n]&&(t[n]=e[n]),t),{})}function Ul(e){return!!e.url}function Pl(e){return!!e.values}function Ll(e){return!(!e.name||Ul(e)||Pl(e)||Rl(e))}function Rl(e){return e&&(ql(e)||Il(e)||Wl(e))}function ql(e){return!!e.sequence}function Il(e){return!!e.sphere}function Wl(e){return!!e.graticule}const Hl="main";function Gl(e){return void 0!==e.filter}function Yl(e){return void 0!==e.lookup}function Vl(e){return void 0!==e.pivot}function Xl(e){return void 0!==e.density}function Jl(e){return void 0!==e.quantile}function Ql(e){return void 0!==e.regression}function Zl(e){return void 0!==e.loess}function Kl(e){return void 0!==e.sample}function ef(e){return void 0!==e.window}function tf(e){return void 0!==e.joinaggregate}function nf(e){return void 0!==e.flatten}function rf(e){return void 0!==e.calculate}function of(e){return!!e.bin}function af(e){return void 0!==e.impute}function sf(e){return void 0!==e.timeUnit}function uf(e){return void 0!==e.aggregate}function cf(e){return void 0!==e.stack}function lf(e){return void 0!==e.fold}function ff(e,t,n){return df=t||pf,gf=n||mf,vf(e.trim()).map(yf)}var df,gf,pf="view",hf=/[[\]{}]/,mf={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};function bf(e,t,n,i,r){for(var o,a=0,s=e.length;t=0?--a:i&&i.indexOf(o)>=0&&++a}return t}function vf(e){for(var t=[],n=0,i=e.length,r=0;r"!==(e=e.slice(r+1).trim())[0])throw"Expected '>' after between selector: "+e;if(t=t.map(yf),(n=yf(e.slice(1).trim())).between)return{between:t,stream:n};n.between=t;return n}(e):function(e){var t,n,i={source:df},r=[],o=[0,0],a=0,s=0,u=e.length,c=0;if("}"===e[u-1]){if(!((c=e.lastIndexOf("{"))>=0))throw"Unmatched right brace: "+e;try{o=function(e){var t=e.split(",");if(!e.length||t.length>2)throw e;return t.map((function(t){var n=+t;if(n!=n)throw e;return n}))}(e.substring(c+1,u-1))}catch(t){throw"Invalid throttle specification: "+e}e=e.slice(0,c).trim(),u=e.length,c=0}if(!u)throw e;"@"===e[0]&&(a=++c);(t=bf(e,c,":"))1?(i.type=r[1],a?i.markname=r[0].slice(1):!function(e){return gf[e]}(r[0])?i.source=r[0]:i.marktype=r[0]):i.type=r[0];"!"===i.type.slice(-1)&&(i.consume=!0,i.type=i.type.slice(0,-1));null!=n&&(i.filter=n);o[0]&&(i.throttle=o[0]);o[1]&&(i.debounce=o[1]);return i}(e)}function xf(e,t,n,i){const r=t&&t.condition,o=i(t);if(r){return{[n]:[...h(r).map(t=>{const n=i(t),r=function(e){return e.selection}(t)?Rg(e,t.selection):Ig(e,t.test);return Object.assign({test:r},n)}),...void 0!==o?[o]:[]]}}return void 0!==o?{[n]:o}:{}}function wf(e){const{channel:t,channelDef:n,markDef:i,scale:r}=e,o=jf(e);return Bu(n)&&!Go(n.aggregate)&&r&&nu(r.get("type"))&&!1===r.get("zero")?Af({fieldDef:n,channel:t,markDef:i,ref:o}):o}function Af({fieldDef:e,channel:t,markDef:n,ref:i}){return Eo(n.type)?i:[Of(e,t),i]}function Of(e,t){const n=Cf(e,!0),i="x"===Oa(t)?{value:0}:{field:{group:"height"}};return Object.assign({test:n},i)}function Cf(e,t=!0){return Us(s(e)?e:Ru(e,{expr:"datum"}),!t)}function Ff(e,t,n,i){const r=Object.assign(Object.assign({},t?{scale:t}:{}),{field:Ru(e,n)});if(i){const{offset:e,band:t}=i;return Object.assign(Object.assign(Object.assign({},r),e?{offset:e}:{}),t?{band:t}:{})}return r}function Df({scaleName:e,fieldDef:t,fieldDef2:n,offset:i,startSuffix:r,band:o=.5}){const a=0jf({channel:e,channelDef:n,markDef:i,config:o,scaleName:t.scaleName(e),scale:t.getScaleComponent(e),stack:null,defaultRef:s}))}function Sf(e,t={filled:void 0}){const{markDef:n,encoding:i,config:r}=e,{type:o}=n,a=vo(t.filled,n.filled),s={fill:Ja("fill",n,r),stroke:Ja("stroke",n,r),color:Ja("color",n,r)},u=Qr(["bar","point","circle","square","geoshape"],o)?"transparent":void 0,c=vo(n.fill,!0===a?n.color:void 0,s.fill,!0===a?s.color:void 0,u),l=vo(n.stroke,!1===a?n.color:void 0,s.stroke,!1===a?s.color:void 0),f=a?"fill":"stroke",d=Object.assign(Object.assign({},c?{fill:Ya(c)}:{}),l?{stroke:Ya(l)}:{});return n.color&&(a?n.fill:n.stroke)&&as(is.droppingColor("property",{fill:"fill"in n,stroke:"stroke"in n})),Object.assign(Object.assign(Object.assign(Object.assign({},d),Ef("color",e,{vgChannel:f,defaultValue:a?c:l})),Ef("fill",e,{defaultValue:i.fill?c:void 0})),Ef("stroke",e,{defaultValue:i.stroke?l:void 0}))}function $f(e,t="text"){const n=e.encoding[t];return xf(e,n,t,t=>Nf(t,e.config))}function Nf(e,t,n="datum"){if(e){if(zu(e))return{value:e.value};if(_u(e)){const{format:i,formatType:r}=Ju(e);return hu({fieldDef:e,format:i,formatType:r,expr:n,config:t})}}}function Mf(e,t={}){const{encoding:n,markDef:i,config:r}=e,u=n.tooltip;return o(u)?{tooltip:Bf({tooltip:u},r,t)}:xf(e,u,"tooltip",o=>{const u=Nf(o,e.config,t.reactiveGeom?"datum.datum":"datum");if(u)return u;if(null===o)return;let c=vo(i.tooltip,Ja("tooltip",i,r));return!0===c&&(c={content:"encoding"}),s(c)?{value:c}:a(c)?"encoding"===c.content?Bf(n,r,t):{signal:"datum"}:void 0})}function Bf(e,t,{reactiveGeom:n}={}){const i=[],r={},o={},a=n?"datum.datum":"datum",s=[];function c(n,i){const r=Oa(i),u=_u(n)?n:Object.assign(Object.assign({},n),{type:e[r].type}),c=h(Yu(u,t,{allowDisabling:!1})).join(", ");let l=Nf(u,t,a).signal;if("x"===i||"y"===i){const n="x"===i?"x2":"y2",r=Qu(e[n]);if(lc(u.bin)&&r){const e=Ru(u,{expr:a}),i=Ru(r,{expr:a}),{format:s,formatType:c}=Ju(u);l=yu(e,i,s,c,t),o[n]=!0}}s.push({channel:i,key:c,value:l})}yc(e,(e,t)=>{Bu(e)?c(e,t):Mu(e)&&c(e.condition,t)});for(const{channel:e,key:t,value:n}of s)o[e]||r[t]||(i.push(`${u(t)}: ${n}`),r[t]=!0);return i.length>0?{signal:`{${i.join(", ")}}`}:void 0}function _f(e,t){const n=t[e+"Offset"];if(n)return n}function Tf(e,t,{defaultPos:n,vgChannel:i}){const{encoding:r,markDef:o,config:a,stack:s}=t,u=r[e],c=r[e===Jo?Zo:Ko],l=t.scaleName(e),f=t.getScaleComponent(e),d=_f(e,o),g=zf({model:t,defaultPos:n,channel:e,scaleName:l,scale:f});return{[null!=i?i:e]:u||!r.latitude&&!r.longitude?function(e){const{channel:t,channelDef:n,scaleName:i,stack:r,offset:o}=e;if(Bu(n)&&r&&t===r.fieldChannel)return Pu(n)&&void 0!==n.band?Df({scaleName:i,fieldDef:n,startSuffix:"start",band:n.band,offset:0}):Ff(n,i,{suffix:"end"},{offset:o});return wf(e)}({channel:e,channelDef:u,channel2Def:c,markDef:o,config:a,scaleName:l,scale:f,stack:s,offset:d,defaultRef:g}):{field:t.getName(e)}}}function zf({model:e,defaultPos:t,channel:n,scaleName:i,scale:r}){const{markDef:o,config:a}=e;return()=>{const s=Oa(n),u=vo(o[n],Ja(n,o,a));if(void 0!==u)return kf(n,u);if("zeroOrMin"===t||"zeroOrMax"===t){if(i){const e=r.get("type");if(Qr([Rs.LOG,Rs.TIME,Rs.UTC],e));else if(r.domainDefinitelyIncludesZero())return{scale:i,value:0}}return"zeroOrMin"===t?"x"===s?{value:0}:{field:{group:"height"}}:"x"===s?{field:{group:"width"}}:{value:0}}{const t=e["x"===s?"width":"height"];return Object.assign(Object.assign({},t),{mult:.5})}}}const Uf={left:"x",center:"xc",right:"x2"},Pf={top:"y",middle:"yc",bottom:"y2"};function Lf(e,t,n){const i="x"===e?"align":"baseline",r=vo(t[i],Ja(i,t,n));return"x"===e?Uf[null!=r?r:"center"]:Pf[null!=r?r:"middle"]}function Rf(e,t,{defaultPos:n,defaultPos2:i,range:r}){return r?qf(e,t,{defaultPos:n,defaultPos2:i}):Tf(e,t,{defaultPos:n})}function qf(e,t,{defaultPos:n,defaultPos2:i}){const{markDef:r,config:o}=t,a="x"===e?"width":"height",s=function(e,t,n){const{encoding:i,mark:r,markDef:o,stack:a,config:s}=e,u="x2"===n?"x":"y",c="x2"===n?"width":"height",l=i[u],f=e.scaleName(u),d=e.getScaleComponent(u),g=_f(n,e.markDef);if(!l&&(i.latitude||i.longitude))return{[n]:{field:e.getName(n)}};const p=function({channel:e,channelDef:t,channel2Def:n,markDef:i,config:r,scaleName:o,scale:a,stack:s,offset:u,defaultRef:c}){if(Bu(t)&&s&&e.charAt(0)===s.fieldChannel.charAt(0))return Ff(t,o,{suffix:"start"},{offset:u});return wf({channel:e,channelDef:n,scaleName:o,scale:a,stack:s,markDef:i,config:r,offset:u,defaultRef:c})}({channel:n,channelDef:l,channel2Def:i[n],markDef:o,config:s,scaleName:f,scale:d,stack:a,offset:g,defaultRef:void 0});if(void 0!==p)return{[n]:p};const h=zf({model:e,defaultPos:t,channel:n,scaleName:f,scale:d})();return vo(If(n,o),If(n,{[n]:Qa(n,o,s.style),[c]:Qa(c,o,s.style)}),If(n,s[r]),If(n,s.mark),{[n]:h})}(t,i,"x"===e?"x2":"y2"),u=s[a]?Lf(e,r,o):e;return Object.assign(Object.assign({},Tf(e,t,{defaultPos:n,vgChannel:u})),s)}function If(e,t){const n="x2"===e?"width":"height";return t[e]?{[e]:kf(e,t[e])}:t[n]?{[n]:{value:t[n]}}:void 0}function Wf(e,t,n){var i,r,o,a;const{config:s,encoding:u,markDef:c}=e,l="x"===t?"x2":"y2",f="x"===t?"width":"height",d=u[t],g=u[l],p=e.getScaleComponent(t),h=p?p.get("type"):void 0,m=e.scaleName(t),b=c.orient,v=null!==(a=null!==(o=null!==(r=null!==(i=u[f])&&void 0!==i?i:u.size)&&void 0!==r?r:c[f])&&void 0!==o?o:c.size)&&void 0!==a?a:Ja("size",c,s,{vgChannel:f}),y="x"===t?"vertical"===b:"horizontal"===b;if(Bu(d)&&(cc(d.bin)||lc(d.bin)||d.timeUnit&&!g)&&!v&&!eu(h)){return function({fieldDef:e,fieldDef2:t,channel:n,band:i,scaleName:r,markDef:o,spacing:a=0,reverse:s}){const u=n===Jo?Zo:Ko;return cc(e.bin)||e.timeUnit?{[u]:Vf({channel:n,fieldDef:e,scaleName:r,markDef:o,band:(1-i)/2,offset:Yf(u,a,s)}),[n]:Vf({channel:n,fieldDef:e,scaleName:r,markDef:o,band:1-(1-i)/2,offset:Yf(n,a,s)})}:lc(e.bin)&&Bu(t)?{[u]:Ff(e,r,{},{offset:Yf(u,a,s)}),[n]:Ff(t,r,{},{offset:Yf(n,a,s)})}:void as(is.channelRequiredForBinned(u))}({fieldDef:d,fieldDef2:g,channel:t,markDef:c,scaleName:m,band:Su(t,d,void 0,c,s),spacing:vo(c.binSpacing,s[n].binSpacing),reverse:p.get("reverse")})}if((Bu(d)&&eu(h)||y)&&!g){if(Bu(d)&&h===Rs.BAND){return function(e,t,n,i){const r=n.scaleName(t),o="x"===t?"width":"height",{markDef:a,encoding:s,config:u}=n,c=Lf(t,a,u),l=_f(t,a),f={[c]:Ff(e,r,{},{band:.5,offset:l})};if(s.size||null!==a.size&&void 0!==a.size){if(a.orient){if(Zu(s.size)||zu(s.size))return Object.assign(Object.assign({},f),Ef("size",n,{vgChannel:o}));if(void 0!==a.size)return Object.assign(Object.assign({},f),{[o]:{value:a.size}})}else as(is.cannotApplySizeToNonOrientedMark(a.type))}if(void 0!==(null==i?void 0:i.value))return Object.assign(Object.assign({},f),{[o]:i});const{band:d=1}=e;return{[t]:Ff(e,r,{binSuffix:"range"},{band:(1-d)/2,offset:l}),[o]:null!=i?i:Gf(r,d)}}(d,t,e,Hf(n,c,f,m,p,s,Pu(d)?d.band:void 0))}return function(e,t,n){const i="x"===e?"xc":"yc",r="x"===e?"width":"height";return Object.assign(Object.assign({},Tf(e,t,{defaultPos:"mid",vgChannel:i})),Ef("size",t,{defaultRef:n,vgChannel:r}))}(t,e,Hf(n,c,f,m,p,s))}return qf(t,e,{defaultPos:"zeroOrMax",defaultPos2:"zeroOrMin"})}function Hf(e,t,n,i,r,o,a){const s=vo(t[n],t.size,Ja("size",t,o,{vgChannel:n}));if(void 0!==s)return Ya(s);if(r){const t=r.get("type");if("point"===t||"band"===t){if(void 0!==o[e].discreteBandSize)return{value:o[e].discreteBandSize};if(t===Rs.POINT){const e=r.get("range");return Ia(e)&&y(e.step)?{value:e.step-2}:{value:sl-2}}return Gf(i,a)}return{value:o[e].continuousBandSize}}const u=ol(o.view,n);return{value:vo(o[e].discreteBandSize,u-2)}}function Gf(e,t=!0){return{scale:e,band:t}}function Yf(e,t,n){if(qa(n))return"x"===e||"y2"===e?{signal:`${n.signal} ? ${t} : 0`}:{signal:`${n.signal} ? 0 : ${t}`};return{x:n?t:0,x2:n?0:t,y:n?0:t,y2:n?t:0}[e]}function Vf({channel:e,fieldDef:t,scaleName:n,markDef:i,band:r,offset:o}){return Af({fieldDef:t,channel:e,markDef:i,ref:Df({scaleName:n,fieldDef:t,band:r,offset:o})})}function Xf(e,t){const{fill:n,stroke:i}="include"===t.color?Sf(e):{};return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},function(e,t){return Ha.reduce((n,i)=>(void 0!==e[i]&&"ignore"!==t[i]&&(n[i]={value:e[i]}),n),{})}(e.markDef,t)),Jf(e,"fill",n)),Jf(e,"stroke",i)),Ef("opacity",e)),Ef("fillOpacity",e)),Ef("strokeOpacity",e)),Ef("strokeWidth",e)),Ef("strokeDash",e)),Mf(e)),$f(e,"href"))}function Jf(e,t,n){const{config:i,mark:r,markDef:o}=e;if("hide"===Xa("invalid",o,i)&&n&&!Eo(r)){const i=function(e,{invalid:t=!1,channels:n}){const i=n.reduce((t,n)=>{const i=e.getScaleComponent(n);if(i){const r=i.get("type"),o=e.vgField(n,{expr:"datum"});o&&tu(r)&&(t[o]=!0)}return t},{}),r=oo(i);if(r.length>0){const e=t?"||":"&&";return r.map(e=>Cf(e,t)).join(` ${e} `)}return}(e,{invalid:!0,channels:Ba});if(i)return{[t]:[{test:i,value:null},...h(n)]}}return n?{[t]:n}:{}}function Qf(e){const{config:t,markDef:n}=e;if(Xa("invalid",n,t)){const t=function(e,{invalid:t=!1,channels:n}){const i=n.reduce((t,n)=>{const i=e.getScaleComponent(n);if(i){const r=i.get("type"),o=e.vgField(n,{expr:"datum"});o&&tu(r)&&(t[o]=!0)}return t},{}),r=oo(i);if(r.length>0){const e=t?"||":"&&";return r.map(e=>Cf(e,t)).join(` ${e} `)}return}(e,{channels:["x","y"]});if(t)return{defined:{signal:t}}}return{}}function Zf(e,t){if(void 0!==t)return{[e]:{value:t}}}const Kf={has:e=>"interval"!==e.type&&e.nearest,parse:(e,t)=>{if(t.events)for(const n of t.events)n.markname=e.getName("voronoi")},marks:(e,t,n)=>{const{x:i,y:r}=t.project.hasChannel,o=e.mark;if(Eo(o))return as(is.nearestNotSupportForContinuous(o)),n;const a={name:e.getName("voronoi"),type:"path",interactive:!0,from:{data:e.getName("marks")},encode:{update:Object.assign({fill:{value:"transparent"},strokeWidth:{value:.35},stroke:{value:"transparent"},isVoronoi:{value:!0}},Mf(e,{reactiveGeom:!0}))},transform:[{type:"voronoi",x:{expr:i||!r?"datum.datum.x || 0":"0"},y:{expr:r||!i?"datum.datum.y || 0":"0"},size:[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]}]};let s=0,u=!1;return n.forEach((t,n)=>{var i;const r=null!==(i=t.name)&&void 0!==i?i:"";r===e.component.mark[0].name?s=n:r.indexOf("voronoi")>=0&&(u=!0)}),u||n.splice(s+1,0,a),n}};class ed{constructor(e,t){this.debugName=t,this._children=[],this._parent=null,e&&(this.parent=e)}clone(){throw new Error("Cannot clone node")}get parent(){return this._parent}set parent(e){this._parent=e,e&&e.addChild(this)}get children(){return this._children}numChildren(){return this._children.length}addChild(e,t){this._children.indexOf(e)>-1?console.warn("Attempt to add the same child twice."):void 0!==t?this._children.splice(t,0,e):this._children.push(e)}removeChild(e){const t=this._children.indexOf(e);return this._children.splice(t,1),t}remove(){let e=this._parent.removeChild(this);for(const t of this._children)t._parent=this._parent,this._parent.addChild(t,e++)}insertAsParentOf(e){const t=e.parent;t.removeChild(this),this.parent=t,e.parent=this}swapWithParent(){const e=this._parent,t=e.parent;for(const t of this._children)t.parent=e;this._children=[],e.removeChild(this),e.parent.removeChild(e),this.parent=t,e.parent=this}}class td extends ed{constructor(e,t,n,i){super(e,t),this.type=n,this.refCounts=i,this._source=this._name=t,!this.refCounts||this._name in this.refCounts||(this.refCounts[this._name]=0)}clone(){const e=new this.constructor;return e.debugName="clone_"+this.debugName,e._source=this._source,e._name="clone_"+this._name,e.type=this.type,e.refCounts=this.refCounts,e.refCounts[e._name]=0,e}dependentFields(){return new Set}producedFields(){return new Set}hash(){return void 0===this._hash&&(this._hash=`Output ${function(e){const t=++yo;return e?String(e)+t:t}()}`),this._hash}getSource(){return this.refCounts[this._name]++,this._source}isRequired(){return!!this.refCounts[this._name]}setSource(e){this._source=e}}class nd extends ed{constructor(e,t){super(e),this.formula=t}clone(){return new nd(null,Hr(this.formula))}static makeFromEncoding(e,t){const n=t.reduceFieldDef((e,n,i)=>{const{field:r,timeUnit:o}=n,a=bm(t)?t.encoding[Ca(i)]:void 0,s=bm(t)&&$u(i,n,a,t.markDef,t.config);if(o){const t=Ru(n,{forAs:!0});e[Xr({as:t,field:r,timeUnit:o})]=Object.assign({as:t,field:r,timeUnit:o},s?{band:!0}:{})}return e},{});return 0===oo(n).length?null:new nd(e,n)}static makeFromTransform(e,t){const n=Object.assign({},t),{timeUnit:i}=n,r=w(n,["timeUnit"]),o=Ds(i),a=Object.assign(Object.assign({},r),{timeUnit:o});return new nd(e,{[Xr(a)]:a})}merge(e){this.formula=Object.assign({},this.formula);for(const t in e.formula)this.formula[t]&&!e.formula[t].band||(this.formula[t]=e.formula[t]);for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}producedFields(){return new Set(ao(this.formula).map(e=>e.as))}dependentFields(){return new Set(ao(this.formula).map(e=>e.field))}hash(){return`TimeUnit ${Xr(this.formula)}`}assemble(){const e=[];for(const t of ao(this.formula)){const{field:n,as:i,timeUnit:r}=t,o=Ds(r),{unit:a,utc:s}=o,u=w(o,["unit","utc"]);e.push(Object.assign(Object.assign(Object.assign(Object.assign({field:n,type:"timeunit"},a?{units:As(a)}:{}),s?{timezone:"utc"}:{}),u),{as:[i,`${i}_end`]}))}return e}}class id{constructor(...e){this.items=e,this.hasChannel={},this.hasField={}}}const rd={has:e=>"single"===e.type&&"global"===e.resolve&&e.bind&&"scales"!==e.bind&&!Xc(e.bind),parse:(e,t,n,i)=>{i.on||delete t.events,i.clear||delete t.clear},topLevelSignals:(e,t,n)=>{const i=t.name,r=t.project,o=t.bind,a=t.init&&t.init[0],s=Kf.has(t)?"(item().isVoronoi ? datum.datum : datum)":"datum";return r.items.forEach((e,r)=>{var c,l;const f=uo(`${i}_${e.field}`);n.filter(e=>e.name===f).length||n.unshift(Object.assign(Object.assign({name:f},a?{init:vd(a[r])}:{value:null}),{on:t.events?[{events:t.events,update:`datum && item().mark.marktype !== 'group' ? ${s}[${u(e.field)}] : null`}]:[],bind:null!==(l=null!==(c=o[e.field])&&void 0!==c?c:o[e.channel])&&void 0!==l?l:o}))}),n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.filter(e=>e.name===i+kd)[0],a=i+"_tuple_fields",s=r.items.map(e=>uo(`${i}_${e.field}`)),u=s.map(e=>`${e} !== null`).join(" && ");return s.length&&(o.update=`${u} ? {fields: ${a}, values: [${s.join(", ")}]} : null`),delete o.value,delete o.on,n}},od={has:e=>"multi"===e.type&&!!e.toggle,signals:(e,t,n)=>n.concat({name:t.name+"_toggle",value:!1,on:[{events:t.events,update:t.toggle}]}),modifyExpr:(e,t)=>{const n=t.name+kd,i=t.name+"_toggle";return`${i} ? null : ${n}, `+("global"===t.resolve?`${i} ? null : true, `:`${i} ? null : {unit: ${Md(e)}}, `)+`${i} ? ${n} : null`}},ad={has:e=>void 0!==e.clear&&!1!==e.clear,parse:(e,t,n)=>{n.clear&&(t.clear=s(n.clear)?ff(n.clear,"scope"):n.clear)},topLevelSignals:(e,t,n)=>(rd.has(t)&&t.project.items.forEach(e=>{const i=n.findIndex(n=>n.name===uo(`${t.name}_${e.field}`));-1!==i&&n[i].on.push({events:t.clear,update:"null"})}),n),signals:(e,t,n)=>{function i(e,i){-1!==e&&n[e].on&&n[e].on.push({events:t.clear,update:i})}if("interval"===t.type)t.project.items.forEach(e=>{const t=n.findIndex(t=>t.name===e.signals.visual);if(i(t,"[0, 0]"),-1===t){i(n.findIndex(t=>t.name===e.signals.data),"null")}});else{let e=n.findIndex(e=>e.name===t.name+kd);i(e,"null"),od.has(t)&&(e=n.findIndex(e=>e.name===t.name+"_toggle"),i(e,"false"))}return n}},sd={has:e=>"interval"===e.type&&"global"===e.resolve&&e.bind&&"scales"===e.bind,parse:(e,t)=>{const n=t.scales=[];for(const i of t.project.items){const r=i.channel;if(!_a(r))continue;const o=e.getScaleComponent(r),a=o?o.get("type"):void 0;if(!o||!tu(a)){as(is.SCALE_BINDINGS_CONTINUOUS);continue}const s={selection:t.name,field:i.field};if(o.set("selectionExtent",s,!0),n.push(i),e.repeater&&e.repeater.row===e.repeater.column){e.getScaleComponent(r===Jo?Qo:Jo).set("selectionExtent",s,!0)}}},topLevelSignals:(e,t,n)=>{const i=t.scales.filter(e=>0===n.filter(t=>t.name===e.signals.data).length);if(!e.parent||cd(e)||0===i.length)return n;const r=n.filter(e=>e.name===t.name)[0];let o=r.update;if(o.indexOf(Sd)>=0)r.update=`{${i.map(e=>`${u(e.field)}: ${e.signals.data}`).join(", ")}}`;else{for(const e of i){const t=`${u(e.field)}: ${e.signals.data}`;o.indexOf(t)<0&&(o=`${o.substring(0,o.length-1)}, ${t}}`)}r.update=o}return n.concat(i.map(e=>({name:e.signals.data})))},signals:(e,t,n)=>{if(e.parent&&!cd(e))for(const e of t.scales){const t=n.filter(t=>t.name===e.signals.data)[0];t.push="outer",delete t.value,delete t.update}return n}};function ud(e,t){return`domain(${u(e.scaleName(t))})`}function cd(e){var t;return e.parent&&wm(e.parent)&&(null!==(t=!e.parent.parent)&&void 0!==t?t:cd(e.parent.parent))}const ld={has:e=>{const t="global"===e.resolve&&e.bind&&Xc(e.bind),n=1===e.project.items.length&&"_vgsid_"!==e.project.items[0].field;return t&&!n&&as(is.LEGEND_BINDINGS_PROJECT_LENGTH),t&&n},parse:(e,t,n,i)=>{var r;if(i.on||delete t.events,i.clear||delete t.clear,i.on||i.clear){const e='event.item && indexof(event.item.mark.role, "legend") < 0';for(const n of t.events)n.filter=h(null!==(r=n.filter)&&void 0!==r?r:[]),n.filter.indexOf(e)<0&&n.filter.push(e)}const o=Jc(t.bind)?t.bind.legend:"click",a=s(o)?ff(o,"view"):h(o);t.bind={legend:{merge:a}}},topLevelSignals:(e,t,n)=>{const i=t.name,r=Jc(t.bind)&&t.bind.legend,o=e=>t=>{const n=Hr(t);return n.markname=e,n};for(const e of t.project.items){if(!e.hasLegend)continue;const a=`${uo(e.field)}_legend`,s=`${i}_${a}`;if(0===n.filter(e=>e.name===s).length){const e=r.merge.map(o(`${a}_symbols`)).concat(r.merge.map(o(`${a}_labels`))).concat(r.merge.map(o(`${a}_entries`)));n.unshift(Object.assign(Object.assign({name:s},t.init?{}:{value:null}),{on:[{events:e,update:"datum.value || item().items[0].items[0].datum.value",force:!0},{events:r.merge,update:`!event.item || !datum ? null : ${s}`,force:!0}]}))}}return n},signals:(e,t,n)=>{const i=t.name,r=t.project,o=n.find(e=>e.name===i+kd),a=i+"_tuple_fields",s=r.items.filter(e=>e.hasLegend).map(e=>uo(`${i}_${uo(e.field)}_legend`)),u=`${s.map(e=>`${e} !== null`).join(" && ")} ? {fields: ${a}, values: [${s.join(", ")}]} : null`;t.events&&s.length>0?o.on.push({events:s.map(e=>({signal:e})),update:u}):s.length>0&&(o.update=u,delete o.value,delete o.on);const c=n.find(e=>e.name===i+"_toggle"),l=Jc(t.bind)&&t.bind.legend;return c&&(t.events?c.on.push(Object.assign(Object.assign({},c.on[0]),{events:l})):c.on[0].events=l),n}};const fd="_translate_delta",dd={has:e=>"interval"===e.type&&e.translate,signals:(e,t,n)=>{const i=t.name,r=sd.has(t),o=i+"_translate_anchor",{x:a,y:s}=t.project.hasChannel;let u=ff(t.translate,"scope");return r||(u=u.map(e=>(e.between[0].markname=i+wd,e))),n.push({name:o,value:{},on:[{events:u.map(e=>e.between[0]),update:"{x: x(unit), y: y(unit)"+(void 0!==a?", extent_x: "+(r?ud(e,Jo):`slice(${a.signals.visual})`):"")+(void 0!==s?", extent_y: "+(r?ud(e,Qo):`slice(${s.signals.visual})`):"")+"}"}]},{name:i+fd,value:{},on:[{events:u,update:`{x: ${o}.x - x(unit), y: ${o}.y - y(unit)}`}]}),void 0!==a&&gd(e,t,a,"width",n),void 0!==s&&gd(e,t,s,"height",n),n}};function gd(e,t,n,i,r){var o;const a=t.name,s=a+"_translate_anchor",u=a+fd,c=n.channel,l=sd.has(t),f=r.filter(e=>e.name===n.signals[l?"data":"visual"])[0],d=e.getSizeSignalRef(i).signal,g=e.getScaleComponent(c),p=g.get("type"),h=`${s}.extent_${c}`,m=`${l?"log"===p?"panLog":"pow"===p?"panPow":"panLinear":"panLinear"}(${h}, ${`${l&&c===Jo?"-":""}${u}.${c} / `+(l?`${d}`:`span(${h})`)}`+(l&&"pow"===p?`, ${null!==(o=g.get("exponent"))&&void 0!==o?o:1}`:"")+")";f.on.push({events:{signal:u},update:l?m:`clampRange(${m}, 0, ${d})`})}const pd={has:e=>"interval"===e.type&&e.zoom,signals:(e,t,n)=>{const i=t.name,r=sd.has(t),o=i+"_zoom_delta",{x:a,y:s}=t.project.hasChannel,c=u(e.scaleName(Jo)),l=u(e.scaleName(Qo));let f=ff(t.zoom,"scope");return r||(f=f.map(e=>(e.markname=i+wd,e))),n.push({name:i+"_zoom_anchor",on:[{events:f,update:r?"{"+[c?`x: invert(${c}, x(unit))`:"",l?`y: invert(${l}, y(unit))`:""].filter(e=>!!e).join(", ")+"}":"{x: x(unit), y: y(unit)}"}]},{name:o,on:[{events:f,force:!0,update:"pow(1.001, event.deltaY * pow(16, event.deltaMode))"}]}),void 0!==a&&hd(e,t,a,"width",n),void 0!==s&&hd(e,t,s,"height",n),n}};function hd(e,t,n,i,r){var o;const a=t.name,s=n.channel,u=sd.has(t),c=r.filter(e=>e.name===n.signals[u?"data":"visual"])[0],l=e.getSizeSignalRef(i).signal,f=e.getScaleComponent(s),d=f.get("type"),g=u?ud(e,s):c.name,p=a+"_zoom_delta",h=`${u?"log"===d?"zoomLog":"pow"===d?"zoomPow":"zoomLinear":"zoomLinear"}(${g}, ${`${a}_zoom_anchor.${s}`}, ${p}`+(u&&"pow"===d?`, ${null!==(o=f.get("exponent"))&&void 0!==o?o:1}`:"")+")";c.on.push({events:{signal:p},update:u?h:`clampRange(${h}, 0, ${l})`})}const md=[{has:()=>!0,parse:(e,t,n)=>{var i,r,o;const a=t.name,s=null!==(i=t.project)&&void 0!==i?i:t.project=new id,u={},c={},l=new Set,f=(e,t)=>{const n="visual"===t?e.channel:e.field;let i=uo(`${a}_${n}`);for(let e=1;l.has(i);e++)i=uo(`${a}_${n}_${e}`);return l.add(i),{[t]:i}};if(!n.fields&&!n.encodings){const t=e.config.selection[n.type];if(n.init)for(const e of h(n.init))for(const i of oo(e))ya[i]?(n.encodings||(n.encodings=[])).push(i):"interval"===n.type?(as('Interval selections should be initialized using "x" and/or "y" keys.'),n.encodings=t.encodings):(n.fields||(n.fields=[])).push(i);else n.encodings=t.encodings,n.fields=t.fields}for(const e of null!==(r=n.fields)&&void 0!==r?r:[]){const t={type:"E",field:e};t.signals=Object.assign({},f(t,"data")),s.items.push(t),s.hasField[e]=t}for(const i of null!==(o=n.encodings)&&void 0!==o?o:[]){const n=e.fieldDef(i);if(n){let r=n.field;if(n.aggregate){as(is.cannotProjectAggregate(i,n.aggregate));continue}if(!r){as(is.cannotProjectOnChannelWithoutField(i));continue}if(n.timeUnit){r=e.vgField(i);const t={timeUnit:n.timeUnit,as:r,field:n.field};c[Xr(t)]=t}if(!u[r]){let o="E";if("interval"===t.type){tu(e.getScaleComponent(i).get("type"))&&(o="R")}else n.bin&&(o="R-RE");const a={field:r,channel:i,type:o};a.signals=Object.assign(Object.assign({},f(a,"data")),f(a,"visual")),s.items.push(u[r]=a),s.hasField[r]=s.hasChannel[i]=u[r]}}else as(is.cannotProjectOnChannelWithoutField(i))}if(n.init){const e=e=>s.items.map(t=>void 0!==e[t.channel]?e[t.channel]:e[t.field]);if("interval"===n.type)t.init=e(n.init);else{const i=h(n.init);t.init=i.map(e)}}oo(c).length>0&&(s.timeUnit=new nd(null,c))},signals:(e,t,n)=>{const i=t.name+"_tuple_fields";return n.filter(e=>e.name===i).length>0?n:n.concat({name:i,value:t.project.items.map(e=>{const t=w(e,["signals","hasLegend"]),n=Hr(t);return n.field=ho(n.field),n})})}},od,sd,ld,dd,pd,rd,Kf,ad];function bd(e,t){for(const n of md)n.has(e)&&t(n)}function vd(e,t=!0,n=l){if(o(e)){const i=e.map(e=>vd(e,t,n));return t?`[${i.join(", ")}]`:i}return ss(e)?n(t?gs(e):function(e){const t=ds(e,!0);return e.utc?+new Date(Date.UTC(...t)):+new Date(...t)}(e)):t?n(JSON.stringify(e)):e}function yd(e,t){return Nd(e,(n,i)=>{t=i.marks?i.marks(e,n,t):t,bd(n,i=>{i.marks&&(t=i.marks(e,n,t))})}),t}function xd(e){return e.map(e=>(e.on&&!e.on.length&&delete e.on,e))}const wd="_brush",Ad={signals:(e,t)=>{const n=t.name,i=n+"_tuple_fields",r=sd.has(t),o=[],a=[],s=[];if(t.translate&&!r){const e=`!event.item || event.item.mark.name !== ${u(n+wd)}`;Od(t,(t,n)=>{var i;const r=h(null!==(i=n.between[0].filter)&&void 0!==i?i:n.between[0].filter=[]);return r.indexOf(e)<0&&r.push(e),t})}t.project.items.forEach((n,i)=>{const r=n.channel;if(r!==Jo&&r!==Qo)return void as("Interval selections only support x and y encoding channels.");const c=t.init?t.init[i]:null,l=function(e,t,n,i){const r=n.channel,o=n.signals.visual,a=n.signals.data,s=sd.has(t),c=u(e.scaleName(r)),l=e.getScaleComponent(r),f=l?l.get("type"):void 0,d=e=>`scale(${c}, ${e})`,g=e.getSizeSignalRef(r===Jo?"width":"height").signal,p=`${r}(unit)`,h=Od(t,(e,t)=>[...e,{events:t.between[0],update:`[${p}, ${p}]`},{events:t,update:`[${o}[0], clamp(${p}, 0, ${g})]`}]);return h.push({events:{signal:t.name+"_scale_trigger"},update:tu(f)?`[${d(`${a}[0]`)}, ${d(`${a}[1]`)}]`:"[0, 0]"}),s?[{name:a,on:[]}]:[Object.assign(Object.assign({name:o},i?{init:vd(i,!0,d)}:{value:[]}),{on:h}),Object.assign(Object.assign({name:a},i?{init:vd(i)}:{}),{on:[{events:{signal:o},update:`${o}[0] === ${o}[1] ? null : invert(${c}, ${o})`}]})]}(e,t,n,c),f=n.signals.data,d=n.signals.visual,g=u(e.scaleName(r)),p=tu(e.getScaleComponent(r).get("type"))?"+":"";o.push(...l),a.push(f),s.push({scaleName:e.scaleName(r),expr:`(!isArray(${f}) || `+`(${p}invert(${g}, ${d})[0] === ${p}${f}[0] && `+`${p}invert(${g}, ${d})[1] === ${p}${f}[1]))`})}),r||o.push({name:n+"_scale_trigger",value:{},on:[{events:s.map(e=>({scale:e.scaleName})),update:s.map(e=>e.expr).join(" && ")+` ? ${n+"_scale_trigger"} : {}`}]});const c=t.init,l=`unit: ${Md(e)}, fields: ${i}, values`;return o.concat(Object.assign(Object.assign({name:n+kd},c?{init:`{${l}: ${vd(c)}}`}:{}),{on:[{events:[{signal:a.join(" || ")}],update:a.join(" && ")+` ? {${l}: [${a}]} : null`}]}))},modifyExpr:(e,t)=>t.name+kd+", "+("global"===t.resolve?"true":`{unit: ${Md(e)}}`),marks:(e,t,n)=>{const i=t.name,{x:r,y:o}=t.project.hasChannel,a=r&&r.signals.visual,s=o&&o.signals.visual,c=`data(${u(t.name+jd)})`;if(sd.has(t))return n;const l={x:void 0!==r?{signal:`${a}[0]`}:{value:0},y:void 0!==o?{signal:`${s}[0]`}:{value:0},x2:void 0!==r?{signal:`${a}[1]`}:{field:{group:"width"}},y2:void 0!==o?{signal:`${s}[1]`}:{field:{group:"height"}}};if("global"===t.resolve)for(const t of oo(l))l[t]=[Object.assign({test:`${c}.length && ${c}[0].unit === ${Md(e)}`},l[t]),{value:0}];const f=t.mark,{fill:d,fillOpacity:g,cursor:p}=f,h=w(f,["fill","fillOpacity","cursor"]),m=oo(h).reduce((e,t)=>(e[t]=[{test:[void 0!==r&&`${a}[0] !== ${a}[1]`,void 0!==o&&`${s}[0] !== ${s}[1]`].filter(e=>e).join(" && "),value:h[t]},{value:null}],e),{});return[{name:i+wd+"_bg",type:"rect",clip:!0,encode:{enter:{fill:{value:d},fillOpacity:{value:g}},update:l}},...n,{name:i+wd,type:"rect",clip:!0,encode:{enter:Object.assign(Object.assign({},p?{cursor:{value:p}}:{}),{fill:{value:"transparent"}}),update:Object.assign(Object.assign({},l),m)}}]}};function Od(e,t){return e.events.reduce((e,n)=>n.between?t(e,n):(as(`${n} is not an ordered event stream for interval selections.`),e),[])}function Cd(e,t){const n=t.name,i=n+"_tuple_fields",r=t.project,o="(item().isVoronoi ? datum.datum : datum)",a=r.items.map(t=>{const n=e.fieldDef(t.channel);return n&&n.bin?`[${o}[${u(e.vgField(t.channel,{}))}], `+`${o}[${u(e.vgField(t.channel,{binSuffix:"end"}))}]]`:`${o}[${u(t.field)}]`}).join(", "),s=`unit: ${Md(e)}, fields: ${i}, values`,c=t.events;return[{name:n+kd,on:c?[{events:c,update:`datum && item().mark.marktype !== 'group' ? {${s}: [${a}]} : null`,force:!0}]:[]}]}const Fd={signals:Cd,modifyExpr:(e,t)=>t.name+kd+", "+("global"===t.resolve?"null":`{unit: ${Md(e)}}`)},Dd={signals:Cd,modifyExpr:(e,t)=>t.name+kd+", "+("global"===t.resolve?"true":`{unit: ${Md(e)}}`)},jd="_store",kd="_tuple",Ed="_modify",Sd="vlSelectionResolve",$d={single:Dd,multi:Fd,interval:Ad};function Nd(e,t){const n=e.component.selection;if(n)for(const e of ao(n)){if(!0===t(e,$d[e.type]))break}}function Md(e,{escape:t}={escape:!0}){let n=t?u(e.name):e.name;const i=function(e){let t=e.parent;for(;t&&!vm(t);)t=t.parent;return t}(e);if(i){const{facet:e}=i;for(const t of ha)e[t]&&(n+=` + '__facet_${t}_' + (facet[${u(i.vgField(t))}])`)}return n}function Bd(e){let t=!1;return Nd(e,e=>{t=t||e.project.items.some(e=>"_vgsid_"===e.field)}),t}var _d,Td,zd,Ud,Pd;function Ld(e){this.type=e}Ld.prototype.visit=function(e){var t,n,i;if(e(this))return 1;for(n=0,i=(t=function(e){switch(e.type){case"ArrayExpression":return e.elements;case"BinaryExpression":case"LogicalExpression":return[e.left,e.right];case"CallExpression":var t=e.arguments.slice();return t.unshift(e.callee),t;case"ConditionalExpression":return[e.test,e.consequent,e.alternate];case"MemberExpression":return[e.object,e.property];case"ObjectExpression":return e.properties;case"Property":return[e.key,e.value];case"UnaryExpression":return[e.argument];case"Identifier":case"Literal":case"RawCode":default:return[]}}(this)).length;n",_d[3]="Identifier",_d[4]="Keyword",_d[5]="Null",_d[6]="Numeric",_d[7]="Punctuator",_d[8]="String",_d[9]="RegularExpression";var Rd=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),qd=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function Id(e,t){if(!e)throw new Error("ASSERT: "+t)}function Wd(e){return e>=48&&e<=57}function Hd(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function Gd(e){return"01234567".indexOf(e)>=0}function Yd(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function Vd(e){return 10===e||13===e||8232===e||8233===e}function Xd(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&Rd.test(String.fromCharCode(e))}function Jd(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&qd.test(String.fromCharCode(e))}var Qd={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function Zd(){for(var e;zd1114111||"}"!==e)&&hg({},"Unexpected token %0","ILLEGAL"),t<=65535?String.fromCharCode(t):(n=55296+(t-65536>>10),i=56320+(t-65536&1023),String.fromCharCode(n,i))}function tg(){var e,t;for(e=Td.charCodeAt(zd++),t=String.fromCharCode(e),92===e&&(117!==Td.charCodeAt(zd)&&hg({},"Unexpected token %0","ILLEGAL"),++zd,(e=Kd("u"))&&"\\"!==e&&Xd(e.charCodeAt(0))||hg({},"Unexpected token %0","ILLEGAL"),t=e);zd>>="===(i=Td.substr(zd,4))?{type:7,value:i,start:r,end:zd+=4}:">>>"===(n=i.substr(0,3))||"<<="===n||">>="===n?{type:7,value:n,start:r,end:zd+=3}:a===(t=n.substr(0,2))[1]&&"+-<>&|".indexOf(a)>=0||"=>"===t?{type:7,value:t,start:r,end:zd+=2}:"<>=!+-*%&|^/".indexOf(a)>=0?{type:7,value:a,start:r,end:++zd}:void hg({},"Unexpected token %0","ILLEGAL")}function rg(){var e,t,n;if(Id(Wd((n=Td[zd]).charCodeAt(0))||"."===n,"Numeric literal must start with a decimal digit or a decimal point"),t=zd,e="","."!==n){if(e=Td[zd++],n=Td[zd],"0"===e){if("x"===n||"X"===n)return++zd,function(e){for(var t="";zd=0&&hg({},"Invalid regular expression",n),{value:n,literal:t}}(),i=function(e,t){var n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,(function(e,t){if(parseInt(t,16)<=1114111)return"x";hg({},"Invalid regular expression")})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(n)}catch(e){hg({},"Invalid regular expression")}try{return new RegExp(e,t)}catch(e){return null}}(t.value,n.value),{literal:t.literal+n.literal,value:i,regex:{pattern:t.value,flags:n.value},start:e,end:zd}}function ag(){var e;return Zd(),zd>=Ud?{type:2,start:zd,end:zd}:Xd(e=Td.charCodeAt(zd))?ng():40===e||41===e||59===e?ig():39===e||34===e?function(){var e,t,n,i,r="",o=!1;for(Id("'"===(e=Td[zd])||'"'===e,"String literal must starts with a quote"),t=zd,++zd;zd=0&&zd":case"<=":case">=":case"instanceof":case"in":t=7;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function Ng(){var e,t;return e=function(){var e,t,n,i,r,o,a,s,u,c;if(e=Pd,u=Sg(),0===(r=$g(i=Pd)))return u;for(i.prec=r,sg(),t=[e,Pd],o=[u,i,a=Sg()];(r=$g(Pd))>0;){for(;o.length>2&&r<=o[o.length-2].prec;)a=o.pop(),s=o.pop().value,u=o.pop(),t.pop(),n=cg(s,u,a),o.push(n);(i=sg()).prec=r,o.push(i),t.push(Pd),n=Sg(),o.push(n)}for(n=o[c=o.length-1],t.pop();c>1;)t.pop(),n=cg(o[c-1].value,o[c-2],n),c-=2;return n}(),vg("?")&&(sg(),t=Ng(),bg(":"),e=function(e,t,n){var i=new Ld("ConditionalExpression");return i.test=e,i.consequent=t,i.alternate=n,i}(e,t,Ng())),e}function Mg(){var e=Ng();if(vg(","))throw new Error("Disabled.");return e}function Bg(e,t,n){return e.fields=t||[],e.fname=n,e}function _g(e){throw Error(e)}var Tg=Array.isArray;function zg(e){return Tg(e)?"["+e.map(zg)+"]":(t=e)===Object(t)||function(e){return"string"==typeof e}(e)?JSON.stringify(e).replace("\u2028","\\u2028").replace("\u2029","\\u2029"):e;var t}var Ug=[];(function(e,t){var n=function(e){var t,n,i,r=[],o=null,a=0,s=e.length,u="";function c(){r.push(u+e.substring(t,n)),u="",t=n+1}for(e+="",t=n=0;nt&&c(),a=t=n+1):"]"===i&&(a||_g("Access path missing open bracket: "+e),a>0&&c(),a=0,t=n+1):n>t?c():t=n+1}return a&&_g("Access path missing closing bracket: "+e),o&&_g("Access path missing closing quote: "+e),n>t&&(n++,c()),r}(e),i="return _["+n.map(zg).join("][")+"];";Bg(Function("_",i),[e=1===n.length?n[0]:e],t||e)})("id"),Bg((function(e){return e}),Ug,"identity"),Bg((function(){return 0}),Ug,"zero"),Bg((function(){return 1}),Ug,"one"),Bg((function(){return!0}),Ug,"true"),Bg((function(){return!1}),Ug,"false");function Pg(e){const t=function(e){zd=0,Ud=(Td=e).length,Pd=null,ug();var t=Mg();if(2!==Pd.type)throw new Error("Unexpect token after expression.");return t}(e),n=new Set;return t.visit(e=>{"MemberExpression"===e.type&&function e(t){return"MemberExpression"===t.object.type?e(t.object):"datum"===t.object.name}(e)&&n.add(function e(t){const n=[];return"Identifier"===t.type?[t.name]:"Literal"===t.type?[t.value]:("MemberExpression"===t.type&&(n.push(...e(t.object)),n.push(...e(t.property))),n)}(e).slice(1).join("."))}),n}class Lg extends ed{constructor(e,t,n){super(e),this.model=t,this.filter=n,this.expr=Ig(this.model,this.filter,this),this._dependentFields=Pg(this.expr)}clone(){return new Lg(null,this.model,Hr(this.filter))}dependentFields(){return this._dependentFields}producedFields(){return new Set}assemble(){return{type:"filter",expr:this.expr}}hash(){return`Filter ${this.expr}`}}function Rg(e,t,n,i="datum"){const r=[];const o=co(t,(function(t){const o=uo(t),a=e.getSelectionComponent(o,t),s=u(o+jd);if(a.project.timeUnit){const t=null!=n?n:e.component.data.raw,i=a.project.timeUnit.clone();t.parent?i.insertAsParentOf(t):t.parent=i}return"none"!==a.empty&&r.push(s),`vlSelectionTest(${s}, ${i}`+("global"===a.resolve?")":`, ${u(a.resolve)})`)}));return(r.length?"!("+r.map(e=>`length(data(${e}))`).join(" || ")+") || ":"")+`(${o})`}function qg(e,t){const n=t.encoding;let i=t.field;if(n||i){if(n&&!i){const r=e.project.items.filter(e=>e.channel===n);!r.length||r.length>1?(i=e.project.items[0].field,as((r.length?"Multiple ":"No ")+`matching ${u(n)} encoding found for selection ${u(t.selection)}. `+`Using "field": ${u(i)}.`)):i=r[0].field}}else i=e.project.items[0].field,e.project.items.length>1&&as('A "field" or "encoding" must be specified when using a selection as a scale domain. '+`Using "field": ${u(i)}.`);return`${e.name}[${u(i)}]`}function Ig(e,t,n){return co(t,t=>s(t)?t:function(e){return null==e?void 0:e.selection}(t)?Rg(e,t.selection,n):zs(t))}function Wg(e,t,n,i){var r,o,a;e.encode=null!==(r=e.encode)&&void 0!==r?r:{},e.encode[t]=null!==(o=e.encode[t])&&void 0!==o?o:{},e.encode[t].update=null!==(a=e.encode[t].update)&&void 0!==a?a:{},e.encode[t].update[n]=i}function Hg(e){return qa(e)?e.signal:u(e.value)}function Gg(e,t,n,i={header:!1}){var r,o;const a=e.combine(),{orient:s,scale:u,labelExpr:c,title:l,zindex:f}=a,d=w(a,["orient","scale","labelExpr","title","zindex"]);for(const e in d){const n=Fo[e],i=d[e];if(n&&n!==t&&"both"!==n)delete d[e];else if(Oo(i)){const{condition:t}=i,n=w(i,["condition"]),r=h(t),o=Ao[e];if(o){const{vgProp:t,part:i}=o;Wg(d,i,t,[...r.map(e=>{const{test:t}=e,n=w(e,["test"]);return Object.assign({test:Ig(null,t)},n)}),n]),delete d[e]}else if(null===o){const t={signal:r.map(e=>{const{test:t}=e,n=w(e,["test"]);return`${Ig(null,t)} ? ${Hg(n)} : `}).join("")+Hg(n)};d[e]=t}}else if(qa(i)){const t=Ao[e];if(t){const{vgProp:n,part:r}=t;Wg(d,r,n,i),delete d[e]}}}if("grid"===t){if(!d.grid)return;if(d.encode){const{grid:e}=d.encode;d.encode=Object.assign({},e?{grid:e}:{}),0===oo(d.encode).length&&delete d.encode}return Object.assign(Object.assign({scale:u,orient:s},d),{domain:!1,labels:!1,maxExtent:0,minExtent:0,ticks:!1,zindex:vo(f,0)})}{if(!i.header&&e.mainExtracted)return;if(void 0!==c){let e=c;(null===(o=null===(r=d.encode)||void 0===r?void 0:r.labels)||void 0===o?void 0:o.update)&&qa(d.encode.labels.update.text)&&(e=mo(c,"datum.label",d.encode.labels.update.text.signal)),Wg(d,"labels","text",{signal:e})}if(d.encode){for(const t of Co)e.hasAxisPart(t)||delete d.encode[t];0===oo(d.encode).length&&delete d.encode}const t=function(e,t){if(e)return Ra(e)?e:e.map(e=>Xu(e,t)).join(", ")}(l,n);return Object.assign(Object.assign(Object.assign({scale:u,orient:s,grid:!1},t?{title:t}:{}),d),{zindex:vo(f,0)})}}function Yg(e){const{axes:t}=e.component;for(const n of ka)if(t[n])for(const i of t[n])if(!i.get("gridScale")){const t="x"===n?"height":"width";return[{name:t,update:e.getSizeSignalRef(t).signal}]}return[]}const Vg={titleAlign:"align",titleAnchor:"anchor",titleAngle:"angle",titleBaseline:"baseline",titleColor:"color",titleFont:"font",titleFontSize:"fontSize",titleFontStyle:"fontStyle",titleFontWeight:"fontWeight",titleLimit:"limit",titleLineHeight:"lineHeight",titleOrient:"orient",titlePadding:"offset"},Xg={labelAlign:"align",labelAnchor:"anchor",labelAngle:"angle",labelColor:"color",labelFont:"font",labelFontSize:"fontSize",labelFontStyle:"fontStyle",labelLimit:"limit",labelOrient:"orient",labelPadding:"offset"},Jg=oo(Vg),Qg=oo(Xg);function Zg(e,t,n,i,r,o){var a,s,u;let c=Za(e,o,t.style);if(void 0!==c)return{configFrom:"style",configValue:c};const l=[..."band"===r?["axisBand","axisDiscrete"]:[],..."point"===r?["axisPoint","axisDiscrete"]:[],...Js(r)?["axisQuantitative"]:[],..."time"===r||"utc"===r?["axisTemporal"]:[]],f="x"===n?"axisX":"axisY",d=[...l.map(e=>f+e.substr(4)),...l,f,...i?["axis"+fo(i)]:[],"axis"];for(const n of d)if(void 0!==(null===(a=t[n])||void 0===a?void 0:a[e]))return{configFrom:n,configValue:t[n][e]};for(const n of d)if((null===(s=t[n])||void 0===s?void 0:s.style)&&(c=Za(e,null===(u=t[n])||void 0===u?void 0:u.style,t.style),void 0!==c))return{configFrom:"axis-config-style",configValue:c};return{}}function Kg(e,t){if(void 0!==e)return e=xo(e),"top"===t||"bottom"===t?e<=45||315<=e?"top"===t?"bottom":"top":135<=e&&e<=225?"top"===t?"top":"bottom":"middle":e<=45||315<=e||135<=e&&e<=225?"middle":45<=e&&e<=135?"left"===t?"top":"bottom":"left"===t?"bottom":"top"}function ep(e,t){if(void 0!==e)return e=xo(e),"top"===t||"bottom"===t?e%180==0?"center":0{if(Uu(t)&&Fu(t.sort)){const{field:i,timeUnit:r}=t,o=t.sort,a=o.map((e,t)=>`${zs({field:i,timeUnit:r,equal:e})} ? ${t} : `).join("")+o.length;e=new np(e,{calculate:a,as:ip(t,n,{forAs:!0})})}}),e}producedFields(){return new Set([this.transform.as])}dependentFields(){return this._dependentFields}assemble(){return{type:"formula",expr:this.transform.calculate,as:this.transform.as}}hash(){return`Calculate ${Xr(this.transform)}`}}function ip(e,t,n){return Ru(e,Object.assign({prefix:t,suffix:"sort_index"},null!=n?n:{}))}function rp(e,t){return Qr(["top","bottom"],t)?"column":Qr(["left","right"],t)||"row"===e?"row":"column"}function op(e,t,n,i){const r="row"===i?n.headerRow:"column"===i?n.headerColumn:n.headerFacet;return vo(t&&t.header?t.header[e]:void 0,r[e],n.header[e])}function ap(e,t,n,i){const r={};for(const o of e){const e=op(o,t,n,i);void 0!==e&&(r[o]=e)}return r}const sp=["row","column"],up=["header","footer"];function cp(e,t){const n=e.component.layoutHeaders[t].title,i=e.config?e.config:void 0,r=e.component.layoutHeaders[t].facetFieldDef?e.component.layoutHeaders[t].facetFieldDef:void 0,{titleAnchor:o,titleAngle:a,titleOrient:s}=ap(["titleAnchor","titleAngle","titleOrient"],r,i,t),u=rp(t,s);return{name:`${t}-title`,type:"group",role:`${u}-title`,title:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:n},"row"===t?{orient:"left"}:{}),{style:"guide-title"}),fp(a,u)),lp(u,a,o)),vp(i,r,t,Jg,Vg))}}function lp(e,t,n="middle"){switch(n){case"start":return{align:"left"};case"end":return{align:"right"}}const i=ep(t,"row"===e?"left":"top");return i?{align:i}:{}}function fp(e,t){const n=Kg(e,"row"===t?"left":"top");return n?{baseline:n}:{}}function dp(e,t){const n=e.component.layoutHeaders[t],i=[];for(const r of up)if(n[r])for(const o of n[r]){const a=hp(e,t,r,n,o);null!=a&&i.push(a)}return i}function gp(e,t){var n;const{sort:i}=e;return Cu(i)?{field:Ru(i,{expr:"datum"}),order:null!==(n=i.order)&&void 0!==n?n:"ascending"}:o(i)?{field:ip(e,t,{expr:"datum"}),order:"ascending"}:{field:Ru(e,{expr:"datum"}),order:null!=i?i:"ascending"}}function pp(e,t,n){const{format:i,formatType:r,labelAngle:o,labelAnchor:a,labelOrient:s,labelExpr:u}=ap(["format","formatType","labelAngle","labelAnchor","labelOrient","labelExpr"],e,n,t),c=hu({fieldDef:e,format:i,formatType:r,expr:"parent",config:n}).signal,l=rp(t,s);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({text:{signal:u?mo(mo(u,"datum.label",c),"datum.value",Ru(e,{expr:"parent"})):c}},"row"===t?{orient:"left"}:{}),{style:"guide-label",frame:"group"}),fp(o,l)),lp(l,o,a)),vp(n,e,t,Qg,Xg))}function hp(e,t,n,i,r){if(r){let o=null;const{facetFieldDef:a}=i,s=e.config?e.config:void 0;if(a&&r.labels){const{labelOrient:e}=ap(["labelOrient"],a,s,t);("row"===t&&!Qr(["top","bottom"],e)||"column"===t&&!Qr(["left","right"],e))&&(o=pp(a,t,s))}const u=vm(e)&&!Du(e.facet),c=r.axes,l=(null==c?void 0:c.length)>0;if(o||l){const s="row"===t?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName(`${t}_${n}`),type:"group",role:`${t}-${n}`},i.facetFieldDef?{from:{data:e.getName(t+"_domain")},sort:gp(a,t)}:{}),l&&u?{from:{data:e.getName(`facet_domain_${t}`)}}:{}),o?{title:o}:{}),r.sizeSignal?{encode:{update:{[s]:r.sizeSignal}}}:{}),l?{axes:c}:{})}}return null}const mp={column:{start:0,end:1},row:{start:1,end:0}};function bp(e,t){return mp[t][e]}function vp(e,t,n,i,r){const o={};for(const a of i){if(!r[a])continue;const i=op(a,t,e,n);void 0!==i&&(o[r[a]]=i)}return o}function yp(e){return[...xp(e,"width"),...xp(e,"height"),...xp(e,"childWidth"),...xp(e,"childHeight")]}function xp(e,t){const n="width"===t?"x":"y",i=e.component.layoutSize.get(t);if(!i||"merged"===i)return[];const r=e.getSizeSignalRef(t).signal;if("step"===i){const t=e.getScaleComponent(n);if(t){const i=t.get("type"),o=t.get("range");if(eu(i)&&Ia(o)){const i=e.scaleName(n);if(vm(e.parent)){if("independent"===e.parent.component.resolve.scale[n])return[wp(i,o)]}return[wp(i,o),{name:r,update:Ap(i,t,`domain('${i}').length`)}]}}throw new Error("layout size is step although width/height is not step.")}if("container"==i){const t=r.endsWith("width"),n=t?"containerSize()[0]":"containerSize()[1]",i=`isFinite(${n}) ? ${n} : ${rl(e.config.view,t?"width":"height")}`;return[{name:r,init:i,on:[{update:i,events:"window:resize"}]}]}return[{name:r,value:i}]}function wp(e,t){return{name:e+"_step",value:t.step}}function Ap(e,t,n){const i=t.get("type"),r=t.get("padding"),o=vo(t.get("paddingOuter"),r);let a=t.get("paddingInner");return a="band"===i?void 0!==a?a:r:1,`bandspace(${n}, ${a}, ${o}) * ${e}_step`}function Op(e){return"childWidth"===e?"width":"childHeight"===e?"height":e}function Cp(e,t){return oo(e).reduce((n,i)=>{const r=e[i];return Object.assign(Object.assign({},n),xf(t,r,i,e=>qa(e)?e:{value:e.value}))},{})}function Fp(e,t){if(wm(t)||vm(t))return"shared";if(xm(t)||ym(t))return Qr(ka,e)?"independent":"shared";throw new Error("invalid model type for resolve")}function Dp(e,t){const n=e.scale[t],i=Qr(ka,t)?"axis":"legend";return"independent"===n?("shared"===e[i][t]&&as(is.independentScaleMeansIndependentGuide(t)),"independent"):e[i][t]||"shared"}class jp{constructor(e={},t={}){this.explicit=e,this.implicit=t}clone(){return new jp(Hr(this.explicit),Hr(this.implicit))}combine(){return Object.assign(Object.assign({},this.explicit),this.implicit)}get(e){return vo(this.explicit[e],this.implicit[e])}getWithExplicit(e){return void 0!==this.explicit[e]?{explicit:!0,value:this.explicit[e]}:void 0!==this.implicit[e]?{explicit:!1,value:this.implicit[e]}:{explicit:!1,value:void 0}}setWithExplicit(e,t){void 0!==t.value&&this.set(e,t.value,t.explicit)}set(e,t,n){return delete this[n?"implicit":"explicit"][e],this[n?"explicit":"implicit"][e]=t,this}copyKeyFromSplit(e,t){void 0!==t.explicit[e]?this.set(e,t.explicit[e],!0):void 0!==t.implicit[e]&&this.set(e,t.implicit[e],!1)}copyKeyFromObject(e,t){void 0!==t[e]&&this.set(e,t[e],!0)}copyAll(e){for(const t of oo(e.combine())){const n=e.getWithExplicit(t);this.setWithExplicit(t,n)}}}function kp(e){return{explicit:!0,value:e}}function Ep(e){return{explicit:!1,value:e}}function Sp(e){return(t,n,i,r)=>{const o=e(t.value,n.value);return o>0?t:o<0?n:$p(t,n,i,r)}}function $p(e,t,n,i){return e.explicit&&t.explicit&&as(is.mergeConflictingProperty(n,i,e.value,t.value)),e}function Np(e,t,n,i,r=$p){return void 0===e||void 0===e.value?t:e.explicit&&!t.explicit?e:t.explicit&&!e.explicit?t:Wr(e.value,t.value)?e:r(e,t,n,i)}const Mp=Object.assign(Object.assign({},{clipHeight:1,columnPadding:1,columns:1,cornerRadius:1,direction:1,fillColor:1,format:1,formatType:1,gradientLength:1,gradientOpacity:1,gradientStrokeColor:1,gradientStrokeWidth:1,gradientThickness:1,gridAlign:1,labelAlign:1,labelBaseline:1,labelColor:1,labelFont:1,labelFontSize:1,labelFontStyle:1,labelFontWeight:1,labelLimit:1,labelOffset:1,labelOpacity:1,labelOverlap:1,labelPadding:1,labelSeparation:1,legendX:1,legendY:1,offset:1,orient:1,padding:1,rowPadding:1,strokeColor:1,symbolDash:1,symbolDashOffset:1,symbolFillColor:1,symbolLimit:1,symbolOffset:1,symbolOpacity:1,symbolSize:1,symbolStrokeColor:1,symbolStrokeWidth:1,symbolType:1,tickCount:1,tickMinStep:1,title:1,titleAlign:1,titleAnchor:1,titleBaseline:1,titleColor:1,titleFont:1,titleFontSize:1,titleFontStyle:1,titleFontWeight:1,titleLimit:1,titleLineHeight:1,titleOpacity:1,titleOrient:1,titlePadding:1,type:1,values:1,zindex:1}),{labelExpr:1,selections:1,opacity:1,shape:1,stroke:1,fill:1,size:1,strokeWidth:1,strokeDash:1,encode:1}),Bp=oo(Mp);class _p extends jp{}function Tp(e){const{legend:t}=e;return vo(t.type,zp(e))}function zp({channel:e,timeUnit:t,scaleType:n,alwaysReturn:i}){if(ga(e)){if(Qr(["quarter","month","day"],t))return"symbol";if(nu(n))return i?"gradient":void 0}return i?"symbol":void 0}function Up({legend:e,legendConfig:t,timeUnit:n,channel:i,scaleType:r}){const o=vo(e.orient,t.orient,"right"),a=Tp({legend:e,channel:i,timeUnit:n,scaleType:r,alwaysReturn:!0});return vo(e.direction,t[a?"gradientDirection":"symbolDirection"],function(e,t){switch(e){case"top":case"bottom":return"horizontal";case"left":case"right":case"none":case void 0:return;default:return"gradient"===t?"horizontal":void 0}}(o,a))}function Pp(e,t,n,i){return{signal:`clamp(${e.getSizeSignalRef(t).signal}, ${n}, ${i})`}}function Lp(e,t,n){const i=t.getScaleComponent(n).get("type");return vo(e.get("type"),zp({channel:n,scaleType:i,alwaysReturn:!0}))}function Rp(e){return Ip(e,(e,t)=>Math.max(e,t.value))}function qp(e){return Ip(e,(e,t)=>vo(e,t.value))}function Ip(e,t){return function(e){return!!e&&!!e.condition&&(o(e.condition)||zu(e.condition))}(e)?h(e.condition).reduce(t,e.value):zu(e)?e.value:void 0}function Wp(e,t,n){const i=t.get("selections");if(!(null==i?void 0:i.length))return;const r=u(n.field);return i.map(e=>`(!length(data(${u(uo(e)+jd)})) || (${e}[${r}] && indexof(${e}[${r}], datum.value) >= 0))`).join(" || ")}var Hp=Object.freeze({__proto__:null,symbols:function(e,t,n,i,r){var a,s,u,c,l;if("symbol"!==Lp(r,n,i))return;const{markDef:f,encoding:d,config:g,mark:p}=n,h=f.filled&&"trail"!==p;let m=Object.assign(Object.assign({},function(e,t,n){for(const i of n){const n=Ja(i,t.markDef,t.config);void 0!==n&&(e[i]={value:n})}return e}({},n,Mo)),Sf(n,{filled:h}));const b=null!==(a=Rp(d.opacity))&&void 0!==a?a:f.opacity,v=Wp(n,r,e);if(m.fill)if("fill"===i||h&&i===ea)delete m.fill;else if(m.fill.field)r.get("symbolFillColor")?delete m.fill:(m.fill=Ya(null!==(s=g.legend.symbolBaseFillColor)&&void 0!==s?s:"black"),m.fillOpacity=Ya(null!=b?b:1));else if(o(m.fill)){const e=null!==(l=null!==(c=qp(null!==(u=d.fill)&&void 0!==u?u:d.color))&&void 0!==c?c:f.fill)&&void 0!==l?l:h&&f.color;e&&(m.fill=Ya(e))}if(m.stroke)if("stroke"===i||!h&&i===ea)delete m.stroke;else if(m.stroke.field)delete m.stroke;else if(o(m.stroke)){const e=vo(qp(d.stroke||d.color),f.stroke,h?f.color:void 0);e&&(m.stroke={value:e})}return i!==oa&&(v?m.opacity=[Object.assign({test:v},Ya(null!=b?b:1)),Ya(g.legend.unselectedOpacity)]:b&&(m.opacity=Ya(b))),m=Object.assign(Object.assign({},m),t),oo(m).length>0?m:void 0},gradient:function(e,t,n,i,r){if("gradient"!==Lp(r,n,i))return;let o={};const a=Rp(n.encoding.opacity)||n.markDef.opacity;return a&&(o.opacity=Ya(a)),o=Object.assign(Object.assign({},o),t),oo(o).length>0?o:void 0},labels:function(e,t,n,i,r){const o=n.legend(i),a=n.config,s=Wp(n,r,e),u=s?[{test:s,value:1},{value:a.legend.unselectedOpacity}]:void 0,{format:c,formatType:l}=o,f=hu({fieldDef:e,format:c,formatType:l,field:"datum.value",config:a,isUTCScale:n.getScaleComponent(i).get("type")===Rs.UTC,omitNumberFormatAndEmptyTimeFormat:!0}),d=Object.assign(Object.assign(Object.assign({},u?{opacity:u}:{}),f?{text:f}:{}),t);return oo(d).length>0?d:void 0},entries:function(e,t,n,i,r){const o=r.get("selections");return(null==o?void 0:o.length)?{fill:{value:"transparent"}}:void 0},getFirstConditionValue:qp});function Gp(e){bm(e)?e.component.legends=function(e){const{encoding:t}=e;return[ea,ta,na,ua,ca,ra,ia,oa,aa,sa].reduce((n,i)=>{const r=t[i];return!e.legend(i)||!e.getScaleComponent(i)||Bu(r)&&i===ia&&"geojson"===r.type||(n[i]=function(e,t){var n;const i=e.fieldDef(t),r=e.legend(t),o=new _p({},function(e,t){const n=e.scaleName(t);if("trail"===e.mark){if("color"===t)return{stroke:n};if("size"===t)return{strokeWidth:n}}if("color"===t)return e.markDef.filled?{fill:n}:{stroke:n};return{[t]:n}}(e,t));!function(e,t,n){const i=e.fieldDef(t).field;Nd(e,e=>{var r,o;const a=null!==(r=e.project.hasField[i])&&void 0!==r?r:e.project.hasChannel[t];if(a&&ld.has(e)){const t=null!==(o=n.get("selections"))&&void 0!==o?o:[];t.push(e.name),n.set("selections",t,!1),a.hasLegend=!0}})}(e,t,o);for(const n of Bp){const a=Vp(n,r,t,e);if(void 0!==a){const t=Yp(a,n,r,i);(t||void 0===e.config.legend[n])&&o.set(n,a,t)}}const a=null!==(n=r.encoding)&&void 0!==n?n:{},s=o.get("selections"),u=["labels","legend","title","symbols","gradient","entries"].reduce((n,r)=>{var u;const c=Cp(null!==(u=a[r])&&void 0!==u?u:{},e),l=Hp[r]?Hp[r](i,c,e,t,o):c;return void 0!==l&&oo(l).length>0&&(n[r]=Object.assign(Object.assign(Object.assign({},(null==s?void 0:s.length)?{name:`${uo(i.field)}_legend_${r}`}:{}),(null==s?void 0:s.length)?{interactive:!!s}:{}),{update:l})),n},{});oo(u).length>0&&o.set("encode",u,!!r.encoding);return o}(e,i)),n},{})}(e):e.component.legends=function(e){const{legends:t,resolve:n}=e.component;for(const i of e.children)Gp(i),oo(i.component.legends).forEach(r=>{n.legend[r]=Dp(e.component.resolve,r),"shared"===n.legend[r]&&(t[r]=Xp(t[r],i.component.legends[r]),t[r]||(n.legend[r]="independent",delete t[r]))});return oo(t).forEach(t=>{for(const i of e.children)i.component.legends[t]&&"shared"===n.legend[t]&&delete i.component.legends[t]}),t}(e)}function Yp(e,t,n,i){switch(t){case"values":return!!n.values;case"title":if("title"===t&&e===i.title)return!0}return e===n[t]}function Vp(e,t,n,i){var r;const{encoding:a,mark:s}=i,u=Zu(a[n]),c=i.config.legend,l=null===(r=Ds(u.timeUnit))||void 0===r?void 0:r.unit,f=i.getScaleComponent(n).get("type");switch(e){case"direction":return Up({legend:t,legendConfig:c,timeUnit:l,channel:n,scaleType:f});case"format":if(ic(u))return;return mu(u,t.format,i.config);case"formatType":if(ic(u))return;return t.formatType;case"gradientLength":return vo(t.gradientLength,c.gradientLength,function({legend:e,legendConfig:t,model:n,channel:i,scaleType:r}){const{gradientHorizontalMaxLength:o,gradientHorizontalMinLength:a,gradientVerticalMaxLength:s,gradientVerticalMinLength:u}=t;if(nu(r)){if("horizontal"===Up({legend:e,legendConfig:t,channel:i,scaleType:r})){const i=vo(e.orient,t.orient);return"top"===i||"bottom"===i?Pp(n,"width",a,o):a}return Pp(n,"height",u,s)}}({model:i,legend:t,legendConfig:c,channel:n,scaleType:f}));case"labelOverlap":return vo(t.labelOverlap,function(e){if(Qr(["quantile","threshold","log"],e))return"greedy"}(f));case"symbolType":return vo(t.symbolType,function(e,t,n,i){var r;if("shape"!==t){const e=null!==(r=qp(n))&&void 0!==r?r:i;if(e)return e}switch(e){case"bar":case"rect":case"image":case"square":return"square";case"line":case"trail":case"rule":return"stroke";case"point":case"circle":case"tick":case"geoshape":case"area":case"text":return"circle"}}(s,n,a.shape,i.markDef.shape));case"title":return Yu(u,i.config,{allowDisabling:!0})||void 0;case"type":return Tp({legend:t,channel:n,timeUnit:l,scaleType:f,alwaysReturn:!1});case"values":return function(e,t){const n=e.values;return o(n)?ac(t,n):qa(n)?n:void 0}(t,u)}return t[e]}function Xp(e,t){var n,i,r,o,a,s;if(!e)return t.clone();const u=e.getWithExplicit("orient"),c=t.getWithExplicit("orient");if(u.explicit&&c.explicit&&u.value!==c.value)return;let l=!1;for(const n of Bp){const i=Np(e.getWithExplicit(n),t.getWithExplicit(n),n,"legend",(e,t)=>{switch(n){case"symbolType":return Jp(e,t);case"title":return ns(e,t);case"type":return l=!0,Ep("symbol")}return $p(e,t,n,"legend")});e.setWithExplicit(n,i)}return l&&((null===(r=null===(i=null===(n=e.implicit)||void 0===n?void 0:n.encode)||void 0===i?void 0:i.gradient)||void 0===r||r)&&lo(e.implicit,["encode","gradient"]),(null===(s=null===(a=null===(o=e.explicit)||void 0===o?void 0:o.encode)||void 0===a?void 0:a.gradient)||void 0===s||s)&&lo(e.explicit,["encode","gradient"])),e}function Jp(e,t){return"circle"===t.value?t:e}function Qp(e,t,n,i){var r,o,a;e.encode=null!==(r=e.encode)&&void 0!==r?r:{},e.encode[t]=null!==(o=e.encode[t])&&void 0!==o?o:{},e.encode[t].update=null!==(a=e.encode[t].update)&&void 0!==a?a:{},e.encode[t].update[n]=i}function Zp(e){const t=e.component.legends,n={};for(const i of oo(t)){const r=e.getScaleComponent(i),o=Vr(r.get("domains"));if(n[o])for(const e of n[o]){Xp(e,t[i])||n[o].push(t[i])}else n[o]=[t[i].clone()]}return ao(n).flat().map(Kp)}function Kp(e){var t,n,i,r;const o=e.combine(),{labelExpr:a,selections:s}=o,u=w(o,["labelExpr","selections"]);if(null===(t=u.encode)||void 0===t?void 0:t.symbols){const e=u.encode.symbols.update;!e.fill||"transparent"===e.fill.value||e.stroke||u.stroke||(e.stroke={value:"transparent"});for(const t of Gc)u[t]&&delete e[t]}if(void 0!==a){let e=a;(null===(r=null===(i=null===(n=u.encode)||void 0===n?void 0:n.labels)||void 0===i?void 0:i.update)||void 0===r?void 0:r.text)&&qa(u.encode.labels.update.text)&&(e=mo(a,"datum.label",u.encode.labels.update.text.signal)),Qp(u,"labels","text",{signal:e})}for(const e in u){const t=u[e];if(qa(t)){const n=Yc[e];if(n){const{vgProp:i,part:r}=n;Qp(u,r,i,t),delete u[e]}}}return u}function eh(e){return wm(e)||xm(e)||ym(e)?function(e){return e.children.reduce((e,t)=>e.concat(t.assembleProjections()),th(e))}(e):th(e)}function th(e){const t=e.component.projection;if(!t||t.merged)return[];const n=t.combine(),{name:i}=n,r=w(n,["name"]);if(t.data){const n={signal:`[${t.size.map(e=>e.signal).join(", ")}]`},o=t.data.reduce((t,n)=>{const i=qa(n)?n.signal:`data('${e.lookupDataSource(n)}')`;return Qr(t,i)||t.push(i),t},[]);if(o.length<=0)throw new Error("Projection's fit didn't find any data sources");return[Object.assign({name:i,size:n,fit:{signal:o.length>1?`[${o.join(", ")}]`:o[0]}},r)]}return[Object.assign(Object.assign({name:i},{translate:{signal:"[width / 2, height / 2]"}}),r)]}const nh=["type","clipAngle","clipExtent","center","rotate","precision","reflectX","reflectY","coefficient","distance","fraction","lobes","parallel","radius","ratio","spacing","tilt"];class ih extends jp{constructor(e,t,n,i){super(Object.assign({},t),{name:e}),this.specifiedProjection=t,this.size=n,this.data=i,this.merged=!1}get isFit(){return!!this.data}}function rh(e){e.component.projection=bm(e)?function(e){var t;if(e.hasProjection){const n=e.specifiedProjection,i=!(n&&(null!=n.scale||null!=n.translate)),r=i?[e.getSizeSignalRef("width"),e.getSizeSignalRef("height")]:void 0,o=i?function(e){const t=[];for(const n of[["longitude","latitude"],["longitude2","latitude2"]])(e.channelHasField(n[0])||e.channelHasField(n[1]))&&t.push({signal:e.getName(`geojson_${t.length}`)});e.channelHasField(ia)&&"geojson"===e.fieldDef(ia).type&&t.push({signal:e.getName(`geojson_${t.length}`)});0===t.length&&t.push(e.requestDataName(Hl));return t}(e):void 0;return new ih(e.projectionName(!0),Object.assign(Object.assign({},null!==(t=e.config.projection)&&void 0!==t?t:{}),null!=n?n:{}),r,o)}return}(e):function(e){if(0===e.children.length)return;let t;e.children.forEach(e=>rh(e));const n=Kr(e.children,e=>{const n=e.component.projection;if(n){if(t){const e=function(e,t){const n=Kr(nh,n=>!b(e.explicit,n)&&!b(t.explicit,n)||!(!b(e.explicit,n)||!b(t.explicit,n)||Vr(e.get(n))!==Vr(t.get(n))));if(Vr(e.size)===Vr(t.size)){if(n)return e;if(Vr(e.explicit)===Vr({}))return t;if(Vr(t.explicit)===Vr({}))return e}return null}(t,n);return e&&(t=e),!!e}return t=n,!0}return!0});if(t&&n){const n=e.projectionName(!0),i=new ih(n,t.specifiedProjection,t.size,Hr(t.data));return e.children.forEach(e=>{const t=e.component.projection;t&&(t.isFit&&i.data.push(...e.component.projection.data),e.renameProjection(t.get("name"),n),t.merged=!0)}),i}return}(e)}function oh(e,t){return`${uc(e)}_${t}`}function ah(e,t,n){var i;const r=oh(null!==(i=tc(n,void 0))&&void 0!==i?i:{},t);return e.getName(`${r}_bins`)}function sh(e,t,n){let i,r;i=function(e){return"as"in e}(e)?s(e.as)?[e.as,`${e.as}_end`]:[e.as[0],e.as[1]]:[Ru(e,{forAs:!0}),Ru(e,{binSuffix:"end",forAs:!0})];const o=Object.assign({},tc(t,void 0)),a=oh(o,e.field),{signal:u,extentSignal:c}=function(e,t){return{signal:e.getName(`${t}_bins`),extentSignal:e.getName(`${t}_extent`)}}(n,a);if(dc(o.extent)){const e=o.extent,t=e.selection;r=qg(n.getSelectionComponent(uo(t),t),e),delete o.extent}return{key:a,binComponent:Object.assign(Object.assign(Object.assign({bin:o,field:e.field,as:[i]},u?{signal:u}:{}),c?{extentSignal:c}:{}),r?{span:r}:{})}}class uh extends ed{constructor(e,t){super(e),this.bins=t}clone(){return new uh(null,Hr(this.bins))}static makeFromEncoding(e,t){const n=t.reduceFieldDef((e,n,i)=>{if(_u(n)&&cc(n.bin)){const{key:r,binComponent:o}=sh(n,n.bin,t);e[r]=Object.assign(Object.assign(Object.assign({},o),e[r]),function(e,t,n,i){var r,o;if(sc(t,n)){const a=bm(e)&&null!==(o=null!==(r=e.axis(n))&&void 0!==r?r:e.legend(n))&&void 0!==o?o:{},s=Ru(t,{expr:"datum"}),u=Ru(t,{expr:"datum",binSuffix:"end"});return{formulaAs:Ru(t,{binSuffix:"range",forAs:!0}),formula:yu(s,u,a.format,a.formatType,i)}}return{}}(t,n,i,t.config))}return e},{});return 0===oo(n).length?null:new uh(e,n)}static makeFromTransform(e,t,n){const{key:i,binComponent:r}=sh(t,t.bin,n);return new uh(e,{[i]:r})}merge(e,t){for(const n of oo(e.bins))n in this.bins?(t(e.bins[n].signal,this.bins[n].signal),this.bins[n].as=to([...this.bins[n].as,...e.bins[n].as],Xr)):this.bins[n]=e.bins[n];for(const t of e.children)e.removeChild(t),t.parent=this;e.remove()}producedFields(){return new Set(ao(this.bins).map(e=>e.as).flat(2))}dependentFields(){return new Set(ao(this.bins).map(e=>e.field))}hash(){return`Bin ${Xr(this.bins)}`}assemble(){return ao(this.bins).flatMap(e=>{const t=[],[n,...i]=e.as,r=e.bin,{extent:o}=r,a=w(r,["extent"]),s=Object.assign(Object.assign(Object.assign({type:"bin",field:ho(e.field),as:n,signal:e.signal},dc(o)?{extent:null}:{extent:o}),e.span?{span:{signal:`span(${e.span})`}}:{}),a);!o&&e.extentSignal&&(t.push({type:"extent",field:ho(e.field),signal:e.extentSignal}),s.extent={signal:e.extentSignal}),t.push(s);for(const e of i)for(let i=0;i<2;i++)t.push({type:"formula",expr:Ru({field:n[i]},{expr:"datum"}),as:e[i]});return e.formula&&t.push({type:"formula",expr:e.formula,as:e.formulaAs}),t})}}class ch extends ed{constructor(e){let t;if(super(null),Rl(e=null!=e?e:{name:"source"})||(t=e.format?Object.assign({},Yr(e.format,["parse"])):{}),Pl(e))this._data={values:e.values};else if(Ul(e)){if(this._data={url:e.url},!t.type){let n=/(?:\.([^.]+))?$/.exec(e.url)[1];Qr(["json","csv","tsv","dsv","topojson"],n)||(n="json"),t.type=n}}else Il(e)?this._data={values:[{type:"Sphere"}]}:(Ll(e)||Rl(e))&&(this._data={});this._generator=Rl(e),e.name&&(this._name=e.name),t&&oo(t).length>0&&(this._data.format=t)}dependentFields(){return new Set}producedFields(){}get data(){return this._data}hasName(){return!!this._name}get isGenerator(){return this._generator}get dataName(){return this._name}set dataName(e){this._name=e}set parent(e){throw new Error("Source nodes have to be roots.")}remove(){throw new Error("Source nodes are roots and cannot be removed.")}hash(){throw new Error("Cannot hash sources")}assemble(){return Object.assign(Object.assign({name:this._name},this._data),{transform:[]})}}function lh(e){for(const t of e){for(const e of t.children)if(e.parent!==t)return console.error("Dataflow graph is inconsistent.",t,e),!1;if(!lh(t.children))return!1}return!0}class fh extends ed{constructor(e,t){super(e),this.params=t}clone(){return new fh(null,this.params)}dependentFields(){return new Set}producedFields(){}hash(){return`Graticule ${Xr(this.params)}`}assemble(){return Object.assign({type:"graticule"},!0===this.params?{}:this.params)}}class dh extends ed{constructor(e,t){super(e),this.params=t}clone(){return new dh(null,this.params)}dependentFields(){return new Set}producedFields(){var e;return new Set([null!==(e=this.params.as)&&void 0!==e?e:"data"])}hash(){return`Hash ${Xr(this.params)}`}assemble(){return Object.assign({type:"sequence"},this.params)}}function gh(e){return e instanceof ch||e instanceof fh||e instanceof dh}class ph{constructor(){this._mutated=!1}setMutated(){this._mutated=!0}get mutatedFlag(){return this._mutated}}class hh extends ph{constructor(){super(),this._continue=!1}setContinue(){this._continue=!0}get continueFlag(){return this._continue}get flags(){return{continueFlag:this.continueFlag,mutatedFlag:this.mutatedFlag}}set flags({continueFlag:e,mutatedFlag:t}){e&&this.setContinue(),t&&this.setMutated()}reset(){}optimizeNextFromLeaves(e){if(gh(e))return!1;const t=e.parent,{continueFlag:n}=this.run(e);return n&&this.optimizeNextFromLeaves(t),this.mutatedFlag}}class mh extends ph{}function bh(e,t,n,i){const r=bm(i)?i.encoding[Ca(t)]:void 0;if(_u(n)&&bm(i)&&$u(t,n,r,i.markDef,i.config))e.add(Ru(n,{})),e.add(Ru(n,{suffix:"end"})),n.bin&&sc(n,t)&&e.add(Ru(n,{binSuffix:"range"}));else if(t in la){const n=function(e){switch(e){case"latitude":return"y";case"latitude2":return"y2";case"longitude":return"x";case"longitude2":return"x2"}}(t);e.add(i.getName(n))}else e.add(Ru(n));return e}class vh extends ed{constructor(e,t,n){super(e),this.dimensions=t,this.measures=n}clone(){return new vh(null,new Set(this.dimensions),Hr(this.measures))}get groupBy(){return this.dimensions}static makeFromEncoding(e,t){let n=!1;t.forEachFieldDef(e=>{e.aggregate&&(n=!0)});const i={},r=new Set;return n?(t.forEachFieldDef((e,n)=>{var o,a,s,u;const{aggregate:c,field:l}=e;if(c)if("count"===c)i["*"]=null!==(o=i["*"])&&void 0!==o?o:{},i["*"].count=new Set([Ru(e,{forAs:!0})]);else{if(qo(c)||Io(c)){const e=qo(c)?"argmin":"argmax",t=c[e];i[t]=null!==(a=i[t])&&void 0!==a?a:{},i[t][e]=new Set([Ru({op:e,field:t},{forAs:!0})])}else i[l]=null!==(s=i[l])&&void 0!==s?s:{},i[l][c]=new Set([Ru(e,{forAs:!0})]);_a(n)&&"unaggregated"===t.scaleDomain(n)&&(i[l]=null!==(u=i[l])&&void 0!==u?u:{},i[l].min=new Set([Ru({field:l,aggregate:"min"},{forAs:!0})]),i[l].max=new Set([Ru({field:l,aggregate:"max"},{forAs:!0})]))}else bh(r,n,e,t)}),r.size+oo(i).length===0?null:new vh(e,r,i)):null}static makeFromTransform(e,t){var n,i,r;const o=new Set,a={};for(const e of t.aggregate){const{op:t,field:r,as:o}=e;t&&("count"===t?(a["*"]=null!==(n=a["*"])&&void 0!==n?n:{},a["*"].count=new Set([o||Ru(e,{forAs:!0})])):(a[r]=null!==(i=a[r])&&void 0!==i?i:{},a[r][t]=new Set([o||Ru(e,{forAs:!0})])))}for(const e of null!==(r=t.groupby)&&void 0!==r?r:[])o.add(e);return o.size+oo(a).length===0?null:new vh(e,o,a)}merge(e){return function(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}(this.dimensions,e.dimensions)?(function(e,t){var n;for(const i of oo(t)){const r=t[i];for(const t of oo(r))i in e?e[i][t]=new Set([...null!==(n=e[i][t])&&void 0!==n?n:[],...r[t]]):e[i]={[t]:r[t]}}}(this.measures,e.measures),!0):(function(...e){os.debug(...e)}("different dimensions, cannot merge"),!1)}addDimensions(e){e.forEach(this.dimensions.add,this.dimensions)}dependentFields(){return new Set([...this.dimensions,...oo(this.measures)])}producedFields(){const e=new Set;for(const t of oo(this.measures))for(const n of oo(this.measures[t])){const i=this.measures[t][n];0===i.size?e.add(`${n}_${t}`):i.forEach(e.add,e)}return e}hash(){return`Aggregate ${Xr({dimensions:this.dimensions,measures:this.measures})}`}assemble(){const e=[],t=[],n=[];for(const i of oo(this.measures))for(const r of oo(this.measures[i]))for(const o of this.measures[i][r])n.push(o),e.push(r),t.push("*"===i?null:ho(i));return{type:"aggregate",groupby:[...this.dimensions].map(ho),ops:e,fields:t,as:n}}}class yh extends ed{constructor(e,t,n,i){super(e),this.model=t,this.name=n,this.data=i;for(const e of ha){const n=t.facet[e];if(n){const{bin:i,sort:r}=n;this[e]=Object.assign({name:t.getName(`${e}_domain`),fields:[Ru(n),...cc(i)?[Ru(n,{binSuffix:"end"})]:[]]},Cu(r)?{sortField:r}:o(r)?{sortIndexField:ip(n,e)}:{})}}this.childModel=t.child}hash(){let e="Facet";for(const t of ha)this[t]&&(e+=` ${t.charAt(0)}:${Xr(this[t])}`);return e}get fields(){var e;const t=[];for(const n of ha)(null===(e=this[n])||void 0===e?void 0:e.fields)&&t.push(...this[n].fields);return t}dependentFields(){const e=new Set(this.fields);for(const t of ha)this[t]&&(this[t].sortField&&e.add(this[t].sortField.field),this[t].sortIndexField&&e.add(this[t].sortIndexField));return e}producedFields(){return new Set}getSource(){return this.name}getChildIndependentFieldsWithStep(){const e={};for(const t of["x","y"]){const n=this.childModel.component.scales[t];if(n&&!n.merged){const i=n.get("type"),r=n.get("range");if(eu(i)&&Ia(r)){const n=em(tm(this.childModel,t));n?e[t]=n:as(`Unknown field for ${t}. Cannot calculate view size.`)}}}return e}assembleRowColumnHeaderData(e,t,n){const i={row:"y",column:"x"}[e],r=[],o=[],a=[];n&&n[i]&&(t?(r.push(`distinct_${n[i]}`),o.push("max")):(r.push(n[i]),o.push("distinct")),a.push(`distinct_${n[i]}`));const{sortField:s,sortIndexField:u}=this[e];if(s){const{op:e=xu,field:t}=s;r.push(t),o.push(e),a.push(Ru(s,{forAs:!0}))}else u&&(r.push(u),o.push("max"),a.push(u));return{name:this[e].name,source:null!=t?t:this.data,transform:[Object.assign({type:"aggregate",groupby:this[e].fields},r.length?{fields:r,ops:o,as:a}:{})]}}assembleFacetHeaderData(e){var t,n;const{columns:i}=this.model.layout,{layoutHeaders:r}=this.model.component,o=[],a={};for(const e of sp){for(const i of up){const o=null!==(t=r[e]&&r[e][i])&&void 0!==t?t:[];for(const t of o)if((null===(n=t.axes)||void 0===n?void 0:n.length)>0){a[e]=!0;break}}if(a[e]){const t=`length(data("${this.facet.name}"))`,n="row"===e?i?{signal:`ceil(${t} / ${i})`}:1:i?{signal:`min(${t}, ${i})`}:{signal:t};o.push({name:`${this.facet.name}_${e}`,transform:[{type:"sequence",start:0,stop:n}]})}}const{row:s,column:u}=a;return(s||u)&&o.unshift(this.assembleRowColumnHeaderData("facet",null,e)),o}assemble(){var e,t;const n=[];let i=null;const r=this.getChildIndependentFieldsWithStep(),{column:o,row:a,facet:s}=this;if(o&&a&&(r.x||r.y)){i=`cross_${this.column.name}_${this.row.name}`;const o=[].concat(null!==(e=r.x)&&void 0!==e?e:[],null!==(t=r.y)&&void 0!==t?t:[]),a=o.map(()=>"distinct");n.push({name:i,source:this.data,transform:[{type:"aggregate",groupby:this.fields,fields:o,ops:a}]})}for(const e of["column",Xo])this[e]&&n.push(this.assembleRowColumnHeaderData(e,i,r));if(s){const e=this.assembleFacetHeaderData(r);e&&n.push(...e)}return n}}function xh(e){return"'"===e[0]&&"'"===e[e.length-1]||'"'===e[0]&&'"'===e[e.length-1]?e.slice(1,-1):e}function wh(e){const t={};return function e(t,n){if(qr(t))e(t.not,n);else if(Rr(t))for(const i of t.and)e(i,n);else if(Lr(t))for(const i of t.or)e(i,n);else n(t)}(e.filter,e=>{var n;if(_s(e)){let i=null;ks(e)?i=e.equal:Ms(e)?i=e.range[0]:Bs(e)&&(i=(null!==(n=e.oneOf)&&void 0!==n?n:e.in)[0]),i&&(ss(i)?t[e.field]="date":y(i)?t[e.field]="number":s(i)&&(t[e.field]="string")),e.timeUnit&&(t[e.field]="date")}}),t}function Ah(e){const t={};function n(e){var n;ic(e)?t[e.field]="date":"quantitative"===e.type&&(s(n=e.aggregate)&&Qr(["min","max"],n))?t[e.field]="number":bo(e.field)>1?e.field in t||(t[e.field]="flatten"):Uu(e)&&Cu(e.sort)&&bo(e.sort.field)>1&&(e.sort.field in t||(t[e.sort.field]="flatten"))}if((bm(e)||vm(e))&&e.forEachFieldDef((t,i)=>{if(_u(t))n(t);else{const r=Oa(i),o=e.fieldDef(r);n(Object.assign(Object.assign({},t),{type:o.type}))}}),bm(e)){const{mark:n,markDef:i,encoding:r}=e;if(Eo(n)&&!e.encoding.order){const e=r["horizontal"===i.orient?"y":"x"];!Bu(e)||"quantitative"!==e.type||e.field in t||(t[e.field]="number")}}return t}class Oh extends ed{constructor(e,t){super(e),this._parse=t}clone(){return new Oh(null,Hr(this._parse))}hash(){return`Parse ${Xr(this._parse)}`}static makeExplicit(e,t,n){let i={};const r=t.data;return!Rl(r)&&r&&r.format&&r.format.parse&&(i=r.format.parse),this.makeWithAncestors(e,i,{},n)}static makeWithAncestors(e,t,n,i){for(const e of oo(n)){const t=i.getWithExplicit(e);void 0!==t.value&&(t.explicit||t.value===n[e]||"derived"===t.value||"flatten"===n[e]?delete n[e]:as(is.differentParse(e,n[e],t.value)))}for(const e of oo(t)){const n=i.get(e);void 0!==n&&(n===t[e]?delete t[e]:as(is.differentParse(e,t[e],n)))}const r=new jp(t,n);i.copyAll(r);const o={};for(const e of oo(r.combine())){const t=r.get(e);null!==t&&(o[e]=t)}return 0===oo(o).length||i.parseNothing?null:new Oh(e,o)}get parse(){return this._parse}merge(e){this._parse=Object.assign(Object.assign({},this._parse),e.parse),e.remove()}assembleFormatParse(){const e={};for(const t of oo(this._parse)){const n=this._parse[t];1===bo(t)&&(e[t]=n)}return e}producedFields(){return new Set(oo(this._parse))}dependentFields(){return new Set(oo(this._parse))}assembleTransforms(e=!1){return oo(this._parse).filter(t=>!e||bo(t)>1).map(e=>{const t=function(e,t){const n=po(e);if("number"===t)return`toNumber(${n})`;if("boolean"===t)return`toBoolean(${n})`;if("string"===t)return`toString(${n})`;if("date"===t)return`toDate(${n})`;if("flatten"===t)return n;if(0===t.indexOf("date:")){return`timeParse(${n},'${xh(t.slice(5,t.length))}')`}if(0===t.indexOf("utc:")){return`utcParse(${n},'${xh(t.slice(4,t.length))}')`}return as(is.unrecognizedParse(t)),null}(e,this._parse[e]);return t?{type:"formula",expr:t,as:(n=e,`${r(n).join(".")}`)}:null;var n}).filter(e=>null!==e)}}class Ch extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Ch(null,Hr(this.transform))}addDimensions(e){this.transform.groupby=to(this.transform.groupby.concat(e),e=>e)}dependentFields(){const e=new Set;return this.transform.groupby&&this.transform.groupby.forEach(t=>e.add(t)),this.transform.joinaggregate.map(e=>e.field).filter(e=>void 0!==e).forEach(t=>e.add(t)),e}producedFields(){return new Set(this.transform.joinaggregate.map(this.getDefaultName))}getDefaultName(e){var t;return null!==(t=e.as)&&void 0!==t?t:Ru(e)}hash(){return`JoinAggregateTransform ${Xr(this.transform)}`}assemble(){const e=[],t=[],n=[];for(const i of this.transform.joinaggregate)t.push(i.op),n.push(this.getDefaultName(i)),e.push(void 0===i.field?null:i.field);const i=this.transform.groupby;return Object.assign({type:"joinaggregate",as:n,ops:t,fields:e},void 0!==i?{groupby:i}:{})}}class Fh extends ed{constructor(e,t){super(e),this._stack=t}clone(){return new Fh(null,Hr(this._stack))}static makeFromTransform(e,t){const{stack:n,groupby:i,as:r,offset:a="zero"}=t,u=[],c=[];if(void 0!==t.sort)for(const e of t.sort)u.push(e.field),c.push(vo(e.order,"ascending"));const l={field:u,order:c};let f;return f=function(e){return o(e)&&e.every(e=>s(e))&&e.length>1}(r)?r:s(r)?[r,r+"_end"]:[t.stack+"_start",t.stack+"_end"],new Fh(e,{stackField:n,groupby:i,offset:a,sort:l,facetby:[],as:f})}static makeFromEncoding(e,t){const n=t.stack,{encoding:i}=t;if(!n)return null;let r;if(n.groupbyChannel){r=Zu(i[n.groupbyChannel])}const a=function(e){return e.stack.stackBy.reduce((e,t)=>{const n=Ru(t.fieldDef);return n&&e.push(n),e},[])}(t),s=t.encoding.order;let u;return u=o(s)||Bu(s)?Ka(s):a.reduce((e,t)=>(e.field.push(t),e.order.push("descending"),e),{field:[],order:[]}),new Fh(e,{dimensionFieldDef:r,stackField:t.vgField(n.fieldChannel),facetby:[],stackby:a,sort:u,offset:n.offset,impute:n.impute,as:[t.vgField(n.fieldChannel,{suffix:"start",forAs:!0}),t.vgField(n.fieldChannel,{suffix:"end",forAs:!0})]})}get stack(){return this._stack}addDimensions(e){this._stack.facetby.push(...e)}dependentFields(){const e=new Set;return e.add(this._stack.stackField),this.getGroupbyFields().forEach(t=>e.add(t)),this._stack.facetby.forEach(t=>e.add(t)),this._stack.sort.field.forEach(t=>e.add(t)),e}producedFields(){return new Set(this._stack.as)}hash(){return`Stack ${Xr(this._stack)}`}getGroupbyFields(){const{dimensionFieldDef:e,impute:t,groupby:n}=this._stack;return e?e.bin?t?[Ru(e,{binSuffix:"mid"})]:[Ru(e,{}),Ru(e,{binSuffix:"end"})]:[Ru(e)]:null!=n?n:[]}assemble(){const e=[],{facetby:t,dimensionFieldDef:n,stackField:i,stackby:r,sort:o,offset:a,impute:s,as:u}=this._stack;if(s&&n){const{band:o=.5,bin:a}=n;a&&e.push({type:"formula",expr:`${o}*`+Ru(n,{expr:"datum"})+`+${1-o}*`+Ru(n,{expr:"datum",binSuffix:"end"}),as:Ru(n,{binSuffix:"mid",forAs:!0})}),e.push({type:"impute",field:i,groupby:[...r,...t],key:Ru(n,{binSuffix:"mid"}),method:"value",value:0})}return e.push({type:"stack",groupby:[...this.getGroupbyFields(),...t],field:i,sort:o,as:u,offset:a}),e}}class Dh extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Dh(null,Hr(this.transform))}addDimensions(e){this.transform.groupby=to(this.transform.groupby.concat(e),e=>e)}dependentFields(){var e,t;const n=new Set;return(null!==(e=this.transform.groupby)&&void 0!==e?e:[]).forEach(e=>n.add(e)),(null!==(t=this.transform.sort)&&void 0!==t?t:[]).forEach(e=>n.add(e.field)),this.transform.window.map(e=>e.field).filter(e=>void 0!==e).forEach(e=>n.add(e)),n}producedFields(){return new Set(this.transform.window.map(this.getDefaultName))}getDefaultName(e){var t;return null!==(t=e.as)&&void 0!==t?t:Ru(e)}hash(){return`WindowTransform ${Xr(this.transform)}`}assemble(){var e;const t=[],n=[],i=[],r=[];for(const e of this.transform.window)n.push(e.op),i.push(this.getDefaultName(e)),r.push(void 0===e.param?null:e.param),t.push(void 0===e.field?null:e.field);const o=this.transform.frame,a=this.transform.groupby;if(o&&null===o[0]&&null===o[1]&&n.every(e=>Wo(e)))return Object.assign({type:"joinaggregate",as:i,ops:n,fields:t},void 0!==a?{groupby:a}:{});const s=[],u=[];if(void 0!==this.transform.sort)for(const t of this.transform.sort)s.push(t.field),u.push(null!==(e=t.order)&&void 0!==e?e:"ascending");const c={field:s,order:u},l=this.transform.ignorePeers;return Object.assign(Object.assign(Object.assign({type:"window",params:r,as:i,ops:n,fields:t,sort:c},void 0!==l?{ignorePeers:l}:{}),void 0!==a?{groupby:a}:{}),void 0!==o?{frame:o}:{})}}class jh extends ed{clone(){return new jh(null)}constructor(e){super(e)}dependentFields(){return new Set}producedFields(){return new Set(["_vgsid_"])}hash(){return"Identifier"}assemble(){return{type:"identifier",as:"_vgsid_"}}}class kh extends hh{run(e){const t=e.parent;if(e instanceof Oh){if(gh(t))return this.flags;if(t.numChildren()>1)return this.setContinue(),this.flags;if(t instanceof Oh)this.setMutated(),t.merge(e);else{if(ro(t.producedFields(),e.dependentFields()))return this.setContinue(),this.flags;this.setMutated(),e.swapWithParent()}}return this.setContinue(),this.flags}}class Eh extends mh{mergeNodes(e,t){const n=t.shift();for(const i of t)e.removeChild(i),i.parent=n,i.remove()}run(e){const t=e.children.map(e=>e.hash()),n={};for(let i=0;i1&&(this.setMutated(),this.mergeNodes(e,n[t]));for(const t of e.children)this.run(t);return this.mutatedFlag}}class Sh extends hh{run(e){return e instanceof td||e.numChildren()>0||e instanceof yh||(this.setMutated(),e.remove()),this.flags}}class $h extends hh{constructor(){super(...arguments),this.fields=new Set,this.prev=null}run(e){if(this.setContinue(),e instanceof nd){const t=e.producedFields();no(t,this.fields)?(this.setMutated(),this.prev.remove()):this.fields=new Set([...this.fields,...t]),this.prev=e}return this.flags}reset(){this.fields.clear()}}class Nh extends hh{run(e){this.setContinue();const t=e.parent.children.filter(e=>e instanceof nd),n=t.pop();for(const e of t)this.setMutated(),n.merge(e);return this.flags}}function Mh(e){if(e instanceof yh)if(1!==e.numChildren()||e.children[0]instanceof td){const n=e.model.component.data.main;!function e(t){if(t instanceof td&&t.type===Hl&&1===t.numChildren()){const n=t.children[0];n instanceof yh||(n.swapWithParent(),e(t))}}(n);const i=(t=e,function e(n){if(!(n instanceof yh)){const i=n.clone();if(i instanceof td){const e=Lh+i.getSource();i.setSource(e),t.model.component.data.outputNodes[e]=i}else(i instanceof vh||i instanceof Fh||i instanceof Dh||i instanceof Ch)&&i.addDimensions(t.fields);return n.children.flatMap(e).forEach(e=>e.parent=i),[i]}return n.children.flatMap(e)}),r=e.children.map(i).flat();for(const e of r)e.parent=n}else{const t=e.children[0];(t instanceof vh||t instanceof Fh||t instanceof Dh||t instanceof Ch)&&t.addDimensions(e.fields),t.swapWithParent(),Mh(e)}else e.children.map(Mh);var t}class Bh extends mh{constructor(){super()}run(e){e instanceof td&&!e.isRequired()&&(this.setMutated(),e.remove());for(const t of e.children)this.run(t);return this.mutatedFlag}}class _h extends mh{constructor(e){super(),this.requiresSelectionId=e&&Bd(e)}run(e){e instanceof jh&&(this.requiresSelectionId&&(gh(e.parent)||e.parent instanceof vh||e.parent instanceof Oh)||(this.setMutated(),e.remove()));for(const t of e.children)this.run(t);return this.mutatedFlag}}class Th extends hh{run(e){const t=e.parent,n=[...t.children],i=t.children.filter(e=>e instanceof Oh);if(t.numChildren()>1&&i.length>=1){const e={},r=new Set;for(const t of i){const n=t.parse;for(const t of oo(n))t in e?e[t]!==n[t]&&r.add(t):e[t]=n[t]}for(const t of r)delete e[t];if(0!==oo(e).length){this.setMutated();const i=new Oh(t,e);for(const r of n){if(r instanceof Oh)for(const t of oo(e))delete r.parse[t];t.removeChild(r),r.parent=i,r instanceof Oh&&0===oo(r.parse).length&&r.remove()}}}return this.setContinue(),this.flags}}class zh extends hh{run(e){const t=e.parent,n=t.children.filter(e=>e instanceof vh),i={};for(const e of n){const t=Xr(e.groupBy);t in i||(i[t]=[]),i[t].push(e)}for(const e of oo(i)){const n=i[e];if(n.length>1){const e=n.pop();for(const i of n)e.merge(i)&&(t.removeChild(i),i.parent=e,i.remove(),this.setMutated())}}return this.setContinue(),this.flags}}class Uh extends hh{constructor(e){super(),this.model=e}run(e){const t=e.parent,n=!(gh(t)||t instanceof Lg||t instanceof Oh||t instanceof jh),i=[],r=[];for(const e of t.children)e instanceof uh&&(n&&!ro(t.producedFields(),e.dependentFields())?i.push(e):r.push(e));if(i.length>0){const e=i.pop();for(const t of i)e.merge(t,this.model.renameSignal.bind(this.model));this.setMutated(),t instanceof uh?t.merge(e,this.model.renameSignal.bind(this.model)):e.swapWithParent()}if(r.length>1){const e=r.pop();for(const t of r)e.merge(t,this.model.renameSignal.bind(this.model));this.setMutated()}return this.setContinue(),this.flags}}class Ph extends hh{run(e){const t=e.parent,n=[...t.children];if(!Zr(n,e=>e instanceof td)||t.numChildren()<=1)return this.setContinue(),this.flags;const i=[];let r;for(const e of n)if(e instanceof td){let n=e;for(;1===n.numChildren();){const e=n.children[0];if(!(e instanceof td))break;n=e}i.push(...n.children),r?(t.removeChild(e),e.parent=r.parent,r.parent.removeChild(r),r.parent=n,this.setMutated()):r=n}else i.push(e);if(i.length){this.setMutated();for(const e of i)e.parent.removeChild(e),e.parent=r}return this.setContinue(),this.flags}}const Lh="scale_";function Rh(e){const t=[];return e.forEach((function e(n){0===n.numChildren()?t.push(n):n.children.forEach(e)})),t}function qh(e){return e}function Ih(e,t){return t.map(t=>{if(e instanceof hh){const n=e.optimizeNextFromLeaves(t);return e.reset(),n}return e.run(t)}).some(qh)}function Wh(e,t){let n=e.sources;const i=new Set;return i.add(Ih(new Bh,n)),i.add(Ih(new _h(t),n)),n=n.filter(e=>e.numChildren()>0),i.add(Ih(new Sh,Rh(n))),n=n.filter(e=>e.numChildren()>0),i.add(Ih(new kh,Rh(n))),i.add(Ih(new Uh(t),Rh(n))),i.add(Ih(new $h,Rh(n))),i.add(Ih(new Th,Rh(n))),i.add(Ih(new zh,Rh(n))),i.add(Ih(new Nh,Rh(n))),i.add(Ih(new Eh,n)),i.add(Ih(new Ph,Rh(n))),e.sources=n,i.has(!0)}class Hh{constructor(e){Object.defineProperty(this,"signal",{enumerable:!0,get:e})}static fromName(e,t){return new Hh(()=>e(t))}}function Gh(e){bm(e)?function(e){const t=e.component.scales;for(const n of oo(t)){const i=Yh(e,n);if(t[n].setWithExplicit("domains",i),Qh(e,n),e.component.data.isFaceted){let t=e;for(;!vm(t)&&t.parent;)t=t.parent;if("shared"===t.component.resolve.scale[n])for(const e of i.value)Wa(e)&&(e.data=Lh+e.data.replace(Lh,""))}}}(e):function(e){for(const t of e.children)Gh(t);const t=e.component.scales;for(const n of oo(t)){let i,r=null;for(const t of e.children){const e=t.component.scales[n];if(e){i=void 0===i?e.getWithExplicit("domains"):Np(i,e.getWithExplicit("domains"),"domains","scale",Kh);const t=e.get("selectionExtent");r&&t&&r.selection!==t.selection&&as("The same selection must be used to override scale domains in a layered view."),r=t}}t[n].setWithExplicit("domains",i),r&&t[n].set("selectionExtent",r,!0)}}(e)}function Yh(e,t){const n=e.getScaleComponent(t).get("type"),i=function(e,t,n,i){if("unaggregated"===e){const{valid:e,reason:i}=Zh(t,n);if(!e)return void as(i)}else if(void 0===e&&i.useUnaggregatedDomain){const{valid:e}=Zh(t,n);if(e)return"unaggregated"}return e}(e.scaleDomain(t),e.fieldDef(t),n,e.config.scale);return i!==e.scaleDomain(t)&&(e.specifiedScales[t]=Object.assign(Object.assign({},e.specifiedScales[t]),{domain:i})),"x"===t&&e.channelHasField("x2")?e.channelHasField("x")?Np(Xh(n,i,e,"x"),Xh(n,i,e,"x2"),"domain","scale",Kh):Xh(n,i,e,"x2"):"y"===t&&e.channelHasField("y2")?e.channelHasField("y")?Np(Xh(n,i,e,"y"),Xh(n,i,e,"y2"),"domain","scale",Kh):Xh(n,i,e,"y2"):Xh(n,i,e,t)}function Vh(e,t,n){var i;const r=null===(i=Ds(n))||void 0===i?void 0:i.unit;return"temporal"===t||r?function(e,t,n){return e.map(e=>({signal:`{data: ${oc(e,{timeUnit:n,type:t})}}`}))}(e,t,r):[e]}function Xh(e,t,n,i){const r=n.fieldDef(i),o=n.fieldDef(Oa(i));if(function(e){return e&&e.unionWith}(t)){const a=Xh(e,void 0,n,i),s=Vh(t.unionWith,o.type,r.timeUnit);return kp([...a.value,...s])}if(qa(t))return kp([t]);if(t&&"unaggregated"!==t&&!ru(t))return kp(Vh(t,o.type,r.timeUnit));const s=n.stack;if(s&&i===s.fieldChannel){if("normalize"===s.offset)return Ep([[0,1]]);const e=n.requestDataName(Hl);return Ep([{data:e,field:n.vgField(i,{suffix:"start"})},{data:e,field:n.vgField(i,{suffix:"end"})}])}const u=_a(i)?function(e,t,n){if(!eu(n))return;const i=e.fieldDef(t),r=i.sort;if(Fu(r))return{op:"min",field:ip(i,t),order:"ascending"};const{stack:o}=e,a=o?[...o.groupbyField?[o.groupbyField]:[],...o.stackBy.map(e=>e.fieldDef.field)]:void 0;if(Cu(r)){const e=o&&!Qr(a,r.field);return Jh(r,e)}if(Ou(r)){const{encoding:t,order:n}=r,i=e.fieldDef(t),{aggregate:s,field:u}=i,c=o&&!Qr(a,u);if(qo(s)||Io(s))return Jh({field:Ru(i),order:n},c);if(Wo(s)||!s)return Jh({op:s,field:u,order:n},c)}else{if("descending"===r)return{op:"min",field:e.vgField(t),order:"descending"};if(Qr(["ascending",void 0],r))return!0}return}(n,i,e):void 0;if("unaggregated"===t){const e=n.requestDataName(Hl),{field:t}=r;return Ep([{data:e,field:Ru({field:t,aggregate:"min"})},{data:e,field:Ru({field:t,aggregate:"max"})}])}if(cc(r.bin)){if(eu(e))return Ep("bin-ordinal"===e?[]:[{data:so(u)?n.requestDataName(Hl):n.requestDataName("raw"),field:n.vgField(i,sc(r,i)?{binSuffix:"range"}:{}),sort:!0!==u&&a(u)?u:{field:n.vgField(i,{}),op:"min"}}]);{const{bin:e}=r;if(cc(e)){const t=ah(n,r.field,e);return Ep([new Hh(()=>{const e=n.getSignalName(t);return`[${e}.start, ${e}.stop]`})])}return Ep([{data:n.requestDataName(Hl),field:n.vgField(i,{})}])}}if(r.timeUnit&&Qr(["time","utc"],e)&&$u(i,r,bm(n)?n.encoding[Ca(i)]:void 0,n.markDef,n.config)){const e=n.requestDataName(Hl);return Ep([{data:e,field:n.vgField(i)},{data:e,field:n.vgField(i,{suffix:"end"})}])}return Ep(u?[{data:so(u)?n.requestDataName(Hl):n.requestDataName("raw"),field:n.vgField(i),sort:u}]:[{data:n.requestDataName(Hl),field:n.vgField(i)}])}function Jh(e,t){const{op:n,field:i,order:r}=e;return Object.assign(Object.assign({op:null!=n?n:t?"sum":xu},i?{field:ho(i)}:{}),r?{order:r}:{})}function Qh(e,t){const n=e.component.scales[t],i=e.specifiedScales[t].domain,r=e.fieldDef(t).bin,o=ru(i)&&i,a=fc(r)&&dc(r.extent)&&r.extent;(o||a)&&n.set("selectionExtent",null!=o?o:a,!0)}function Zh(e,t){const{aggregate:n,type:i}=e;return n?s(n)&&!Vo[n]?{valid:!1,reason:is.unaggregateDomainWithNonSharedDomainOp(n)}:"quantitative"===i&&"log"===t?{valid:!1,reason:is.unaggregatedDomainWithLogScale(e)}:{valid:!0}:{valid:!1,reason:is.unaggregateDomainHasNoEffectForRawField(e)}}function Kh(e,t,n,i){return e.explicit&&t.explicit&&as(is.mergeConflictingDomainProperty(n,i,e.value,t.value)),{explicit:e.explicit,value:[...e.value,...t.value]}}function em(e){if(Wa(e)&&s(e.field))return e.field;if(function(e){return!o(e)&&("fields"in e&&!("data"in e))}(e)){let t;for(const n of e.fields)if(Wa(n)&&s(n.field))if(t){if(t!==n.field)return as("Detected faceted independent scales that union domain of multiple fields from different data sources. We will use the first field. The result view size may be incorrect."),t}else t=n.field;return as("Detected faceted independent scales that union domain of identical fields from different source detected. We will assume that this is the same field from a different fork of the same data source. However, if this is not case, the result view size maybe incorrect."),t}if(function(e){return!o(e)&&("fields"in e&&"data"in e)}(e)){as("Detected faceted independent scales that union domain of multiple fields from the same data source. We will use the first field. The result view size may be incorrect.");const t=e.fields[0];return s(t)?t:void 0}}function tm(e,t){return function(e){const t=to(e.map(e=>{if(Wa(e)){return w(e,["sort"])}return e}),Xr),n=to(e.map(e=>{if(Wa(e)){const t=e.sort;return void 0===t||so(t)||("op"in t&&"count"===t.op&&delete t.field,"ascending"===t.order&&delete t.order),t}}).filter(e=>void 0!==e),Xr);if(0===t.length)return;if(1===t.length){const t=e[0];if(Wa(t)&&n.length>0){let e=n[0];if(n.length>1)as(is.MORE_THAN_ONE_SORT),e=!0;else if(a(e)&&"field"in e){const n=e.field;t.field===n&&(e=!e.order||{order:e.order})}return Object.assign(Object.assign({},t),{sort:e})}return t}const i=to(n.map(e=>so(e)||!("op"in e)||e.op in Ro?e:(as(is.domainSortDropped(e)),!0)),Xr);let r;1===i.length?r=i[0]:i.length>1&&(as(is.MORE_THAN_ONE_SORT),r=!0);const o=to(e.map(e=>Wa(e)?e.data:null),e=>e);if(1===o.length&&null!==o[0]){return Object.assign({data:o[0],fields:t.map(e=>e.field)},r?{sort:r}:{})}return Object.assign({fields:t},r?{sort:r}:{})}(e.component.scales[t].get("domains").map(t=>(Wa(t)&&(t.data=e.lookupDataSource(t.data)),t)))}function nm(e){return oo(e.component.scales).reduce((t,n)=>{const i=e.component.scales[n];if(i.merged)return t;const r=i.combine(),{name:o,type:a,selectionExtent:s,domains:u,range:c,reverse:l}=r,f=w(r,["name","type","selectionExtent","domains","range","reverse"]),d=function(e,t,n){if(("x"===n||"y"===n)&&Ia(e))return{step:{signal:t+"_step"}};return e}(r.range,o,n);let g;s&&(g=function(e,t){const n=t.selection;return{signal:qg(e.getSelectionComponent(n,uo(n)),t)}}(e,s));const p=tm(e,n);return t.push(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:o,type:a},p?{domain:p}:{}),g?{domainRaw:g}:{}),{range:d}),void 0!==l?{reverse:l}:{}),f)),t},[])}class im extends jp{constructor(e,t){super({},{name:e}),this.merged=!1,this.setWithExplicit("type",t)}domainDefinitelyIncludesZero(){return!1!==this.get("zero")||Zr(this.get("domains"),e=>o(e)&&2===e.length&&e[0]<=0&&e[1]>=0)}}const rm=["range","scheme"];function om(e){return"x"===e?"width":"y"===e?"height":void 0}function am(e){const t=e.component.scales;Ba.forEach(n=>{const i=t[n];if(!i)return;const r=function(e,t){const n=t.specifiedScales[e],{size:i}=t,r=t.getScaleComponent(e).get("type");for(const t of rm)if(void 0!==n[t]){const i=su(r,t),o=uu(e,t);if(i)if(o)as(o);else switch(t){case"range":return kp(n[t]);case"scheme":return kp(um(n[t]))}else as(is.scalePropertyNotWorkWithScaleType(r,t,e))}if(e===Jo||e===Qo){const t=e===Jo?"width":"height",n=i[t];if(tl(n)){if(eu(r))return kp({step:n.step});as(is.stepDropped(t))}}return Ep(function(e,t){const{size:n,config:i,mark:r}=t,a=t.getSignalName.bind(t),{type:s}=t.fieldDef(e),u=t.getScaleComponent(e).get("type"),{domain:c,domainMid:l}=t.specifiedScales[e];switch(e){case Jo:case Qo:{if(Qr(["point","band"],u))if(e!==Jo||n.width){if(e===Qo&&!n.height){const e=al(i.view,"height");if(tl(e))return e}}else{const e=al(i.view,"width");if(tl(e))return e}const r=om(e),o=t.getName(r);return e===Qo&&tu(u)?[Hh.fromName(a,o),0]:[0,Hh.fromName(a,o)]}case ra:{const a=t.component.scales[e].get("zero"),s=function e(t,n,i){if(n)return qa(n)?{signal:`${n.signal} ? 0 : ${e(t,!1,i)}`}:0;switch(t){case"bar":case"tick":return i.scale.minBandSize;case"line":case"trail":case"rule":return i.scale.minStrokeWidth;case"text":return i.scale.minFontSize;case"point":case"square":case"circle":return i.scale.minSize}throw new Error(is.incompatibleChannel("size",t))}(r,a,i),l=function(e,t,n,i){const r={x:sm(n,"x"),y:sm(n,"y")};switch(e){case"bar":case"tick":{if(void 0!==i.scale.maxBandSize)return i.scale.maxBandSize;const e=cm(t,r,i.view);return y(e)?e-1:new Hh(()=>`${e.signal} - 1`)}case"line":case"trail":case"rule":return i.scale.maxStrokeWidth;case"text":return i.scale.maxFontSize;case"point":case"square":case"circle":{if(i.scale.maxSize)return i.scale.maxSize;const e=cm(t,r,i.view);return y(e)?Math.pow(.95*e,2):new Hh(()=>`pow(0.95 * ${e.signal}, 2)`)}}throw new Error(is.incompatibleChannel("size",e))}(r,n,t,i);return iu(u)?function(e,t,n){const i=()=>{const i=qa(t)?t.signal:t,r=qa(e)?e.signal:e,o=`(${i} - ${r}) / (${n} - 1)`;return`sequence(${r}, ${i} + ${o}, ${o})`};return qa(t)?new Hh(i):{signal:i()}}(s,l,function(e,t,n,i){switch(e){case"quantile":return t.scale.quantileCount;case"quantize":return t.scale.quantizeCount;case"threshold":return void 0!==n&&o(n)?n.length+1:(as(is.domainRequiredForThresholdScale(i)),3)}}(u,i,c,e)):[s,l]}case ua:return[i.scale.minStrokeWidth,i.scale.maxStrokeWidth];case ca:return[[1,0],[4,2],[2,1],[1,1],[1,2,4,2]];case ia:return"symbol";case ea:case ta:case na:return"ordinal"===u?"nominal"===s?"category":"ordinal":void 0!==l?"diverging":"rect"===r||"geoshape"===r?"heatmap":"ramp";case oa:case aa:case sa:return[i.scale.minOpacity,i.scale.maxOpacity]}throw new Error(`Scale range undefined for channel ${e}`)}(e,t))}(n,e);i.setWithExplicit("range",r)})}function sm(e,t){const n=e.fieldDef(t);if(n&&n.bin&&cc(n.bin)){const i=ah(e,n.field,n.bin),r=om(t),o=e.getName(r);return new Hh(()=>{const t=e.getSignalName(i),n=`(${t}.stop - ${t}.start) / ${t}.step`;return`${e.getSignalName(o)} / (${n})`})}}function um(e){return function(e){return!s(e)&&!!e.name}(e)?Object.assign({scheme:e.name},Yr(e,["name"])):{scheme:e}}function cm(e,t,n){const i=tl(e.width)?e.width.step:ol(n,"width"),r=tl(e.height)?e.height.step:ol(n,"height");return t.x||t.y?new Hh(()=>`min(${[t.x?t.x.signal:i,t.y?t.y.signal:r].join(", ")})`):Math.min(i,r)}function lm(e,t){bm(e)?function(e,t){const n=e.component.scales;oo(n).forEach(i=>{const r=e.specifiedScales[i],a=n[i],s=e.getScaleComponent(i),u=e.fieldDef(i),c=e.config,l=r[t],f=s.get("type"),d=su(f,t),g=uu(i,t);if(void 0!==l&&(d?g&&as(g):as(is.scalePropertyNotWorkWithScaleType(f,t,i))),d&&void 0===g)if(void 0!==l)a.copyKeyFromObject(t,r);else{const n=function(e,t,n,i,r,a,s,u,c,l){const f=l.scale,{type:d,sort:g}=i;switch(e){case"bins":return function(e,t){const n=t.bin;if(cc(n)){const i=ah(e,t.field,n);return new Hh(()=>e.getSignalName(i))}if(lc(n)&&fc(n)&&void 0!==n.step)return{step:n.step};return}(t,i);case"interpolate":return function(e,t){if(Qr([ea,ta,na],e)&&"nominal"!==t)return"hcl";return}(n,d);case"nice":return function(e,t,n){if(n.bin||Qr([Rs.TIME,Rs.UTC],e))return;return!!Qr([Jo,Qo],t)||void 0}(r,n,i);case"padding":return function(e,t,n,i,r,o){if(Qr([Jo,Qo],e)){if(nu(t)){if(void 0!==n.continuousPadding)return n.continuousPadding;const{type:t,orient:a}=r;if("bar"===t&&!i.bin&&!i.timeUnit&&("vertical"===a&&"x"===e||"horizontal"===a&&"y"===e))return o.continuousBandSize}if(t===Rs.POINT)return n.pointPadding}return}(n,r,f,i,c,l.bar);case"paddingInner":return function(e,t,n,i){if(void 0!==e)return;if(Qr([Jo,Qo],t)){const{bandPaddingInner:e,barBandPaddingInner:t,rectBandPaddingInner:r}=i;return vo(e,"bar"===n?t:r)}return}(a,n,c.type,f);case"paddingOuter":return function(e,t,n,i,r,o){if(void 0!==e)return;if(Qr([Jo,Qo],t)&&n===Rs.BAND){const{bandPaddingOuter:e}=o;return vo(e,qa(r)?{signal:`${r.signal}/2`}:r/2)}return}(a,n,r,c.type,s,f);case"reverse":return function(e,t,n,i){const r=tu(e)&&"descending"===t;if("x"===n&&void 0!==i.xReverse)return r?qa(i.xReverse)?{signal:`!${i.xReverse.signal}`}:!i.xReverse:i.xReverse;if(r)return!0;return}(r,g,n,f);case"zero":return function(e,t,n,i,r){if(n&&"unaggregated"!==n&&tu(r)){if(o(n)){const e=n[0],t=n[n.length-1];if(e<=0&&t>=0)return!0}return!1}if("size"===e&&"quantitative"===t.type&&!iu(r))return!0;if(!t.bin&&Qr([Jo,Qo],e)){const{orient:t,type:n}=i;return!Qr(["bar","area","line","trail"],n)||!("horizontal"===t&&"y"===e||"vertical"===t&&"x"===e)}return!1}(n,i,u,c,r)}return f[e]}(t,e,i,u,s.get("type"),s.get("padding"),s.get("paddingInner"),r.domain,e.markDef,c);void 0!==n&&a.set(t,n,!1)}})}(e,t):dm(e,t)}function fm(e){bm(e)?am(e):dm(e,"range")}function dm(e,t){const n=e.component.scales;for(const n of e.children)"range"===t?fm(n):lm(n,t);oo(n).forEach(i=>{let r;for(const n of e.children){const e=n.component.scales[i];if(e){r=Np(r,e.getWithExplicit(t),t,"scale",Sp((e,n)=>{switch(t){case"range":return e.step&&n.step?e.step-n.step:0}return 0}))}}n[i].setWithExplicit(t,r)})}function gm(e,t,n,i){const r=function(e,t,n){switch(t.type){case"nominal":case"ordinal":return ga(e)||"discrete"===Pa(e)?("shape"===e&&"ordinal"===t.type&&as(is.discreteChannelCannotEncode(e,"ordinal")),"ordinal"):Qr(["x","y"],e)&&Qr(["rect","bar","image","rule"],n)?"band":"point";case"temporal":return ga(e)?"time":"discrete"===Pa(e)?(as(is.discreteChannelCannotEncode(e,"temporal")),"ordinal"):t.timeUnit&&Ds(t.timeUnit).utc?"utc":"time";case"quantitative":return ga(e)?cc(t.bin)?"bin-ordinal":"linear":"discrete"===Pa(e)?(as(is.discreteChannelCannotEncode(e,"quantitative")),"ordinal"):"linear";case"geojson":return}throw new Error(is.invalidFieldType(t.type))}(t,n,i),{type:o}=e;return _a(t)?void 0!==o?lu(t,o)?cu(o,n.type)?o:(as(is.scaleTypeNotWorkWithFieldDef(o,r)),r):(as(is.scaleTypeNotWorkWithChannel(t,o,r)),r):r:null}function pm(e){bm(e)?e.component.scales=function(e){const{encoding:t,mark:n}=e;return Ba.reduce((i,r)=>{let o,a;const s=t[r];if(Bu(s)&&"geoshape"===n&&r===ia&&"geojson"===s.type)return i;if(Bu(s)?(o=s,a=s.scale):Mu(s)&&(o=s.condition,a=s.condition.scale),o&&null!==a&&!1!==a){a=null!=a?a:{};const t=gm(a,r,o,n);i[r]=new im(e.scaleName(r+"",!0),{value:t,explicit:a.type===t})}return i},{})}(e):e.component.scales=function(e){const t=e.component.scales={},n={},i=e.component.resolve;for(const t of e.children)pm(t),oo(t.component.scales).forEach(r=>{var o;if(i.scale[r]=null!==(o=i.scale[r])&&void 0!==o?o:Fp(r,e),"shared"===i.scale[r]){const e=n[r],o=t.component.scales[r].getWithExplicit("type");e?Ws(e.value,o.value)?n[r]=Np(e,o,"type","scale",hm):(i.scale[r]="independent",delete n[r]):n[r]=o}});for(const i of oo(n)){const r=e.scaleName(i,!0),o=n[i];t[i]=new im(r,o);for(const t of e.children){const e=t.component.scales[i];e&&(t.renameScale(e.get("name"),r),e.merged=!0)}}return t}(e)}const hm=Sp((e,t)=>Gs(e)-Gs(t));class mm{constructor(){this.nameMap={}}rename(e,t){this.nameMap[e]=t}has(e){return void 0!==this.nameMap[e]}get(e){for(;this.nameMap[e]&&e!==this.nameMap[e];)e=this.nameMap[e];return e}}function bm(e){return"unit"===(null==e?void 0:e.type)}function vm(e){return"facet"===(null==e?void 0:e.type)}function ym(e){return"repeat"===(null==e?void 0:e.type)}function xm(e){return"concat"===(null==e?void 0:e.type)}function wm(e){return"layer"===(null==e?void 0:e.type)}class Am{constructor(e,t,n,i,r,a,s,u){var c,l;this.type=t,this.parent=n,this.config=r,this.repeater=a,this.view=u,this.children=[],this.correctDataNames=e=>(e.from&&e.from.data&&(e.from.data=this.lookupDataSource(e.from.data)),e.from&&e.from.facet&&e.from.facet.data&&(e.from.facet.data=this.lookupDataSource(e.from.facet.data)),e),this.parent=n,this.config=r,this.repeater=a,this.name=null!==(c=e.name)&&void 0!==c?c:i,this.title=Ra(e.title)?{text:e.title}:e.title,this.scaleNameMap=n?n.scaleNameMap:new mm,this.projectionNameMap=n?n.projectionNameMap:new mm,this.signalNameMap=n?n.signalNameMap:new mm,this.data=e.data,this.description=e.description,this.transforms=(null!==(l=e.transform)&&void 0!==l?l:[]).map(e=>Gl(e)?{filter:Ir(e.filter,Ps)}:e),this.layout="layer"===t||"unit"===t?{}:function(e,t,n){var i,r;const a=n[t],s={},{spacing:u,columns:c}=a;void 0!==u&&(s.spacing=u),void 0!==c&&(ju(e)&&!Du(e.facet)||el(e)&&o(e.repeat)||Qc(e))&&(s.columns=c),Zc(e)&&(s.columns=1);for(const t of il)if(void 0!==e[t])if("spacing"===t){const n=e[t];s[t]=y(n)?n:{row:null!==(i=n.row)&&void 0!==i?i:u,column:null!==(r=n.column)&&void 0!==r?r:u}}else s[t]=e[t];return s}(e,t,r),this.component={data:{sources:n?n.component.data.sources:[],outputNodes:n?n.component.data.outputNodes:{},outputNodeRefCounts:n?n.component.data.outputNodeRefCounts:{},isFaceted:ju(e)||n&&n.component.data.isFaceted&&void 0===e.data},layoutSize:new jp,layoutHeaders:{row:{},column:{},facet:{}},mark:null,resolve:Object.assign({scale:{},axis:{},legend:{}},s?Hr(s):{}),selection:null,scales:null,projection:null,axes:{},legends:{}}}get width(){return this.getSizeSignalRef("width")}get height(){return this.getSizeSignalRef("height")}parse(){this.parseScale(),this.parseLayoutSize(),this.renameTopLevelLayoutSizeSignal(),this.parseSelections(),this.parseProjection(),this.parseData(),this.parseAxesAndHeaders(),this.parseLegends(),this.parseMarkGroup()}parseScale(){!function(e,{ignoreRange:t}={}){pm(e),Gh(e);for(const t of au)lm(e,t);t||fm(e)}(this)}parseProjection(){rh(this)}renameTopLevelLayoutSizeSignal(){"width"!==this.getName("width")&&this.renameSignal(this.getName("width"),"width"),"height"!==this.getName("height")&&this.renameSignal(this.getName("height"),"height")}parseLegends(){Gp(this)}assembleGroupStyle(){var e,t;if("unit"===this.type||"layer"===this.type)return null!==(t=null===(e=this.view)||void 0===e?void 0:e.style)&&void 0!==t?t:"cell"}assembleEncodeFromView(e){const t=w(e,["style"]),n={};for(const e of oo(t)){const i=t[e];void 0!==i&&(n[e]=Ya(i))}return n}assembleGroupEncodeEntry(e){let t=void 0;return this.view&&(t=this.assembleEncodeFromView(this.view)),e||"unit"!==this.type&&"layer"!==this.type?t:Object.assign({width:this.getSizeSignalRef("width"),height:this.getSizeSignalRef("height")},null!=t?t:{})}assembleLayout(){if(!this.layout)return;const e=this.layout,{spacing:t}=e,n=w(e,["spacing"]),{component:i,config:r}=this,o=function(e,t){const n={};for(const i of ha){const r=e[i];if(null==r?void 0:r.facetFieldDef){const{titleAnchor:e,titleOrient:o}=ap(["titleAnchor","titleOrient"],r.facetFieldDef,t,i),a=rp(i,o),s=bp(e,a);void 0!==s&&(n[a]=s)}}return oo(n).length>0?n:void 0}(i.layoutHeaders,r);return Object.assign(Object.assign(Object.assign({padding:t},this.assembleDefaultLayout()),n),o?{titleBand:o}:{})}assembleDefaultLayout(){return{}}assembleHeaderMarks(){const{layoutHeaders:e}=this.component;let t=[];for(const n of ha)e[n].title&&t.push(cp(this,n));for(const e of sp)t=t.concat(dp(this,e));return t}assembleAxes(){return function(e,t){const{x:n=[],y:i=[]}=e;return[...n.map(e=>Gg(e,"grid",t)),...i.map(e=>Gg(e,"grid",t)),...n.map(e=>Gg(e,"main",t)),...i.map(e=>Gg(e,"main",t))].filter(e=>e)}(this.component.axes,this.config)}assembleLegends(){return Zp(this)}assembleProjections(){return eh(this)}assembleTitle(){var e,t,n;const i=null!==(e=this.title)&&void 0!==e?e:{},{encoding:r}=i,o=w(i,["encoding"]),a=Object.assign(Object.assign(Object.assign({},La(this.config.title).nonMark),o),r?{encode:{update:r}}:{});if(a.text)return Qr(["unit","layer"],this.type)?Qr(["middle",void 0],a.anchor)&&(a.frame=null!==(t=a.frame)&&void 0!==t?t:"group"):a.anchor=null!==(n=a.anchor)&&void 0!==n?n:"start",oo(a).length>0?a:void 0}assembleGroup(e=[]){const t={};(e=e.concat(this.assembleSignals())).length>0&&(t.signals=e);const n=this.assembleLayout();n&&(t.layout=n),t.marks=[].concat(this.assembleHeaderMarks(),this.assembleMarks());const i=!this.parent||vm(this.parent)?function e(t){return wm(t)||xm(t)||ym(t)?t.children.reduce((t,n)=>t.concat(e(n)),nm(t)):nm(t)}(this):[];i.length>0&&(t.scales=i);const r=this.assembleAxes();r.length>0&&(t.axes=r);const o=this.assembleLegends();return o.length>0&&(t.legends=o),t}getName(e){return uo((this.name?this.name+"_":"")+e)}requestDataName(e){var t;const n=this.getName(e),i=this.component.data.outputNodeRefCounts;return i[n]=(null!==(t=i[n])&&void 0!==t?t:0)+1,n}getSizeSignalRef(e){if(vm(this.parent)){const t=Sa(Op(e)),n=this.component.scales[t];if(n&&!n.merged){const e=n.get("type"),i=n.get("range");if(eu(e)&&Ia(i)){const e=n.get("name"),i=em(tm(this,t));if(i){return{signal:Ap(e,n,Ru({aggregate:"distinct",field:i},{expr:"datum"}))}}return as(`Unknown field for ${t}. Cannot calculate view size.`),null}}}return{signal:this.signalNameMap.get(this.getName(e))}}lookupDataSource(e){const t=this.component.data.outputNodes[e];return t?t.getSource():e}getSignalName(e){return this.signalNameMap.get(e)}renameSignal(e,t){this.signalNameMap.rename(e,t)}renameScale(e,t){this.scaleNameMap.rename(e,t)}renameProjection(e,t){this.projectionNameMap.rename(e,t)}scaleName(e,t){return t?this.getName(e):xa(e)&&_a(e)&&this.component.scales[e]||this.scaleNameMap.has(this.getName(e))?this.scaleNameMap.get(this.getName(e)):void 0}projectionName(e){return e?this.getName("projection"):this.component.projection&&!this.component.projection.merged||this.projectionNameMap.has(this.getName("projection"))?this.projectionNameMap.get(this.getName("projection")):void 0}getScaleComponent(e){if(!this.component.scales)throw new Error("getScaleComponent cannot be called before parseScale(). Make sure you have called parseScale or use parseUnitModelWithScale().");const t=this.component.scales[e];return t&&!t.merged?t:this.parent?this.parent.getScaleComponent(e):void 0}getSelectionComponent(e,t){let n=this.component.selection[e];if(!n&&this.parent&&(n=this.parent.getSelectionComponent(e,t)),!n)throw new Error(is.selectionNotFound(t));return n}}class Om extends Am{vgField(e,t={}){const n=this.fieldDef(e);if(n)return Ru(n,t)}reduceFieldDef(e,t){return xc(this.getMapping(),(t,n,i)=>{const r=Qu(n);return r?e(t,r,i):t},t)}forEachFieldDef(e,t){yc(this.getMapping(),(t,n)=>{const i=Qu(t);i&&e(i,n)},t)}}class Cm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:"value",null!==(r=o[1])&&void 0!==r?r:"density"]}clone(){return new Cm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.density,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`DensityTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{density:t}=e,n=w(e,["density"]);return Object.assign({type:"kde",field:t},n)}}class Fm extends ed{constructor(e,t){super(e),this.filter=t}clone(){return new Fm(null,Object.assign({},this.filter))}static make(e,t){const{config:n,mark:i,markDef:r}=t;if("filter"!==Xa("invalid",r,n))return null;const o=t.reduceFieldDef((e,n,r)=>{const o=_a(r)&&t.getScaleComponent(r);if(o){tu(o.get("type"))&&"count"!==n.aggregate&&!Eo(i)&&(e[n.field]=n)}return e},{});return oo(o).length?new Fm(e,o):null}dependentFields(){return new Set(oo(this.filter))}producedFields(){return new Set}hash(){return`FilterInvalid ${Xr(this.filter)}`}assemble(){const e=oo(this.filter).reduce((e,t)=>{const n=this.filter[t],i=Ru(n,{expr:"datum"});return null!==n&&("temporal"===n.type?e.push(`(isDate(${i}) || (isValid(${i}) && isFinite(+${i})))`):"quantitative"===n.type&&(e.push(`isValid(${i})`),e.push(`isFinite(+${i})`))),e},[]);return e.length>0?{type:"filter",expr:e.join(" && ")}:null}}class Dm extends ed{constructor(e,t){super(e),this.transform=t,this.transform=Hr(t);const{flatten:n,as:i=[]}=this.transform;this.transform.as=n.map((e,t)=>{var n;return null!==(n=i[t])&&void 0!==n?n:e})}clone(){return new Dm(this.parent,Hr(this.transform))}dependentFields(){return new Set(this.transform.flatten)}producedFields(){return new Set(this.transform.as)}hash(){return`FlattenTransform ${Xr(this.transform)}`}assemble(){const{flatten:e,as:t}=this.transform;return{type:"flatten",fields:e,as:t}}}class jm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:"key",null!==(r=o[1])&&void 0!==r?r:"value"]}clone(){return new jm(null,Hr(this.transform))}dependentFields(){return new Set(this.transform.fold)}producedFields(){return new Set(this.transform.as)}hash(){return`FoldTransform ${Xr(this.transform)}`}assemble(){const{fold:e,as:t}=this.transform;return{type:"fold",fields:e,as:t}}}class km extends ed{constructor(e,t,n,i){super(e),this.fields=t,this.geojson=n,this.signal=i}clone(){return new km(null,Hr(this.fields),this.geojson,this.signal)}static parseAll(e,t){if(t.component.projection&&!t.component.projection.isFit)return e;let n=0;for(const i of[["longitude","latitude"],["longitude2","latitude2"]]){const r=i.map(e=>t.channelHasField(e)?t.fieldDef(e).field:zu(t.encoding[e])?{expr:t.encoding[e].value+""}:void 0);(r[0]||r[1])&&(e=new km(e,r,null,t.getName(`geojson_${n++}`)))}if(t.channelHasField(ia)){const i=t.fieldDef(ia);"geojson"===i.type&&(e=new km(e,null,i.field,t.getName(`geojson_${n++}`)))}return e}dependentFields(){var e;const t=(null!==(e=this.fields)&&void 0!==e?e:[]).filter(s);return new Set([...this.geojson?[this.geojson]:[],...t])}producedFields(){return new Set}hash(){return`GeoJSON ${this.geojson} ${this.signal} ${Xr(this.fields)}`}assemble(){return Object.assign(Object.assign(Object.assign({type:"geojson"},this.fields?{fields:this.fields}:{}),this.geojson?{geojson:this.geojson}:{}),{signal:this.signal})}}class Em extends ed{constructor(e,t,n,i){super(e),this.projection=t,this.fields=n,this.as=i}clone(){return new Em(null,this.projection,Hr(this.fields),Hr(this.as))}static parseAll(e,t){if(!t.projectionName())return e;for(const n of[["longitude","latitude"],["longitude2","latitude2"]]){const i=n.map(e=>t.channelHasField(e)?t.fieldDef(e).field:zu(t.encoding[e])?{expr:t.encoding[e].value+""}:void 0),r="longitude2"===n[0]?"2":"";(i[0]||i[1])&&(e=new Em(e,t.projectionName(),i,[t.getName("x"+r),t.getName("y"+r)]))}return e}dependentFields(){return new Set(this.fields.filter(s))}producedFields(){return new Set(this.as)}hash(){return`Geopoint ${this.projection} ${Xr(this.fields)} ${Xr(this.as)}`}assemble(){return{type:"geopoint",projection:this.projection,fields:this.fields,as:this.as}}}class Sm extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Sm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.impute,this.transform.key,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set([this.transform.impute])}processSequence(e){const{start:t=0,stop:n,step:i}=e;return{signal:`sequence(${[t,n,...i?[i]:[]].join(",")})`}}static makeFromTransform(e,t){return new Sm(e,t)}static makeFromEncoding(e,t){const n=t.encoding,i=n.x,r=n.y;if(Bu(i)&&Bu(r)){const o=i.impute?i:r.impute?r:void 0;if(void 0===o)return;const a=i.impute?r:r.impute?i:void 0,{method:s,value:u,frame:c,keyvals:l}=o.impute,f=wc(t.mark,n);return new Sm(e,Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({impute:o.field,key:a.field},s?{method:s}:{}),void 0!==u?{value:u}:{}),c?{frame:c}:{}),void 0!==l?{keyvals:l}:{}),f.length?{groupby:f}:{}))}return null}hash(){return`Impute ${Xr(this.transform)}`}assemble(){const{impute:e,key:t,keyvals:n,method:i,groupby:r,value:o,frame:a=[null,null]}=this.transform,s=Object.assign(Object.assign(Object.assign(Object.assign({type:"impute",field:e,key:t},n?{keyvals:(u=n,void 0!==(null==u?void 0:u.stop)?this.processSequence(n):n)}:{}),{method:"value"}),r?{groupby:r}:{}),{value:i&&"value"!==i?null:o});var u;if(i&&"value"!==i){return[s,Object.assign({type:"window",as:[`imputed_${e}_value`],ops:[i],fields:[e],frame:a,ignorePeers:!1},r?{groupby:r}:{}),{type:"formula",expr:`datum.${e} === null ? datum.imputed_${e}_value : datum.${e}`,as:e}]}return[s]}}class $m extends jp{constructor(e={},t={},n=!1){super(e,t),this.explicit=e,this.implicit=t,this.parseNothing=n}clone(){const e=super.clone();return e.parseNothing=this.parseNothing,e}}class Nm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:t.on,null!==(r=o[1])&&void 0!==r?r:t.loess]}clone(){return new Nm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.loess,this.transform.on,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`LoessTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{loess:t,on:n}=e,i=w(e,["loess","on"]);return Object.assign({type:"loess",x:n,y:t},i)}}class Mm extends ed{constructor(e,t,n){super(e),this.transform=t,this.secondary=n}clone(){return new Mm(null,Hr(this.transform),this.secondary)}static make(e,t,n,i){const r=t.component.data.sources,{from:o}=n;let a=null;if(function(e){return void 0!==e.data}(o)){let e=eb(o.data,r);e||(e=new ch(o.data),r.push(e));const n=t.getName(`lookup_${i}`);a=new td(e,n,"lookup",t.component.data.outputNodeRefCounts),t.component.data.outputNodes[n]=a}else if(function(e){return void 0!==e.selection}(o)){const e=o.selection;if(n=Object.assign({as:e},n),a=t.getSelectionComponent(uo(e),e).materialized,!a)throw new Error(is.noSameUnitLookup(e))}return new Mm(e,n,a.getSource())}dependentFields(){return new Set([this.transform.lookup])}producedFields(){return new Set(this.transform.as?h(this.transform.as):this.transform.from.fields)}hash(){return`Lookup ${Xr({transform:this.transform,secondary:this.secondary})}`}assemble(){let e;if(this.transform.from.fields)e=Object.assign({values:this.transform.from.fields},this.transform.as?{as:h(this.transform.as)}:{});else{let t=this.transform.as;s(t)||(as(is.NO_FIELDS_NEEDS_AS),t="_lookup"),e={as:[t]}}return Object.assign(Object.assign({type:"lookup",from:this.secondary,key:this.transform.from.key,fields:[this.transform.lookup]},e),this.transform.default?{default:this.transform.default}:{})}}class Bm extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:"prob",null!==(r=o[1])&&void 0!==r?r:"value"]}clone(){return new Bm(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.quantile,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`QuantileTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{quantile:t}=e,n=w(e,["quantile"]);return Object.assign({type:"quantile",field:t},n)}}class _m extends ed{constructor(e,t){var n,i,r;super(e),this.transform=t,this.transform=Hr(t);const o=null!==(n=this.transform.as)&&void 0!==n?n:[void 0,void 0];this.transform.as=[null!==(i=o[0])&&void 0!==i?i:t.on,null!==(r=o[1])&&void 0!==r?r:t.regression]}clone(){return new _m(null,Hr(this.transform))}dependentFields(){var e;return new Set([this.transform.regression,this.transform.on,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}producedFields(){return new Set(this.transform.as)}hash(){return`RegressionTransform ${Xr(this.transform)}`}assemble(){const e=this.transform,{regression:t,on:n}=e,i=w(e,["regression","on"]);return Object.assign({type:"regression",x:n,y:t},i)}}class Tm extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new Tm(null,Hr(this.transform))}addDimensions(e){var t;this.transform.groupby=to((null!==(t=this.transform.groupby)&&void 0!==t?t:[]).concat(e),e=>e)}producedFields(){}dependentFields(){var e;return new Set([this.transform.pivot,this.transform.value,...null!==(e=this.transform.groupby)&&void 0!==e?e:[]])}hash(){return`PivotTransform ${Xr(this.transform)}`}assemble(){const{pivot:e,value:t,groupby:n,limit:i,op:r}=this.transform;return Object.assign(Object.assign(Object.assign({type:"pivot",field:e,value:t},void 0!==i?{limit:i}:{}),void 0!==r?{op:r}:{}),void 0!==n?{groupby:n}:{})}}class zm extends ed{constructor(e,t){super(e),this.transform=t}clone(){return new zm(null,Hr(this.transform))}dependentFields(){return new Set}producedFields(){return new Set}hash(){return`SampleTransform ${Xr(this.transform)}`}assemble(){return{type:"sample",size:this.transform.sample}}}function Um(e){let t=0;return function n(i,r){var o;if(i instanceof ch&&!i.isGenerator&&!Ul(i.data)){e.push(r),r={name:null,source:r.name,transform:[]}}if(i instanceof Oh&&(i.parent instanceof ch&&!r.source?(r.format=Object.assign(Object.assign({},null!==(o=r.format)&&void 0!==o?o:{}),{parse:i.assembleFormatParse()}),r.transform.push(...i.assembleTransforms(!0))):r.transform.push(...i.assembleTransforms())),i instanceof yh)return r.name||(r.name=`data_${t++}`),!r.source||r.transform.length>0?(e.push(r),i.data=r.name):i.data=r.source,void i.assemble().forEach(t=>e.push(t));if((i instanceof fh||i instanceof dh||i instanceof Fm||i instanceof Lg||i instanceof np||i instanceof Em||i instanceof km||i instanceof vh||i instanceof Mm||i instanceof Dh||i instanceof Ch||i instanceof jm||i instanceof Dm||i instanceof Cm||i instanceof Nm||i instanceof Bm||i instanceof _m||i instanceof jh||i instanceof zm||i instanceof Tm)&&r.transform.push(i.assemble()),(i instanceof uh||i instanceof nd||i instanceof Sm||i instanceof Fh)&&r.transform.push(...i.assemble()),i instanceof td)if(r.source&&0===r.transform.length)i.setSource(r.source);else if(i.parent instanceof td)i.setSource(r.name);else if(r.name||(r.name=`data_${t++}`),i.setSource(r.name),1===i.numChildren()){e.push(r),r={name:null,source:r.name,transform:[]}}switch(i.numChildren()){case 0:i instanceof td&&(!r.source||r.transform.length>0)&&e.push(r);break;case 1:n(i.children[0],r);break;default:{r.name||(r.name=`data_${t++}`);let o=r.name;!r.source||r.transform.length>0?e.push(r):o=r.source,i.children.forEach(e=>{n(e,{name:null,source:o,transform:[]})});break}}}}function Pm(e){return"top"===e||"left"===e?"header":"footer"}function Lm(e,t){var n;if(e.channelHasField(t)){const i=e.facet[t],r=op("title",null,e.config,t);let a=Yu(i,e.config,{allowDisabling:!0,includeDefault:void 0===r||!!r});e.child.component.layoutHeaders[t].title&&(a=o(a)?a.join(", "):a,a+=" / "+e.child.component.layoutHeaders[t].title,e.child.component.layoutHeaders[t].title=null);const s=op("labelOrient",i,e.config,t),u=vo((null!==(n=i.header)&&void 0!==n?n:{}).labels,!0),c=Qr(["bottom","right"],s)?"footer":"header";e.component.layoutHeaders[t]={title:a,facetFieldDef:i,[c]:"facet"===t?[]:[Rm(e,t,u)]}}}function Rm(e,t,n){const i="row"===t?"height":"width";return{labels:n,sizeSignal:e.child.component.layoutSize.get(i)?e.child.getSizeSignalRef(i):void 0,axes:[]}}function qm(e,t){var n;const{child:i}=e;if(i.component.axes[t]){const{layoutHeaders:r,resolve:o}=e.component;if(o.axis[t]=Dp(o,t),"shared"===o.axis[t]){const o="x"===t?"column":"row",a=r[o];for(const r of i.component.axes[t]){const t=Pm(r.get("orient"));a[t]=null!==(n=a[t])&&void 0!==n?n:[Rm(e,o,!1)];const i=Gg(r,"main",e.config,{header:!0});a[t][0].axes.push(i),r.mainExtracted=!0}}}}const Im=Wm;function Wm(e){Hm(e);const t=1===e.layout.columns?"width":"childWidth",n=void 0===e.layout.columns?"height":"childHeight";Gm(e,t),Gm(e,n)}function Hm(e){for(const t of e.children)t.parseLayoutSize()}function Gm(e,t){const n=Op(t),i=Sa(n),r=e.component.resolve,o=e.component.layoutSize;let a;for(const t of e.children){const e=t.component.layoutSize.getWithExplicit(n),o=r.scale[i];if("independent"===o&&"step"===e.value){a=void 0;break}if(a){if("independent"===o&&a.value!==e.value){a=void 0;break}a=Np(a,e,n,"")}else a=e}if(a){for(const i of e.children)e.renameSignal(i.getName(n),e.getName(t)),i.component.layoutSize.set(n,"merged",!1);o.setWithExplicit(t,a)}else o.setWithExplicit(t,{explicit:!1,value:void 0})}function Ym(e,t){const n="width"===t?"x":"y",i=e.config,r=e.getScaleComponent(n);if(r){const e=r.get("type"),n=r.get("range");if(eu(e)){const e=al(i.view,t);return Ia(n)||tl(e)?"step":e}return rl(i.view,t)}if(e.hasProjection)return rl(i.view,t);{const e=al(i.view,t);return tl(e)?e.step:e}}function Vm(e,t){return function(e){return e&&!s(e)&&"repeat"in e}(e.field)?e.field.repeat in t?Object.assign(Object.assign({},e),{field:t[e.field.repeat]}):void as(is.noSuchRepeatedValue(e.field.repeat)):e}function Xm(e,t){if(void 0!==(e=Vm(e,t))){if(null===e)return null;if(Eu(e)&&Cu(e.sort)){const n=Vm(e.sort,t);e=Object.assign(Object.assign({},e),n?{sort:n}:{})}return e}}function Jm(e,t){if(!Bu(e)){if(Mu(e)){const n=Xm(e.condition,t);if(n)return Object.assign(Object.assign({},e),{condition:n});return w(e,["condition"])}return e}{const n=Xm(e,t);if(n)return n;if(Nu(e))return{condition:e.condition}}}function Qm(e,t){const n={};for(const i in e)if(b(e,i)){const r=e[i];if(o(r))n[i]=r.map(e=>Jm(e,t)).filter(e=>e);else{const e=Jm(r,t);void 0!==e&&(n[i]=e)}}return n}function Zm(e,t,n){return Ru(t,Object.assign({suffix:`by_${Ru(e)}`},null!=n?n:{}))}class Km extends Om{constructor(e,t,n,i,r){super(e,"facet",t,n,r,i,e.resolve),this.child=Db(e.spec,this,this.getName("child"),void 0,i,r),this.children=[this.child];const o=function(e,t){return Du(e)?Qm(e,t):Xm(e,t)}(e.facet,i);this.facet=this.initFacet(o)}initFacet(e){return Du(e)?xc(e,(e,t,n)=>Qr([Xo,"column"],n)?void 0===t.field?(as(is.emptyFieldDef(t,n)),e):(e[n]=Ku(t,n),e):(as(is.incompatibleChannel(n,"facet")),e),{}):{facet:Ku(e,"facet")}}channelHasField(e){return!!this.facet[e]}fieldDef(e){return this.facet[e]}parseData(){this.component.data=nb(this),this.child.parseData()}parseLayoutSize(){Hm(this)}parseSelections(){this.child.parseSelections(),this.component.selection=this.child.component.selection}parseMarkGroup(){this.child.parseMarkGroup()}parseAxesAndHeaders(){this.child.parseAxesAndHeaders(),function(e){for(const t of ha)Lm(e,t);qm(e,"x"),qm(e,"y")}(this)}assembleSelectionTopLevelSignals(e){return this.child.assembleSelectionTopLevelSignals(e)}assembleSignals(){return this.child.assembleSignals(),[]}assembleSelectionData(e){return this.child.assembleSelectionData(e)}getHeaderLayoutMixins(){var e,t,n;const i={};for(const r of ha)for(const o of up){const a=this.component.layoutHeaders[r],s=a[o],{facetFieldDef:u}=a;if(u){const t=op("titleOrient",u,this.config,r);if(Qr(["right","bottom"],t)){const n=rp(r,t);i.titleAnchor=null!==(e=i.titleAnchor)&&void 0!==e?e:{},i.titleAnchor[n]="end"}}if(null==s?void 0:s[0]){const e="row"===r?"height":"width",s="header"===o?"headerBand":"footerBand";"facet"===r||this.child.component.layoutSize.get(e)||(i[s]=null!==(t=i[s])&&void 0!==t?t:{},i[s][r]=.5),a.title&&(i.offset=null!==(n=i.offset)&&void 0!==n?n:{},i.offset["row"===r?"rowTitle":"columnTitle"]=10)}}return i}assembleDefaultLayout(){const{column:e,row:t}=this.facet,n=e?this.columnDistinctSignal():t?1:void 0;let i="all";return(t||"independent"!==this.component.resolve.scale.x)&&(e||"independent"!==this.component.resolve.scale.y)||(i="none"),Object.assign(Object.assign(Object.assign({},this.getHeaderLayoutMixins()),n?{columns:n}:{}),{bounds:"full",align:i})}assembleLayoutSignals(){return this.child.assembleLayoutSignals()}columnDistinctSignal(){if(!(this.parent&&this.parent instanceof Km)){return{signal:`length(data('${this.getName("column_domain")}'))`}}}assembleGroup(e){return this.parent&&this.parent instanceof Km?Object.assign(Object.assign({},this.channelHasField("column")?{encode:{update:{columns:{field:Ru(this.facet.column,{prefix:"distinct"})}}}}:{}),super.assembleGroup(e)):super.assembleGroup(e)}getCardinalityAggregateForChild(){const e=[],t=[],n=[];if(this.child instanceof Km){if(this.child.channelHasField("column")){const i=Ru(this.child.facet.column);e.push(i),t.push("distinct"),n.push(`distinct_${i}`)}}else for(const i of["x","y"]){const r=this.child.component.scales[i];if(r&&!r.merged){const o=r.get("type"),a=r.get("range");if(eu(o)&&Ia(a)){const r=em(tm(this.child,i));r?(e.push(r),t.push("distinct"),n.push(`distinct_${r}`)):as(`Unknown field for ${i}. Cannot calculate view size.`)}}}return{fields:e,ops:t,as:n}}assembleFacet(){const{name:e,data:t}=this.component.data.facetRoot,{row:n,column:i}=this.facet,{fields:r,ops:a,as:s}=this.getCardinalityAggregateForChild(),u=[];for(const e of ha){const t=this.facet[e];if(t){u.push(Ru(t));const{bin:c,sort:l}=t;if(cc(c)&&u.push(Ru(t,{binSuffix:"end"})),Cu(l)){const{field:e,op:o=xu}=l,u=Zm(t,l);n&&i?(r.push(u),a.push("max"),s.push(u)):(r.push(e),a.push(o),s.push(u))}else if(o(l)){const n=ip(t,e);r.push(n),a.push("max"),s.push(n)}}}const c=!!n&&!!i;return Object.assign({name:e,data:t,groupby:u},c||r.length>0?{aggregate:Object.assign(Object.assign({},c?{cross:c}:{}),r.length?{fields:r,ops:a,as:s}:{})}:{})}facetSortFields(e){const{facet:t}=this,n=t[e];return n?Cu(n.sort)?[Zm(n,n.sort,{expr:"datum"})]:o(n.sort)?[ip(n,e,{expr:"datum"})]:[Ru(n,{expr:"datum"})]:[]}facetSortOrder(e){const{facet:t}=this,n=t[e];if(n){const{sort:e}=n;return[(Cu(e)?e.order:!o(e)&&e)||"ascending"]}return[]}assembleLabelTitle(){const{facet:e,config:t}=this;if(e.facet)return pp(e.facet,"facet",t);const n={row:["top","bottom"],column:["left","right"]};for(const i of sp)if(e[i]){const r=op("labelOrient",e[i],t,i);if(Qr(n[i],r))return pp(e[i],i,t)}}assembleMarks(){const{child:e}=this,t=function(e){const t=[],n=Um(t);return e.children.forEach(t=>n(t,{source:e.name,name:null,transform:[]})),t}(this.component.data.facetRoot),n=e.assembleGroupEncodeEntry(!1),i=this.assembleLabelTitle()||e.assembleTitle(),r=e.assembleGroupStyle();return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:this.getName("cell"),type:"group"},i?{title:i}:{}),r?{style:r}:{}),{from:{facet:this.assembleFacet()},sort:{field:ha.map(e=>this.facetSortFields(e)).flat(),order:ha.map(e=>this.facetSortOrder(e)).flat()}}),t.length>0?{data:t}:{}),n?{encode:{update:n}}:{}),e.assembleGroup(function(e,t){if(e.component.selection&&oo(e.component.selection).length){const n=u(e.getName("cell"));t.unshift({name:"facet",value:{},on:[{events:ff("mousemove","scope"),update:`isTuple(facet) ? facet : group(${n}).datum`}]})}return xd(t)}(this,[])))]}getMapping(){return this.facet}}function eb(e,t){var n,i,r,o,a,s,u,c,l,f;for(const d of t){const t=d.data;if((!e.name||!d.hasName()||e.name===d.dataName)&&!((null===(n=e.format)||void 0===n?void 0:n.mesh)&&(null===(i=t.format)||void 0===i?void 0:i.feature)||((null===(r=e.format)||void 0===r?void 0:r.feature)||(null===(o=t.format)||void 0===o?void 0:o.feature))&&(null===(a=e.format)||void 0===a?void 0:a.feature)!==(null===(s=t.format)||void 0===s?void 0:s.feature)||((null===(u=e.format)||void 0===u?void 0:u.mesh)||(null===(c=t.format)||void 0===c?void 0:c.mesh))&&(null===(l=e.format)||void 0===l?void 0:l.mesh)!==(null===(f=t.format)||void 0===f?void 0:f.mesh)))if(Pl(e)&&Pl(t)){if(Wr(e.values,t.values))return d}else if(Ul(e)&&Ul(t)){if(e.url===t.url)return d}else if(Ll(e)&&e.name===d.dataName)return d}return null}function tb(e,t){if(e.data||!e.parent){if(null===e.data){const e=new ch([]);return t.push(e),e}const n=eb(e.data,t);if(n)return Rl(e.data)||(n.data.format=function(e,...t){for(const n of t)eo(e,null!=n?n:{});return e}({},e.data.format,n.data.format)),!n.hasName()&&e.data.name&&(n.dataName=e.data.name),n;{const n=new ch(e.data);return t.push(n),n}}return e.parent.component.data.facetRoot?e.parent.component.data.facetRoot:e.parent.component.data.main}function nb(e){var t,n,i,r,o,a,s,u,c,l;let f=tb(e,e.component.data.sources);const{outputNodes:d,outputNodeRefCounts:g}=e.component.data,p=e.parent?e.parent.component.data.ancestorParse.clone():new $m,h=e.data;Rl(h)?(ql(h)?f=new dh(f,h.sequence):Wl(h)&&(f=new fh(f,h.graticule)),p.parseNothing=!0):null===(null===(t=null==h?void 0:h.format)||void 0===t?void 0:t.parse)&&(p.parseNothing=!0),f=null!==(n=Oh.makeExplicit(f,e,p))&&void 0!==n?n:f,f=new jh(f);const m=e.parent&&wm(e.parent);(bm(e)||vm(e))&&m&&(f=null!==(i=uh.makeFromEncoding(f,e))&&void 0!==i?i:f),e.transforms.length>0&&(f=function(e,t,n){var i,r;let o=0;for(const a of t.transforms){let s,u=void 0;if(rf(a))s=e=new np(e,a),u="derived";else if(Gl(a)){const r=wh(a);s=e=null!==(i=Oh.makeWithAncestors(e,{},r,n))&&void 0!==i?i:e,e=new Lg(e,t,a.filter)}else if(of(a))s=e=uh.makeFromTransform(e,a,t),u="number";else if(sf(a)){u="date",void 0===n.getWithExplicit(a.field).value&&(e=new Oh(e,{[a.field]:u}),n.set(a.field,u,!1)),s=e=nd.makeFromTransform(e,a)}else if(uf(a))s=e=vh.makeFromTransform(e,a),u="number",Bd(t)&&(e=new jh(e));else if(Yl(a))s=e=Mm.make(e,t,a,o++),u="derived";else if(ef(a))s=e=new Dh(e,a),u="number";else if(tf(a))s=e=new Ch(e,a),u="number";else if(cf(a))s=e=Fh.makeFromTransform(e,a),u="derived";else if(lf(a))s=e=new jm(e,a),u="derived";else if(nf(a))s=e=new Dm(e,a),u="derived";else if(Vl(a))s=e=new Tm(e,a),u="derived";else if(Kl(a))e=new zm(e,a);else if(af(a))s=e=Sm.makeFromTransform(e,a),u="derived";else if(Xl(a))s=e=new Cm(e,a),u="derived";else if(Jl(a))s=e=new Bm(e,a),u="derived";else if(Ql(a))s=e=new _m(e,a),u="derived";else{if(!Zl(a)){as(is.invalidTransformIgnored(a));continue}s=e=new Nm(e,a),u="derived"}if(s&&void 0!==u)for(const e of null!==(r=s.producedFields())&&void 0!==r?r:[])n.set(e,u,!1)}return e}(f,e,p));const b=function(e){const t={};if(bm(e)&&e.component.selection)for(const n of oo(e.component.selection)){const i=e.component.selection[n];for(const e of i.project.items)!e.channel&&bo(e.field)>1&&(t[e.field]="flatten")}return t}(e),v=Ah(e);f=null!==(r=Oh.makeWithAncestors(f,{},Object.assign(Object.assign({},b),v),p))&&void 0!==r?r:f,bm(e)&&(f=km.parseAll(f,e),f=Em.parseAll(f,e)),(bm(e)||vm(e))&&(m||(f=null!==(o=uh.makeFromEncoding(f,e))&&void 0!==o?o:f),f=null!==(a=nd.makeFromEncoding(f,e))&&void 0!==a?a:f,f=np.parseAllForSortIndex(f,e));const y=e.getName("raw"),x=new td(f,y,"raw",g);if(d[y]=x,f=x,bm(e)){const t=vh.makeFromEncoding(f,e);t&&(f=t,Bd(e)&&(f=new jh(f))),f=null!==(s=Sm.makeFromEncoding(f,e))&&void 0!==s?s:f,f=null!==(u=Fh.makeFromEncoding(f,e))&&void 0!==u?u:f}bm(e)&&(f=null!==(c=Fm.make(f,e))&&void 0!==c?c:f);const w=e.getName(Hl),A=new td(f,w,Hl,g);d[w]=A,f=A,bm(e)&&function(e,t){Nd(e,n=>{const i=n.name,r=e.getName(`lookup_${i}`);e.component.data.outputNodes[r]=n.materialized=new td(new Lg(t,e,{selection:i}),r,"lookup",e.component.data.outputNodeRefCounts)})}(e,A);let O=null;if(vm(e)){const t=e.getName("facet");f=null!==(l=function(e,t){const{row:n,column:i}=t;if(n&&i){let t=null;for(const r of[n,i])if(Cu(r.sort)){const{field:n,op:i=xu}=r.sort;e=t=new Ch(e,{joinaggregate:[{op:i,field:n,as:Zm(r,r.sort,{forAs:!0})}],groupby:[Ru(r)]})}return t}return null}(f,e.facet))&&void 0!==l?l:f,O=new yh(f,e,t,A.getSource()),d[t]=O,f=O}return Object.assign(Object.assign({},e.component.data),{outputNodes:d,outputNodeRefCounts:g,raw:x,main:A,facetRoot:O,ancestorParse:p})}class ib extends Am{constructor(e,t,n,i,r,o,a){super(e,t,n,i,r,o,a)}parseData(){this.component.data=nb(this),this.children.forEach(e=>{e.parseData()})}parseSelections(){this.component.selection={};for(const e of this.children)e.parseSelections(),oo(e.component.selection).forEach(t=>{this.component.selection[t]=e.component.selection[t]})}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){for(const e of this.children)e.parseAxesAndHeaders()}assembleSelectionTopLevelSignals(e){return this.children.reduce((e,t)=>t.assembleSelectionTopLevelSignals(e),e)}assembleSignals(){return this.children.forEach(e=>e.assembleSignals()),[]}assembleLayoutSignals(){return this.children.reduce((e,t)=>[...e,...t.assembleLayoutSignals()],yp(this))}assembleSelectionData(e){return this.children.reduce((e,t)=>t.assembleSelectionData(e),e)}assembleMarks(){return this.children.map(e=>{const t=e.assembleTitle(),n=e.assembleGroupStyle(),i=e.assembleGroupEncodeEntry(!1);return Object.assign(Object.assign(Object.assign(Object.assign({type:"group",name:e.getName("group")},t?{title:t}:{}),n?{style:n}:{}),i?{encode:{update:i}}:{}),e.assembleGroup())})}}class rb extends ib{constructor(e,t,n,i,r){var o,a,s,u;super(e,"concat",t,n,r,i,e.resolve),"shared"!==(null===(a=null===(o=e.resolve)||void 0===o?void 0:o.axis)||void 0===a?void 0:a.x)&&"shared"!==(null===(u=null===(s=e.resolve)||void 0===s?void 0:s.axis)||void 0===u?void 0:u.y)||as(is.CONCAT_CANNOT_SHARE_AXIS),this.children=this.getChildren(e).map((e,t)=>Db(e,this,this.getName("concat_"+t),void 0,i,r))}getChildren(e){return Zc(e)?e.vconcat:Kc(e)?e.hconcat:e.concat}parseLayoutSize(){Wm(this)}parseAxisGroup(){return null}assembleDefaultLayout(){const e=this.layout.columns;return Object.assign(Object.assign({},null!=e?{columns:e}:{}),{bounds:"full",align:"each"})}}const ob=Object.assign(Object.assign({gridScale:1,scale:1},Do),{labelExpr:1,encode:1}),ab=oo(ob);class sb extends jp{constructor(e={},t={},n=!1){super(),this.explicit=e,this.implicit=t,this.mainExtracted=n}clone(){return new sb(Hr(this.explicit),Hr(this.implicit),this.mainExtracted)}hasAxisPart(e){return"axis"===e||("grid"===e||"title"===e?!!this.get(e):!(!1===(t=this.get(e))||null===t));var t}}const ub={bottom:"top",top:"bottom",left:"right",right:"left"};function cb(e,t){if(!e)return t.map(e=>e.clone());{if(e.length!==t.length)return;const n=e.length;for(let i=0;i{switch(n){case"title":return ns(e,t);case"gridScale":return{explicit:e.explicit,value:vo(e.value,t.value)}}return $p(e,t,n,"axis")});e.setWithExplicit(n,i)}return e}function fb(e,t){const n="x"===t?"x2":"y2",i=e.fieldDef(t),r=e.fieldDef(n),o=i?i.title:void 0,a=r?r.title:void 0;return o&&a?ts(o,a):o||(a||(void 0!==o?o:void 0!==a?a:void 0))}function db(e,t,n,i,r){switch(t){case"titleAngle":case"labelAngle":return e===xo(n[t]);case"values":return!!n.values;case"encode":return!!n.encoding||!!n.labelAngle;case"title":if(e===fb(i,r))return!0}return e===n[t]}const gb=["Band","Point","Discrete","Quantitative","Temporal"],pb=x([...gb.map(e=>`axisX${e}`),...gb.map(e=>`axisY${e}`)]);function hb(e,t){var n;const i=t.axis(e),r=new sb;for(const n of ab){const o=mb(n,i,e,t),{configValue:a,configFrom:s}=ko(n)?Zg(n,t.config,e,r.get("orient"),t.getScaleComponent(e).get("type"),i.style):{},u=db(o,n,i,t,e);void 0===o||!u&&void 0!==a?(Qr(["grid","orient","tickCount","labelExpr"],n)&&a||Oo(a)||qa(a)||Qr(["style","axis-config-style"],s)||Qr(["axisQuantitative","axisTemporal"],s)||s in pb)&&r.set(n,a,!1):r.set(n,o,u)}const o=null!==(n=i.encoding)&&void 0!==n?n:{},a=Co.reduce((n,i)=>{var a;if(!r.hasAxisPart(i))return n;const s=Cp(null!==(a=o[i])&&void 0!==a?a:{},t),u="labels"===i?function(e,t,n){var i;const r=null!==(i=e.fieldDef(t))&&void 0!==i?i:"x"===t?e.fieldDef("x2"):"y"===t?e.fieldDef("y2"):void 0,o=e.axis(t),{format:a,formatType:s}=o,{config:u}=e,c=hu({fieldDef:r,field:"datum.value",format:a,formatType:s,config:u,isUTCScale:e.getScaleComponent(t).get("type")===Rs.UTC,omitTimeFormatConfig:!0,omitNumberFormatAndEmptyTimeFormat:!0});let l=Object.assign(Object.assign({},c?{text:c}:{}),n);return l=Object.assign(Object.assign({},l),n),0===oo(l).length?void 0:l}(t,e,s):s;return void 0!==u&&oo(u).length>0&&(n[i]={update:u}),n},{});return oo(a).length>0&&r.set("encode",a,!!i.encoding||void 0!==i.labelAngle),r}function mb(e,t,n,i){const r=i.fieldDef(n),a=function(e,t,n,i){if(void 0!==t.labelAngle)return xo(t.labelAngle);{const{configValue:r}=Zg("labelAngle",e.config,n,tp(n),e.getScaleComponent(n).get("type"),t.style);return void 0!==r?xo(r):n===Jo&&Qr(["nominal","ordinal"],i.type)?270:void 0}}(i,t,n,r),s=vo(t.orient,tp(n)),{mark:u,config:c}=i;switch(e){case"scale":return i.scaleName(n);case"gridScale":return function(e,t){const n="x"===t?"y":"x";if(e.getScaleComponent(n))return e.scaleName(n)}(i,n);case"format":if(ic(r)||rc(r))return;return mu(r,t.format,c);case"formatType":if(ic(r)||rc(r))return;return t.formatType;case"grid":if(lc(i.fieldDef(n).bin))return!1;{const e=i.getScaleComponent(n).get("type");return vo(t.grid,function(e,t){return!eu(e)&&!cc(t.bin)}(e,r))}case"labelAlign":return vo(t.labelAlign,ep(a,s));case"labelAngle":return a;case"labelBaseline":return vo(t.labelBaseline,Kg(a,s));case"labelFlush":return vo(t.labelFlush,function(e,t){if("x"===t&&Qr(["quantitative","temporal"],e.type))return!0}(r,n));case"labelOverlap":{const e=i.getScaleComponent(n).get("type");return vo(t.labelOverlap,function(e,t){if("nominal"!==e.type)return"log"!==t||"greedy"}(r,e))}case"orient":return s;case"tickCount":{const e=i.getScaleComponent(n).get("type"),o="x"===n?"width":"y"===n?"height":void 0,a=o?i.getSizeSignalRef(o):void 0;return vo(t.tickCount,function({fieldDef:e,scaleType:t,size:n}){var i;if(!eu(t)&&"log"!==t&&!Qr(["month","hours","day","quarter"],null===(i=Ds(e.timeUnit))||void 0===i?void 0:i.unit))return cc(e.bin)?{signal:`ceil(${n.signal}/10)`}:{signal:`ceil(${n.signal}/40)`}}({fieldDef:r,scaleType:e,size:a}))}case"title":{const e="x"===n?"x2":"y2",o=i.fieldDef(e);return vo(t.title,fb(i,n),es([ku(r)],o?[ku(o)]:[]))}case"values":return function(e,t,n){const i=e.values;return o(i)?ac(n,i):qa(i)?i:void 0}(t,0,r);case"zindex":return vo(t.zindex,function(e,t){return"rect"===e&&qu(t)?1:0}(u,r))}return ko(e)?t[e]:void 0}function bb(e,t,n,{graticule:i}){var r,o,a;const s=No(e)?Object.assign({},e):{type:e},u=null!==(r=s.orient)&&void 0!==r?r:Ja("orient",s,n);if(s.orient=function(e,t,n){switch(e){case"point":case"circle":case"square":case"text":case"rect":case"image":return}const{x:i,y:r,x2:o,y2:a}=t;switch(e){case"bar":if(Bu(i)&&(lc(i.bin)||Bu(r)&&r.aggregate&&!i.aggregate))return"vertical";if(Bu(r)&&(lc(r.bin)||Bu(i)&&i.aggregate&&!r.aggregate))return"horizontal";if(a||o){if(n)return n;if(!o&&Bu(i)&&"quantitative"===i.type&&!cc(i.bin))return"horizontal";if(!a&&Bu(r)&&"quantitative"===r.type&&!cc(r.bin))return"vertical"}case"rule":if(o&&a)return;case"area":if(a)return Bu(r)&&lc(r.bin)?"horizontal":"vertical";if(o)return Bu(i)&&lc(i.bin)?"vertical":"horizontal";if("rule"===e){if(i&&!r)return"vertical";if(r&&!i)return"horizontal"}case"line":case"tick":{const t=Bu(i)&&Iu(i),o=Bu(r)&&Iu(r);if(t&&!o)return"tick"!==e?"horizontal":"vertical";if(!t&&o)return"tick"!==e?"vertical":"horizontal";if(t&&o){const t=i,o=r,a="temporal"===t.type,s="temporal"===o.type;return a&&!s?"tick"!==e?"vertical":"horizontal":!a&&s?"tick"!==e?"horizontal":"vertical":!t.aggregate&&o.aggregate?"tick"!==e?"vertical":"horizontal":t.aggregate&&!o.aggregate?"tick"!==e?"horizontal":"vertical":n||"vertical"}return n||void 0}}return"vertical"}(s.type,t,u),void 0!==u&&u!==s.orient&&as(is.orientOverridden(s.orient,u)),"bar"===s.type&&s.orient){const e=null!==(o=s.cornerRadiusEnd)&&void 0!==o?o:Ja("cornerRadiusEnd",s,n);if(void 0!==e){const n="horizontal"===s.orient&&t.x2||"vertical"===s.orient&&t.y2?["cornerRadius"]:_o[s.orient];for(const t of n)s[t]=e;void 0!==s.cornerRadiusEnd&&delete s.cornerRadiusEnd}}return void 0===vo(s.opacity,Ja("opacity",s,n))&&(s.opacity=function(e,t){if(Qr(["point","tick","circle","square"],e)&&!hc(t))return.7;return}(s.type,t)),void 0===s.filled&&(s.filled=!i&&function(e,t){const n=Ja("filled",e,t),i=e.type;return vo(n,"point"!==i&&"line"!==i&&"rule"!==i)}(s,n)),void 0===(null!==(a=s.cursor)&&void 0!==a?a:Ja("cursor",s,n))&&(s.cursor=function(e,t,n){if(t.href||e.href||Ja("href",e,n))return"pointer";return e.cursor}(s,t,n)),s}function vb(e,t){const{config:n}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),Ef("size",e)),function(e,t,n){if(n)return{shape:{value:n}};return Ef("shape",e)}(e,0,t))}function yb(e){const{config:t,markDef:n}=e,{orient:i}=n,r="horizontal"===i?"width":"height",o=e.getScaleComponent("horizontal"===i?"x":"y"),a=vo(n[r],n.size,Ja("size",n,t,{vgChannel:r}),t.tick.bandSize);if(void 0!==a)return a;{const e=o?o.get("range"):void 0;return e&&Ia(e)&&y(e.step)?3*e.step/4:3*ol(t.view,r)/4}}const xb={area:{vgMark:"area",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"include",size:"ignore"})),Rf("x",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"horizontal"===e.markDef.orient})),Rf("y",e,{defaultPos:"zeroOrMin",defaultPos2:"zeroOrMin",range:"vertical"===e.markDef.orient})),Qf(e))},bar:{vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Wf(e,"x","bar")),Wf(e,"y","bar"))},circle:{vgMark:"symbol",encodeEntry:e=>vb(e,"circle")},geoshape:{vgMark:"shape",encodeEntry:e=>Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore"})),postEncodingTransform:e=>{const{encoding:t}=e,n=t.shape;return[Object.assign({type:"geoshape",projection:e.projectionName()},n&&Bu(n)&&"geojson"===n.type?{field:Ru(n,{expr:"datum"})}:{})]}},image:{vgMark:"image",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"ignore",orient:"ignore",size:"ignore"})),Wf(e,"x","image")),Wf(e,"y","image")),$f(e,"url"))},line:{vgMark:"line",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"ignore",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),Ef("size",e,{vgChannel:"strokeWidth"})),Qf(e))},point:{vgMark:"symbol",encodeEntry:e=>vb(e)},rect:{vgMark:"rect",encodeEntry:e=>Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Wf(e,"x","rect")),Wf(e,"y","rect"))},rule:{vgMark:"rule",encodeEntry:e=>{const{markDef:t}=e,n=t.orient;return e.encoding.x||e.encoding.y||e.encoding.latitude||e.encoding.longitude?Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Rf("x",e,{defaultPos:"horizontal"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"vertical"!==n})),Rf("y",e,{defaultPos:"vertical"===n?"zeroOrMax":"mid",defaultPos2:"zeroOrMin",range:"horizontal"!==n})),Ef("size",e,{vgChannel:"strokeWidth"})):{}}},square:{vgMark:"symbol",encodeEntry:e=>vb(e,"square")},text:{vgMark:"text",encodeEntry:e=>{const{config:t,encoding:n}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"include",baseline:"include",color:"include",size:"ignore",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),$f(e)),Ef("size",e,{vgChannel:"fontSize"})),Zf("align",function(e,t,n){var i;if(void 0===(null!==(i=e.align)&&void 0!==i?i:Ja("align",e,n)))return"center";return}(e.markDef,0,t))),Zf("baseline",function(e,t,n){var i;if(void 0===(null!==(i=e.baseline)&&void 0!==i?i:Ja("baseline",e,n)))return"middle";return}(e.markDef,0,t)))}},tick:{vgMark:"rect",encodeEntry:e=>{const{config:t,markDef:n}=e,i=n.orient,r="horizontal"===i?"width":"height",o="horizontal"===i?"height":"width";return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",orient:"ignore",size:"ignore"})),Tf("x",e,{defaultPos:"mid",vgChannel:"xc"})),Tf("y",e,{defaultPos:"mid",vgChannel:"yc"})),Ef("size",e,{defaultValue:yb(e),vgChannel:r})),{[o]:{value:vo(n.thickness,t.tick.thickness)}})}},trail:{vgMark:"trail",encodeEntry:e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Xf(e,{align:"ignore",baseline:"ignore",color:"include",size:"include",orient:"ignore"})),Tf("x",e,{defaultPos:"mid"})),Tf("y",e,{defaultPos:"mid"})),Ef("size",e)),Qf(e))}};function wb(e){return Qr(["line","area","trail"],e.mark)?function(e){const t=wc(e.mark,e.encoding),n=Ab(e,{fromPrefix:t.length>0?"faceted_path_":""});return t.length>0?[{name:e.getName("pathgroup"),type:"group",from:{facet:{name:"faceted_path_"+e.requestDataName(Hl),data:e.requestDataName(Hl),groupby:t}},encode:{update:{width:{field:{group:"width"}},height:{field:{group:"height"}}}},marks:n}]:n}(e):Qr(["bar"],e.mark)?function(e){const t=Ga.some(t=>e.markDef[t]||Ja(t,e.markDef,e.config));if(e.stack&&!e.fieldDef("size")&&t){const[t]=Ab(e,{fromPrefix:"stack_group_"}),n=e.scaleName(e.stack.fieldChannel),i=(t={})=>e.vgField(e.stack.fieldChannel,t),r=(e,t)=>`${e}(${[i({prefix:"min",suffix:"start",expr:t}),i({prefix:"max",suffix:"start",expr:t}),i({prefix:"min",suffix:"end",expr:t}),i({prefix:"max",suffix:"end",expr:t})].map(e=>`scale('${n}',${e})`).join(",")})`;let o,a;"x"===e.stack.fieldChannel?(o=Object.assign(Object.assign({},Gr(t.encode.update,["y","yc","y2","height",...Ga])),{x:{signal:r("min","datum")},x2:{signal:r("max","datum")},clip:{value:!0}}),a={x:{field:{group:"x"},mult:-1},height:{field:{group:"height"}}},t.encode.update=Object.assign(Object.assign({},Yr(t.encode.update,["y","yc","y2"])),{height:{field:{group:"height"}}})):(o=Object.assign(Object.assign({},Gr(t.encode.update,["x","xc","x2","width"])),{y:{signal:r("min","datum")},y2:{signal:r("max","datum")},clip:{value:!0}}),a={y:{field:{group:"y"},mult:-1},width:{field:{group:"width"}}},t.encode.update=Object.assign(Object.assign({},Yr(t.encode.update,["x","xc","x2"])),{width:{field:{group:"width"}}}));for(const n of Ga){const i=Ja(n,e.markDef,e.config);t.encode.update[n]?(o[n]=t.encode.update[n],delete t.encode.update[n]):i&&(o[n]={value:i}),i&&(t.encode.update[n]={value:0})}const s=e.fieldDef(e.stack.groupbyChannel),u=Ru(s)?[Ru(s)]:[];return((null==s?void 0:s.bin)||(null==s?void 0:s.timeUnit))&&u.push(Ru(s,{binSuffix:"end"})),o=["stroke","strokeWidth","strokeJoin","strokeCap","strokeDash","strokeDashOffset","strokeMiterLimit","strokeOpacity"].reduce((n,i)=>{if(t.encode.update[i])return Object.assign(Object.assign({},n),{[i]:t.encode.update[i]});{const t=Ja(i,e.markDef,e.config);return void 0!==t?Object.assign(Object.assign({},n),{[i]:{value:t}}):n}},o),o.stroke&&(o.strokeForeground={value:!0},o.strokeOffset={value:0}),[{type:"group",from:{facet:{data:e.requestDataName(Hl),name:"stack_group_"+e.requestDataName(Hl),groupby:u,aggregate:{fields:[i({suffix:"start"}),i({suffix:"start"}),i({suffix:"end"}),i({suffix:"end"})],ops:["min","max","min","max"]}}},encode:{update:o},marks:[{type:"group",encode:{update:a},marks:[t]}]}]}return Ab(e)}(e):Ab(e)}function Ab(e,t={fromPrefix:""}){const n=e.mark,i=vo(e.markDef.clip,function(e){const t=e.getScaleComponent("x"),n=e.getScaleComponent("y");return!!(t&&t.get("selectionExtent")||n&&n.get("selectionExtent"))||void 0}(e),function(e){const t=e.component.projection;return!(!t||t.isFit)||void 0}(e)),r=Va(e.markDef),a=e.encoding.key,s=function(e){const{encoding:t,stack:n,mark:i,markDef:r,config:a}=e,s=t.order;if(!(!o(s)&&zu(s)&&Jr(s.value)||!s&&Jr(r.order)||Jr(Ja("order",r,a)))){if((o(s)||Bu(s))&&!n)return Ka(s,{expr:"datum"});if(Eo(i)){const n="horizontal"===r.orient?"y":"x",i=t[n];if(Bu(i)){const t=i.sort;if(o(t))return{field:Ru(i,{prefix:n,suffix:"sort_index",expr:"datum"})};if(Cu(t))return{field:Ru({aggregate:hc(e.encoding)?t.op:void 0,field:t.field},{expr:"datum"})};if(Ou(t)){return{field:Ru(e.fieldDef(t.encoding),{expr:"datum"}),order:t.order}}return{field:Ru(i,{binSuffix:e.stack&&e.stack.impute?"mid":void 0,expr:"datum"})}}}else;}}(e),u=function(e){if(!e.component.selection)return null;const t=oo(e.component.selection).length;let n=t,i=e.parent;for(;i&&0===n;)n=oo(i.component.selection).length,i=i.parent;return n?{interactive:t>0}:null}(e),c=xb[n].postEncodingTransform?xb[n].postEncodingTransform(e):null;return[Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({name:e.getName("marks"),type:xb[n].vgMark},i?{clip:!0}:{}),r?{style:r}:{}),a?{key:a.field}:{}),s?{sort:s}:{}),u||{}),{from:{data:t.fromPrefix+e.requestDataName(Hl)},encode:{update:xb[n].encodeEntry(e)}}),c?{transform:c}:{})]}class Ob extends Om{constructor(e,t,n,i={},r,o){var a;super(e,"unit",t,n,o,r,void 0,nl(e)?e.view:void 0),this.specifiedScales={},this.specifiedAxes={},this.specifiedLegends={},this.specifiedProjection={},this.selection={},this.children=[];const s=No(e.mark)?e.mark.type:e.mark,u=function(e,t){return Qm(e,t)}(null!==(a=e.encoding)&&void 0!==a?a:{},r);this.markDef=bb(e.mark,u,o,{graticule:e.data&&Wl(e.data)});const c=this.encoding=bc(u,this.markDef);this.size=function({encoding:e,size:t}){for(const n of ka){const i=Ea(n),r=Qu(e[n]);tl(t[i])&&r&&Iu(r)&&(delete t[i],as(is.stepDropped(i)))}return t}({encoding:c,size:nl(e)?Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{}):i}),this.stack=Ol(s,c),this.specifiedScales=this.initScales(s,c),this.specifiedAxes=this.initAxes(c),this.specifiedLegends=this.initLegend(c),this.specifiedProjection=e.projection,this.selection=e.selection}get hasProjection(){const{encoding:e}=this,t="geoshape"===this.mark,n=e&&fa.some(t=>Bu(e[t]));return t||n}scaleDomain(e){const t=this.specifiedScales[e];return t?t.domain:void 0}axis(e){return this.specifiedAxes[e]}legend(e){return this.specifiedLegends[e]}initScales(e,t){return Ba.reduce((e,n)=>{let i,r;const o=t[n];return Bu(o)?(i=o,r=o.scale):Mu(o)&&(i=o.condition,r=o.condition.scale),i&&(e[n]=null!=r?r:{}),e},{})}initAxes(e){return[Jo,Qo].reduce((t,n)=>{const i=e[n];if(Bu(i)||n===Jo&&Bu(e.x2)||n===Qo&&Bu(e.y2)){const e=Bu(i)?i.axis:null;null!==e&&(t[n]=Object.assign({},e))}return t},{})}initLegend(e){return Na.reduce((t,n)=>{const i=e[n];if(i){const e=Bu(i)?i.legend:Mu(i)?i.condition.legend:null;null!==e&&!1!==e&&function(e){switch(e){case ea:case ta:case na:case ra:case ia:case oa:case ua:case ca:return!0;case aa:case sa:return!1}}(n)&&(t[n]=Object.assign({},e))}return t},{})}parseData(){this.component.data=nb(this)}parseLayoutSize(){!function(e){const{size:t,component:n}=e;for(const i of ka){const r=Ea(i);if(t[r]){const e=t[r];n.layoutSize.set(r,tl(e)?"step":e,!0)}else{const t=Ym(e,r);n.layoutSize.set(r,t,!1)}}}(this)}parseSelections(){this.component.selection=function(e,t){var n;const i={},r=e.config.selection;for(const o of oo(null!=t?t:{})){const a=Hr(t[o]),u=w(r[a.type],["fields","encodings"]);for(const e in u)"encodings"===e&&a.fields||"fields"===e&&a.encodings||("mark"===e&&(a[e]=Object.assign(Object.assign({},u[e]),a[e])),void 0!==a[e]&&!0!==a[e]||(a[e]=null!==(n=u[e])&&void 0!==n?n:a[e]));const c=uo(o),l=i[c]=Object.assign(Object.assign({},a),{name:c,events:s(a.on)?ff(a.on,"scope"):Hr(a.on)});bd(l,n=>{n.has(l)&&n.parse&&n.parse(e,l,a,t[o])})}return i}(this,this.selection)}parseMarkGroup(){this.component.mark=wb(this)}parseAxesAndHeaders(){var e;this.component.axes=(e=this,ka.reduce((t,n)=>(e.component.scales[n]&&e.axis(n)&&(t[n]=[hb(n,e)]),t),{}))}assembleSelectionTopLevelSignals(e){return function(e,t){let n=!1;if(Nd(e,(i,r)=>{const o=i.name,a=u(o+jd);if(0===t.filter(e=>e.name===o).length){const e="global"===i.resolve?"union":i.resolve,n="multi"===i.type?", true)":")";t.push({name:i.name,update:`${Sd}(${a}, ${u(e)}${n}`})}n=!0,r.topLevelSignals&&(t=r.topLevelSignals(e,i,t)),bd(i,n=>{n.topLevelSignals&&(t=n.topLevelSignals(e,i,t))})}),n){0===t.filter(e=>"unit"===e.name).length&&t.unshift({name:"unit",value:{},on:[{events:"mousemove",update:"isTuple(group()) ? group() : unit"}]})}return xd(t)}(this,e)}assembleSignals(){return[...Yg(this),...(e=this,t=[],Nd(e,(n,i)=>{const r=n.name;let o=i.modifyExpr(e,n);t.push(...i.signals(e,n)),bd(n,i=>{i.signals&&(t=i.signals(e,n,t)),i.modifyExpr&&(o=i.modifyExpr(e,n,o))}),t.push({name:r+Ed,on:[{events:{signal:n.name+kd},update:`modify(${u(n.name+jd)}, ${o})`}]})}),xd(t))];var e,t}assembleSelectionData(e){return function(e,t){const n=[...t];return Nd(e,t=>{const i={name:t.name+jd};if(t.init){const n=t.project.items.map(e=>w(e,["signals"])),r=t.init.map(e=>vd(e,!1));i.values="interval"===t.type?[{unit:Md(e,{escape:!1}),fields:n,values:r}]:r.map(t=>({unit:Md(e,{escape:!1}),fields:n,values:t}))}n.filter(e=>e.name===t.name+jd).length||n.push(i)}),n}(this,e)}assembleLayout(){return null}assembleLayoutSignals(){return yp(this)}assembleMarks(){var e;let t=null!==(e=this.component.mark)&&void 0!==e?e:[];return this.parent&&wm(this.parent)||(t=yd(this,t)),t.map(this.correctDataNames)}getMapping(){return this.encoding}get mark(){return this.markDef.type}channelHasField(e){return pc(this.encoding,e)}fieldDef(e){return Zu(this.encoding[e])}}class Cb extends Am{constructor(e,t,n,i,r,o){super(e,"layer",t,n,o,r,e.resolve,e.view);const a=Object.assign(Object.assign(Object.assign({},i),e.width?{width:e.width}:{}),e.height?{height:e.height}:{});this.children=e.layer.map((e,t)=>{if(vl(e))return new Cb(e,this,this.getName("layer_"+t),a,r,o);if(Uo(e))return new Ob(e,this,this.getName("layer_"+t),a,r,o);throw new Error(is.invalidSpec(e))})}parseData(){this.component.data=nb(this);for(const e of this.children)e.parseData()}parseLayoutSize(){var e;Hm(e=this),Gm(e,"width"),Gm(e,"height")}parseSelections(){this.component.selection={};for(const e of this.children)e.parseSelections(),oo(e.component.selection).forEach(t=>{this.component.selection[t]=e.component.selection[t]})}parseMarkGroup(){for(const e of this.children)e.parseMarkGroup()}parseAxesAndHeaders(){!function(e){var t;const{axes:n,resolve:i}=e.component,r={top:0,bottom:0,right:0,left:0};for(const t of e.children){t.parseAxesAndHeaders();for(const r of oo(t.component.axes))i.axis[r]=Dp(e.component.resolve,r),"shared"===i.axis[r]&&(n[r]=cb(n[r],t.component.axes[r]),n[r]||(i.axis[r]="independent",delete n[r]))}for(const o of[Jo,Qo]){for(const a of e.children)if(a.component.axes[o]){if("independent"===i.axis[o]){n[o]=(null!==(t=n[o])&&void 0!==t?t:[]).concat(a.component.axes[o]);for(const e of a.component.axes[o]){const{value:t,explicit:n}=e.getWithExplicit("orient");if(r[t]>0&&!n){const n=ub[t];r[t]>r[n]&&e.set("orient",n,!1)}r[t]++}}delete a.component.axes[o]}if("independent"===i.axis[o]&&n[o]&&n[o].length>1)for(const e of n[o])e.get("grid")&&!e.explicit.grid&&(e.implicit.grid=!1)}}(this)}assembleSelectionTopLevelSignals(e){return this.children.reduce((e,t)=>t.assembleSelectionTopLevelSignals(e),e)}assembleSignals(){return this.children.reduce((e,t)=>e.concat(t.assembleSignals()),Yg(this))}assembleLayoutSignals(){return this.children.reduce((e,t)=>e.concat(t.assembleLayoutSignals()),yp(this))}assembleSelectionData(e){return this.children.reduce((e,t)=>t.assembleSelectionData(e),e)}assembleTitle(){let e=super.assembleTitle();if(e)return e;for(const t of this.children)if(e=t.assembleTitle(),e)return e}assembleLayout(){return null}assembleMarks(){return function(e,t){for(const n of e.children)bm(n)&&(t=yd(n,t));return t}(this,this.children.flatMap(e=>e.assembleMarks()))}assembleLegends(){return this.children.reduce((e,t)=>e.concat(t.assembleLegends()),Zp(this))}}class Fb extends ib{constructor(e,t,n,i,r){super(e,"repeat",t,n,r,i,e.resolve),e.resolve&&e.resolve.axis&&("shared"===e.resolve.axis.x||"shared"===e.resolve.axis.y)&&as(is.REPEAT_CANNOT_SHARE_AXIS),this.repeat=e.repeat,this.children=this._initChildren(e,this.repeat,i,r)}_initChildren(e,t,n,i){const r=[],a=!o(t)&&t.row||[n?n.row:null],s=!o(t)&&t.column||[n?n.column:null],u=o(t)&&t||[n?n.repeat:null];for(const t of u)for(const n of a)for(const o of s){const a=(t?`__repeat_repeat_${t}`:"")+(n?`__repeat_row_${n}`:"")+(o?`__repeat_column_${o}`:""),s={repeat:t,row:n,column:o};r.push(Db(e.spec,this,this.getName("child"+a),void 0,s,i))}return r}parseLayoutSize(){Im(this)}assembleDefaultLayout(){const{repeat:e}=this,t=o(e)?void 0:e.column?e.column.length:1;return Object.assign(Object.assign({},t?{columns:t}:{}),{bounds:"full",align:"all"})}}function Db(e,t,n,i,r,o){if(ju(e))return new Km(e,t,n,r,o);if(vl(e))return new Cb(e,t,n,i,r,o);if(Uo(e))return new Ob(e,t,n,i,r,o);if(el(e))return new Fb(e,t,n,r,o);if(function(e){return Zc(e)||Kc(e)||Qc(e)}(e))return new rb(e,t,n,r,o);throw new Error(is.invalidSpec(e))}const jb=new class extends yl{mapUnit(e,{config:t}){if(e.encoding){const{encoding:n,transform:i}=e,{bins:r,timeUnits:o,aggregate:a,groupby:s,encoding:u}=mc(n,t),c=[...i||[],...r,...o,...0===a.length?[]:[{aggregate:a,groupby:s}]];return Object.assign(Object.assign(Object.assign({},e),c.length>0?{transform:c}:{}),{encoding:u})}return e}};const kb=t;e.compile=function(e,t={}){var n;t.logger&&(n=t.logger,os=n),t.fieldTitle&&Gu(t.fieldTitle),t.formatTypes&&function(e){du=new Set(e)}(t.formatTypes);try{const n=dl(d(t.config,e.config)),i=Ml(e,n),r=Db(i,null,"",void 0,void 0,n);return r.parse(),function(e,t){lh(e.sources);let n=0,i=0;for(let i=0;i<5&&Wh(e,t);i++)n++;e.sources.map(Mh);for(let n=0;n<5&&Wh(e,t);n++)i++;lh(e.sources),5===Math.max(n,i)&&as("Maximum optimization runs(5) reached.")}(r.component.data,r),{spec:function(e,t,n={},i){const r=e.config?ml(e.config):void 0,o=[].concat(e.assembleSelectionData([]),function(e,t){var n,i;const r=[],o=Um(r);let a=0;e.sources.forEach(e=>{e.hasName()||(e.dataName=`source_${a++}`);const t=e.assemble();o(e,t)}),r.forEach(e=>{0===e.transform.length&&delete e.transform});let s=0;for(const[e,t]of r.entries())0!==(null!==(n=t.transform)&&void 0!==n?n:[]).length||t.source||r.splice(s++,0,r.splice(e,1)[0]);for(const t of r)for(const n of null!==(i=t.transform)&&void 0!==i?i:[])"lookup"===n.type&&(n.from=e.outputNodes[n.from].getSource());for(const e of r)e.name in t&&(e.values=t[e.name]);return r}(e.component.data,n)),a=e.assembleProjections(),s=e.assembleTitle(),u=e.assembleGroupStyle(),c=e.assembleGroupEncodeEntry(!0);let l=e.assembleLayoutSignals();return l=l.filter(e=>"width"!==e.name&&"height"!==e.name||void 0===e.value||(t[e.name]=+e.value,!1)),Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({$schema:"https://vega.github.io/schema/vega/v5.json"},e.description?{description:e.description}:{}),t),s?{title:s}:{}),u?{style:u}:{}),c?{encode:{update:c}}:{}),{data:o}),a.length>0?{projections:a}:{}),e.assembleGroup([...l,...e.assembleSelectionTopLevelSignals([])])),r?{config:r}:{}),i?{usermeta:i}:{})}(r,function(e,t,n,i){const r=i.component.layoutSize.get("width"),o=i.component.layoutSize.get("height");void 0===t?t={type:"pad"}:s(t)&&(t={type:t});if(r&&o&&(a=t.type,"fit"===a||"fit-x"===a||"fit-y"===a))if("step"===r&&"step"===o)as(is.droppingFit()),t.type="pad";else if("step"===r||"step"===o){const e="step"===r?"width":"height";as(is.droppingFit(Sa(e)));const n="width"===e?"height":"width";t.type=function(e){return e?`fit-${Sa(e)}`:"fit"}(n)}var a;return Object.assign(Object.assign(Object.assign({},1===oo(t).length&&t.type?"pad"===t.type?{}:{autosize:t.type}:{autosize:t}),zl(n)),zl(e))}(e,i.autosize,n,r),e.datasets,e.usermeta),normalized:i}}finally{t.logger&&(os=rs),t.fieldTitle&&Gu(Wu)}},e.extractTransforms=function(e,t){return jb.map(e,{config:t})},e.normalize=Ml,e.version=kb,Object.defineProperty(e,"__esModule",{value:!0})}));